XML 판독기 만들기
업데이트: November 2007
XmlReader 개체는 Create 메서드를 사용하여 만듭니다. XmlReaderSettings 클래스를 사용하여 XmlReader 개체에서 사용할 기능 집합을 지정할 수 있습니다.
중요: |
---|
Microsoft .NET Framework에는 XmlTextReader, XmlNodeReader, XmlValidatingReader 클래스 등 XmlReader 클래스의 구체적 구현이 포함되어 있지만 .NET Framework 버전 2.0에서는 Create 메서드를 사용하여 XmlReader 인스턴스를 만드는 것이 좋습니다. |
XmlReaderSettings 클래스의 속성을 사용하여 기능을 활성화하거나 비활성화할 수 있습니다. 그런 다음 XmlReaderSettings 개체를 Create 메서드에 전달합니다.
Create 메서드와 XmlReaderSettings 클래스를 사용하면 다음과 같은 이점을 얻을 수 있습니다.
만들어진 XmlReader 개체에서 지원할 기능을 지정할 수 있습니다.
XmlReaderSettings 클래스를 다시 사용하여 여러 판독기 개체를 만들 수 있습니다. 같은 설정을 사용하면 같은 기능을 갖춘 여러 판독기를 만들 수 있습니다. 또는 XmlReaderSettings 개체를 수정하고 다른 기능 집합이 포함된 새 판독기를 만들 수 있습니다.
기존 판독기에 기능을 추가할 수 있습니다. Create 메서드는 다른 XmlReader 개체를 허용할 수 있습니다. 기본 XmlReader 개체는 사용자 정의 판독기 또는 XmlTextReader 개체이거나 기능을 추가할 또 다른 XmlReader 인스턴스일 수 있습니다.
.NET Framework 2.0 릴리스에서 XmlReader 클래스에 추가된 새로운 기능을 모두 최대한 활용하십시오. 향상된 규칙 검사 기능이나 XML 1.0 권장 사항 준수 등의 일부 기능은 Create 메서드로 만든 XmlReader 개체에서만 사용할 수 있습니다.
다음 표에서는 XmlReaderSettings 클래스의 기본 속성 설정을 보여 줍니다.
속성 |
기본값 |
---|---|
true |
|
ConformanceLevel.Document |
|
false |
|
false |
|
false |
|
0. |
|
0 |
|
null |
|
true |
|
빈 XmlSchemaSet 개체 |
|
ValidationType.None |
|
새 XmlUrlResolver 개체 |
XmlReader 시나리오
다음 표에서는 일반적인 시나리오 및 XmlReaderSettings 클래스에 적용해야 할 설정에 대해 설명합니다.
시나리오 |
XmlReaderSettings |
---|---|
데이터가 제대로 구성된 XML 문서여야 할 경우 |
ConformanceLevel = ConformanceLevel.Document |
데이터가 제대로 구성된 XML의 구문 분석된 엔터티여야 할 경우 |
ConformanceLevel = ConformanceLevel.Fragment |
DTD에 대해 데이터의 유효성을 검사해야 할 경우 |
ProhibitDtd = false ValidationType = ValidationType.DTD |
XML 스키마에 대해 데이터의 유효성을 검사해야 할 경우 |
ValidationType = ValidationType.Schema Schemas = 유효성 검사에 사용할 XmlSchemaSet |
인라인 XML 스키마에 대해 데이터의 유효성을 검사해야 할 경우 |
ValidationType = ValidationType.Schema ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema |
형식 지원이 필요할 경우 |
ValidationType = ValidationType.Schema Schemas = 사용할 XmlSchemaSet |
Create 메서드로 생성되지 않는 XmlReader 구현을 사용해야 하는 특별한 시나리오가 몇 가지 있습니다.
- XDR 스키마에 대해 유효성을 검사해야 할 경우 XmlValidatingReader 클래스를 사용합니다.
참고: |
---|
XmlValidatingReader 클래스는 .NET Framework 2.0 릴리스에서 사용되지 않습니다. XML 스키마로 마이그레이션하고 Create 메서드에서 반환한 XmlReader 개체를 사용하여 유효성을 검사하는 것이 좋습니다. |
XmlNode 개체에서 XML 데이터를 읽으려면 XmlNodeReader 클래스를 사용합니다.
요청 시 엔터티를 확장해야 할 경우(Create 메서드로 생성된 판독기가 모든 엔터티 확장) 또는 텍스트 내용을 표준화하지 않으려는 경우 XmlTextReader 클래스를 사용합니다.
기본 특성을 반환하지 않으려면 XmlTextReader 클래스를 사용합니다.
XmlReader 개체를 인스턴스화하려면
Dim settings As New XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.IgnoreWhitespace = true
settings.IgnoreComments = true
Dim reader As XmlReader = XmlReader.Create("books.xml", settings)
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("books.xml", settings);
다른 판독기 내에서 판독기 인스턴스를 래핑하려면
Dim txtReader As XmlTextReader = New XmlTextReader("bookOrder.xml")
Dim settings As New XmlReaderSettings()
settings.Schemas.Add("urn:po-schema", "PO.xsd")
settings.ValidationType = ValidationType.Schema
Dim reader As XmlReader = XmlReader.Create(txtReader, settings)
XmlTextReader txtReader = new XmlTextReader("bookOrder.xml");
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("urn:po-schema", "PO.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create(txtReader, settings);
판독기를 연결하여 설정을 추가하려면
Dim settings As New XmlReaderSettings()
settings.ValidationType = ValidationType.DTD
Dim inner As XmlReader = XmlReader.Create("book.xml", settings) ' DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd")
settings.ValidationType = ValidationType.Schema
Dim outer As XmlReader = XmlReader.Create(inner, settings) ' XML Schema Validation
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.DTD;
XmlReader inner = XmlReader.Create("book.xml", settings); // DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader outer = XmlReader.Create(inner, settings); // XML Schema Validation