Exception cvc-elt.1: Ne peut pas trouver la déclaration de l'élément "AsifXml' lors de la tentative de unmarshall à l'aide de JAXB
Je reçois l'erreur suivante lors de la tentative de unmarshall un document xml à l'aide de JAXB. L'erreur se lit comme suit:
cvc-elt.1: Ne peut pas trouver la déclaration de l'élément "AsifXml'
Code de unmarshall est-ce:
JAXBContext jc = JAXBContext.newInstance("asif_objects");
Unmarshaller u = jc.createUnmarshaller();
SchemaFactory sf = SchemaFactory.newInstance(
javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("ASIF_Schema1.1.6.xsd"));
u.setSchema(schema);
AsifXml doc
= (AsifXml)u.unmarshal(new FileInputStream("asif_small.xml"));
Je crois que la partie pertinente de la fichiers xsd ressemble à ceci(omis d'ouverture et de fermeture de balises que je ne suis pas sûr de la façon de les mettre en forme sur le site web:
?xml version="1.0" encoding="UTF-8"?
xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:asif="http://www.website.com/ASIF"
targetNamespace="http://www.website.com/ASIF" elementFormDefault="qualified"
attributeFormDefault="unqualified" version="1.1.6"
xs:element name="AsifXml"
xs:complexType
Et ce que je crois être pertinents XML est ici:
AsifXml xmlns:AsifXml="http://www.website.com/ASIF"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1.4"
content="study"
Jusqu'à présent, j'ai essayé de googler pour ce même message d'erreur, mais il semble que la plupart des réponses ont à faire avec des erreurs dans les services web dont je ne suis pas à l'aide. J'ai aussi pensé que peut-être j'ai eu des problèmes de validation parce que je suis derrière un proxy et il n'a pas pu atteindre l'url est donnée dans le schéma des documents, mais aussi sur d'autres recherches je suis tomber l'impression que ceux de l'url n'ont pas besoin d'exister pour valider le document. Et j'ai essayé sur un autre réseau qui n'est pas derrière un proxy et reçu le même message d'erreur.
Toute aide avec ce problème, c'est grandement apprécié.
OriginalL'auteur Mike Smith | 2010-12-15
Vous devez vous connecter pour publier un commentaire.
L'exemple de fichier XML se présente bidon pour moi. Il semble bien, à première vue, mais il n'a pas de sens:
Il déclare une balise appelée
AsifXml
, et déclare un espace de noms XML avec un préfixe aussi appeléAsifXml
. Cependant, les deux n'ont rien à voir les uns avec les autres. L'élément lui-même est laissé sans espace de noms, ce qui viole le schéma.Essayez l'exemple suivant au lieu de cela, il devrait fonctionner:
Cet exemple de dire que le
AsifXml
élément a de l'espace de nomshttp://www.website.com/ASIF
, qui est ce que le schéma attend.Cet échantillon pourrait être un équivalent codé comme:
Il revient à la même chose, mais cette version est source de confusion et verbeux.
OriginalL'auteur skaffman