XmlReaderSettings.DtdProcessing 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
DTD 처리를 결정하는 값을 가져오거나 설정합니다.
public:
property System::Xml::DtdProcessing DtdProcessing { System::Xml::DtdProcessing get(); void set(System::Xml::DtdProcessing value); };
public System.Xml.DtdProcessing DtdProcessing { get; set; }
member this.DtdProcessing : System.Xml.DtdProcessing with get, set
Public Property DtdProcessing As DtdProcessing
속성 값
DTD 처리를 결정하는 열거형 값 중 하나입니다. 기본값은 Prohibit입니다.
예제
다음 예제에서는 DTD 파일을 사용하여 XML 파일의 유효성을 검사합니다.
using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;
public class Sample {
public static void Main() {
// Set the validation settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Parse;
settings.ValidationType = ValidationType.DTD;
settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
// Create the XmlReader object.
XmlReader reader = XmlReader.Create("itemDTD.xml", settings);
// Parse the file.
while (reader.Read());
}
// Display any validation errors.
private static void ValidationCallBack(object sender, ValidationEventArgs e) {
Console.WriteLine("Validation Error: {0}", e.Message);
}
}
Imports System.Xml
Imports System.Xml.Schema
Imports System.IO
public class Sample
public shared sub Main()
' Set the validation settings.
Dim settings as XmlReaderSettings = new XmlReaderSettings()
settings.DtdProcessing = DtdProcessing.Parse
settings.ValidationType = ValidationType.DTD
AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack
' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("itemDTD.xml", settings)
' Parse the file.
while reader.Read()
end while
end sub
' Display any validation errors.
private shared sub ValidationCallBack(sender as object, e as ValidationEventArgs)
Console.WriteLine("Validation Error: {0}", e.Message)
end sub
end class
이 예제에서는 itemDTD.xml 파일을 입력으로 사용합니다.
<!--XML file using a DTD-->
<!DOCTYPE store [
<!ELEMENT store (item)*>
<!ELEMENT item (name,dept,price)>
<!ATTLIST item type CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>]>
<store>
<item type="supplies" ISBN="2-3631-4">
<name>paint</name>
<price>16.95</price>
</item>
</store>
설명
DTD(문서 형식 정의) 유효성 검사는 W3C XML(Extensible Markup Language) 1.0(네 번째 버전) 권장 사항에 정의된 유효성 제약 조건을 사용하여 구현됩니다. DTD는 형식 문법을 사용하여 규격 XML 문서의 구조와 구문을 설명합니다. XML 문서에 허용되는 콘텐츠와 값을 지정합니다.
속성은 DtdProcessing 다음 값 중 하나를 가질 수 있습니다.
- DtdProcessing.Parse DTD 처리를 사용하도록 설정합니다.
- DtdProcessing.Prohibit DTD를 만날 때 XmlException 예외를 throw합니다 (던집니다).
- DtdProcessing.Ignore 경고 또는 예외 없이 DTD 처리를 사용하지 않도록 설정합니다.
DTD XmlReader 에 대한 유효성 검사를 수행하려면 XML 문서의 DOCTYPE 선언에 정의된 DTD를 사용합니다. DOCTYPE 선언은 인라인 DTD를 가리키거나 외부 DTD 파일에 대한 참조일 수 있습니다. DTD에 대해 XML 파일의 유효성을 검사하려면 다음을 수행합니다.
-
XmlReaderSettings.DtdProcessing 속성을
DtdProcessing.Parse로 설정합니다. -
XmlReaderSettings.ValidationType 속성을
ValidationType.DTD로 설정합니다. - DTD가 인증이 필요한 네트워크 리소스에 저장된 외부 파일인 경우, 필요한 자격 증명을 가진 XmlResolver 객체를 Create 메서드에 전달하십시오.
Important
DtdProcessing 속성이 DtdProcessing.Ignore로 설정된 경우, XmlReader는 DTD를 보고하지 않습니다. 즉, 출력 시 DTD/DOCTYPE이 손실됩니다.