[Python-de] lxml: GML-Schema Problem

Christian Baier chrbaier at gmx.de
Mi Feb 9 21:15:02 UTC 2011


Hi Liste,

ich wollte eine XML-Datei validieren und fand ein Codeschnipsel, das erstaunlich (ich bin noch Python-Neuling und immer mehr begeistert) einfach ist: 

"""
import sys
from lxml import etree

xsdDatei = "gb-erh.xsd"

schema_root = etree.parse( xsdDatei )
schema = etree.XMLSchema(schema_root)    # hier bricht er ab
parser = etree.XMLParser(schema=schema)    

xmlDatei = "E.Erh.Az6512.xml"
etree.parse( xmlDatei, parser=parser)
"""

Aber leider kommt er gar nicht dazu die Datei zu validieren, weil er beim parsen des Schemas schon abbricht:

Traceback (most recent call last):
  File ".\eigene_Scripte\Python\xmlvalidator.py", line 9, in <module>
    schema = etree.XMLSchema(schema_root)
  File "xmlschema.pxi", line 103, in lxml.etree.XMLSchema.__init__ (src/lxml/lxml.etree.c:116069)
XMLSchemaParseError: local list type: A type, derived by list or union, must have the simple ur-type definition as base type, not '{http://www.opengis.net/gml/3.2}doubleList'., line 118


Das ist offensichtlich nicht nur mein Problem, wie man mit 
google finden kann, z.B.:
http://www.devcomments.com/error-restricting-complexType-list-parsing-official-GML-schema-at108628.htm

Wohl ein Problem mit libxml2 und gml.

Leider habe ich nur "veraltete" Software zur Verfügung:
lxml-2.2.4.win32-py2.5.exe

Allerdings wüßte ich gern, wie ich herausbekomme, ob das nicht noch immer ein Problem ist, ohne Python neu zu installieren (was ich mir auf den PCs, wo ich es brauche, erstmal genehmigen lassen müsste).

Gibt's hier einen (XML-)Guru, der das ggf. Problem kennt, oder einordnen kann, ob das als Bug registriert ist, oder wann ein "Bug Fix" zu erwarten ist/das Problem beseitigt hat?



Zum nachvollziehen, unter:
http://www.bezreg-koeln.nrw.de/extra/33alkis/alkis_nrw.htm#anlage07
kann man sich das ZIP-Archiv runterladen:
http://www.bezreg-koeln.nrw.de/extra/33alkis/dokumente/Anlage_7_2010-05-28_4-1-5.zip
in dem dann die xsd-Datei:
Anlage_7_2010-05-28_4-1-5.zip/Anlage7/XSD/gb-erh.xsd
steht.

Viele Grüße

Christian









-- 
Schon gehört? GMX hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://www.gmx.net/de/go/toolbar



Mehr Informationen über die Mailingliste python-de