Namensräume dienen in XML dazu, Elemente und gegebenenfalls auch Attribute eindeutig zu kennzeichnen. So können Überschneidungen bei der Namensgebung vermieden werden. Gibt es mehrere Elemente, die den gleichen Namen, aber eine andere Bedeutung im Kontext haben, können diese anhand des zugewiesenen Namensraumes unterschieden werden. Das Präfix eines Elements (z.B. xsl: von <xsl:value-of>) dient als Kürzel für die zugewiesene Namensraum-URI, die gewöhnlich im Wurzelelement angegeben wird. Das Präfix wird auch in XPath-Ausdrücken benötigt, um auf die Elemente aus dem richtigen Namensraum zugreifen zu können.
Das <ns>-Element ist für unser Beispiel notwendig, da in der Instanz arche.xml der Namensraum http://www.schematron.info/arche verwendet wurde. Werden in einem Schematron-Schema Elemente mittels XPath adressiert, die diesem Namensraum angehören, muss ein <ns>-Element hinzugefügt werden, um ein Präfix für diesen Namensraum zu definieren.
<schema xmlns="http://purl.oclc.org/dsdl/schematron"> <ns uri="http://www.schematron.info/arche" prefix="arc"/> (1) <pattern> <rule context="arc:tier[@fleischfresser='ja']"> (2) <report test="parent::*/arc:tier[@fleischfresser='nein']"> (2) Es gibt Fleischfresser und Pflanzenfresser in einer Unterkunft. Die Tiere sind keine Nahrungsquelle! </report> </rule> </pattern> </schema>
| (1) | Das Element <ns> weist dem im Attribut uri angegebenen Namensraum ein Präfix zu. |
| (2) | Bei Verwendung des <ns>-Elements kann nun bei den verwendeten XPath - Ausdrücken das Präfix verwendet werden. Ohne <ns>-Element ist kein Präfix definiert. |
| << zurück | vor >> |
Copyright © dpunkt.verlag GmbH 2011
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken. Ansonsten unterliegt dieses Kapitel aus dem Buch "Schematron - Effiziente Business Rules für XML-Dokumente" 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.