XmlWriterSettings.ConformanceLevel XmlWriterSettings.ConformanceLevel XmlWriterSettings.ConformanceLevel XmlWriterSettings.ConformanceLevel Property

정의

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

속성 값

규칙 수준(문서, 조각 또는 자동 검색)을 지정하는 열거형 값 중 하나입니다.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 additonal 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 additonal 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 엔터티로 읽히는 스트림을 사용할 수 있도록 합니다.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 규칙 검사가 적용 됩니다.Fragment conformance checking is applied if the XML data contains one of these:

루트 수준에서 텍스트, 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.

루트 수준에 텍스트 노드와 DTD를 쓰려고 시도하는 경우와 같이 충돌이 있을 경우 XmlException이 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. 예를 들어, 작성기는 예외를 throw 하지 않고 닫히지 않은 특성을 닫습니다.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 규칙 검사가 적용됩니다.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 규칙 검사가 적용됩니다.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 접두사를 일치 하지 않습니다는 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.
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 접두사 또는 로컬 이름이 일치 하지 않습니다는 http://www.w3.org/2000/xmlns URI입니다.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.

적용 대상