问题描述
如何在XML模式的元素内定义type
而不是在元素中进行引用?
<xs:element name="Payment" type="my:Payment"/>
但是我想做下面的事情……
<xs:element name="Payment">
<type="my:Payment"/>
</element>
但是出现语法错误。
解决方法
在XSD中,您可以引用第一个示例中显示的全局定义 1 类型
<xs:element name="Payment" type="my:Payment"/>
或使用本地定义匿名类型,而不像您显示的那样
<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>
请注意,此类本地定义的类型是匿名的,不能重用。
另请参见
1 有关使用名称空间的详细示例,请参见How to reference global types in XSD?。