我创建了一个如下所示的XML架构:
<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 =“”来调用。请告诉我这是否是这个schema是使用全局声明类型完全创建的,或者我误解了什么是全局声明类型。如果我错了,请告诉我应该如何使用完全全局类型声明正确编码。
答案 0 :(得分:0)
除了额外的关闭属性标记外,模式似乎很好:
</xs:attribute>
答案 1 :(得分:0)
我不认识“完全全局类型声明XML模式”这个术语,但我认为它是指所有类型声明都是全局的模式。这显然不是您的架构的情况,因为声明的唯一复杂类型是嵌入在元素声明中的匿名类型。但是,这是一个有效的架构。