Example #1
0
        /// <summary>
        /// Create a data reader based on an xml data reader. This mathod looks into the first element
        /// and creates the right reader (Generic, Compact, Utility, CrossSectional).
        /// </summary>
        /// <param name="reader">The reader.</param>
        /// <param name="keyFamily">The key family.</param>
        /// <returns>An instance of the DataReader.</returns>
        public static DataReader Create(XmlReader reader, KeyFamily keyFamily)
        {
            Contract.AssertNotNull(reader, "reader");

            if (reader.ReadState == ReadState.Initial)
            {
                reader.Read();
            }

            if (reader.NodeType != XmlNodeType.Element)
            {
                reader.ReadNextStartElement();
            }

            if (reader.LocalName == "CompactData")
            {
                return(new CompactDataReader(reader, keyFamily));
            }
            else if (reader.LocalName == "GenericData")
            {
                return(new GenericDataReader(reader, keyFamily));
            }
            else
            {
                throw new SDMXException("Unsupported root element ({0}) for data file.", reader.LocalName);
            }
        }
Example #2
0
        public T ReadXml(XmlReader reader, Action <ValidationMessage> validationAction)
        {
            if (reader.ReadState == ReadState.Initial)
            {
                reader.Read();
            }

            if (reader.NodeType != XmlNodeType.Element)
            {
                reader.ReadNextStartElement();
            }

            if (!reader.NameEquals(_name))
            {
                Helper.Notify(validationAction, reader, typeof(T), "The first element name is '{0}:{1}' and the expected name is '{2}'."
                              , reader.NamespaceURI, reader.Name, _name);
            }

            return(_classMap.ReadXml(reader, validationAction));
        }
Example #3
0
        public new T ReadXml(XmlReader reader, Action <ValidationMessage> validationAction)
        {
            if (reader.ReadState == ReadState.Initial)
            {
                reader.Read();
            }

            if (reader.NodeType != XmlNodeType.Element)
            {
                reader.ReadNextStartElement();
            }

            if (!reader.NameEquals(Name))
            {
                Helper.Notify(validationAction, reader, typeof(T), "The first element name is '{0}' and the expected name is '{1}'."
                              , string.IsNullOrEmpty(reader.NamespaceURI) ?
                              reader.Name : string.Format("{0}:{1}", reader.NamespaceURI, reader.Name)
                              , Name);
            }

            return(base.ReadXml(reader, validationAction));
        }
Example #4
0
        /// <summary>
        /// Create a data reader based on an xml data reader. This mathod looks into the first element
        /// and creates the right reader (Generic, Compact, Utility, CrossSectional).
        /// </summary>
        /// <param name="reader">The reader.</param>
        /// <param name="keyFamily">The key family.</param>
        /// <returns>An instance of the DataReader.</returns>
        public static DataReader Create(XmlReader reader, KeyFamily keyFamily)
        {
            Contract.AssertNotNull(reader, "reader");

            if (reader.ReadState == ReadState.Initial)
            {
                reader.Read();
            }

            if (reader.NodeType != XmlNodeType.Element)
            {
                reader.ReadNextStartElement();
            }

            if (reader.LocalName == "CompactData")
                return new CompactDataReader(reader, keyFamily);
            else if (reader.LocalName == "GenericData")
                return new GenericDataReader(reader, keyFamily);
            else
                throw new SDMXException("Unsupported root element ({0}) for data file.", reader.LocalName);
        }