Beispiel #1
0
        /* Implementación de IParser */

        /*  función GetNamespaces() => IDictionary<string, XNamespace>
         *      Representa mediante pares de nombres y espacios de nombres los namespaces del documento
         *      Recupera dicha información de los atributos del elemento feed en los ficheros atom
         *  @return : Diccionario con los pares de espacios de nombres
         *      @ej : { {"cac" : XNamespace("urn:dgpe:names:draft:codice:schema:xsd:CommonAggregateComponents-2")}, ... }
         */
        public IDictionary <string, XNamespace> GetNamespaces()
        {
            IDictionary <string, XNamespace> namespaces = new Dictionary <string, XNamespace>();

            // Itera sobre los atributos del elemento raíz (feed)
            foreach (var attr in DocumentRoot.Attributes())
            {
                // Construye un par a través del nombre del atributo y el namespace que representa su valor
                namespaces.Add(attr.Name.LocalName, XNamespace.Get(attr.Value));
                _Log(this, $"Adding to namespace: {attr.Name.LocalName}", ELogLevel.DEBUG);
            }

            _Log(this, $"Loaded namespace with {namespaces.Count} elements", ELogLevel.DEBUG);
            return(namespaces);
        }