2009-09-19 53 views

回答

61

基本上它引用了别处delared另一元件时,其可以是或可以不是相同的模式文档。例如,它可能来自不同命名空间中的外部引用模式。假设你使用项目元素很多在几个不同的模式,你可以声明它(以及任何其他常见的类型和属性)在共同架构,然后再用那些在您的所有其他模式。在数据

<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> 

的定义:如果您使用的命名空间Ç引用您共同架构,您可以对自己或者作为一种的一部分如下声明项目 elemnt的一个实例架构看起来是这样的:

<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> 
+4

我投这个,因为它是一个很好的解释。但是,ref属性通过其“id”而不是“name”引用外部实体。对于示例的工作,在第二码块“项目”的声明需要是: rjray 2009-09-20 17:51:39

+9

根据所有XSD文档我已见过,“ref”适用于“名称”,如下所示:http://www.w3schools.com/schema/el_element.asp(ref - 可选。指另一个元素的名称。... ) – grkvlt 2009-09-20 20:42:40

+1

什么时候会选择ref类型? – pikachu0 2018-02-09 06:28:45

5

例如,如果你想声明可以出现深度嵌套的元素类型,也可作为一个实例文档中的顶级元素。

XML模式引物具有实例为这样:http://www.w3.org/TR/xmlschema-0/

相关问题