Thomas J.S.: Namensraeume und W3C Schema

Beitrag lesen

Hallo,

ich habe ein Schema und ein Element des Schemas moechte ich "auf" ein anderes Schema setzen.
Das Schema fuer die Bibliothek habe ich, aber ich schaffe es nicht '<BUCH>' auf ein anderes Schema zu setzen.

Ich verstehe nicht was du mit "auf ein anderes Schema setzen" meinst.
Möchtest du im <BUCH> einen anderen Namensraum verwenden, oder möchtest du ein anderes XML-Schema für den Inhalt vom diesem <BUCH> verwenden?

Du kannst inkludierte Schemas auch redefiniren (d.h du kannst komplexe und einfach Typen (durch Einschränkung bzw. Erweiterung) ableiten und sie dabei redefinieren)

<xs:redefine schemaLocation="buch.xsd">
  <xs:complexType name="BUCH">
    xs:complexContent
      <xs:restriction base="BUCH">
       <-- Inhaltsmodell -->
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
</xs:redefine>
...

<xs:element name="BUCH" type="BUCH" />

Es ist aber ein rcht kompliziertes Gebiet, denn man kann nur vollständige Schemas übernehmen und nur auf globaler Ebene (also es ist nicht möglich nur einige Definitionen in einem Schema zu übernehme, andere aber nicht)
Andere Möglichkeit gibt es mit externen geparsten Entities oder mit XInclude.

Grüße
Thomas