xs:anyAttribute

(Auszug aus "XML Schema" von Eric van der Vlist)

Wildcard zur Ersetzung durch beliebige Attribute.

<xs:anyAttribute
    id = xs:ID
    namespace = ( ( "##any" | "##other" ) | list of ( xs:anyURI | ( "##targetNamespace" | "##local" ) ) ) : "##any"
    processContents = ( "skip" | "lax" | "strict" ) : "strict"
    {beliebige Attribute mit einem Nicht-Schema-Namensraum}
    >
    Content: (xs:annotation?)
</xs:anyAttribute>

Kann auftreten innerhalb von: xs:attributeGroup (globale Definition), xs:complexType (lokale Definition), xs:complexType (globale Definition), xs:extension (komplexer Inhalt), xs:extension (einfacher Inhalt), xs:restriction (komplexer Inhalt), xs:restriction (einfacher Inhalt)

Beschreibung

xs:anyAttribute ist ein Wildcard, das es erlaubt, ein beliebiges Attribut, das zu einem von mehreren Namensräumen gehört, einzufügen. Diese Partikel kann überall dort verwendet werden, wo ein Verweis auf eine lokale Attribut-Deklaration verwendet werden darf (d.h. innerhalb der Definition eines complexType oder einer attributeGroup).

Die Liste der zugelassenen Namensräume wird mit Hilfe des Attributs namespace angegeben. Dieses Attribut erwartet eine Aufzählung von Namensraum-URIs. In dieser Liste haben zwei Werte eine besondere Bedeutung: ##targetNamespace steht für den Ziel-Namensraum, und ##local steht für lokale Elemente (ohne Namensraum). Diese Werte können gemeinsam mit normalen Namensraum-URIs in der Liste auftreten. Die Liste als Ganzes kann auch durch die beiden anderen Spezialwerte ersetzt werden: ##any steht für beliebige Namensräume generell und ist der Standardwert für das Attribut namespace, während ##other für beliebige Namensräume außer dem Ziel-Namensraum steht. Wenn ##other in einem Schema ohne Ziel-Namensraum verwendet wird, sind alle Namensräume zugelassen, und nur Attribute ohne Namensraum sind verboten.

Der Ziel-Namensraum, der zur Ermittlung der Spezialwerte ##targetNamespace und ##other verwendet wird, ist der Ziel-Namensraum (oder der Mangel an selbigem) des Schemas, in dem das Wildcard xs:anyAttribute auftritt. Dies ändert sich nicht, wenn ein Schema in ein anderes importiert wird.

Das Verhalten des Validierers bezüglich der zugelassenen Attribute kann mit dem Attribut processContents angegeben werden. Wenn processContents auf strict gesetzt ist (d.h. auf den Standardwert), müssen Schema-Prozessoren diese Attribute gegen ihre jeweiligen Schemas validieren und einen Fehler melden, wenn sie nicht gültig sind oder wenn die Schemas für ihre Namensräume nicht geholt werden konnten. Wenn der Wert skip ist, versuchen die Prozessoren nicht, diese Attribute zu validieren. Wenn der Wert lax ist, validiert der Validierer die Attribute, wenn er eine Definition für sie finden kann, anderenfalls überspringt er sie.

Wenn processContents skip ist (oder, gleichbedeutend, wenn der Wert lax ist und der Schema-Prozessor für ein Attribut kein Schema finden konnte), überspringt der Prozessor jede weitere Validierung der akzeptierten Attribute, die einen beliebigen Datentyp haben können.

Wenn processContents strict ist (oder, was auf dasselbe hinausläuft, wenn der Wert lax ist und der Schema-Validierer für ein Attribut ein Schema gefunden hat), müssen die für das Wildcard akzeptierten Attribute als globale Attribute in dem Schema für den jeweiligen Namensraum definiert sein.

Einschränkungen

Es fehlen einige Kombinationen für die Spezifikation von Namensräumen, die zur Definition offener Vokabulare mit mehreren Namensräumen nützlich sind. Dazu gehören die Fälle »jeder Namensraum, der im aktuellen Validierungskontext bekannt ist« und das Gegenstück »jeder Namensraum, der im aktuellen Validierungskontext nicht bekannt ist«.

Das Verhalten des Spezialwerts ##other für unqualifizierte Attribute in Schemas mit Ziel-Namensraum ist in der W3C XML Schema Recommendation widersprüchlich und sollte in einem zukünftigen Anhang klargestellt werden. Obwohl eine Passage dieser Empfehlung das Gegenteil besagt, lautet die wahrscheinlichste Interpretation, daß unqualifizierte Attribute nicht zugelassen sind, wenn ##other in diesen Schemas angegeben wird.

Attribute

id
Element-ID laut W3C XML Schema.

namespace
Zugelassene Namensräume.

processContents
Art der Validierung, die für die durch dieses Wildcard zugelassenen Attribute durchgeführt werden soll.

   

<< zurück vor >>

 

 

 

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

Copyright © 2003 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 Schema" 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