XSD中元素的ref属性是做什么的?

文档似乎认为它引用了架构中的另一个元素,但是它怎么可能被使用 – 我从来没有在模式中看到它。

任何人有任何好的用例还是可以进一步解释它的用法?

基本上,它引用另一个在其他地方被拖延的元素,这可能是也可能不是相同的模式文档。 例如,它可能来自不同名称空间中的外部引用模式。 假设你在几个不同的模式中使用了item元素,你可以在一个公共模式中声明它(以及其他常见的types和属性),然后在所有其他模式中重用这些元素。 如果您使用命名空间c引用常见模式,则可以自行或作为types的一部分声明项目 elemnt的实例,如下所示:

<xs:element ref="c:item" /><!-- reference here --> <xs:complexType name="something"> <xs:sequence> <xs:element ref="c:item" /><!-- and here --> </xs:sequence> <xs:element name="other" type="xs:Name" /> </xs:complexType> 

数据模式中的定义如下所示:

 <xs:element name="item" type="itemType" /><!-- referenced element --> <xs:complexType name="itemType"> <xs:sequence> <xs:element name="code" type="xs:Name" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="description" type="xs:normalizedString" use="required" /> </xs:complexType> 

例如,如果要声明可以显示深层嵌套的元素types,也可以将其作为实例文档中的顶层元素。

XML Schema入门例如: http : //www.w3.org/TR/xmlschema-0/