私は XML スキーマの書き方を学んでおり、次のような XML 構造を検証する XML スキーマを定義したいと考えています。
<mylist myattr="1">1 2 3 4 5 6 7</mylist>
complexType
そこで、を利用list
して 1 つの属性を持つを定義しようとしました。
これは私が思いついたスキーマです:
<?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
と、スキーマは問題なく検証され、これが本当に名前空間の問題なのかという疑問が生じました。
私は何を間違っていますか?