다음을 통해 공유


데이터 규칙 및 XmlWriter

XmlWriter 클래스에는 두 가지 규칙 검사 설정이 있습니다. XmlWriter 설정을 통해 작성된 데이터가 규칙을 준수하는지 확인할 수 있습니다.

CheckCharacters 설정

XmlWriterSettings.CheckCharacters 속성은 작성기에서 문자를 검사하고 문자가 유효한 XML 문자 범위 밖에 있을 경우 XmlException을 throw하도록 지시합니다. 문자 검사를 사용할 경우 W3C XML 1.0 Recommendation에 정의된 유효한 XML 문자 범위 내에 있는 문자만 문서에 사용하게 됩니다

참고참고

문자 검사에서는 XML 이름에 잘못된 문자가 있는지 검사하거나 모든 XML 이름이 유효한지 검사하지 않습니다.이름 검사는 규칙 검사의 표준 부분입니다.자세한 내용은 http://www.w3.org/TR/REC-xml#NT-Name을 참조하십시오.

기본적으로 문자 검사가 사용됩니다.

ConformanceLevel 설정

XmlWriterSettings.ConformanceLevel 속성은 작성 중인 스트림이 특정 규칙 집합을 준수하는지 확인하고 이 규칙 집합을 준수하도록 XmlWriter를 구성합니다. 지정되는 규칙 수준에 따라 XML 데이터가 제대로 구성된 XML 1.0 문서 또는 문서 조각에 대한 규칙을 따르는지 여부를 검사할 수 있습니다. 데이터가 규칙을 따르지 않는 경우에는 XmlException 또는 ArgumentException이 throw됩니다. 기본 설정은 ConformanceLevel.Document입니다.

참고참고

ConformanceLevel.Fragment를 지원하도록 작성기를 구성했지만 XML 데이터에 DTD(문서 종류 정의)가 포함된 경우 작성기는 예외를 throw합니다.DTD가 있을 경우 XML 1.0 권장 사항에서는 문서 수준 규칙을 요구합니다.그러므로 ConformanceLevel.Fragment를 지원하도록 구성된 작성기에서 WriteStartDocument 메서드를 호출하면 이 작성기도 예외를 throw합니다.

규칙 수준

설명

문서

이 설정은 출력이 제대로 구성된 XML 1.0 문서에 대한 규칙을 준수하고, 규칙을 준수하는 모든 프로세서에서 이 출력을 처리할 수 있도록 합니다.

참고참고
작성기에서는 작성된 DTD 정보를 구문 분석하지 않습니다.사용자는 DTD가 제대로 구성되어 있는지 확인해야 합니다.

조각

XML 데이터가 제대로 구성된 XML 1.0 문서 조각에 대한 규칙을 따릅니다.

이 설정은 여러 개의 루트 요소가 있는 XML 데이터나 최상위의 텍스트 노드를 허용합니다. 이 검사 수준은 프로세서에서 구문 분석된 외부 XML 1.0 엔터티로 읽히는 스트림을 사용할 수 있도록 합니다.

참고참고
조각에서는 DTD를 사용할 수 없습니다.

자동

작성기는 들어오는 데이터를 기준으로 적용할 규칙 검사 수준을 결정합니다. 생성된 XML이 제대로 구성된 XML 문서 또는 조각인지 모를 경우 이 설정은 매우 유용할 수 있습니다.

다음과 같은 경우 문서 규칙 검사가 적용됩니다.

XML 데이터가 다음 중 하나를 포함하는 경우 조각 규칙 검사가 적용됩니다.

  • 루트 수준에 텍스트, CDATA 또는 EntityReference 노드가 있는 경우

  • 루트 수준에 둘 이상의 요소가 있는 경우

  • 루트 수준에 요소가 없는 경우

루트 수준에 텍스트 노드와 DTD를 쓰려고 시도하는 경우와 같이 충돌이 있을 경우 XmlException이 throw됩니다.

Create 메서드를 사용하여 기존 작성기에 기능을 추가할 때 래핑 시나리오에서 이 설정을 사용할 수 있습니다. 이러한 경우 ConformanceLevel.Auto는 새 규칙 검사를 추가하지 않습니다. 규칙 검사는 래핑 중인 작성기에 남아 있습니다.

참고 항목

기타 리소스

XmlWriter를 사용하여 XML 작성