给出如下文件:
<patch xmlns="http://example.com/ns/lxfs" xml:base="http:/example.com/publ/lxfs" id="http://example.com/lxfs/patches/3"> <!-- ... --> </patch>
如何编写XML Schema以要求(甚至允许)xml:base属性的存在,并在< patch>上使用固定值“http://example.com/publ/lxfs”?
这就是我认为的“显而易见”的解决方案,但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>