微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

给出如下文件

<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>

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。