.NET/XML.NET

[XML.NET C# 소스] 스키마를 적용하여 XML 문서 내용 읽어오기

언제나휴일 2016. 4. 18. 16:07
반응형

 스키마를 적용하여 XML 문서 내용 읽어오기


data.xml


data.xsd


data2.xml


Program.cs


<?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 읽기 예제 코드


XML 스키마 파일에 의거해서 XML 읽기 예제 실행화면

 [그림] 실행 화면


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

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

반응형