org.xml.sax.SAXParseException: cvc-elt.1: Ne peut pas trouver la déclaration de l'élément "tns:root_element'

J'ai passé passé 2 heures sur ce. Je suis incapable de comprendre pourquoi cette erreur se produit. J'ai une simple xsd et xml code

fichier xml:

<?xml version="1.0" encoding="UTF-8"?>

<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="root_element" type="string"/>   
</schema>

fichier xsd:

<?xml version="1.0" encoding="UTF-8"?>
<root_element>"asd"</root_element>

Mon code java est:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
SchemaFactory s_factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
dbf.setSchema(s_factory.newSchema(new File(schemafile)));  
dbf.setValidating(true);
dbf.setFeature("http://apache.org/xml/features/validation/schema", true);
DocumentBuilder db = dbf.newDocumentBuilder();
CommodityPropsErrorHandler cp_eh = new CommodityPropsErrorHandler();
db.setErrorHandler(cp_eh);
Document doc = db.parse(new File(props_file));

Tout commentaire serait utile. ce qui concerne

Qui ne peut pas être tout. Quelque part il y a une référence à un préfixe d'espace de noms tns: que vous n'avez pas posté.

OriginalL'auteur jwookie | 2011-08-21