Fallbacks

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

Dokumente, die Ressourcen auf anderen Sites referenzieren, sind all den üblichen Problemen des Webs unterworfen: Dokumente werden gelöscht, Dokumente werden verschoben, Server stürzen ab, DNS-Einträge werden nicht schnell genug aktualisiert und vieles mehr. Die bisher aufgeführten Beispiele scheitern vollständig, wenn die Ressource am anderen Ende eines href-Attributs nicht gefunden werden kann. XInclude bietet Autoren jedoch ein Mittel, im Fall eines fehlenden Dokuments einen alternativen Inhalt anzugeben. Jedes XInclude-Element kann ein einziges xi:fallback-Kindelement enthalten. Wenn das entfernte Dokument nicht geladen werden kann, ersetzt anstelle des Inhalts des entfernten Dokuments der Inhalt des xi:fallback-Elements das xi:include-Element. Zum Beispiel:

<xi:include href="AlanTuring.xml">
  <xi:fallback>Hoppla! Alan Turing war nicht zu finden!</xi:fallback>
</xi:include>

Es gibt keine Einschränkungen dafür, was ein xi:fallback-Element enthalten kann. Es kann einfachen Text enthalten, ein Kindelement, gemischten Inhalt oder auch ein anderes xi:include-Element, das aufgelöst werden soll, wenn das oberste nicht aufgelöst werden kann. Dieses xi:include-Element versucht beispielsweise dasselbe Dokument von drei unterschiedlichen Sites zu laden:

<xi:include href="http://www.beispiel.us/data.xml">
  <xi:fallback>
    <xi:include href="http://www.beispiel.fr/data.xml">
      <xi:fallback>
        <xi:include href="http://www.beispiel.cn/data.xml">
          <xi:fallback>Konnte das Dokument weder in den USA, Frankreich noch in China finden.</xi:fallback>
        </xi:include>
      </xi:fallback>
    </xi:include>
  </xi:fallback>
</xi:include>

Ein xi:include-Element darf nicht mehr als ein xi:fallback-Kind haben und darf keine anderen xi:include-Kindelemente oder andere Kindelemente aus dem XInclude-Namensraum enthalten. Sonst werden alle Kinder eines xi:include-Elements ignoriert, die sich nicht im XInclude-Namensraum befinden, und erscheinen nach dem Einschließen nicht im Ergebnisdokument. Das xi:fallback-Element wird ignoriert, wenn die Ressource, die vom href-Attribut des xi:include-Elternelements angegeben wird, erfolgreich geladen wurde. Ein xi:fallback-Element darf nur als Kind eines xi:include-Elements erscheinen. Es ist ein fataler Fehler, wenn es ein anderes Elternelement hat.

Fallbacks werden nur bei Ressourcenfehlern verarbeitet, meist bei I/O-Fehlern, die beim Laden der entfernten Ressource auftreten. Andere Probleme – beispielsweise, wenn das Dokument nicht wohlgeformt ist, aber parse="xml" angegeben wurde, oder wenn ein einzuschließenden Textdokument Zeichen enthält, die in XML unzulässig sind, oder wenn es innerhalb des xi:include-Elements einen Syntax-Fehler gibt – sind fatale Fehler. Wenn eines dieser Dinge passiert, hört der Prozessor einfach mit der Verarbeitung auf und meldet einen Fehler.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de