在XML Schema中要求(允许)“xml:base” - 属性

时间:2011-04-30 17:11:48

标签: xml xsd

给出如下文件:

<patch xmlns="http://example.com/ns/lxfs"
       xml:base="http:/example.com/publ/lxfs"
       id="http://example.com/lxfs/patches/3">

   <!-- ... -->
</patch>

如何编写XML Schema以在{{1}上要求(甚至允许)xml:base属性的固定值为“http://example.com/publ/lxfs” }?

这是我认为的“明显”解决方案,但<patch>应该是xs:attribute[@name]

NCName

2 个答案:

答案 0 :(得分:4)

<xs:attribute name="xml:base">更改为<xs:attribute ref="xml:base">,并为可在http://www.w3.org/2001/03/xml.xsd找到的XML命名空间的架构添加xs:import。 (使用本地副本而不是对W3C上的副本的引用

答案 1 :(得分:3)

为了澄清迈克尔已经发布的内容,为了解决这个问题,我首先将这一行添加到我的架构顶部:

<xs:import namespace="http://www.w3.org/XML/1998/namespace"
           schemaLocation="http://www.w3.org/2001/03/xml.xsd" />

然后将其附加到元素,只需添加属性:

<xs:attribute ref="xml:base" />
哇,这给我带来了很多麻烦。