如何在 XSD 中定义本地类型?

How to define a local type in XSD?

如何在 XML 架构中的元素内部定义 type 而不是在元素中引用?

 <xs:element name="Payment" type="my:Payment"/>

但是我想做如下的事情...

<xs:element name="Payment">
  <type="my:Payment"/>
</element>

但是出现语法错误。

在 XSD 中,您可以引用第一个示例中显示的 globally-defined1 类型,

<xs:element name="Payment" type="my:Payment"/>

或者使用locally-defined,匿名类型,不像你显示的那样,

<xs:element name="Payment">
  <type="my:Payment"/>
</element>

而是,例如,

<xs:element name="Payment">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Amount"/>
      <xs:element name="Date"/>
    </xs:sequence>
  </xs:complexType>
</element>

请注意,此类本地定义的类型是匿名的,不能重复使用。

另见

  • Denormalize XSD

1有关使用命名空间的详细示例,请参阅