是否可以在复杂类型上声明一个属性,该属性将从在此复杂类型中声明的每个元素继承?
我有一个用例,我需要注释xml中的每个元素,如果它已经改变了(@ mutated = {true | false})。我看到的唯一解决方案是将此属性添加到每个元素,这是非常令人毛骨悚然的。
答案 0 :(得分:0)
好的,你不可能需要使用这个属性扩展每个类型并创建一个新类型。
以下是我对简单和复杂类型的定义:
扩展简单类型:
<xs:complexType name="areaMutatedType">
<xs:simpleContent>
<xs:extension base="register-ws:areaType">
<xs:attribute ref="register-ws:mutated" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
扩展复杂类型:
<xs:complexType name="relationMutatedType">
<xs:sequence>
<xs:element name="id" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute ref="register-ws:mutated" use="optional"/>
</xs:complexType>
这里有一些很好的资源: