Document Structure Description oder DSD ist eine Schemasprache, die dazu dient, Klassen von XML-Dokumenten zu beschreiben, die alle dieselben syntaktischen Anforderungen bezüglich ihrer Struktur und ihres Inhalts haben. DSD wurde in Kooperation mit BRICS und AT&T Labs Research entwickelt.

Entwicklungsziele

Bearbeiten

Die Entwicklungsziele von DSD waren:[1]

  • wenige und einfach zu verstehende Sprachbestandteile (auf boolescher Logik und regulären Ausdrücken basierend) und zu enthalten
  • auch für Nicht-XML-Experten einfach zu verstehen sein
  • Für die meisten praktischen Einsatzzwecke ausdrucksstärker als andere Dokumenttyp-Definitionssprachen zu sein

Konzepte

Bearbeiten

Das zentrale Konzept von DSD ist, dass jedes DSD-Schema aus einer Liste von Regeln besteht. Ein validierender XML-Parser muss für alle Elemente eines XML-Dokuments alle Regeln verarbeiten. Die Regeln enthalten dabei declare- und require-Abschnitte. Declare-Abschnitte definieren, welchen Inhalt (Subelemente und Zeichendaten) und welche Attribute für das Element zulässig sind. Require-Abschnitte definieren erweiterte Einschränkungen auf Inhalte und Attribute. Dabei werden Regelbedingungen und erweiterte Einschränkungen durch boolesche Logik beschrieben, während die Werte der Attribute und der Inhalt der Elemente durch reguläre Ausdrücke beschrieben werden.

Beispiel

Bearbeiten

Ein Beispiel für eine DSD ist:

<dsd xmlns="http://www.brics.dk/DSD/2.0"
 xmlns:my="http://example.com">

 <if><element name="my:foo"/>
  <declare>
   <attribute name="first"/>
   <attribute name="second"/>
   <contents>
    <element name="my:bar"/>
   </contents>
  </declare>
 </if>

 <if><element name="my:bar"/>
  <declare>
   <contents>
   </contents>
  </declare>
 </if>

</dsd>

Das Element "foo" im XML-Namensraum "http://example.com" kann die beiden Attribute "first" und "second" haben. Der Inhalt des "foo"-Elements kann ausschließlich aus dem "bar"-Element bestehen, welches es enthalten muss. Das "bar"-Element wiederum darf weder Attribute, Text noch weitere Subelemente enthalten, muss also leer sein.

Ein XML-Dokument das bezüglich oben aufgeführter DSD-Spezifikation valide wäre, wäre z. B.:

<foo xmlns="http://example.com" second="2">
 <bar/>
</foo>
Bearbeiten

Einzelnachweise

Bearbeiten
  1. Anders Moller, Michael I. Schartzbach: Document Structure Description 2.0 (Memento des Originals vom 5. März 2007 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.brics.dk. BRICS, 2003 (englisch)