Pfadangabe zur DTD in der XML-Datei
Verfasst: Dienstag 9. November 2004, 09:28
Hi!
Nachdem mir gestern so prompt geholfen wurde (danke Dookie!), versuche ich es gleich mit meinem nächsten Problem. Ich habe mehrere XML-Dateien, zu jeder gibt es auch eine DTD, und alle Dateien liegen in einem Verzeichnis. Als Beispiel nehme ich die Datei constants.xml, deren erste Zeilen so aussehen: Die entsprechende DTD constants_schema.dtd liegt wie erwähnt im selben Ordner.
Nun kann ich die XML-Datei problemlos gegen die DTD validieren:
Läuft durch und meckert nicht. Wenn ich aber im Anschluss die Datei parsen will:
kommt folgende Meldung:
Wieso kann er mit dem relativen Pfad validieren, aber nicht parsen?
Gruß,
Michael
Nachdem mir gestern so prompt geholfen wurde (danke Dookie!), versuche ich es gleich mit meinem nächsten Problem. Ich habe mehrere XML-Dateien, zu jeder gibt es auch eine DTD, und alle Dateien liegen in einem Verzeichnis. Als Beispiel nehme ich die Datei constants.xml, deren erste Zeilen so aussehen:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE LISTOFCONSTANTS SYSTEM "constants_schema.dtd">
<LISTOFCONSTANTS>
Nun kann ich die XML-Datei problemlos gegen die DTD validieren:
Code: Alles auswählen
def val(xml_datei):
xv=xmlval.XMLValidator()
dt=DTDHandler(xv.parser)
bh=BadOrderErrorHandler(xv.app.locator)
xv.set_error_handler(bh)
xv.set_dtd_listener(dt)
xv.parse_resource(xml_datei)
Code: Alles auswählen
from xml.sax import make_parser
def read_in_constants(xml_datei):
ch=Const_Handler() #Selbstgebaut
saxparser=make_parser()
saxparser.setContentHandler(ch)
saxparser.parse(xml_datei)
Code: Alles auswählen
File "C:\Python23\lib\urllib2.py", line 233, in get_type
raise ValueError, "unknown url type: %s" % self.__original
ValueError: unknown url type: constants_schema.dtd
Gruß,
Michael