XML-схема и элемент со строкой типа - PullRequest
2 голосов
/ 15 мая 2010

Я пытаюсь создать схему XML, и я застрял. Кажется, я не могу определить элемент со строковым содержимым. Что я делаю не так?

Схема:

<?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 Ответ

2 голосов
/ 15 мая 2010

Вам не хватает этого:

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>
...