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

derivedBy attribute in XML schema to create a list of basic types

早上好,

我想了解 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:内容无效。预期是 (annotation?, (restriction|list|union)).

我做错了什么? 另外,网上查不到derivedBy="list"的资料,是不是已经不用了?

预先感谢您的帮助。

XML 架构 1.0 未定义名称为 'derivedBy' 的任何属性。规范在这里:Part 1 - Structures and Part 2 - Datatypes 并且这些文档中的任何地方都没有提到这样的属性。

如果您想在标签中描述 space 个单独的值列表,那么您需要一个 list type:

因此,您的简单类型定义需要类似于以下内容:

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