如何解决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 - Structures 和 Part 2 - Datatypes,并且在这些文档中的任何地方都没有提及此类属性。
如果你想在标签中描述一个空格分隔的值列表,那么你需要一个 list type:
因此,您的简单类型定义需要与此类似:
<xs:simpleType name="StringList">
<xs:list itemType="xs:string">
</xs:simpleType>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。