如何重用 XML 模式中设置的自定义类型?

How to reuse customized type set in XML schema?

我必须在不同的 SQL 存储过程中创建几个 XML 模式来验证输入 XML,但是重复复制和粘贴自定义模式类型有点烦人,几乎都一样。

喜欢以下类型:

<xs:simpleType name="CodeLen1">
    <xs:restriction base="xs:string">
        <xs:maxLength value="1" />
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="CodeLen2">
    <xs:restriction base="xs:string">
        <xs:maxLength value="2" />
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="CodeLen3">
    <xs:restriction base="xs:string">
        <xs:maxLength value="3" />
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="CodeLen4">
    <xs:restriction base="xs:string">
        <xs:maxLength value="4" />
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="CodeLen5">
    <xs:restriction base="xs:string">
        <xs:maxLength value="5" />
    </xs:restriction>
</xs:simpleType>

如何在不同的 XML 模式中重用这部分?

我知道我们可以在 XSD 个文件之间使用 <xs:import>,但是如何在 SQL 模式中使用它?

我的解决办法是把SQL中的XML schema当作String,使用的时候直接拼接起来就可以了。