XML Schema和类型为string的元素

时间:2010-05-15 18:45:04

标签: xml validation xsd

我正在尝试创建一个XML Schema而且我被卡住了。似乎我无法定义具有字符串内容的元素。我做错了什么?

架构:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://ponderka.wz.cz/MusicLibrary0" targetNamespace="http://ponderka.wz.cz/MusicLibrary0">
    <xs:element name="music-library">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="artist" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

文件:

<?xml version="1.0"?>
<music-library xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ponderka.wz.cz/MusicLibrary0 data0.xsd" xmlns="http://ponderka.wz.cz/MusicLibrary0">
    <artist>a</artist>
</music-library>

验证员说:

Element <artist> is not allowed under element <music-library>.
    Reason: The following elements are expected at this location (see below)
        <artist>
    Error location: music-library / artist
    Details
        cvc-model-group: Element <artist> unexpected by type '{anonymous}' of element <music-library>.
        cvc-elt.5.2.1: The element <music-library> is not valid with respect to the actual type definition '{anonymous}'.

1 个答案:

答案 0 :(得分:2)

你错过了这个:

attributeFormDefault="unqualified"

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://ponderka.wz.cz/MusicLibrary0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="music-library">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="artist" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>