我正在为包含来自其他名称空间的标签的文档类型编写 XML 模式。(具体来说,Atom 和 GML:众所周知的标准。)从另一个命名空间请求特定标签似乎很容易:
<xs:import namespace="http://www.w3.org/2005/Atom" schemaLocation="atom.xsd" />
<!-- and then, within a complex type definition: -->
<xs:element ref="atom:link" />
但在某些情况下,我需要限制此标签上的属性。例如,我需要能够指定标签的rel
属性值。atom:link
也就是说,我需要断言命名空间中的一个标签我正在为 contains<atom:link rel="self" href="..." />
和 not编写模式<atom:link rel="somethingelse" />
。
我知道如何使用<xs:attribute />
我自己定义的 complexType 上的标签来执行此操作,但我不知道如何在位于另一个名称空间中的标签上执行此操作。如有必要,我可以进行编辑atom.xsd
,但请注意,在我的架构中的不同位置,我需要断言不同的rel
值,因此我不能只rel
对每次出现的atom:link
.
这是可行的吗?谢谢!