cvc-elt.1: Ne peut pas trouver la déclaration de l'élément "MyElement'
Je suis en train de valider un vraiment simple xml à l'aide de xsd, mais pour une raison quelconque, j'obtiens cette erreur.
Je vais vraiment reconnaissant si quelqu'un peut m'expliquer pourquoi.
Fichier XML
<?xml version="1.0" encoding="utf-8"?>
<MyElement>A</MyElement>
Fichier XSD
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/Test"
xmlns:tns="http://www.example.org/Test"
elementFormDefault="qualified">
<simpleType name="MyType">
<restriction base="string"></restriction>
</simpleType>
<element name="MyElement" type="tns:MyType"></element>
</schema>
Vous devez vous connecter pour publier un commentaire.
Votre schéma est pour son espace de noms cible
http://www.example.org/Test
elle définit ainsi un élément avec le nomMyElement
dans cet espace de noms ciblehttp://www.example.org/Test
. Votre document d'instance a cependant un élément avec le nomMyElement
dans aucun espace de noms. C'est pourquoi la validation de l'analyseur vous dit qu'il ne peut pas trouver une déclaration de l'élément que vous n'avez pas fourni un schéma pour les éléments d'aucun espace de noms.Vous devez soit modifier le schéma pour ne pas utiliser un espace de noms cible ou vous avez besoin de changer l'instance à utiliser, par exemple,
<MyElement xmlns="http://www.example.org/Test">A</MyElement>
.J'ai eu cette erreur pour mon XXX élément et c'était à cause de mon XSD était mal formaté selon javax.xml.lier v2.2.11 . Je pense que c'est à l'aide d'un ancien format XSD mais je n'ai pas pris la peine de confirmer.
Ma première mauvaise XSD est semblable à la suivante:
Le bon format XSD pour ma migration de réussir était la suivante:
Et ainsi de suite pour chaque semblables XSD nœuds.