Zum Hauptinhalt springen

17. XML Extensibility in DAV (XML-Erweiterbarkeit in DAV)

17. XML Extensibility in DAV (XML-Erweiterbarkeit in DAV)

Die XML-Namespace-Erweiterung ([REC-XML-NAMES]) wird in dieser Spezifikation verwendet, um das Hinzufügen neuer XML-Elemente zu ermöglichen, ohne dass Kollisionen mit anderen Elementnamen befürchtet werden müssen. Obwohl WebDAV-Anfrage- und Antwortkörper durch beliebige XML-Elemente erweitert werden können, die vom Nachrichtenempfänger ignoriert werden können, SOLLTE ein XML-Element im Namespace "DAV:" NICHT im Anfrage- oder Antwortkörper verwendet werden, es sei denn, dieses XML-Element ist in einem von einer WebDAV-Arbeitsgruppe überprüften IETF RFC explizit definiert.

Damit WebDAV sowohl erweiterbar als auch abwärtskompatibel ist, müssen sowohl Clients als auch Server wissen, wie sie sich verhalten sollen, wenn unerwartete oder nicht erkannte Befehlserweiterungen empfangen werden. Für die XML-Verarbeitung bedeutet dies, dass Clients und Server empfangene XML-Dokumente so verarbeiten MÜSSEN, als ob unerwartete Elemente und Attribute (und alle Kinder nicht erkannter Elemente) nicht vorhanden wären. Ein unerwartetes Element oder Attribut umfasst eines, das in einem anderen Kontext verwendet werden kann, hier aber nicht erwartet wird. Das Ignorieren solcher Elemente für Verarbeitungszwecke kann natürlich mit dem Protokollieren aller Informationen oder der Präsentation zum Debuggen konsistent sein.

Diese Einschränkung gilt auch für die Verarbeitung von DAV-Eigenschaftswerten durch Clients, wobei unerwartete XML-Elemente ignoriert werden SOLLTEN, es sei denn, das Schema der Eigenschaft erklärt etwas anderes.

Diese Einschränkung gilt nicht für das Setzen toter DAV-Eigenschaften auf dem Server, wo der Server alle XML-Elemente aufzeichnen MUSS.

Darüber hinaus gilt diese Einschränkung nicht für die Verwendung von XML, bei der XML zufällig der Inhaltstyp des Entitätskörpers ist, beispielsweise wenn es als Körper eines PUT verwendet wird.

Verarbeitungsanweisungen in XML SOLLTEN von Empfängern ignoriert werden. Daher SOLLTEN Spezifikationen, die WebDAV erweitern, KEINE Verarbeitungsanweisungen verwenden, um normatives Verhalten zu definieren.

Für alle in dieser Spezifikation definierten XML-Elemente sind XML-DTD-Fragmente enthalten. Korrektes XML wird jedoch aufgrund der Namespace-Verwendung und Erweiterungsregeln nach keiner DTD gültig sein. Insbesondere:

  • Elemente (aus dieser Spezifikation) befinden sich im Namespace "DAV:",
  • Die Elementreihenfolge ist irrelevant, sofern nicht anders angegeben,
  • Erweiterungsattribute KÖNNEN hinzugefügt werden,
  • Für Elementtypdefinitionen von "ANY" definiert die normative Textdefinition für dieses Element, was darin enthalten sein kann und was das bedeutet.
  • Für Elementtypdefinitionen von "#PCDATA" DÜRFEN Erweiterungselemente NICHT hinzugefügt werden.
  • Für andere Elementtypdefinitionen, einschließlich "EMPTY", KÖNNEN Erweiterungselemente hinzugefügt werden.

Beachten Sie, dass dies bedeutet, dass Elemente, die Elemente enthalten, nicht erweitert werden können, um Text zu enthalten, und umgekehrt.

Mit durch die obigen Regeln gelockerten DTD-Validierung sind die von den DTD-Fragmenten beschriebenen Einschränkungen normativ (siehe z.B. Anhang A). Ein Empfänger einer WebDAV-Nachricht mit einem XML-Körper DARF das XML-Dokument NICHT gemäß einer fest codierten oder dynamisch deklarierten DTD validieren.

Beachten Sie, dass dieser Abschnitt abwärtskompatible Erweiterbarkeitsregeln beschreibt. Es kann auch Zeiten geben, in denen eine Erweiterung so konzipiert ist, dass sie nicht abwärtskompatibel ist, beispielsweise die Definition einer Erweiterung, die ein in diesem Dokument definiertes XML-Element wiederverwendet, aber eines der von den DTDs in dieser Spezifikation geforderten Kindelemente weglässt.