스키마를 적용하여 XML 문서 내용 읽어오기
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="book" type="xs:string" /> <xs:element name="albumn" type="xs:string" /> <xs:element name="contents"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="book" /> <xs:element ref="albumn" /> </xs:choice> </xs:complexType> </xs:element> </xs:schema> |
[문서] data.xsd 문서 내용
<?xml version="1.0" encoding="utf-8"?> <contents xmlns="xs"> <book>XML.NET</book> <albumn>My Way</albumn> <book>ADO.NET</book> </contents> |
[문서] data.xml 문서 내용
<?xml version="1.0" encoding="utf-8"?> <contents xmlns="xs"> <book>XML.NET</book> <albumn>My Way</albumn> <books>ADO.NET</books> </contents> |
[문서] data2.xml 문서 내용
static void Main(string[] args) { XmlSchemaSet sc = new XmlSchemaSet(); sc.Add("xs", "data.xsd"); XmlReaderSettings settings = new XmlReaderSettings(); settings.ValidationType = ValidationType.Schema; settings.Schemas = sc; settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); TestLoading("data.xml",settings); TestLoading("data2.xml",settings); } private static void TestLoading(string path, XmlReaderSettings settings) { XmlReader reader = XmlReader.Create(path, settings); XmlWriter xwriter = XmlWriter.Create(Console.Out); xwriter.WriteNode(reader, false); xwriter.Close(); Console.WriteLine(); reader.Close(); } private static void ValidationCallBack(object sender, ValidationEventArgs e) { Console.WriteLine("유효성 오류: {0}", e.Message); } |
[소스] XML 스키마 파일에 의거해서 XML 읽기 예제 코드
[그림] 실행 화면
'.NET > XML.NET' 카테고리의 다른 글
[XML.NET C# 소스] XmlDocument에 노드 삽입하기 (0) | 2016.04.18 |
---|---|
[XML.NET C# 소스] XmlDocument 클래스로 XML 문서 만들기 (0) | 2016.04.18 |
[XML.NET C# 소스] XmlSchema 클래스로 XML 스키마 파일 작성 (0) | 2016.04.18 |
[XML.NET C# 소스] XmlReader 클래스의 ReadOuterXml 메서드 (0) | 2016.04.18 |
[XML.NET C# 소스] XmlReader 클래스의 ReadInnerXml 메서드 (0) | 2016.04.18 |