S
Seawolf-371
Gast
Hi,
ich habe ein (hoffentlich) kleines Problem mit der Validierung eines XML-Files und dem entsprechendem XSD-File.
Ich versuche es mit einem javax.xml.validation.Validator zu validieren allering s bekomme ich immer folgende Fehlerausgabe:
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'Contactlist'.
Bitte schaut euch mal die XMl, XSD und meinen Java-Validierungs-Code an. Ich find den Fehler nicht und suche schon 2 Tage. Bin echt ratlos.
TIA
Seawolf
Es folgt mein Code:
XML:
XSD:
Java:
ich habe ein (hoffentlich) kleines Problem mit der Validierung eines XML-Files und dem entsprechendem XSD-File.
Ich versuche es mit einem javax.xml.validation.Validator zu validieren allering s bekomme ich immer folgende Fehlerausgabe:
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'Contactlist'.
Bitte schaut euch mal die XMl, XSD und meinen Java-Validierungs-Code an. Ich find den Fehler nicht und suche schon 2 Tage. Bin echt ratlos.
TIA
Seawolf
Es folgt mein Code:
XML:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<Contactlist>
<Contact id="Kai Gruber">
<Firstname><![CDATA[Kai]]></Firstname>
<Lastname><![CDATA[Gruber]]></Lastname>
<Street><![CDATA[Talweg 9]]></Street>
<Zip><![CDATA[08285]]></Zip>
<Town><![CDATA[Thalheim]]></Town>
<Tel><![CDATA[0172/1337745]]></Tel>
<Handy><![CDATA[]]></Handy>
</Contact>
<Contact id="Andreas Winkler">
<Firstname><![CDATA[Andreas]]></Firstname>
<Lastname><![CDATA[Winkler]]></Lastname>
<Street><![CDATA[HausStrasse 38]]></Street>
<Zip><![CDATA[08080]]></Zip>
<Town><![CDATA[WohnStadt]]></Town>
<Tel><![CDATA[0133/713371337]]></Tel>
<Handy><![CDATA[]]></Handy>
</Contact>
</Contactlist>
XSD:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="contactmanagement" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="contactmanagement">
<xs:element name="Town" type="xs:string"/>
<xs:element name="Tel" type="xs:string"/>
<xs:element name="Handy" type="xs:string"/>
<xs:element name="Street" type="xs:string"/>
<xs:element name="Lastname" type="xs:string"/>
<xs:element name="Zip" type="xs:string"/>
<xs:element name="Firstname" type="xs:string"/>
<xs:element name="Contactlist">
<xs:complexType>
<xs:sequence>
<xs:element ref="Contact" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Contact">
<xs:complexType>
<xs:sequence>
<xs:element ref="Firstname"/>
<xs:element ref="Lastname"/>
<xs:element ref="Street"/>
<xs:element ref="Zip"/>
<xs:element ref="Town"/>
<xs:element ref="Tel"/>
<xs:element ref="Handy"/>
</xs:sequence>
<xs:attribute name="id" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>
Java:
Code:
private void parseContactXML(String contactFileName) {
usedFileName = contactFileName;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
/**
* Dokument wird geparst
*/
DocumentBuilder db = dbf.newDocumentBuilder();
dom = db.parse(contactFileName+".xml");
/**
* Dokument wird gegen das XML-Schema validiert
*/
SchemaFactory schemaFactory = SchemaFactory.newInstance( XMLConstants.W3C_XML_SCHEMA_NS_URI );
// get the custom xsd schema describing the required format for my XML files.
Schema schemaXSD = schemaFactory.newSchema( new File (contactFileName+".xsd" ) );
// Create a Validator capable of validating XML files according to my custom schema.
Validator validator = schemaXSD.newValidator();
validator.validate( new DOMSource( dom ) );
}catch(ParserConfigurationException pce) {
pce.printStackTrace();
}catch(SAXException se) {
se.printStackTrace();
}catch(IOException ioe) {
ioe.printStackTrace();
}
}