/// <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); } }
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)); }
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)); }
/// <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); }