XmlWriterSettings.ConformanceLevel 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
XML 작성기가 XML 출력을 확인하는 규칙 수준을 가져오거나 설정합니다.
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
속성 값
규칙 수준(문서, 조각 또는 자동 검색)을 지정하는 열거형 값 중 하나입니다. 기본값은 Document입니다.
예제
다음 예제에서는 XML 조각을 메모리 스트림에 씁니다.
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 기록기를 구성합니다. XML 데이터는 올바른 형식의 XML 1.0 문서 또는 문서 조각에 대한 규칙을 준수하는지 확인할 수 있습니다. 다음 표에서는 세 가지 설정을 설명합니다. 기본값은 문서 수준 규칙입니다.
설정 | 설명 |
---|---|
Document | XML 출력이 올바른 형식의 XML 1.0 문서에 대한 규칙을 준수하고 모든 준수 프로세서에서 처리할 수 있는지 확인합니다. 문서 규칙 검사에는 대부분의 조각 수준 검사가 포함되며 다음도 확인합니다. - 최상위 항목에는 XML 선언, DTD, 요소, 주석, 공백 또는 처리 명령 이외의 노드가 없습니다. - XML 데이터에는 최상위 요소 노드가 하나만 있습니다. XML 작성기는 작성된 DTD 정보를 구문 분석하지 않습니다. 사용자는 DTD가 올바르게 구성되도록 할 책임이 있습니다. |
Fragment | XML 출력이 올바른 형식의 XML 1.0 문서 조각에 대한 규칙을 준수하는지 확인합니다. 이 설정은 최상위 수준에서 여러 루트 요소 또는 텍스트 노드가 있는 XML 데이터를 허용합니다. 이 검사 수준은 프로세서에서 XML 1.0 external parsed entity로 읽히는 스트림을 사용할 수 있도록 합니다. DTD 정보는 문서 조각에서 허용되지 않습니다. |
Auto | XML 작성기가 들어오는 데이터를 기반으로 규칙 검사 수준을 결정하도록 지정합니다. 이 설정은 생성된 XML이 올바른 형식의 XML 문서인지 조각인지 모를 때 유용할 수 있습니다. 문서 규칙 검사는 다음과 같은 경우에 적용됩니다. - 메서드가 WriteStartDocument 호출되면 입니다. - DTD 정보가 기록되는 경우 XML 데이터에 다음 중 하나가 포함된 경우 조각 규칙 검사가 적용됩니다. - 루트 수준의 Text, CDATA 또는 EntityReference 노드입니다. - 루트 수준에서 둘 이상의 요소입니다. - 루트 수준에 요소가 없습니다. XmlException 루트 수준에서 텍스트 노드 및 DTD를 작성하려고 할 때와 같이 충돌이 있는 경우 가 throw됩니다. 다른 XmlWriter 개체를 래핑하는 경우 외부 개체는 추가 규칙 검사를 수행하지 않습니다. 이는 기본 개체에 남아 있습니다. |
XML 작성기가 지정된 규칙 수준을 위반하는 정보를 검색하면 예외가 발생합니다. 경우에 따라 XML 작성기가 규칙 오류를 자동으로 수정합니다. 예를 들어 기록기는 예외를 throw하지 않고 닫지 않은 특성을 닫습니다. 다음 표에서는 각 설정에서 다양한 규칙 위반이 처리되는 방법을 보여 줍니다.
조건 | Document | Fragment | Auto |
---|---|---|---|
DTD 정보가 있습니다. | 이 설정에 대한 위반이 아닙니다. 그러나 XML 작성기는 DTD를 확인하지 않습니다. 사용자는 DTD가 올바른 형식인지 확인해야 합니다. | XmlException 이 throw됩니다. | 문서 규칙 검사가 적용됩니다. |
WriteStartDocument을 호출합니다. | 이 설정에 대한 위반으로 간주되지 않습니다. | XmlException 이 throw됩니다. | 문서 규칙 검사가 적용됩니다. |
WriteStartDocument 가 여러 번 호출됩니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. |
텍스트 값이 최상위 수준에 표시됩니다(요소 또는 특성 노드 아래가 아님). | XmlException 이 throw됩니다. | 위반으로 간주되지 않습니다. | 조각 규칙 검사가 적용됩니다. |
여러 요소가 있거나 최상위 수준에 요소가 표시되지 않습니다. | XmlException 이 throw됩니다. | 위반으로 간주되지 않습니다. | 조각 규칙 검사가 적용됩니다. |
최상위 항목은 공백입니다. | 위반으로 간주되지 않습니다. | 위반으로 간주되지 않습니다. | 위반으로 간주되지 않습니다. |
WriteEndAttribute 는 특성 노드를 종료하기 위해 호출되지 않습니다. | XML 작성기에 의해 수정되었습니다. | XML 작성기에 의해 수정되었습니다. | XML 작성기에 의해 수정되었습니다. |
XML 작성기가 잘못 중첩된 상태입니다(예: WriteStartElement 호출 뒤에 WriteEndAttribute). | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. |
최상위 항목은 특성입니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. |
인접한 텍스트 노드가 여러 개 있을 경우 | 위반으로 간주되지는 않지만 사용자가 텍스트 노드를 연결해야 합니다. | 위반으로 간주되지는 않지만 사용자가 텍스트 노드를 연결해야 합니다. | 위반으로 간주되지는 않지만 사용자가 텍스트 노드를 연결해야 합니다. |
동일한 네임스페이스 접두사는 요소에서 두 번 선언됩니다. | XML 작성기는 두 번째 네임스페이스에 대한 새 접두사를 생성합니다. | XML 작성기는 두 번째 네임스페이스에 대한 새 접두사를 생성합니다. | XML 작성기는 두 번째 네임스페이스에 대한 새 접두사를 생성합니다. |
WriteStartElement 는 해당 범위 내에서 선언되지 않은 접두사 및 네임스페이스를 지정하거나 접두사를 다른 네임스페이스와 연결합니다. | XML 작성기는 필요한 네임스페이스 노드를 씁니다. | XML 작성기는 필요한 네임스페이스 노드를 씁니다. | XML 작성기는 필요한 네임스페이스 노드를 씁니다. |
WriteStartAttribute 는 접두사 및 해당 범위 내에 선언되지 않은 네임스페이스를 지정합니다. | XML 작성기는 필요한 네임스페이스 노드를 씁니다. | XML 작성기는 필요한 네임스페이스 노드를 씁니다. | XML 작성기는 필요한 네임스페이스 노드를 씁니다. |
WriteStartAttribute 는 접두사 및 네임스페이스를 지정하지만 접두사는 다른 범위 내 네임스페이스와 연결됩니다. | XML 작성기는 지정된 접두사를 무시하고 올바른 접두사를 조회하거나 새 접두사를 생성합니다. | XML 작성기는 지정된 접두사를 무시하고 올바른 접두사를 조회하거나 새 접두사를 생성합니다. | XML 작성기는 지정된 접두사를 무시하고 올바른 접두사를 조회하거나 새 접두사를 생성합니다. |
WriteQualifiedName 는 범위 내에 존재하지 않는 네임스페이스를 사용하여 요소 콘텐츠를 작성하는 데 사용됩니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. |
WriteQualifiedName 는 범위 내에 존재하지 않는 네임스페이스를 사용하여 특성 콘텐츠를 작성하는 데 사용됩니다. | XML 작성기는 필요한 네임스페이스 선언을 작성합니다. | XML 작성기는 필요한 네임스페이스 선언을 작성합니다. | XML 작성기는 필요한 네임스페이스 선언을 작성합니다. |
특성에 xml:space 유효한 값이 없습니다. |
XmlException 이 throw됩니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. |
잘못된 이름이 발견된 경우 | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. |
xml 접두사는 URI와 일치하지 않습니다. |
XML 작성기는 이러한 유형의 위반을 확인하지 않습니다. | XML 작성기는 이러한 유형의 위반을 확인하지 않습니다. | XML 작성기는 이러한 유형의 위반을 확인하지 않습니다. |
xml 접두사는 URI와 http://www.w3.org/XML/1998/namespace 일치하지 않습니다. |
XmlException 이 throw됩니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. |
xmlns 접두사 또는 로컬 이름이 URI와 일치하지 않습니다. |
XML 작성기는 이러한 유형의 위반을 확인하지 않습니다. | XML 작성기는 이러한 유형의 위반을 확인하지 않습니다. | XML 작성기는 이러한 유형의 위반을 확인하지 않습니다. |
xmlns 접두사 또는 로컬 이름이 URI와 http://www.w3.org/2000/xmlns 일치하지 않습니다. |
XmlException 이 throw됩니다. | XmlException 이 throw됩니다. | XmlException 이 throw됩니다. |
적용 대상
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET