有没有办法将相同的类型定义链接在一起?

时间:2011-08-18 08:22:50

标签: xsd schema

示例代码:

<xsd:element name="a">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="|(([1-9]|[12][0-9]|3[01])/([0-9]|1[12])/[0-9]{1,4})"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:element>
<xsd:element name="b">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="|(([1-9]|[12][0-9]|3[01])/([0-9]|1[12])/[0-9]{1,4})"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:element>

现在元素a和b的类型定义是相同的。有没有办法将这些类型“链接”在一起,这样我就不必重复输入?

1 个答案:

答案 0 :(得分:1)

好的,我明白了。最简单的方法是创建一个命名类型:

<xsd:simpleType name="PatternType">
    <xsd:restriction base="xsd:string">
        <xsd:pattern value="|(([1-9]|[12][0-9]|3[01])/([0-9]|1[12])/[0-9]{1,4})" />
    </xsd:restriction>
</xsd:simpleType>

<xsd:element name="a" type="tns:PatternType" />
<xsd:element name="b" type="tns:PatternType" />

其中tns是架构目标命名空间的前缀