根据docs.microsoft.com上的此文章,SQL Server不支持联合类型的限制:Requirements and Limitations for XML Schema Collections on the Server
我正尝试从提供的XSD创建一个包含这样的模式集合,并且(按预期)收到此错误:
XML验证:类型
'{http://www.mismo.org/residential/2009/schemas}MISMODate_Base'
的无效定义。 SQL Server当前不支持对联合类型的限制。
如果我修改XSD以消除并集类型限制,那么我已经能够创建模式集合,但是我想知道是否有一种方法可以以某种方式表示预期的限制(见下文) SQL Server支持的:
<xsd:simpleType name="MISMODate_Base">
<xsd:restriction base="MISMODate_Union">
<xsd:pattern value="[0-9]{4}([\-][0-9]{2}){0,2}([Z]|(([+]|[\-])[0-9]{2}[:][0-9]{2}))?"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="MISMODate_Union">
<xsd:union memberTypes="xsd:gYear xsd:gYearMonth xsd:date"/>
</xsd:simpleType>
理想情况下,MISMODate_Base类型将保留MISMODate_Union类型的多个限制基础……对于XSD构建的新手,我欢迎提出任何建议。