비결정적 콘텐츠 모델
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
발생 제약 조건이 0, 1 또는 바인딩되지 않은 경우 SQL Server에서 비결정적 콘텐츠 모델이 허용됩니다.
SQL Server 2005(9.x) Service Pack 1 (SP1) 이전에 SQL Server는 비결정적 콘텐츠 모델이 있는 XML 스키마를 거부했습니다.
예제: 비결정적 콘텐츠 모델이 거부됨
다음 예제에서는 비결정적 콘텐츠 모델을 사용하여 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(9.x) 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