在服务器上使用 XML 架构集合的准则和限制

更新日期: 2006 年 4 月 14 日

XML 架构定义语言 (XSD) 验证针对使用 SQL Server 2005 xml 数据类型的 SQL 列具有某些限制。本主题提供有关这些限制的详细信息,同时也提供修改 XSD 架构的准则以使它可以与 SQL Server 一起使用。下表列出了各个限制。该表后面的部分详细说明了每个限制,并且提供了使用这些限制的准则。

限制

anyType

XQuery 规范建议对 anyType 类型的元素进行宽松验证。因为 SQL Server 不支持宽松验证,所以对 anyType 类型的元素应用严格验证。

minOccursmaxOccurs

SQL Server 限制这些属性的值的大小。

sqltypes:datetimesqltypes:smalldatetime

SQL Server 不接受 sqltypes:datetimesql:smalldatetime 值。

<xsd:include><xsd:key><xsd:keyref><xsd:redefine><xsd:unique>

SQL Server 不支持这些元素。

<xsd:choice>

如果架构中包含无子级的 <xsd:choice> 粒子,则 SQL Server 拒绝该架构,除非该粒子的 minOccurs 属性值定义为零。

<xsd:simpleType>

SQL Server 仅支持简单类型的毫秒精度,这些类型带有秒部分并对所有识别的 XSD 简单类型枚举具有限制。

SQL Server 不支持在 <xsd:simpleType> 声明中使用“NaN”值。

xsi:schemaLocationxsi:noNamespaceSchemaLocation

如果在插入到 xml 数据类型的列或变量的 XML 实例数据中存在这些属性,则 SQL Server 将忽略这些属性。

xs:QName

SQL Server 不支持从 xs:QName 派生的使用 XML 架构限制元素的类型。

SQL Server 不支持将 xs:QName 作为成员元素的联合类型。

将成员添加到现有替换组

SQL Server 不支持将成员添加到 XML 架构集合中的现有替换组。

规范格式

值的规范表示形式不能违反其类型的模式限制。

枚举方面

SQL Server 不支持包含以下类型的 XML 架构:具有模式方面或违反这些方面的枚举的类型。

方面长度

SQL Server 限制方面长度的可接受值的范围。

ID 属性

XML 架构组件可能具有 ID 属性,但 SQL Server 不存储这些值。

ID 类型

SQL Server 不支持类型为 xs:IDxs:IDREF 的元素。

宽松验证

SQL Server 不支持对上载到 SQL Server 的架构进行宽松验证。

列表类型和联合类型

SQL Server 不支持将联合类型作为列表项使用的列表类型。

本地命名空间

SQL Server 拒绝使用空字符串 ("") 作为命名空间属性的值的架构。

混合类型和简单内容

SQL Server 不支持将混合类型限于简单内容。

NOTATION 类型

SQL Server 不支持 NOTATION 类型。

内存不足的情况

在使用大型 XML 架构集合时,可能出现内存不足的情况。提供了解决方案。

重复的值

SQL Server 拒绝某些架构,在这些架构中 block 属性或 final 属性具有重复的值。

架构组件标识符

SQL Server 将架构组件的标识符限于最大长度为 1000 个 Unicode 字符。另外,不支持在标识符中使用代理项字符对。

时区信息

时区信息始终转换为通用协调时间(格林尼治标准时间)。

联合类型

SQL Server 不支持联合类型的限制。

可变精度小数

SQL Server 不支持可变精度小数。

xsi:schemaLocation 和 xsi:noNamespaceSchemaLocation

如果在插入到 xml 数据类型的列或变量的 XML 实例数据中存在下列属性,则 SQL Server 将忽略这些属性:

  • xsi:schemaLocation
  • xsi:noNamespaceSchemaLocation

&lt;xsd:include&gt;

万维网联盟 (W3C) XSD include 元素为 XML 架构可以分区成多个物理文件的架构模块性提供支持。当前,SQL Server 不支持此元素。服务器拒绝包含此元素的 XML 架构。

作为一种解决方案,可以预处理包括 <xsd:include> 指令的 XML 架构以将任何包括的架构的内容复制和合并到单个架构来上载到服务器。有关详细信息,请参阅XML 架构的预处理器工具

&lt;xsd:unique&gt;、&lt;xsd:key&gt; 和 &lt;xsd:keyref&gt;

当前,SQL Server 不支持下列用于强制唯一性或建立键和键引用的基于 XSD 的约束:

  • <xsd:unique>
  • <xsd:key>
  • <xsd:keyref>

无法注册包含这些元素的 XML 架构。

规范格式和模式限制

XSD 模式方面允许对简单类型的词法空间进行限制。当把模式限制加在存在多个可能的词法表示形式的类型上时,某些值可能引起对验证的意外行为。因为这些值的词法表示形式未存储在数据库中,所以出现此行为。因此,当这些值作为输出序列化时将其转换为它们的规范表示形式。如果文档包含的值的规范格式不符合其类型的模式限制,则当用户尝试重新插入该文档时,将拒绝该文档。

为了避免这种情况,SQL Server 2005 拒绝任何包含无法重新插入的值的 XML 文档,由于它们的规范格式违反了模式限制。例如,值“33.000”不对从 xs:decimal 派生的带有“33\.0+”的模式限制的类型进行验证。尽管“33.000”符合此模式,但规范格式“33”不符合。

因此,将模式方面应用到从以下基元类型派生的类型时应当小心:booleandecimalfloatdoubledateTimetimedatehexBinarybase64Binary。当您将任何这样的组件添加到架构集合时,SQL Server 将发出警告。

浮点值的不精确序列化有类似的问题。由于 SQL Server 2005 使用的浮点序列化算法,相似值可能共享相同的规范格式。当序列化浮点值然后重新插入浮点值时,它的值可能发生轻微变化。在极个别的情况下,重新插入时这可能导致一个违反其类型的以下任何方面的值:enumerationminInclusiveminExclusivemaxInclusivemaxExclusive。为了避免这种情况,SQL Server 2005 拒绝任何从 xs:floatxs:double 派生的类型的值,这些值无法序列化和重新插入。

通配符和内容验证

通配符用于更加灵活地在内容模型中显示内容。在 XSD 语言中按照以下方式支持这些字符:

  • 元素通配符。这些通过 <xsd:any> 元素表示。
  • 属性通配符。这些通过 <xsd:anyAttribute> 元素表示。

这两个通配符元素(<xsd:any><xsd:anyAttribute>)都支持 processContents 属性的使用。这将允许您指定指示 XML 应用程序如何处理与这些通配符元素关联的文档内容的验证的值。存在不同的值及其影响:

  • strict 值指定对内容进行完整的验证。
  • skip 值指定不对内容进行验证。
  • lax 值指定仅对具有架构定义的元素和属性进行验证。

宽松验证

对于上载到 SQL Server 的架构,不支持宽松验证。因此,如果通配符元素指定 processContents 属性,则必须将它设置为 skipstrict。如果指定 processContents="lax",则服务器拒绝架构。

由于此行为,将用严格处理对类型化为 xsd:anyType 的任何元素进行验证。因此,必须根据要验证的实例文档在架构集合中定义它们的子元素和子属性。

anyType 元素

XQuery 规范建议对 anyType 类型的元素进行宽松验证。因为 SQL Server 不支持宽松验证,所以对 anyType 类型的元素应用严格验证。

以下示例说明严格验证并创建 XML 架构集合。架构元素之一是 anyType 类型。然后它创建类型化的 xml 变量并说明 anyType 类型的元素的严格验证。

CREATE XML SCHEMA COLLECTION SC AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://ns">
   <element name="e" type="anyType"/>
   <element name="a" type="byte"/>
   <element name="b" type="string"/>
 </schema>'
GO

以下示例成功,因为 <e> 的严格验证成功:

DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>1</a><b>data</b></e>'
GO

以下示例失败。拒绝该实例,因为元素 <e> 的严格验证未找到架构中定义的元素 <c>

DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>1</a><c>Wrong</c><b>data</b></e>'
GO

再次拒绝以下示例中的 XML 实例,因为在命名空间 http://whatever 中不存在对元素 <c> 的声明。换言之,命名空间不存在。

DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>1</a><c xmlns="http://whatever">Wrong</c><b>data</b></e>'
SELECT @var
GO

&lt;xsd:redefine&gt;

W3C XSD redefine 元素为重新定义架构组件提供支持。不过,对此指令的支持可能会严重影响性能,同时要求 SQL Server 重新验证与重新定义的架构相关联的 xml 数据类型的所有实例。因此,SQL Server 不支持此元素。服务器拒绝包含 <xsd:redefine> 元素的 XML 架构。

若要更新架构或其组件,您可以执行以下操作。

  1. 使用架构集合非类型化任何 xml 数据类型 (XML DT) 列。
  2. 删除受影响的命名空间的现有 XML 架构集合。
  3. 为带有修改的架构组件的该命名空间创建新 XML 架构集合。
  4. 使用新集合重新类型化在步骤 1 期间非类型化为 XML DT 的所有列。

xs:QName

SQL Server 不支持通过使用 XML 架构限制元素从 xs:QName 派生的类型。

当前,SQL Server 不支持将 QName 作为成员类型的联合类型。下列 CREATE XML SCHEMA COLLECTION 语句无法加载 XML 架构,因为它们指定将 xs:QName 类型作为联合的成员类型:

CREATE XML SCHEMA COLLECTION QNameLimitation1 AS N'
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:simpleType name="myUnion">
        <xs:union memberTypes="xs:int xs:QName"/>
    </xs:simpleType>
</xs:schema>'
GO

CREATE XML SCHEMA COLLECTION QNameLimitation2 AS N'
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:simpleType name="myUnion">
        <xs:union memberTypes="xs:integer">
   <xs:simpleType>
    <xs:list itemType="xs:QName"/>
   </xs:simpleType>
  </xs:union>
    </xs:simpleType>
</xs:schema>'
GO

两个语句都将失败并出现错误。

作为列表项的联合类型

当前,SQL Server 不支持包含带有联合类型项的列表类型的架构。以下示例架构说明尝试支持列表项类型中的联合类型的使用:

CREATE XML SCHEMA COLLECTION MySampleCollection AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ns" xmlns:ns="http://ns">
   <simpleType name="unionType">
      <union memberTypes="string byte"/>
   </simpleType>
   <simpleType name="listType">
      <list itemType="ns:unionType"/>
   </simpleType>
</schema>'
GO

服务器拒绝该架构,并显示以下错误:

“列表类型 'http://ns:listType' 的项类型无效。列表的项类型本身不能是列表,而且在此版本中不支持联合项类型。”

&lt;xsd:simpleType&gt; 的值

SQL Server 仅支持带有秒部分的简单类型的毫秒精度。此外,在服务器上拒绝带有不包含时区的 dateTime 值的 XML 实例。下表基于所有识别的 XSD 简单类型枚举概述了已应用的限制。

此外,SQL Server 不支持在 <xsd:simpleType> 声明中使用“NaN”值。服务器拒绝包含“NaN”值的架构。

简单类型 限制

duration

年部分必须在 -2^31 到 2^31-1 范围内。月、日、小时、分钟和秒都必须在 0 到 9999 范围内。秒部分在小数点后有附加的三个精度数字。

dateTime

时区子字段中的小时部分必须在 -14 到 +14 的可接收范围内。年部分必须在 -9999 到 9999 范围内。月部分必须在 1 到 12 范围内。日部分必须在 1 到 31 范围内并且必须是有效的日历日期。例如,SQL Server 可检测出无效日期(如 1974-02-31,因为二月份没有 31 天),并返回错误。

date

年部分必须在 -9999 到 9999 范围内。月部分必须在 1 到 12 范围内。日部分必须在 1 到 31 范围内并且必须是有效的日历日期。例如,SQL Server 可检测出无效日期(如 1974-02-31,因为二月份没有 31 天),并返回错误。

gYearMonth

年份部分必须在 -9999 到 9999 的范围内。

gYear

年份部分必须在 -9999 到 9999 的范围内。

gMonthDay

月部分必须在 1 到 12 范围内。日部分必须在 1 到 31 范围内。

gDay

日部分必须在 1 到 31 范围内。

gMonth

月部分必须在 1 到 12 范围内。

decimal

此类型的值必须符合 SQL 数值类型的格式。此格式内部表示支持数目可达到总共 38 个数字,其中保留 10 个数字位置用于小数精度。

float

此类型的值必须符合 SQL real 类型的格式。

double

此类型的值必须符合 SQL float 类型的格式。

string

此类型的值必须符合 SQL nvarchar(max) 类型的格式。

anyURI

此类型的值的长度不能多于 4000 Unicode 字符。

可变精度小数

xs:decimal 类型表示任意精度十进制数字。最小符合 XML 处理器必须支持最小为 totalDigits=18 的十进制数字。SQL Server 支持 totalDigits=38,,但将小数数字限于 10 个。SQL Server 不支持可变精确小数。通过使用 SQL 类型数值 (38, 10),服务器在内部表示了所有 xs:decimal 实例化的值。

时区信息

对于 datetimedateTime 简单类型,时区信息始终规范化为通用协调时间,也称为格林尼治标准时间 (GMT)。

例如,以下架构声明了名为 <e>dateTime 类型元素:

CREATE XML SCHEMA COLLECTION MySampleCollection AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ns" xmlns:ns="http://ns">
   <element name="e" type="dateTime"/>
</schema>'
GO

对于 dateTime 类型的元素,服务器将通过使用偏移量值(“-05:00”)和返回相应的 GMT 时间转换提供给 GMT 的时间。

DECLARE @var XML(MySampleCollection)
SET @var = '<e xmlns="http://ns">1999-05-31T13:20:00-05:00</e>'
SELECT @var
-- time zone is specified. Value is converted to Zulu before being stored
-- will come back as <e xmlns="http://ns">1999-05-31T18:20:00Z</e>
GO

方面长度

lengthminLengthmaxLength 方面作为 long 类型存储。此类型为 32 位类型。因此,这些值的可接受值的范围是 2^31。

minOccurs 和 maxOccurs

minOccursmaxOccurs 属性的值必须符合 4 字节整数。服务器拒绝不符合的架构。

架构组件标识符

SQL Server 将架构组件的标识符限于最大长度为 1000 个 Unicode 字符,并且拒绝标识符长度超过此值的架构。另外,不支持在标识符中使用代理项字符对。

枚举方面

SQL Server 拒绝包含以下类型的 XML 架构:具有模式方面或违反这些方面的枚举的类型。例如,以下架构将会被拒绝,因为功能枚举值包括混合大小写值。它也将会被拒绝,因为此值违反了将值仅限于小写字母的模式值。

CREATE XML SCHEMA COLLECTION MySampleCollection AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ns" xmlns:ns="http://ns">
    <simpleType name="MyST">
       <restriction base="string">
          <pattern value="[a-z]*"/>
       </restriction>
    </simpleType>

    <simpleType name="MyST2">
       <restriction base="ns:MyST">
           <enumeration value="mYstring"/>
       </restriction>
    </simpleType>
</schema>'
GO

&lt;xsd:choice&gt;

如果架构中包含无子级的 <xsd:choice> 粒子,则 SQL Server 拒绝该架构,除非该粒子的 minOccurs 属性值定义为零。

Final 或 Block 属性中的重复值

block 属性允许从实例阻止类型和元素替换。final 属性防止从一个类型派生其他复杂的类型。

SQL Server 拒绝其中 blockfinal 属性具有重复值(如“restriction restriction”和“extension extension”)的架构。

本地命名空间

必须为 <xsd:any> 元素显式指定本地命名空间。SQL Server 拒绝使用空字符串 ("") 作为命名空间属性的值的架构。SQL Server 而是要求显式使用“##local”以指示作为通配符实例的未限定元素或属性。

ID 属性

每个 XML 架构组件可在其上具有 ID 属性。SQL Server 对 ID 类型的 <xsd:attribute> 声明强制唯一性,但不存储这些值。唯一性的强制的作用域是 {CREATE | ALTER} XML SCHEMA COLLECTION 语句。

ID 类型

SQL Server 不支持类型为 xs:IDxs:IDREFxs:IDREFS 的元素。架构不会声明这种类型的元素或者从这种类型的限制或扩展派生的元素。

NOTATION 类型

当前,SQL Server 不支持 NOTATION 类型。服务器拒绝包含表示法的定义的架构。

混合类型和简单内容

在以下 XML 架构集合中,myComplexTypeA 是可以清空的复杂类型。即它的两个元素都将 minOccurs 设置为 0。不支持按它在 myComplexTypeB 声明中的方法将此限于简单内容的尝试。以下 XML 架构集合创建失败:

CREATE XML SCHEMA COLLECTION SC AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ns" xmlns:ns="http://ns"
xmlns:ns1="http://ns1">

    <complexType name="myComplexTypeA" mixed="true">
        <sequence>
            <element name="a" type="string" minOccurs="0"/>
            <element name="b" type="string" minOccurs="0" maxOccurs="23"/>
        </sequence>
    </complexType>


    <complexType name="myComplexTypeB">
        <simpleContent>
            <restriction base="ns:myComplexTypeA">
                <simpleType>
                    <restriction base="int">
                        <minExclusive value="25"/>
                    </restriction>
                </simpleType>
            </restriction>
        </simpleContent>
    </complexType>
</schema>
'
GO

sqltypes:datetime 和 sqltypes:smalldatetime

在 SQL Server 2005 中,要求所有从 xs:datexs:timexs:dateTime 派生的类型都具有时区。Sqltypes:datetimesqltypes:smalldatetime 是这些类型中的两种。但是,SQL datetimesmalldatetime 类型没有时区。这是因为 sqltypes:datetimesqltypes:smalldatetime 的模式方面不允许时区。因此,SQL Server 不接受 sqltypes:datetimesql:smalldatetime 值。

尽管可以在用户定义架构中引用 sqltypes:datetimesqltypes:smalldatetime,但无法验证包含这些类型的值的 XML 文档。这将使它们不可用。在以下示例中,XML 架构集合定义 sqltypes.datetime 类型的元素 <c>

CREATE XML SCHEMA COLLECTION SC_datetime AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
targetNamespace="myNS"
xmlns:ns="myNS"
xmlns:s="https://schemas.microsoft.com/sqlserver/2004/sqltypes"
>       <import namespace="http://www.w3.org/XML/1998/namespace"/>
      <import namespace="https://schemas.microsoft.com/sqlserver/2004/sqltypes"/>
       <element name="root">
            <complexType>
                  <sequence>
                        <element name="c" type="s:datetime"/>
                  </sequence>
            </complexType>
      </element>
</schema>'
GO

以下分配失败:

DECLARE @var xml(SC_datetime)
SET @var = '<x:root xmlns:x="myNS"><c>1953-01-01T00:00:00.000</c></x:root>'
GO

将成员添加到现有替换组

无法将成员添加到 XML 架构集合中的现有替换组。XML 架构中的替换组有以下限制:头元素和所有其成员元素必须在相同的 {CREATE | ALTER} XML SCHEMA COLLECTION 语句中定义。例如,您可以执行以下操作:

CREATE XML SCHEMA COLLECTION col AS N'
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="e1"/>
    <xs:element name="e2" substitutionGroup="e1"/>
</xs:schema>'

但是,您无法执行以下操作,其中头元素 e1 在一个 CREATE XML SCHEMA COLLECTION 语句中定义,而替换成员 e2 在另一个 ALTER XML SCHEMA COLLECTION 语句中定义:

CREATE XML SCHEMA COLLECTION col AS N'
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="e1"/>
</xs:schema>'
GO

ALTER XML SCHEMA COLLECTION col add N'
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="e2" substitutionGroup="e1"/>

</xs:schema>'
GO

联合类型

不支持联合类型的限制。例如,以下 CREATE XML SCHEMA COLLECTION 语句失败:

CREATE XML SCHEMA COLLECTION particlesIk026valid AS N'<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xsdtesting" xmlns:x="http://xsdtesting" elementFormDefault="qualified">
    <xsd:simpleType name="U1">
        <xsd:union>
            <xsd:simpleType>
                <xsd:restriction base="xsd:integer" />
            </xsd:simpleType>
            <xsd:simpleType>
                <xsd:restriction base="xsd:string" />
            </xsd:simpleType>
        </xsd:union>
    </xsd:simpleType>
    <xsd:simpleType name="U2">
        <xsd:restriction base="x:U1" />
    </xsd:simpleType>
    <xsd:complexType name="B">
        <xsd:choice>
            <xsd:element name="c1" type="x:U1" />
            <xsd:element name="c2" />
        </xsd:choice>
    </xsd:complexType>
    <xsd:complexType name="R">
        <xsd:complexContent>
            <xsd:restriction base="x:B">
                <xsd:choice>
                    <xsd:element name="c1" type="x:U2" />
                    <xsd:element name="c2" />
                </xsd:choice>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:element name="doc">
        <xsd:complexType>
            <xsd:choice>
                <xsd:element name="elem" type="x:R" />
            </xsd:choice>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>'

大型 XML 架构集合和内存不足的情况

当在大型 XML 架构集合上调用内置 XML_SCHEMA_NAMESPACE() 函数时或当您试图删除大型 XML 架构集合时,可能会出现内存不足的情况。可以使用以下解决方案来处理这种情况:

  • 在系统负荷较少时,请使用 DROP_XML_SCHEMA_COLLECTION 命令。如果使用该命令失败,则请使用 ALTER DATABASE 语句将数据库置于单用户模式,然后再次尝试 DROP XML SCHEMA COLLECTION 命令。如果 XML 架构集合存在于 mastermodeltempdb 中,则单用户模式还要求重新启动服务器。
  • 当调用 XML_SCHEMA_NAMESPACE 时,您可以尝试检索单个 XML 架构命名空间,或者您也可以在系统负荷更少时尝试调用,或者您还可以在单用户模式下尝试调用。

不确定性内容模型

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 Service Pack 1 行为

如果匹配项约束为 0、1 或无限大,则接受具有不确性内容模型。

以下示例在 SQL Server 2005 中被拒绝,但是可由运行 SQL Server SP1 的服务器接受。

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 架构集合的准则和限制
XML 架构集合的权限
管理服务器上的 XML 架构集合

概念

xml 数据类型
类型化与非类型化的 XML
了解唯一粒子归属约束

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 4 月 14 日

新增内容:
  • 添加了说明如何在 SP1 中处理具有不确定性内容模型的部分。