XmlWriterSettings.ConformanceLevel 속성

정의

XML 작성기가 XML 출력을 확인하는 규칙 수준을 가져오거나 설정합니다.Gets or sets the level of conformance that the XML writer checks the XML output for.

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

속성 값

ConformanceLevel

규칙 수준(문서, 조각 또는 자동 검색)을 지정하는 열거형 값 중 하나입니다.One of the enumeration values that specifies the level of conformance (document, fragment, or automatic detection). 기본값은 Document입니다.The default is Document.

예제

다음 예제에서는 XML 조각을 메모리 스트림에 씁니다.The following example writes an XML fragment to a memory stream.

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.CloseOutput = false;

// Create the XmlWriter object and write some content.
MemoryStream strm = new MemoryStream();
XmlWriter writer = XmlWriter.Create(strm, settings);
writer.WriteElementString("orderID", "1-456-ab");
writer.WriteElementString("orderID", "2-36-00a");
writer.Flush();
writer.Close();

// Do additional processing on the stream.
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.OmitXmlDeclaration = true
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.CloseOutput = false

' Create the XmlWriter object and write some content.
Dim strm as MemoryStream = new MemoryStream()
Dim writer As XmlWriter = XmlWriter.Create(strm, settings)
writer.WriteElementString("orderID", "1-456-ab")
writer.WriteElementString("orderID", "2-36-00a")
writer.Flush()
writer.Close()

' Do additional processing on the stream.

설명

XmlWriterSettings.ConformanceLevel속성은 작성 중인 스트림이 특정 규칙 집합을 준수 하는지 확인 하 고이를 보장 하도록 XML 작성기를 구성 합니다.The XmlWriterSettings.ConformanceLevel property configures the XML writer to check and guarantee that the stream being written complies with a certain set of rules. XML 데이터가 제대로 구성 된 XML 1.0 문서 또는 문서 조각에 대 한 규칙을 따르는지 확인할 수 있습니다.The XML data can be checked to see that it conforms to the rules for a well-formed XML 1.0 document or a document fragment. 다음 표에서는 세 가지 설정에 대해 설명 합니다.The following table describes the three settings. 기본값은 문서 수준 규칙입니다.The default is document-level conformance.

설정Setting 설명Description
Document XML 출력이 잘 구성 된 xml 1.0 문서에 대 한 규칙 을 준수 하 고 모든 규격 프로세서에서 처리 될 수 있는지 확인 합니다.Ensures that the XML output conforms to the rules for a well-formed XML 1.0 document and can be processed by any conforming processor.

문서 규칙 검사에는 대부분의 조각 수준 검사가 포함 되며 다음 사항도 확인 됩니다.The document conformance checks include most of the fragment-level checks and also ensure the following:

-최상위 항목에 XML 선언, DTD, 요소, 주석, 공백 또는 처리 명령 이외의 노드가 없습니다.- The top-level item doesn't have any nodes other than XML Declaration, DTD, element, comment, white space, or processing instruction.
-XML 데이터에는 최상위 요소 노드가 하나 뿐입니다.- The XML data has one and only one top-level element node.

XML 작성기는 작성 된 DTD 정보를 구문 분석 하지 않습니다.The XML writer doesn't parse DTD information that is written. 사용자는 DTD가 제대로 구성 되었는지 확인 해야 합니다.The user is responsible for ensuring that the DTD is well-formed.
Fragment XML 출력이 제대로 구성 된 xml 1.0 문서 조각에 대 한 규칙을 따르는지 확인 합니다.Ensures that the XML output conforms to the rules for a well-formed XML 1.0 document fragment.

이 설정은 최상위 수준에 여러 루트 요소나 텍스트 노드가 있는 XML 데이터를 허용 합니다.This setting accepts XML data that has multiple root elements or text nodes at the top level. 이 검사 수준은 프로세서에서 XML 1.0 external parsed entity로 읽히는 스트림을 사용할 수 있도록 합니다.This level of checking ensures that any processor can consume the stream being read as an XML 1.0 external parsed entity.

문서 조각에는 DTD 정보를 사용할 수 없습니다.DTD information isn't allowed in document fragments.
Auto XML 작성기에서 들어오는 데이터를 기반으로 규칙 검사 수준을 결정 하도록 지정 합니다.Specifies that the XML writer should determine the level of conformance checking based on the incoming data. 이 설정은 생성 된 XML이 올바른 형식의 XML 문서 인지 아니면 조각 인지 모르는 경우에 유용할 수 있습니다.This setting can be useful when you don't know whether the generated XML will be a well-formed XML document or a fragment.

문서 규칙 검사는 다음과 같은 경우에 적용 됩니다.Document conformance checking is applied in the following cases:

- WriteStartDocument 메서드가 호출 되 면입니다.- If the WriteStartDocument method is called.
-DTD 정보가 기록 되 면입니다.- If DTD information is written.

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

-루트 수준에서 Text, CDATA 또는 EntityReference 노드.- Text, CDATA, or EntityReference node at the root level.
-루트 수준에 둘 이상의 요소가 있습니다.- More than one element at the root level.
-루트 수준에 요소가 없습니다.- No element at the root level.

XmlException 루트 수준에서 텍스트 노드 및 DTD를 쓰려고 시도 하는 경우와 같이 충돌이 발생 하면이 throw 됩니다.An XmlException is thrown if there is a conflict, such as when you try to write a text node and a DTD at the root level.

다른 개체를 래핑하는 경우 XmlWriter 외부 개체는 추가 규칙 검사를 수행 하지 않습니다 .이는 기본 개체에 남아 있습니다.If you are wrapping another XmlWriter object, the outer object doesn't do any additional conformance checking; this is left to the underlying object.

지정 된 수준의 준수를 위반 하는 정보를 XML 작성기에서 검색 하는 경우 예외를 throw 합니다.If the XML writer detects any information that would violate the specified level of conformance, it throws an exception. 경우에 따라 XML 작성기는 규칙 오류를 자동으로 수정 합니다.In some cases, the XML writer automatically corrects the conformance error. 예를 들어 작성기는 예외를 발생 시 키 지 않고 닫히지 않은 특성을 닫습니다.For example, the writer closes an unclosed attribute without throwing an exception. 다음 표에서는 각 설정에서 다양 한 규칙 위반을 처리 하는 방법을 보여 줍니다.The following table shows how various conformance violations are handled in each setting.

조건Condition Document Fragment Auto
DTD 정보를 찾았습니다.DTD information is found. 이 설정에 대 한 위반이 아닙니다.Not a violation for this setting. 그러나 XML 작성기는 DTD를 확인 하지 않습니다. 사용자는 DTD가 제대로 구성 되어 있는지 확인 해야 합니다.However, the XML writer doesn't check the DTD; the user must ensure that the DTD is well-formed. XmlException 이 throw 됩니다.XmlException is thrown. 문서 규칙 검사가 적용 됩니다.Document conformance checking is applied.
WriteStartDocument을 호출합니다.WriteStartDocument is called. 이 설정에 대 한 위반으로 간주 되지 않습니다.Not considered a violation for this setting. XmlException 이 throw 됩니다.XmlException is thrown. 문서 규칙 검사가 적용 됩니다.Document conformance checking is applied.
WriteStartDocument 가 여러 번 호출됩니다.WriteStartDocument is called multiple times. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.
텍스트 값이 요소 또는 특성 노드 아래에 있지 않고 최상위 수준에 나타납니다.A text value appears at the top level (not below an element or attribute node). XmlException 이 throw 됩니다.XmlException is thrown. 위반으로 간주 되지 않습니다.Not considered a violation. 조각 규칙 검사가 적용 됩니다.Fragment conformance checking is applied.
최상위 수준에는 요소가 여러 개 나타나거나 요소가 표시 되지 않습니다.Multiple elements or no elements appear at the top level. XmlException 이 throw 됩니다.XmlException is thrown. 위반으로 간주 되지 않습니다.Not considered a violation. 조각 규칙 검사가 적용 됩니다.Fragment conformance checking is applied.
최상위 항목은 공백입니다.Top-level item is white space. 위반으로 간주 되지 않습니다.Not considered a violation. 위반으로 간주 되지 않습니다.Not considered a violation. 위반으로 간주 되지 않습니다.Not considered a violation.
WriteEndAttribute 특성 노드를 종료 하기 위해 호출 되지 않습니다.WriteEndAttribute isn't called to end an attribute node. XML 작성기로 수정 되었습니다.Fixed by XML writer. XML 작성기로 수정 되었습니다.Fixed by XML writer. XML 작성기로 수정 되었습니다.Fixed by XML writer.
XML 작성기가 잘못 중첩 된 상태에 있습니다. 예를 들어 호출에는가 WriteStartElement 와 야 WriteEndAttribute 합니다.The XML writer is in an improperly nested state (for example, a WriteStartElement call is followed by a WriteEndAttribute). XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.
최상위 항목은 특성입니다.Top-level item is an attribute. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.
인접한 텍스트 노드가 여러 개 있을 경우Multiple, contiguous text nodes are found. 위반으로 간주 되는 것은 아니지만 사용자가 텍스트 노드를 연결 하는 것은 사용자의 책임입니다.Not considered a violation, but it's the responsibility of the user to concatenate the text nodes. 위반으로 간주 되는 것은 아니지만 사용자가 텍스트 노드를 연결 하는 것은 사용자의 책임입니다.Not considered a violation, but it's the responsibility of the user to concatenate the text nodes. 위반으로 간주 되는 것은 아니지만 사용자가 텍스트 노드를 연결 하는 것은 사용자의 책임입니다.Not considered a violation, but it's the responsibility of the user to concatenate the text nodes.
요소에 동일한 네임 스페이스 접두사가 두 번 선언 됩니다.The same namespace prefix is declared twice in an element. XML 작성기에서 두 번째 네임 스페이스에 대 한 새 접두사를 생성 합니다.The XML writer generates a new prefix for the second namespace. XML 작성기에서 두 번째 네임 스페이스에 대 한 새 접두사를 생성 합니다.The XML writer generates a new prefix for the second namespace. XML 작성기에서 두 번째 네임 스페이스에 대 한 새 접두사를 생성 합니다.The XML writer generates a new prefix for the second namespace.
WriteStartElement 는 해당 범위 내에서 선언 되지 않은 접두사와 네임 스페이스를 지정 하거나, 접두사가 다른 네임 스페이스와 연결 됩니다.WriteStartElement specifies a prefix and a namespace that isn't declared within that scope, or the prefix is associated with a different namespace. XML 작성기가 필요한 네임 스페이스 노드를 작성 합니다.The XML writer writes the necessary namespace node. XML 작성기가 필요한 네임 스페이스 노드를 작성 합니다.The XML writer writes the necessary namespace node. XML 작성기가 필요한 네임 스페이스 노드를 작성 합니다.The XML writer writes the necessary namespace node.
WriteStartAttribute 해당 범위 내에 선언 되지 않은 접두사와 네임 스페이스를 지정 합니다.WriteStartAttribute specifies a prefix and a namespace that isn't declared within that scope. XML 작성기가 필요한 네임 스페이스 노드를 작성 합니다.The XML writer writes the necessary namespace node. XML 작성기가 필요한 네임 스페이스 노드를 작성 합니다.The XML writer writes the necessary namespace node. XML 작성기가 필요한 네임 스페이스 노드를 작성 합니다.The XML writer writes the necessary namespace node.
WriteStartAttribute 접두사와 네임 스페이스를 지정 하지만 접두사는 다른 범위 내 네임 스페이스와 연결 됩니다.WriteStartAttribute specifies a prefix and a namespace, but the prefix is associated with a different in-scope namespace. XML 작성기는 지정 된 접두사를 무시 하 고 올바른 접두사를 조회 하거나 새 접두사를 생성 합니다.The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix. XML 작성기는 지정 된 접두사를 무시 하 고 올바른 접두사를 조회 하거나 새 접두사를 생성 합니다.The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix. XML 작성기는 지정 된 접두사를 무시 하 고 올바른 접두사를 조회 하거나 새 접두사를 생성 합니다.The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix.
WriteQualifiedName 는 범위 내에 없는 네임 스페이스를 사용 하 여 요소 내용을 쓰는 데 사용 됩니다.WriteQualifiedName is used to write element content by using a namespace that doesn't exist within the scope. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.
WriteQualifiedName 는 범위 내에 없는 네임 스페이스를 사용 하 여 특성 내용을 쓰는 데 사용 됩니다.WriteQualifiedName is used to write attribute content by using a namespace that doesn't exist within the scope. XML 작성기가 필요한 네임 스페이스 선언을 씁니다.The XML writer writes the necessary namespace declaration. XML 작성기가 필요한 네임 스페이스 선언을 씁니다.The XML writer writes the necessary namespace declaration. XML 작성기가 필요한 네임 스페이스 선언을 씁니다.The XML writer writes the necessary namespace declaration.
xml:space특성에 유효한 값이 포함 되어 있지 않습니다.The xml:space attribute doesn't contain a valid 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접두사가 URI와 일치 하지 않습니다.The xml prefix isn't matched to a URI. XML 작성기가이 유형의 위반을 검사 하지 않습니다.The XML writer doesn't check for this type of violation. XML 작성기가이 유형의 위반을 검사 하지 않습니다.The XML writer doesn't check for this type of violation. XML 작성기가이 유형의 위반을 검사 하지 않습니다.The XML writer doesn't check for this type of violation.
xml접두사가 URI와 일치 하지 않습니다 http://www.w3.org/XML/1998/namespace .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.
xmlns접두사 또는 로컬 이름이 URI와 일치 하지 않습니다.The xmlns prefix or local name isn't matched to a URI. XML 작성기가이 유형의 위반을 검사 하지 않습니다.The XML writer doesn't check for this type of violation. XML 작성기가이 유형의 위반을 검사 하지 않습니다.The XML writer doesn't check for this type of violation. XML 작성기가이 유형의 위반을 검사 하지 않습니다.The XML writer doesn't check for this type of violation.
xmlns접두사 또는 로컬 이름이 URI와 일치 하지 않습니다 http://www.w3.org/2000/xmlns .The xmlns prefix or local name isn't matched to the http://www.w3.org/2000/xmlns URI. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown. XmlException 이 throw 됩니다.XmlException is thrown.

적용 대상