Hallo zusammen,
ich teste schon seit einigen Stunden das Parsen mit Xerces 2.9.0. Ich weiß echt nicht mehr weiter: Wenn ich innerhalb meiner XML -Datei auf die XSD referenziere, so wird problemlos geparst, soweit ich aber mit der Property external-schemaLocation arbeiten möchte, so funktioniert es nicht:
Wenn ich in meiner XML-Datei folgendes drinlasse, so funktioniert es ohne external-schemaLocation.
Das Dumme ist nur, dass ich die XML-Dateien nur gegen eine Schemadatei validieren will, die auswechselbar sein soll. Deswegen brauche ich die external-schemLocation -Funktionalität
Hier mein Quellcode für den Parser:
Meine XML-Datei:
Mit der 3. Zeile funktioniert der Parser ohne external-SchemaLocation, doch diese Zeile ist standardmäßig nicht drin in meinen XML-Dateien, weshalb ich also external-SchemaLocation-Funktionalität brauche...
Meine XSD-Datei beginnt so:
Ich danke euch für jeden Tip!
gruß maxpade
ich teste schon seit einigen Stunden das Parsen mit Xerces 2.9.0. Ich weiß echt nicht mehr weiter: Wenn ich innerhalb meiner XML -Datei auf die XSD referenziere, so wird problemlos geparst, soweit ich aber mit der Property external-schemaLocation arbeiten möchte, so funktioniert es nicht:
Wenn ich in meiner XML-Datei folgendes drinlasse, so funktioniert es ohne external-schemaLocation.
Code:
<StoerungRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.company.com/Data C:\stoerung.xsd" xmlns="http://www.company.com/Data">
Das Dumme ist nur, dass ich die XML-Dateien nur gegen eine Schemadatei validieren will, die auswechselbar sein soll. Deswegen brauche ich die external-schemLocation -Funktionalität
Hier mein Quellcode für den Parser:
Code:
DOMParser parser = new DOMParser();
parser.setFeature("http://xml.org/sax/features/validation",true);
parser.setFeature("http://apache.org/xml/features/validation/schema",true);
parser.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
//Hier mache ich was falsch, aber was
parser.setProperty("http://apache.org/xml/properties/schema/external-schemaLocation", "http://www.company.com/Data file:///C:stoerung.xsd");
ErrorChecker errors = new ErrorChecker();
parser.setErrorHandler(errors);
parser.parse(xmlFileName);
Meine XML-Datei:
Mit der 3. Zeile funktioniert der Parser ohne external-SchemaLocation, doch diese Zeile ist standardmäßig nicht drin in meinen XML-Dateien, weshalb ich also external-SchemaLocation-Funktionalität brauche...
Code:
<?xml version="1.0" encoding="UTF-8"?>
<StoerungRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.company.com/Data C:\stoerung.xsd" xmlns="http://www.company.com/Data">
<Stoerungsmeldung>
<Version>000.000</Version>
<technischeQuittung>
<Meldung>OK</Meldung>
<Fehlercode>SMF501</Fehlercode>
</technischeQuittung>
</Stoerungsmeldung>
</StoerungRoot>
Meine XSD-Datei beginnt so:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.company.com/Data" targetNamespace="http://www.company.com/Data" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:element name="StoerungRoot">
Ich danke euch für jeden Tip!
gruß maxpade