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

XML 模式中的derivedBy 属性以创建基本类型列表

如何解决XML 模式中的derivedBy 属性以创建基本类型列表

早上好,

我试图了解 XML 模式中的属性“derivedBy”如何构建基本类型列表,例如字符串。

搜索了工作示例。网上的例子不多,但我找到了一个https://www.brainbell.com/tutors/XML/XML_Book_B/Viewing_Schemas_in_XML_Tools.htm

不幸的是,我无法让它在两个不同的文件(.xml 和 xsd)中工作,我需要一个工作示例:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:simpleType name="StringList" base="xs:string" derivedBy="list" />

      <xs:complexType name="root">
        <xs:sequence>
          <xs:element type="StringList" name="myListElement"></xs:element>
        </xs:sequence>
      </xs:complexType>

      <xs:element name="root" type="root"></xs:element>
    </xs:schema>

我要验证的 xml 文档是:

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="derivedBy.xsd">
  <myListElement>
   a b c
  </myListElement>
</root>

我正在尝试使用 Notepad++ 中的 XML 工具插件对其进行验证,但出现错误,我不知道如何解决

无法解析架构文件。 第 3 行的解析错误: 元素“{http://www.w3.org/2001/XMLSchema}simpleType:内容无效。预期是(注释?,(限制|列表|联合))。

我做错了什么? 另外,我在网上没有找到很多关于derivativeBy="list"的信息,是不是意味着它不再使用了?

预先感谢您的帮助。

解决方法

XML Schema 1.0 没有定义任何名称为“derivedBy”的属性。规范在此处:Part 1 - StructuresPart 2 - Datatypes,并且在这些文档中的任何地方都没有提及此类属性。

如果你想在标签中描述一个空格分隔的值列表,那么你需要一个 list type:

因此,您的简单类型定义需要与此类似:

<xs:simpleType name="StringList">
    <xs:list itemType="xs:string">
</xs:simpleType>

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