在命名空间parents
中设置以下Parent
类型:
<xs:element name="Parent">
<xs:complexType>
<xs:all>
<xs:element name="Child1" type="xs:string" />
<xs:element name="Child2" type="xs:int" />
</xs:all>
</xs:complexType>
</xs:element>
在其他名称空间中的其他类型中,可以引用该类型,如:
<xs:element ref="parents:Parent" />
是否也可以只引用子元素(不将其带到顶层)?比如:
<xs:element ref="parents:Parent.Child1" />
不确定,如何限定父/子关系,尝试:
,.
,:-)
不可以,如果你想使用ref="语法,那么它必须是一个具有唯一名称的全局元素声明。
如果你想重用元素声明而不让它们成为全局的,还有其他的机制,比如命名模型组(xs:group
)。
注:对于任何编程语言来说,试图通过猜测可能的语法来找出有效的方法都是一种非常低效的策略,而对于像XSD这样不直观的语言来说,这种策略尤其不可能成功。