如何为多个元素重用 XSD 中的复杂类型?

How can I reuse a complex type in XSD for multiple elements?

我完全找不到这方面的任何信息,可能是因为我没有记下术语。我想要做的是为我已经拥有的货币创建一个模板元素,并在两个不同的名称下的两个地方使用它(即 currentBalancemaxBalance)。

我当前的模板格式是:

<xsd:element name="currency">
    <xsd:complexType>
        <xsd:simpleContent>
            <xsd:extension base="xsd:double">
                <xsd:attribute ref="currencyCode" />
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
</xsd:element>

只需全局定义和命名您希望使用的复杂类型,

  <xsd:complexType name="currency">
    <xsd:simpleContent>
      <xsd:extension base="xsd:double">
        <xsd:attribute ref="currencyCode" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

然后在需要的地方引用它:

  <xsd:element name="currentBalance" type="currency"/>
  <xsd:element name="maxBalance" type="currency"/>