La validation de schéma XML: cvc-complexe-type.2.4.un
Je suis en train de valider mon document XML par rapport à mon schéma XML.
C'est mon schéma:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://cars.example.org/">
<element name="cars">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="brand" type="string"/>
</sequence>
</complexType>
</element>
</schema>
et c'est mon document XML:
<?xml version="1.0" encoding="UTF-8"?>
<cars xmlns="http://cars.example.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://cars.example.org/cars.xsd">
<brand>x</brand>
</cars>
Maintenant, quand je suis à la validation du document (via Eclipse), je reçois message suivant sur la ligne 4:
cvc-complex-type.2.4.a: Invalid content was found starting with element 'brand'. One of '{"":brand}' is expected.
Ce message n'a aucun sens :(. Et c'est très difficile (impossible?) pour google, la solution.
Merci pour votre aide.
OriginalL'auteur woky | 2011-09-20
Vous devez vous connecter pour publier un commentaire.
Votre schéma est de définir la "marque" comme étant dans aucun espace de noms. C'est ce que
'{"":brand}'
moyens. Mais dans votre document XML la "marque" de l'élément est dans lehttp://cars.example.org/
espace de noms. Si elles ne correspondent pas, et vous obtenez votre erreur de validation.De déclarer la "marque" de l'élément dans votre schéma comme étant dans la
http://cars.example.org/
espace de noms, ajoutez l'attributelementFormDefault="qualified"
de l'élément de schéma.Je suggère que, pour l'exhaustivité, vous aussi ajouter
attributeFormDefault="unqualified"
de l'élément de schéma, bien que ce n'est pas votre problème dans ce cas.OriginalL'auteur Alohci
Vous n'avez pas validé l'attribut dans les voitures, ce qui est l'url de l'espace de noms, cela devrait fonctionner:
OriginalL'auteur Mansuro