XML Validierung mit XSD über DOM - Cannot find.

Status
Nicht offen für weitere Antworten.
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:
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();
		}
	}
 
G

Gelöschtes Mitglied 5909

Gast
mach aus <Contactlist>

<Contactlist xmlns="contactmanagement">
 
S

Seawolf-371

Gast
Hi,

danke dir raiL, aber es scheitn dennoch nciht zu funktionieren.

Mein XML sieht jetzt so aus:

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

<Contactlist xmlns="contactmanagement">
    .
    .
    . 
</Contactlist>

Denke du hattest das so gemeint oder?

Nur leider bringt er immer noch den Fehler in Java.



Aus meiner XSD hab ich mal den Eintrag

Code:
<xs:schema xmlns="contactmanagement" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="contactmanagement">

durch

Code:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

ersetzt.

Das funktioniert dann.


Aber kann ich das so stehen lassen? Oder muss es unbedingt mit
Code:
xmlns=""
und
Code:
targetNamespace=""
in der XSD stehen?


TIA & Grüßele
Seawolf
 
G

Gelöschtes Mitglied 5909

Gast
Das mit den Namespaces is immer so ne Sache :)
Lass ihn einfach raus und lass es so wies ist wenns funktioniert,
ansonsten würde der Parser ja meckern ;)

Tipp: mach mal die persöhnlichen daten aus dem Beitrag oben raus :p
 
S

Seawolf-371

Gast
Ok, Danke raiL.

Das mit den Daten hab ich so nen weng verpatzt :(.

Da ich nicht angemneldet bin hab ich kein Editier Button :(

Nja.

Aber danke für den Tip, ich werds beim nächsten mal Berücksichtigen.

Danke dir nochmal.

Grüßele
Seawolf

@admin, den Beitrag bitte als "gelöst" markieren - TIA
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Validierung einer XML-Datei - Führende Leerzeichen und Tabs XML & JSON 10
B XML Schema Validierung des Zahlenbereichs XML & JSON 3
C xml validierung gegen xsd mit jdom: Fehlermeldung Cannot find the declaration of element ... XML & JSON 8
J JSon <-> XML zwecks Validierung XML & JSON 4
B Validierung nur beim einlesen oder auch beim schreiben? XML & JSON 4
S Validierung mit JAXB2 ohne root-element XML & JSON 10
H XML via XSD Validierung nicht möglich? XML & JSON 2
R XML-Validierung mittels XSD unter Eclipse XML & JSON 2
D jaxb validierung/verification vor marshalling XML & JSON 3
H Schema-Validierung mit JDOM XML & JSON 2
C Validierung klappt nicht mit Schema XML & JSON 2
G Validierung von XML-Dokumenten XML & JSON 7
G Problem mit XML-Schema Validierung mit Java XML & JSON 12
R Parsen einer XML ohne Validierung XML & JSON 2
leifg XSD Validierung mit JDK 1.3 XML & JSON 3
Zed XML dom4j xsd- Eigenschaften/Validierung XML & JSON 3
N XML Datei auslesen / Validierung XML & JSON 4
J schema-Validierung mit xerces und jdom: bug in java 1.4? XML & JSON 9
N XQUERY Abfrage über tool XML & JSON 2
N Wie komme ich an die Siblings über DOM? XML & JSON 15
N Probleme bei der Formatierung beim Einfügen und löschen über DOM XML & JSON 7
ms_cikar Excel Dateien über Dropbox zugreifen XML & JSON 0
S Konforme XML Datei über XSD erstellen XML & JSON 2
N Algemeines über xml XML & JSON 3
G XSL: Element über eine Variable ermitteln XML & JSON 4
H XMI über EMF / UML2 einlesen XML & JSON 7
U xmi parsen über emf XML & JSON 10
D xml über webservice XML & JSON 5
B xml datei über gui ändern XML & JSON 4
J Soap über Axis XML & JSON 3
J Zugriff auf Web Service über den Browser XML & JSON 12
E JAVA simple.JSONObject cannot be cast to simple.JSONArray XML & JSON 9
S Cannot find the declaration of element XML & JSON 2
A StAX API: Cannot Cast from QName to String! XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben