nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Sax: DTDs und XSDs für Parser in jar-Dat ei verstauen?

Von: Egon Schmid (egon.schmid@dischingen.de) [Profil]
Datum: 10.10.2009 19:50
Message-ID: <haqh9f$69b$02$1@news.t-online.com>
Newsgroup: de.comp.lang.java
Hallo!

Um eine XML-Datei korrekt zu parsen, benötigt man eine DTD- bzw.
xsd-Datei, die in der Datei meist als URL angegeben ist...

Es bringt viele gravierende Nachteile mit sich, wenn die Datei ständig
aus dem Internet geladen werden muss, allein schon, dass man stets eine
funktionierende Internet-Verbindung benötigt.

Auch die Datei irgendwo im Dateisystem zu speichern, ist auch keine
ideale Lösung, denn dann wären die XML-Dateien nicht mehr
systemunabhängig, weil in den XML-Dateien der komplette Dateipfad
angegeben werden muss...

Die ideale Lösung wäre, wenn diese in der jar-Datei vorhanden wäre.

Es geht mit dem EntityResolver:

[code]
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;

public class MyResolver implements EntityResolver {
public InputSource resolveEntity (String publicId, String systemId)
{
if (systemId.equals("http://www.myhost.com/today")) {
// return a special input source
MyReader reader = new MyReader();
return new InputSource(reader);
} else {
// use the default behaviour
return null;
}
}
}
[/code]

Doch wie lese ich die DTD-Datei aus dem jar und wie binde ich den
Resolver beim SAXParser ein?

Viele Grüße

Egon Schmid

[ Auf dieses Posting antworten ]

Antworten