1

我所有的 XML 属性都在不同的命名空间中,所以我的 XSD 从另一个 XSD 引用它们。我有两个不同的元素,它们的属性名称相同,但类型不同。

<integer ons:name="10" />
<string ons:name="string"/>

所以integer元素有一个ons:name属性是 anintegerstring元素有一个ons:name属性是 a string

如何在 XSD 中定义它?目前我有:

<xs:element name="integer">
    <xs:complexType>
        <xs:attribute ref="ons:name" use="required"/>
    </xs:complexType>
</xs:element>

然后在ons命名空间的第二个 XSD 中,我有以下内容:

那么问题是对于第二个元素的属性,没有办法用 来指定typeref如果ref引用不同的属性,那么它会得到不同的名称。

4

1 回答 1

2

在 namespace 的架构文档中ons,定义两个单例属性组:

<xs:attributeGroup name="name-int">
  <xs:attribute name="name" type="xs:integer" use="required" form="qualified"/>
</xs:attribute-group>

<xs:attributeGroup name="name-str">
  <xs:attribute name="name" type="xs:string" form="qualified"/>
</xs:attribute-group>

然后从复杂类型中引用属性组:

<xs:complexType>
    <xs:attributeGroup ref="ons:name-int"/>
</xs:complexType>
于 2012-06-28T20:10:17.240 回答