Document Structure Description

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 12. Juli 2020 um 11:42 Uhr durch imported>Solomon Dandy(2636943) (Unerwünschte Doppelkategorisierung entfernt (Kategorie:XML-basierte SpracheKategorie:Beschreibungssprache)).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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

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

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

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>

Weblinks

Einzelnachweise

  1. Anders Moller, Michael I. Schartzbach: Document Structure Description 2.0. BRICS, 2003 (englisch)