服务器上的 XML 架构集合的要求和限制

XML 架构定义语言(XSD)验证在针对使用xml数据类型的SQL列时存在一些限制。 下表提供了有关修改 XSD 架构的这些限制和准则的详细信息,以便它可以与 SQL Server 配合使用。 本节中的主题提供有关使用它们的特定限制和指南的其他信息。

条目 限度
minOccursmaxOccurs minOccursmaxOccurs 属性的值必须适合 4 字节整数。 服务器拒绝不符合的架构。
<xsd:choice> SQL Server 会拒绝包含没有子元素的 xsd:choice 的架构,除非该元素被定义为一个 minOccurs 属性值为零。
<xsd:include> 目前,SQL Server 不支持此元素。 包含此元素的 XML 架构被服务器拒绝。

作为解决方案,可以预处理包含 xsd:include> 指令的< XML 架构,以便将任何包含的架构的内容复制和合并到单个架构中,以便上传到服务器。 有关详细信息,请参阅 预处理架构以合并已包含的架构
<xsd:key><xsd:keyref><xsd:unique> 目前,SQL Server 不支持这些基于 XSD 的约束来强制实施唯一性或建立密钥和密钥引用。 不能注册包含这些元素的 XML 架构。
<xsd:redefine> SQL Server 不支持此元素。 有关更新架构的另一种方法的信息,请参阅 <xsd:redefine> 元素
<xsd:simpleType> SQL Server 仅支持那些第二个组件不包括xs:timexs:dateTime的简单类型达到毫秒精度,对于简单类型xs:timexs: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 架构。
分面长度 长度minLengthmaxLength 限定符存储为long类型。 此类型为 32 位类型。 因此,这些值的可接受值范围为 2^31。
ID 属性 每个 XML 架构组件都可以具有 ID 属性。 SQL Server 对 ID 类型的 xsd:attribute> 声明强制实施唯一性<,但不存储这些值。 唯一性强制实施的范围是 {CREATE | ALTER} XML SCHEMA COLLECTION 语句。
ID 类型 SQL Server 不支持 xs:IDxs:IDREFxs:IDREFS 类型的元素。 架构不能声明此类型的元素,或者通过限制或扩展从此类型派生的元素。
本地命名空间 必须为 xsd:any> 元素显式指定<本地命名空间。 SQL Server 拒绝使用空字符串(“”)作为命名空间属性的值的架构。 相反,SQL Server 需要显式使用“##local”来指示未限定的元素或属性作为通配符的实例。
混合类型和简单内容 SQL Server 不支持将混合类型限制为简单内容。 有关详细信息,请参阅 混合类型和简单内容
标记类型 SQL Server 不支持 NOTATION 类型。
内存不足状态 在使用大型 XML 架构集合时,可能会出现内存不足的情况。 有关此问题的解决方案,请参阅 大型 XML 架构集合和内存不足条件
重复值 SQL Server 拒绝块或最终属性具有重复值(如“限制限制”和“扩展扩展”)的架构。
架构组件标识符 SQL Server 将架构组件的标识符限制为最大长度为 1000 个 Unicode 字符。 此外,不支持标识符中的代理字符对。
时区信息 在 SQL Server 2008 及更高版本中,xs:datexs:timexs:dateTime 的值完全支持用于 XML 架构验证的时区信息。 使用 SQL Server 2005 向后兼容模式时,时区信息始终规范化为协调世界时(格林威治平均时间)。 对于dateTime类型的元素,服务器使用偏移值(“-05:00”)将提供的时间转换为GMT,并返回相应的GMT时间。
联合类型 SQL Server 不支持联合类型的限制。
可变精度小数 SQL Server 不支持可变精度小数。 xs:decimal 类型表示任意精度十进制数。 符合最低要求的 XML 处理器必须支持至少 totalDigits=18 的十进制数。 SQL Server 支持 totalDigits=38, 但将小数位数限制为 10。 所有 xs:decimal 实例化值都由服务器使用 SQL 类型数字(38,10)在内部表示。

本节中

主题 DESCRIPTION
规范形式和模式限制 阐释规范形式和模式限制。
通配符组件和内容验证 描述在 XML 架构集合中使用通配符字符、松散验证和 anyType 元素的限制。
<xsd:redefine> 元素 说明使用 <xsd:redefine> 元素的限制,并介绍了解决方法。
xs:QName 类型 描述有关 xs:QName 类型的限制。
<xsd:simpleType> 声明的值 描述应用于 <xsd:simpleType> 声明的限制。
枚举方面 描述有关枚举特征的限制。
混合类型和简单内容 描述将混合类型限制为简单内容的限制。
大型 XML 架构集合和内存不足条件 为有时在大型架构集合中发生的内存不足情况提供解决方案。
非确定性内容模型 描述有关非确定性内容模型的限制。

另请参阅

XML 数据 (SQL Server)
类型化的 XML 与非类型化的 XML 的比较
授予对 XML 架构集合的权限
唯一粒子归属约束
XML 架构集合 (SQL Server)