【发布时间】:2012-04-20 06:59:59
【问题描述】:
给定一个文件,如下所示:
<patch xmlns="http://example.com/ns/lxfs"
xml:base="http:/example.com/publ/lxfs"
id="http://example.com/lxfs/patches/3">
<!-- ... -->
</patch>
如何编写 XML Schema 以要求(甚至允许)在 <patch> 上存在固定值为“http://example.com/publ/lxfs”的 xml:base 属性?
这是我认为“显而易见”的解决方案,但 xs:attribute[@name] 应该是 NCName:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:lxfs="http://example.com/ns/lxfs"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
targetNamespace="http://example.com/ns/lxfs">
<xs:element name="patch" type="lxfs:Patch" />
<xs:complexType name="Patch">
<xs:attribute name="id" type="xs:anyURI" use="required" />
<xs:attribute name="xml:base" form="qualified" fixed="http://example.com/publ/lxfs" use="required" />
</xs:complexType>
</xs:schema>
【问题讨论】: