Hallo Romy,
Da ich dein(e) XMLs nicht kenne, kann ich nichts dazu sagen.
Wie sind denn nun die Elemente definiert? Wird ein Namensraum nun verwendet oder nicht?
Ich lese deinen Text und ich habe trotzdem Schwierigkeiten es genau zu verstehen. Du hast recht, vielleicht sollte ich es mal mit Beispielen probieren.Also die XSD enthält die Zeile:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Du sagtest, dass wäre zwingend.
Ja.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> oder
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
Die XML-Dateien enhalten im Root-Element folgende Varianten:
<IrgendeinRootElement xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="blubber.xsd">
oder
<IrgendeinRootElement xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="blubber-Version.xsd">
oder
<IrgendeinRootElement>
Dazu sei zu sagen, dass die XSD nicht online verfügbar ist, sondern nur verteilt wird. Und wenn ich die Definition vom Namensraum jetzt richtig verstanden habe, haben wir keinen. (weil kein romy:<elementname> ;))
Das ist korrekt. Ihr habt keinen eigenen Namnsraum für eure Elemente.
Die Angabe von »xmlns:xsd="http://www.w3.org/2001/XMLSchema"« ist an sich überflüssig weil das nur den Namensraum für die Elemente im Schema definiert, von denen ihr in eurem XML aber keines verwendet.
OK, es tut nicht weh, dass diese Angabe da ist, aber sie stiftet so nur Verwirrung.
Variante 1 wird problemlos validiert, da blubber.xsd mit übergeben wird. Variante 2 wird nicht validiert, da blubber-Version.xsd nicht existiert (das verstehe ich im Übrigen).
Das ist korrektest Verhalten seitens eines Schema-Prozessors.
Variante 3 wird nicht validiert. (na wahrscheinlich weil gar nichts angegeben ist)
Genau, bei <IrgendeinRootElement> geht es um ein stink normales XML.
Meine Hauptfrage, welche Notation ist sinnvoll und ist überhaupt eine sinnvoll. (wenn dann eh nur 1. nehme ich an)
Ganz korrekt wäre:
<IrgendeinRootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="blubber.xsd">
Grüße
Thomas