J'ai un XSD de cette forme:Pourquoi XSD dit-il que mon élément n'est pas complet?
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/example"
xmlns:tns="http://www.example.org/example" elementFormDefault="qualified">
<complexType name="bType">
</complexType>
<complexType name="aType">
<choice maxOccurs="unbounded">
<element name="a" type="tns:aType" />
<element name="b" type="tns:bType" />
</choice>
</complexType>
<element name="topelement">
<complexType>
<sequence>
<element name="a" type="tns:aType" maxOccurs="1" />
</sequence>
</complexType>
</element>
</schema>
Et un fichier XML que je pense à faire correspondre, par exemple:
<?xml version="1.0" encoding="UTF-8"?>
<topelement xmlns="http://www.example.org/example"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/example example.xsd ">
<a> <!-- Error on this line. -->
<a/>
<b/>
<b/>
<a/>
</a>
</topelement>
Malheureusement, le XSD dit que ce n'est pas valide avec l'erreur suivante :
cvc-complex-type.2.4.b: The content of element 'a' is not complete. One of '{"http://www.example.org/example":a, "http://www.example.org/example":b}' is expected. example.xml line 5
Pour autant que je sache, j'ai fait tout ce que je devais faire pour que l'étiquette soit complète. Je l'ai rempli avec un choix illimité de 'a' et 'b' tags. Quelqu'un peut-il voir ce qui ne va pas?
Pour clarifier, je veux qu'il n'y ait qu'une seule balise 'a' sous le topelement, et en dessous, un mélange de balises 'a' et 'b'.
ça marche si vous nommez votre élément de niveau supérieur autre chose que ? Je pense que le schéma XML pourrait être confondu par ces balises identiques sur différents niveaux .... –
Si je le renomme, il se plaint encore de 'a' sur la même ligne ... cela peut être un indice ... – izb