XmlReader 로 XML 문서 읽기 및 유효성 검사
static void Main(string[] args) { XmlSchemaSet sc = new XmlSchemaSet(); sc.Add("urn:books-schema", "data.xsd");
XmlReaderSettings settings = new XmlReaderSettings(); settings.ValidationType = ValidationType.Schema; settings.Schemas = sc; settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
XmlReader reader = XmlReader.Create("data.xml", settings); WirteConsole(reader); reader.Close(); } private static void ValidationCallBack(object sender, ValidationEventArgs e) { Console.WriteLine("유효성 위배: {0}", e.Message); } private static void WirteConsole(XmlReader reader) { XmlWriter xwriter = XmlWriter.Create(Console.Out); xwriter.WriteNode(reader, false); xwriter.Close(); Console.WriteLine(); } |
[소스] XmlReader 로 XML 문서 읽기 및 유효성 검사 예제 코드
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:books-schema" elementFormDefault="qualified" targetNamespace="urn:books-schema"> <xsd:element name="books" type="booksType"/> <xsd:complexType name="booksType"> <xsd:sequence maxOccurs="unbounded"> <xsd:element name="book" type="bookType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="bookType"> <xsd:sequence> <xsd:element name="title" type="xsd:string"/> <xsd:element name="price" type="xsd:int"/> </xsd:sequence> </xsd:complexType> </xsd:schema> |
[문서] data.xsd 문서 내용
<?xml version="1.0" encoding="utf-8"?> <books xmlns="urn:books-schema"> <book> <title>XML.NET 과 ADO.NET</title> <price>2200.0</price> </book> </books> |
[문서] data.xml 문서 내용
[그림] 실행 화면
'.NET > XML.NET' 카테고리의 다른 글
[XML.NET C# 소스] XmlReader 개체로 요소 읽기 (0) | 2016.04.18 |
---|---|
[XML.NET C# 소스] XmlReader로 현재 위치의 노드 형식 알아내기 (0) | 2016.04.18 |
[XML.NET C# 소스] RSS를 소스로 하는 XmlReader 개체 만들기 (0) | 2016.04.18 |
[XML.NET C# 소스] XmlReader 로 XML 문서 읽기 (0) | 2016.04.18 |
[XML.NET C# 소스] XmlWriter 개체로 Attribute 쓰기 (0) | 2016.04.18 |