비결정적 콘텐츠 모델

SQL Server 2005 SP1(서비스 팩 1) 이전에, SQL Server에서는 비결정적 콘텐츠 모델이 있는 XML 스키마를 거부했습니다. 

그러나 SQL Server 2005 SP1부터 비결정적 콘텐츠 모델은 발생빈도 제약 조건이 0 또는 1이거나 해제된 경우 허용됩니다.

예: 비결정적 콘텐츠 모델이 거부됨

다음 예에서는 비결정적 콘텐츠 모델이 있는 XML 스키마를 만들려고 시도합니다. <root> 요소에 <a> 요소가 두 개 포함된 하나의 시퀀스가 있는지 또는 <root> 요소에 각각 <a> 요소가 하나씩 포함된 두 개의 시퀀스가 있는지가 명확하지 않기 때문에 이 코드는 실패합니다.

CREATE XML SCHEMA COLLECTION MyCollection AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema">
    <element name="root">
        <complexType>
            <sequence minOccurs="1" maxOccurs="2">
                <element name="a" type="string" minOccurs="1" maxOccurs="2"/>
            </sequence>
        </complexType>
    </element>
</schema>
'
GO

발생빈도 제약 조건을 고유한 위치로 이동하여 스키마를 수정할 수 있습니다. 예를 들어 이 제약 조건을 포함하는 시퀀스 파티클로 이동할 수 있습니다.

<sequence minOccurs="1" maxOccurs="4">
    <element name="a" type="string" minOccurs="1" maxOccurs="1"/>
</sequence>

또는 이 제약 조건을 포함된 요소로 이동할 수 있습니다.

<sequence minOccurs="1" maxOccurs="1">
     <element name="a" type="string" minOccurs="1" maxOccurs="4"/>
</sequence>

예: 비결정적 콘텐츠 모델이 허용됨

다음 스키마는 SQL Server 2005 SP1 이전의 SQL Server 버전에서 거부됩니다.

CREATE XML SCHEMA COLLECTION MyCollection AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema">
    <element name="root">
        <complexType>
            <sequence minOccurs="0" maxOccurs="unbounded">
                <element name="a" type="string" minOccurs="0" maxOccurs="1"/>
                <element name="b" type="string" minOccurs="1" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
    </element>
</schema>
'
GO

참고 항목

참조

서버의 XML 스키마 컬렉션에 대한 요구 사항 및 제한 사항