.NET/XML.NET

[XML.NET C# 소스] XmlReader 로 XML 문서 읽기 및 유효성 검사

언제나휴일 2016. 4. 18. 15:48
반응형

 XmlReader 로 XML 문서 읽기 및 유효성 검사


Program.cs


data.xml


data.xsd


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 문서 내용

 

XmlReader 로 XML 문서 읽기 및 유효성 검사 예제 실행 화면


[그림] 실행 화면


언제나 휴일 티스토리 바로가기

무료 동영상 강의 유튜브 채널 바로가기

반응형