XML-Technologien

XML-Technologien

Posts 1-4 of 4
  • Dennis Sterzenbach
    Dennis Sterzenbach    Premium Member
    The 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
  • Martin Feller
    Martin Feller
    The 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
  • Dennis Sterzenbach
    Dennis Sterzenbach    Premium Member
    The 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.
  • Martin Feller
    Martin Feller
    The 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