-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
XML-Schema (XSD) with sequence constraint #83
Comments
Interessehalber: Warum prüft ihr gegen das XSD? Im Kern ist es glaub ein XtfReader o.ä., der leider die Reihenfolge nicht wirklich gut handeln kann und darum auch ilivalidator wohl den Fehler nicht finden kann. |
Die genauen Hintergründe kenne ich ehrlich gesagt auch nicht. Es geht aber um eine Software, die speziell für den digitalen Genehmigungsprozess der Nutzungsplanung entwickelt wurde und beim Datenimport auf dieses XSD aufbaut und es auch zur Struktur-Prüfung des eingereichten XTF nutzt. Das Problem ist nun, dass verschiedene Softwares wohl ein unterschiedliches Verständnis davon haben, wie die Attributreihenfolge aussehen müsste (v.a. bei verschachtelten Klassen mit abstrakten Basis-Klassen). Ich habe mich schon gefragt, ob ich im XSD einfach alle xsd:sequence constraints durch xsd:all ersetzen könnte, wollte mich aber zuerst erkundigen, ob es vielleicht einen offiziellen Weg gibt. |
Die Reihenfolge ist im INTERLIS-Referenzhandbuch definiert/geregelt (Kap. 3.3.7 Codierung von Klassen); darum macht xsd:sequence Sinn. Dass der ilivalidator das (noch) nicht richtig prüft, ist ein Mangel im ilivalidator (claeis/ilivalidator#86). Das im Generieren des XSD anzupassen/oder zu ändern, scheint mir falsch, weil damit eine einfache Validierung mit xsd-Werkzeugen entfallen würde. |
In Ordnung, vielen Dank für die Information. Dass die Reihenfolge der Attribute klar geregelt ist, war mir tatsächlich nicht bewusst. Dann werden wir nach anderen Lösungen suchen und der Issue kann aus meiner Sicht geschlossen werden. Besten Dank. |
Es ist doch noch eine Frage aufgetaucht, nämlich ob ili2c in unserem Fall ein korrektes XSD generiert. Das Originalmodell, auf das ich mich beziehe, findet sich unter: https://models.geo.be.ch/Grundlagen_und_Planung/Raumplanung_Grundstueckskataster/Nutzungsplanung_BE_V1_0.ili Nachfolgend versuche ich das entscheidende Konstrukt und die daraus folgende Problematik schematisch aufzuzeigen: CLASS BasisKlasse (ABSTRACT) = ASSOCIATION BasisKlasse_Zusatz (ABSTRACT) = CLASS KonkreteKlasse EXTENDS BasisKlasse = ASSOCIATION KonkreteKlasse_Zusatz EXTENDS BasisKlasse_Zusatz = ili2c generiert daraus ein XSD mit folgender, zwingend einzuhaltender Attributreihenfolge:
Wenn ich es richtig verstehe, entspricht diese Reihenfolge der Regelung gemäss Kap. 3.3.7 im Referenzhandbuch.
Ich hoffe, ich habe alles richtig und einigermassen verständlich wiedergegeben. Jedenfalls stellen wir uns nun folgende Fragen:
|
m.E. ist das RefHB eindeutig. In Bezug auf obiges Beispiel: Die ASSOCIATION BasisKlasse_Zusatz wird eingebettet bei CLASS BasisKlasse (dass die konkreten Zielklassen noch nicht klar sind, spielt keine Rolle). Die Definition der ASSOCIATION KonkreteKlasse_Zusatz ändert daran nichts mehr (auch mit dieser ASSOCIATION sind ja auch immer noch Erweiterungen der Zielklassen möglich, so dass weitere/andere Objekte referenziert werden könnten (auch das würde an der Einbettung/Reihenfolge der Rolle ZusatzAttr bei BasisKlasse nichts ändern)). |
We have encountered a problem with a XML-Schema (XSD) that was generated with ili2c.
If the sequence of elements (e.g. the sequence of attributes within a class) in a XTF-file does not match the sequence given by the XSD, the validation of the XTF against the XSD fails. This is probably due to the xsd:sequence constraint in the XSD.
Is there any posibility to generate a XSD without this constraint?
The text was updated successfully, but these errors were encountered: