2012-11-17 127 views
0

我创建了一个XML架构如下图所示:XML schema声明类型

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> 
<xs:element name="fruitName" type="xs:string"/> 
<xs:element name="fruitCategory" type="xs:string"/> 
<xs:element name="fruitColor" type="xs:string"/> 
<xs:element name="farm"> 
    <xs:complexType> 
     <xs:sequence maxOccurs="unbounded"> 
      <xs:element ref="fruitName"/> 
      <xs:element ref="fruitCategory"/> 
      <xs:element ref="fruitColor"/> 
     </xs:sequence> 
     <xs:attribute name="farmLocation" type="xs:string" use="required"/> 
     </xs:attribute> 
     <xs:attribute name="farmAge" type="xs:Integer" use="required"/> 
    </xs:complexType> 
</xs:element> 

从我的理解,我认为这是使用完全全局类型声明XML模式作为fruitName的元素,fruitCategory而fruitColor是全局声明的,并且在复杂类型中使用ref =“”来调用。请告诉我,这个模式是使用全局声明类型完全创建的,还是我误解了全局声明类型是什么。如果我错了,请告诉我如何我应该使用完全全局类型声明正确编码它。

回答

0

的模式似乎除了额外的结束属性标记罚款:

</xs:attribute> 
0

我不认识的术语“完全全局类型声明XML模式”,但我会想到它的意思架构中所有的类型声明都是全局的。这显然不适用于您的模式,因为所声明的唯一复杂类型是嵌入在元素声明中的匿名类型。但是,这是一个有效的模式。