다음을 통해 공유


비결정적 콘텐츠 모델

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 스키마 컬렉션에 대한 요구 사항 및 제한 사항