是否可以在复杂类型上声明一个属性,该属性将从该复杂类型中声明的每个元素继承?
我有一个用例,我需要注释 xml 中的每个元素,无论它是否已更改(@mutated={true|false})。我看到的唯一解决方案是将此属性添加到每个元素,这非常令人毛骨悚然。
好的,您不可能需要使用此属性扩展每种类型并创建一个新类型。
这是我对简单类型和复杂类型的定义:
扩展简单类型:
<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>
这里有一些很好的资源: