Hi,
ich habe das Problem, dass es mir nicht gelingt eine XML-Datei gegen eine Schemadatei, die sich im Web befindet zu validieren. In XML-Spy klappt das alles. Somit bin ich mir sicher, dass in der Syntax keine Fehler gemacht wurden.
(Das validieren gegen ein lokale Schema-Datei funktioniert mit JDOM auch)
Ich verwende den SAX-Parsers mit Hilfe von JDOM.
Hier ist mein Beispiel:
PI aus der XML-Datei mit XML-Schema im Web:
xsi:schemaLocation="http://www.osci.de/xmeld131 http://www.osci.de/xmeld131/xmeld-nachrichten.xsd" (funktioniert nicht)
PI aus der XML-Datei mit XML-Schema lokal:
xsi:schemaLocation="http://www.osci.de/xmeld131 c:/xmeld-nachrichten.xsd" (funktioniert)
Java-Code zur Verarbeitung:
SAXBuilder saxBuilder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);
saxBuilder.setFeature("http://apache.org/xml/features/validation/schema", true);
// mit dieser Zeile habe ich gehofft die externe Schemaquelle zu beschreiben, funktioniert aber nicht. saxBuilder.setProperty("http://apache.org/xml/properties/schema/external-schemaLocation", "http://www.osci.de/xmeld131 http://www.osci.de/xmeld131/xmeld-nachrichten.xsd" );
docXml = saxBuilder.build(inFile);
Exception wird ausgelöst, wenn da die externe Schemadatei nicht gefunden wird.
(org.jdom.input.JDOMParseException: Error on line 2 of document file:/C:/test.xml: cvc-elt.1: Cannot find the declaration of element )
Ich habe mit Ethereal geschaut, ob HTTP-Requests stattfinden. Das passiert nur bei XML-Spy. Wenn ich das ganze unter Java laufen lasse, geht kein Request ins Web. Ich habe die Proxy-Einstellungen der entsprechenden Java-Runtime überprüft und die scheinen zu stimmen. (Proxy-Einstellungen des Internet Explorers sind maßgeblich. Das erwartet auch XML-Spy, obwohl ich sonst mit Firefox arbeite.)
Hat jemand eine Idee, wo das Problem zu suchen ist?
Danke Lutz
ich habe das Problem, dass es mir nicht gelingt eine XML-Datei gegen eine Schemadatei, die sich im Web befindet zu validieren. In XML-Spy klappt das alles. Somit bin ich mir sicher, dass in der Syntax keine Fehler gemacht wurden.
(Das validieren gegen ein lokale Schema-Datei funktioniert mit JDOM auch)
Ich verwende den SAX-Parsers mit Hilfe von JDOM.
Hier ist mein Beispiel:
PI aus der XML-Datei mit XML-Schema im Web:
xsi:schemaLocation="http://www.osci.de/xmeld131 http://www.osci.de/xmeld131/xmeld-nachrichten.xsd" (funktioniert nicht)
PI aus der XML-Datei mit XML-Schema lokal:
xsi:schemaLocation="http://www.osci.de/xmeld131 c:/xmeld-nachrichten.xsd" (funktioniert)
Java-Code zur Verarbeitung:
SAXBuilder saxBuilder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);
saxBuilder.setFeature("http://apache.org/xml/features/validation/schema", true);
// mit dieser Zeile habe ich gehofft die externe Schemaquelle zu beschreiben, funktioniert aber nicht. saxBuilder.setProperty("http://apache.org/xml/properties/schema/external-schemaLocation", "http://www.osci.de/xmeld131 http://www.osci.de/xmeld131/xmeld-nachrichten.xsd" );
docXml = saxBuilder.build(inFile);
Exception wird ausgelöst, wenn da die externe Schemadatei nicht gefunden wird.
(org.jdom.input.JDOMParseException: Error on line 2 of document file:/C:/test.xml: cvc-elt.1: Cannot find the declaration of element )
Ich habe mit Ethereal geschaut, ob HTTP-Requests stattfinden. Das passiert nur bei XML-Spy. Wenn ich das ganze unter Java laufen lasse, geht kein Request ins Web. Ich habe die Proxy-Einstellungen der entsprechenden Java-Runtime überprüft und die scheinen zu stimmen. (Proxy-Einstellungen des Internet Explorers sind maßgeblich. Das erwartet auch XML-Spy, obwohl ich sonst mit Firefox arbeite.)
Hat jemand eine Idee, wo das Problem zu suchen ist?
Danke Lutz