我正在学习如何编写 XML 模式,我想定义一个 XML 模式来验证这样的 XML 结构:
<mylist myattr="1">1 2 3 4 5 6 7</mylist>
因此,我试图定义一个complexType
使用list
并具有一个属性的。
这是我想出的架构:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:complexType name="mylist-type">
<xs:simpleContent>
<xs:extension base="xs:list" >
<xs:attribute name="myattr" type="xs:integer"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="mylist" type="mylist-type"/>
</xs:schema>
当我使用http://www.freeformatter.com/xml-validator-xsd.html针对架构验证 XML 时,我收到错误
Src-resolve.4.2: Error Resolving Component 'xs:list'.
It Was Detected That 'xs:list' Is In Namespace 'http://www.w3.org/2001/XMLSchema',
But Components From This Namespace Are Not Referenceable From Schema Document 'null'.
If This Is The Incorrect Namespace, Perhaps The Prefix Of 'xs:list' Needs To Be Changed.
If This Is The Correct Namespace, Then An Appropriate 'import' Tag Should Be Added To null'.
但是,如果我简单地更改xs:list
为xs:string
,模式验证没有问题,这对我来说提出了一个问题,它是否真的是一个命名空间问题。
我究竟做错了什么?