为xml模式中实际复杂类型的每个子级声明Attribute



是否可以在复杂类型上声明一个属性,该属性将从该复杂类型中声明的每个元素继承?

我有一个用例,我需要对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>

这里有一些好的资源:

  • http://www.ibm.com/developerworks/library/x-flexschema/
  • http://www.learn-xml-schema-tutorial.com/Attributes.cfm

最新更新