다음을 통해 공유


서버에서 XML 스키마 컬렉션을 사용하는 것에 대한 지침 및 제한 사항

XSD(XML 스키마 정의 언어) 유효성 검사에는 xml 데이터 형식을 사용하는 SQL 열에 대한 몇 가지 제한 사항이 있습니다. 다음 표에서는 이러한 제한 사항과 SQL Server에서 작동할 수 있도록 XSD 스키마를 수정하는 지침을 제공합니다. 이 섹션의 다음 항목에서는 특정 제한 사항 및 이에 따른 작업 수행 지침에 대한 추가 정보를 제공합니다.

항목

제한 사항

minOccursmaxOccurs

minOccursmaxOccurs 특성 값은 4바이트 정수로 구성해야 합니다. 이러한 형식을 따르지 않는 스키마는 서버에서 거부됩니다.

<xsd:choice>

파티클의 minOccurs 특성 값이 0으로 정의되어 있지 않은 한 SQL Server에서는 자식이 없는 <xsd:choice> 파티클이 포함된 스키마를 거부합니다.

<xsd:include>

현재 SQL Server에서는 이 요소를 지원하지 않습니다. 이 요소를 포함하는 XML 스키마는 서버에서 거부됩니다.

이러한 문제를 해결하기 위해 <xsd:include> 지시어를 포함하고 있는 XML 스키마는 전처리하여 포함된 모든 스키마의 내용을 하나의 스키마로 복사 및 병합해서 서버에 업로드할 수 있습니다. 자세한 내용은 XML 스키마에 대한 전처리기 도구를 참조하십시오.

<xsd:key>, <xsd:keyref><xsd:unique>

현재 SQL Server에서는 고유성을 적용하거나 키 및 키 참조를 설정하는 이러한 XSD 기반 제약 조건을 지원하지 않습니다. 이러한 요소를 포함하고 있는 XML 스키마는 등록할 수 없습니다.

<xsd:redefine>

SQL Server에서는 이 요소를 지원하지 않습니다. 스키마를 업데이트하는 다른 방법은 <xsd:redefine> 요소를 참조하십시오.

<xsd:simpleType>

SQL Server에서는 xs:time 및 xs:dateTime이 아닌 두 번째 구성 요소가 있는 단순 유형에 대해 밀리초 정밀도만 지원하며 xs:time 및 xs:dateTime에 대해서는 100나노초 정밀도만 지원합니다. SQL Server에서는 인식된 모든 XSD 단순 유형 열거를 제한합니다.

SQL Server에서는 <xsd:simpleType> 선언에 "NaN" 값을 사용할 수 없습니다.

자세한 내용은 <xsd:simpleType> 선언의 값을 참조하십시오.

xsi:schemaLocationxsi:noNamespaceSchemaLocation

xml 데이터 형식의 열 또는 변수에 삽입된 XML 인스턴스 데이터에 이러한 특성이 존재할 경우 SQL Server에서는 이 특성을 무시합니다.

xs:QName

SQL Server에서는 XML 스키마 제한 요소를 사용하는 xs:QName에서 파생된 형식을 지원하지 않습니다.

SQL Server에서는 멤버 요소가 xs:QName인 공용 구조체 유형을 지원하지 않습니다.

자세한 내용은 xs:QName 형식을 참조하십시오.

기존 대체 그룹에 멤버 추가

XML 스키마 컬렉션에서는 기존 대체 그룹에 멤버를 추가할 수 없습니다. XML 스키마의 대체 그룹은 머리글 요소와 이 요소의 모든 멤버 요소를 같은 {CREATE | ALTER} XML SCHEMA COLLECTION 문에서 정의해야 한다는 점에서 제한적입니다.

정규 형식 및 패턴 제한 사항

값의 정식 표현은 해당 형식의 패턴 제한 사항을 위반할 수 없습니다. 자세한 내용은 정규 형식 및 패턴 제한 사항을 참조하십시오.

열거 패싯

SQL Server에서는 패턴 패싯 형식이나 이러한 패싯을 위반하는 열거형의 XML 스키마를 지원하지 않습니다.

패싯 길이

length, minLengthmaxLength 패싯은 long 형식으로 저장됩니다. 이 형식은 32비트 형식입니다. 따라서 이러한 값에 허용되는 값 범위는 2^31입니다.

ID 특성

각 XML 스키마 구성 요소마다 ID 특성이 하나씩 있을 수 있습니다. SQL Server에서는 ID 형식의 <xsd:attribute> 선언에 대한 고유성을 적용하지만 이러한 값을 저장하지는 않습니다. 고유성을 적용할 범위는 {CREATE | ALTER} XML SCHEMA COLLECTION 문입니다.

ID 형식

SQL Server에서는 유형이 xs:ID, xs:IDREF 또는 xs:IDREFS인 요소를 사용할 수 없습니다. 스키마는 이 유형의 요소나 이 유형의 제한 또는 확장에 의해 파생된 요소를 선언하지 않을 수 있습니다.

로컬 네임스페이스

<xsd:any> 요소에 로컬 네임스페이스가 명시적으로 지정되어야 합니다. SQL Server에서는 빈 문자열("")을 네임스페이스 특성 값으로 사용하는 스키마를 거부합니다. 대신 "##local"을 명시적으로 사용하여 비정규화된 요소 또는 특성을 와일드카드 문자의 인스턴스로 표시해야 합니다.

혼합 형식 및 단순 내용

SQL Server에서는 혼합 형식을 단순 내용으로 제한할 수 없습니다. 자세한 내용은 혼합 형식 및 단순 내용을 참조하십시오.

NOTATION 형식

SQL Server에서는 NOTATION 형식을 지원하지 않습니다.

메모리 부족 상태

대형 XML 스키마 컬렉션을 사용할 경우 메모리가 부족해질 수 있습니다. 이 문제에 대한 해결 방법은 대형 XML 스키마 컬렉션 및 메모리 부족 상태를 참조하십시오.

반복 값

SQL Server에서는 block 또는 final 특성에 "restriction restriction" 및 "extension extension" 같은 반복되는 값이 있는 스키마를 거부합니다.

스키마 구성 요소 식별자

SQL Server에서는 스키마 구성 요소 식별자의 최대 길이를 1000자(유니코드)로 제한합니다. 또한 식별자 내에 서로게이트 문자 쌍을 사용할 수 없습니다.

표준 시간대 정보

SQL Server 2008에서 표준 시간대 정보는 XML 스키마 유효성 검사를 위한 xs:date, xs:time 및 xs:dateTime 값에 대해 완벽하게 지원됩니다. SQL Server 2005 이전 버전과의 호환성 모드를 사용하면 표준 시간대 정보는 항상 Coordinated Universal Time(그리니치 표준시)로 표준화됩니다. dateTime 형식 요소의 경우 서버는 오프셋 값("-05:00")을 사용하고 해당 GMT 시간을 반환하여 제공되는 시간을 GMT로 변환합니다.

공용 구조체 유형

SQL Server에서는 공용 구조체 유형의 제한 사항을 지원하지 않습니다.

가변 정밀도 10진수

SQL Server에서는 가변 정밀도 10진수를 지원하지 않습니다. xs:decimal 형식은 임의 자릿수의 10진수를 나타냅니다. 최소로 준수하는 XML 프로세서는 최소값이 totalDigits=18인 10진수를 지원해야 합니다. SQL Server에서는 totalDigits=38을 지원하지만 소수 자릿수를 10으로 제한합니다. 서버에서는 모든 xs:decimal의 인스턴스화된 값을 내부적으로 SQL 유형 숫자(38, 10)를 사용하여 나타냅니다.

섹션 내용

항목

설명

정규 형식 및 패턴 제한 사항

정규 형식 및 패턴 제한 사항을 설명합니다.

와일드카드 구성 요소 및 콘텐츠 유효성 검사

와일드카드 문자, lax 유효성 검사 및 anyType 요소를 XML 스키마 컬렉션과 함께 사용할 경우 제한 사항을 설명합니다.

<xsd:redefine> 요소

<xsd:redefine> 요소 사용에 대한 제한 사항과 해결 방법을 설명합니다.

xs:QName 형식

xs:QName 유형에 대한 제한 사항을 설명합니다.

<xsd:simpleType> 선언의 값

<xsd:simpleType> 선언에 적용되는 제한 사항을 설명합니다.

열거 패싯

열거 패싯에 대한 제한 사항을 설명합니다.

혼합 형식 및 단순 내용

혼합 형식을 단순 내용으로 제한하는 제한 사항을 설명합니다.

대형 XML 스키마 컬렉션 및 메모리 부족 상태

대형 스키마 컬렉션을 사용할 경우 가끔 발생하는 메모리 부족 상태에 대한 해결 방법을 설명합니다.

비결정적 콘텐츠 모델

비결정적 콘텐츠 모델에 대한 제한 사항을 설명합니다.