XmlReaderSettings.ConformanceLevel 속성

정의

XmlReader에 적용할 규칙 수준을 가져오거나 설정합니다.Gets or sets the level of conformance which the XmlReader will comply.

public:
 property System::Xml::ConformanceLevel ConformanceLevel { System::Xml::ConformanceLevel get(); void set(System::Xml::ConformanceLevel value); };
public System.Xml.ConformanceLevel ConformanceLevel { get; set; }
member this.ConformanceLevel : System.Xml.ConformanceLevel with get, set
Public Property ConformanceLevel As ConformanceLevel

속성 값

XML 판독기를 적용할 규칙 수준을 지정하는 열거형 값 중 하나입니다.One of the enumeration values that specifies the level of conformance that the XML reader will enforce. 기본값은 Document입니다.The default is Document.

예제

다음 예제에서는 XmlReader XML 조각을 읽는 개체입니다.The following example creates an XmlReader object that reads an XML fragment.

string xmlFrag ="<item rk:ID='abc-23'>hammer</item> " +
                        "<item rk:ID='r2-435'>paint</item>" +
                        "<item rk:ID='abc-39'>saw</item>";

// Create the XmlNamespaceManager.
NameTable nt = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
nsmgr.AddNamespace("rk", "urn:store-items");

// Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);

// Create the reader. 
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
XmlReader reader = XmlReader.Create(new StringReader(xmlFrag), settings, context);

Dim xmlFrag As String = "<item rk:ID='abc-23'>hammer</item> " & _
                                     "<item rk:ID='r2-435'>paint</item>" & _
                                     "<item rk:ID='abc-39'>saw</item>"

' Create the XmlNamespaceManager.
Dim nt As New NameTable()
Dim nsmgr As New XmlNamespaceManager(nt)
nsmgr.AddNamespace("rk", "urn:store-items")

' Create the XmlParserContext.
Dim context As New XmlParserContext(Nothing, nsmgr, Nothing, XmlSpace.None)

' Create the reader. 
Dim settings As New XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
Dim reader As XmlReader = XmlReader.Create(New StringReader(xmlFrag), settings, context)

설명

만든 XML 판독기를 Create 메서드는 기본적으로 다음 규정 준수 요구 사항을 충족 합니다.XML readers that are created by the Create method meet the following compliance requirements by default:

  • 새 줄 및 특성 값은 W3C에 따라 정규화 됩니다 XML 1.0 권장 사항합니다.New lines and attribute value are normalized according to the W3C XML 1.0 Recommendation.

  • 모든 엔터티가 자동으로 확장 됩니다.All entities are automatically expanded.

  • 문서 종류 정의에서 선언 된 기본 특성 판독기 유효성을 검사 하지 않는 경우에 항상 추가 됩니다.Default attributes declared in the document type definition are always added even when the reader does not validate.

  • 올바른 XML 네임 스페이스 URI에 매핑되는 XML 접두사는 선언 허용 됩니다.Declaration of XML prefix mapped to the correct XML namespace URI is allowed.

  • 표기법 이름을 단일에서 NotationType 특성 선언 하 고 NmTokens 단일에서 Enumeration 특성 선언에는 서로 다릅니다.The notation names in a single NotationType attribute declaration and NmTokens in a single Enumeration attribute declaration are distinct.

사용할 수는 ConformanceLevel 속성을 확인 하 고 읽는 중인 스트림이 올바른 형식의 XML 1.0 문서 또는 문서 조각에 대 한 규칙을 준수를 보장 합니다.You can use the ConformanceLevel property to check and guarantee that the stream being read complies with the rules for a well-formed XML 1.0 document or document fragment. 데이터를 준수 하지 않는 경우는 XmlException 예외가 throw 됩니다.If the data doesn't comply, an XmlException exception is thrown. 기본값은 ConformanceLevel.Document (문서 수준 규칙).The default is ConformanceLevel.Document (document-level conformance).

세 가지 규칙 수준은 다음과 같습니다.The three conformance levels are:

설정Setting 설명Description
Document XML 데이터를 올바른 형식의 XML 1.0 문서에 대 한 규칙을 준수 하는지 확인 합니다.Ensures that the XML data conforms to the rules for a well-formed XML 1.0 document. 이 검사 수준은 프로세서로 읽히는 스트림을 사용할 수는 보장을 올바른 형식의 XML 1.0 문서합니다.This level of checking ensures that any processor can consume the stream being read as an well-formed XML 1.0 document.

판독기는 다음을 검사합니다.The reader checks for the following:

-최상위 항목에는 XML 선언, 문서 형식 정의 (DTD), 요소, 주석, 공백 또는 처리 명령 이외의 다른 노드가 아니어야 합니다.- The top-level item must not have any nodes other than XML Declaration, document type definition (DTD), element, comment, white space, or processing instruction.
-XML 데이터에는 정확히 하나의 최상위 요소 노드가 있어야 합니다.- The XML data must have exactly one top-level element node.
Fragment XML 데이터는 올바른 형식의 XML 1.0 문서 조각에 대 한 규칙을 준수 하는지 확인 합니다.Ensures that the XML data conforms to the rules for a well-formed XML 1.0 document fragment.

이 설정은 여러 개의 루트 요소가 있는 XML 데이터나 최상위의 텍스트 노드를 허용합니다.This setting accepts XML data with multiple root elements, or text nodes at the top-level. 이 검사 수준은 프로세서로 읽히는 스트림을 사용할 수는 보장을 외부 엔터티를 구문 분석합니다.This level of checking ensures that any processor can consume the stream being read as an external parsed entity.
Auto 판독기는 수준의 규칙 검사 들어오는 데이터를 기반으로 하는지 확인 하도록 지정 합니다.Specifies that the reader should determine the level of conformance checking based on the incoming data.

XML 데이터가 DTD 정보를 포함하는 경우 문서 규칙 검사가 적용됩니다.Document conformance checking is applied if the XML data contains DTD information.

XML 데이터가 다음 중 하나를 포함하는 경우 조각 규칙 검사가 적용됩니다.Fragment conformance checking is applied if the XML data contains one of following:

루트 수준에서 텍스트, CDATA 또는 엔터티 참조 노드.- Text, CDATA, or entity reference node at the root level.
-루트 수준에서 둘 이상의 요소입니다.- More than one element at the root level.
-루트 수준 요소입니다.- No element at the root level.

루트 수준에 텍스트 노드 및 DTD가 있는 경우와 같이 충돌이 있을 경우 XmlException이 throw됩니다.An XmlException is thrown if there is a conflict, such as when there is a text node and a DTD at the root level.

Create 메서드를 사용하여 기존 XmlReader에 기능을 추가할 때 래핑 시나리오에서 이 설정을 사용할 수 있습니다.This setting can be used in wrapping scenarios when the Create method is used to add additional features to an existing XmlReader. 이 경우 ConformanceLevel.Document 새 규칙 검사를 추가 하지 않습니다.In this case, ConformanceLevel.Document does not add any new conformance checking. 규칙 검사는 래핑 중인 XmlReader에 남아 있습니다.Conformance checking is left to the XmlReader that is being wrapped.

참고

DTD가 있을 경우 XML 1.0 권장 사항에서는 문서 수준 규칙을 요구합니다.The XML 1.0 recommendation requires document-level conformance when a DTD is present. 따라서 판독기 지원 하도록 구성 된 경우 ConformanceLevel.Fragment, 문서 형식 정의 (DTD)를 포함 하는 XML 데이터는 XmlException throw 됩니다.Therefore, if the reader is configured to support ConformanceLevel.Fragment, but the XML data contains a document type definition (DTD), an XmlException is thrown.

판독기 설정에 따라 특정 규칙 위반을 처리 하는 방법을 다음과 같습니다는 ConformanceLevel 속성:Here's how the reader handles specific conformance violations depending on the setting of the ConformanceLevel property:

조건Condition Document Fragment Auto
텍스트 또는 형식화 된 값에는 최상위 수준에 나타납니다.Text or a typed value appears at the top level. XmlException 이 throw 됩니다.XmlException is thrown. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting.
요소가 여러 개이거나 없는 최상위 수준에 나타납니다.Multiple elements or no element appear at the top level. XmlException 이 throw 됩니다.XmlException is thrown. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting.
최상위 항목은 공백입니다.Top-level item is white space. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting.
최상위 항목에는 특성 (텍스트 노드로 인식)입니다.Top-level item is an attribute (recognized as a text node). XmlException 이 throw 됩니다.XmlException is thrown. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting.
인접한 텍스트 노드가 여러 개 있을 경우Multiple, contiguous text nodes are found. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting.
동일한 네임 스페이스 접두사는 동일한 로컬 범위에서 두 번 선언 됩니다.The same namespace prefix is declared twice in the same local scope. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.
요소나 특성의 네임 스페이스는 로컬 범위에 존재 하지 않습니다.The namespace in an element or attribute doesn't exist in the local scope. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.
데이터는 네임 스페이스 접두사 일치를 포함합니다.Data contains a prefix-namespace mismatch. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.
xml:space 특성에 잘못 된 값을 포함합니다.xml:space attribute contains an invalid value. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.
잘못된 이름이 발견된 경우An invalid name is encountered. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.
합니다 xml 접두사를 일치 하지 않습니다는 http://www.w3.org/XML/1998/namespace URI입니다.The xml prefix isn't matched to the http://www.w3.org/XML/1998/namespace URI. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.

적용 대상

추가 정보