XML-Technologien
Posts 1-4 of 4
-
Dennis Sterzenbach Premium MemberThe company name is only visible to registered members.XSD und Elemente mit zusätzlichem Namespace
Hallo Zusammen,
ich habe seit kurzem ein kleines Problem bei der Formulierung einer XSD Schemadatei. Die Validierung erfolgt bei mir unter Linux bzw. Windows und PHP 5.Bislang gab es auch keine Probleme dabei. Vor kurzem aber wollte ich gerne meine Daten auf mehrere Dateien aufteilen und logisch sortiert ablegen, die zusätzlichen Daten werden dann in der Hauptdatei per XInclude eingebunden.
Meine Lösung sah bislang so aus:
a) <xsd:schema> ergänzt um xmlns:xi="
http://www.w3.org/2001/XInclude"
b) Den Namespace importiert
<xsd:import namespace="
http://www.w3.org/2001/XInclude" schemaLocation="xinclude.xsd" />
c) Den Typen entsprechend referenziert
<xsd:element ref="xi:include" minOccurs="0" maxOccurs="unbounded" />
Folgendes sind nun hierbei die Probleme:
1.) Ich habe bei meiner Lösung die Definition des XInclude heruntergeladen und als lokale Datei xinclude.xsd abgelegt. - Das empfinde ich als unschön, da ich somit lokale Kopien der Standards verwalten müsste.
Gibt es da eine bessere Lösung?
2.) Ich musste zusätzlich diese Definition sogar modifizieren, da bei der Validierung der "includeType" bemängelt wurde als "not determinist".
Hat jemand hierfür eine Erklärung und eine elegantere Lösung parat?
Vielen Dank im Voraus für Eure Hilfe!
Beste Grüße
Dennis Sterzenbach
- 30 Sep 2007, 01:03 am
-
Martin FellerThe company name is only visible to registered members.Re: XSD und Elemente mit zusätzlichem Namespace
Hi Dennis,
ich bin kein ausgesprochener XML-Experte und kenne auch XInclude gerade
erst seit 5 Minuten :-). Vielleicht hilft's trotzdem:
1.) Ich habe bei meiner Lösung die Definition des XInclude heruntergeladen und als lokale Datei xinclude.xsd abgelegt. - Das empfinde ich als unschön, da ich somit lokale Kopien der Standards verwalten müsste. Gibt es da eine bessere Lösung?
Wuerde mich nicht allzusehr stoeren, zumal du dann nicht auf eine Internetverbindung
angewiesen bist. Vor einiger Zeit hatte ein user genau dieses Problem im
Build-Prozess unserer Software, weil eine Datei einen Link auf eine externe DTD
enthielt und er nur eingeschraenkten Internetzugang hatte.
Die Stub-Generierung schlug mit einer relativ unverstaendlichen Meldung fehl.
2.) Ich musste zusätzlich diese Definition sogar modifizieren, da bei der Validierung der "includeType" bemängelt wurde als "not determinist".
Hat jemand hierfür eine Erklärung und eine elegantere Lösung parat?
Zumal du von Schema sprichst: Was spricht gegen die alleinige Nutzung von xsd:import?
Du kannst auch hiermit Inhalte in getrennten Dateien definieren und sie bei Bedarf
per xsd:import einbinden.
XInclude sieht noch ziemlich neu aus. Vielleicht ist die PHP Validierung fehlerhaft oder
unterstuetzt noch nicht alles? Mir ist so etwas aehnliches mal mit XML Schema Unterstuetzung
in Perl passiert.
Viele Gruesse, Martin
- 30 Sep 2007, 02:22 am
-
Dennis Sterzenbach Premium MemberThe company name is only visible to registered members.Re^2: XSD und Elemente mit zusätzlichem Namespace
Hi Martin,
danke für die schnelle Antwort.
Martin Feller schrieb:
2.) Ich musste zusätzlich diese Definition sogar modifizieren, da bei der Validierung der "includeType" bemängelt wurde als "not determinist".
Hat jemand hierfür eine Erklärung und eine elegantere Lösung parat?
Zumal du von Schema sprichst: Was spricht gegen die alleinige Nutzung von xsd:import?
Du kannst auch hiermit Inhalte in getrennten Dateien definieren und sie bei Bedarf
per xsd:import einbinden.
xsd:import verwende ich ja um den zusätzlichen Namespace XInclude einzubinden:
<xsd:import namespace="
http://www.w3.org/2001/XInclude"
schemaLocation="xinclude.xsd" />
Ich habe ja aber leider die Inhalte - also die XML Dateien - selbst so vorliegen, dass diese für das Gesamtergebnis zusammengeführt werden müssen. Ich habe dort also im Groben so etwas:
<datei name="datei1.xml">
<xi:include ...."datei2.xml" />
<xi:include ...."datei3.xml" />
....
</datei>
Soweit ich weiß, läßt sich das auf herkömmlichem Wege nicht anders realisieren.
Viele Grüße
Dennis Sterzenbach
This post was modified on 30 Sep 2007 at 09:01 am.- 30 Sep 2007, 09:00 am
-
Martin FellerThe company name is only visible to registered members.Re^3: XSD und Elemente mit zusätzlichem Namespace
Ah, ok, dann hatte ich dich wohl falsch verstanden. Ich dachte es ging nur um
die Modularisierung der Schema Dateien selbst.
Habe einen Thread gefunden, der aber leider auch nur mit einem Verweis
auf XInclude ended ;-)
http://lists.xml.org/archives/xml-dev/200101/msg00772.html
Sorry, ich kann dir da nicht weiterhelfen; viel Glueck damit!
Martin
- 30 Sep 2007, 4:33 pm
