1

我正在处理一个 XSD 文件,其中包括以下元素:

<xs:element name="group">
    <xs:complexType>
      <xs:attribute name="role" type="xs:string"/>
      <xs:attribute ref="xlink:role"/>
    </xs:complexType>
</xs:element>

在 xlink 命名空间中没有为“角色”属性定义类型。具有此 Schema 的 XML 会是什么样子?我应该如何知道 XML 中的哪个属性“角色”?使此类属性具有相同名称的目的是什么?

4

1 回答 1

0

这就是 XML 的样子:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<group xmlns:xlink="http://www.w3.org/1999/xlink" role="role1" xlink:role="http://uri1"/>

正如您在 XSD 中看到的,名称是合格的;属性,在您的情况下 - 或者至少对于我使用的测试 XSD - 也可以是合格的或不合格的。由于是合格的,{ http://www.w3.org/1999/xlink } 角色因此不同于 {} 角色。

至于目的……为什么我们有同音字?我确信通过使用同义词可以提高合同的质量,特别是在与不喜欢 XML 名称空间的人打交道时,或者其他什么...我不会评论你的具体情况,因为我不知道是否角色确实是一个很小的代价,谈到它造成的混乱,与你的 XSD 可能试图捕捉/应用的业务词汇的着迷程度。

于 2013-10-31T14:55:57.273 回答