Erweiterbarkeit und Anpassbarkeit
1.2.3 Erweiterbarkeit und Anpassbarkeit

Eine sehr wichtige Eigenschaft von XML ist die Erweiterbarkeit; sie hat der Sprache ihren Namen ("extensible") gegeben. Mit XML lassen sich unterschiedliche Sprachen für unterschiedliche Dokumenttypen und Verwendungssituationen entwerfen. Darin besteht der Hauptunterschied zu HTML, der ersten Sprache, die ausschließlich für die Auszeichnung von Dokumenten im World Wide Web entwickelt wurde.

HTML stellt ein festes Vokabular für Dokumente zur Verfügung, das hauptsächlich auf die Publikation von miteinander verknüpften Texten ausgerichtet ist. Es orientiert sich daher stark an den Anforderungen an die Textstrukturierung im Buchdruck, wobei auch einige Besonderheiten der Ausgabe auf einem Medium wie einem Computerbildschirm berücksichtigt wurden. Durch diese Ausrichtung auf ein spezifisches Anwendungsgebiet ist es schwierig und in vielen Fällen unmöglich, HTML zu anderen Zwecken als zur Publikation von Texten zu verwenden. HTML lässt sich nur sehr umständlich als Format für Daten benutzen, die über eine einfache Darstellung auf einem Ausgabegerät hinaus weiterverarbeitet werden sollen, z. B. im Zusammenhang von elektronischen Geschäftsprozessen. Mit HTML lassen sich viele der für eine akustische Wiedergabe von Dokumenten wichtigen Informationen nicht ausdrücken; HTML verfügt weder über Sprachmittel zum Ausdruck grafischer Elemente noch zur Wiedergabe zeitlicher Informationen. In Verbindung mit HTML benötigt man zusätzliche Komponenten wie Applets oder Plugins, um solche und andere Anforderungen zu erfüllen.

XML erlaubt es dagegen, für jede dieser Anforderungen ein eigenes Vokabular zu verwenden, wobei aber jedes XML-Dokument aus hierarchisch geordneten Elementen besteht. Aus der XML-Perspektive ist HTML nur eines von vielen möglichen "Vokabularen". Für neue Plattformen und neue Zielsetzungen können neue Vokabulare entwickelt werden. Beispiele für XML-Vokabulare, die eine Darstellung von Dokumenten auf Plattformen erlaubt, für die HTML nicht geeignet ist, sind VoiceXML und WML.

Anwendungsfall: Voice Extensible Markup Language (VoiceXML)

VoiceXML ist eine Auszeichungssprache für akustische Ausgabeplattformen und kann beispielsweise für die Beantwortung von Anfragen durch das Automated Voice Response (AVR) System eines Callcenters eingesetzt werden. VoiceXML stellt Sprachmittel zur Verfügung, um folgende Aspekte der Interaktion zwischen Mensch und Maschine zu erfassen:

  • Spracherkennung,

  • Erkennung von DTMF-Eingaben (Tonwahl-Impulsen),

  • Aufnahme von Sprache,

  • synthetische Sprachausgabe (text-to-speech),

  • Ausgabe von Audiodateien,

  • Telefondienste wie Anrufweiterleitung (transfer) und Verbindungsabbruch (disconnect).

Beispiel 1.4, das in ähnlicher Form in der Spezifikation von VoiceXML 2.0 enthalten ist, beschreibt eine Quizfrage im Format von VoiceXML.

Beispiel 1.4 Ein einfaches VoiceXML-Dokument

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE vxml PUBLIC "-//W3C//DTD VOICEXML 2.0//EN" 
     "http://www.w3.org/TR/voicexml20/vxml.dtd">
<vxml version="2.0">
  <form>
    <field name="preisfrage">
      <prompt>
        Wieviel Millionen Kilometer ist die Erde von der Sonne entfernt?
      </prompt>
      <grammar src="planeten.grxml" type="application/grammar+xml"/>
    </field>
    <block>
      <submit next="http://www.planet.example.com/preisfrage2.jsp"/>
    </block>
  </form>
</vxml>

Wie die meisten XML-Dokumente beginnt ein VoiceXML-Dokument mit einer XML-Deklaration, gefolgt von einer Deklaration des verwendeten Vokabulars (in diesem Falle ist das VoiceXML 2.0). Die wesentlichen Informationen bilden den Inhalt des Elements vxml. Innerhalb dieses Elements findet sich üblicherweise ein Dialog, der durch eines der beiden Elemente form oder menu eingegrenzt wird. In einem menu wird dem Benutzer eine Liste angeboten, aus der er einen Eintrag auswählen kann. Formulare (form) können verwendet werden, um Nutzereingaben in Variablen zu speichern und davon abhängig Aktionen auszuführen. Das Element grammar definiert die Sprach-"Grammatik", nach der Angaben zu verarbeiten sind; hier ist sie durch das Attribut type als "Speech Recognition Grammar" bestimmt. VoiceXML-Grammatiken spezifizieren, welche gesprochenen Wörter von einer VoiceXML-Anwendung verwendet werden können und wie sie interpretiert werden sollen. Ähnlich wie Auswahllisten auf einer Webseite bieten sie eine begrenzte Menge von Auswahloptionen. Grammatiken werden jeweils für einzelne VoiceXML-Anwendungen entwickelt.

Das Beispiel zeigt, wie auf der Grundlage der von XML zur Verfügung gestellten Sprachmittel eine Sprache für einen spezifischen Anwendungsfall entwickelt werden kann. XML selbst stellt nur eine Syntax — Regeln für die Kombination von Zeichen — zur Verfügung. Die Semantik (Bedeutung) der Sprachmittel, die den Regeln dieser Syntax entsprechen, wird festgelegt, wenn ein XML-Vokabular für eine konkrete Anwendungssituation bestimmt wird.

Anwendungsfall: Wireless Markup Language (WML)

WML, die Wireless Markup Language, geht auf die Initiative des WAP-Forums zurück und wurde entwickelt, um strukturierte Dokumente auf Geräten mit niedriger Leistungsfähigkeit hinsichtich Bildschirmauflösung, Taktrate des Prozessors und Arbeitsspeicher darzustellen. Ein WML-Dokument wird auch als Deck bezeichnet; jedes Deck besteht aus einzelnen Cards. Beim Abruf vom Server wird sofort das gesamte WML-Dokument (Deck) geladen und im internen Speicher des Clients, in der Regel eines Mobiltelefons oder PDAs, abgelegt. Auf dem Display erscheint nur die erste Card des Dokuments (Start-Card). Die anderen Cards des WML-Dokuments sind dann über Links aus dem Speicher abrufbar, ohne dass eine erneute Anfrage an den Server notwendig ist.

Beispiel 1.5 zeigt wiederum eine Quizfrage, diesmal allerdings als WML-Dokument.

Beispiel 1.5 WML-Dokument


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 
"http://www.wapforum.org/DTD/wml.xml">
<wml>
  <card>
    <p><b><i>Preisfrage</i></b></p> 
    <p><strong>Wie groß ist der Erdradius?</strong></p>
    <do type="accept" label="6.378 km">
      <go href="http://www.planet.example.com/richtig.xml"/>
    </do>
    <do type="accept" label="12.756 km">
      <go href="http://www.planet.example.com/falsch.xml"/>
    </do>
  </card>
</wml>

Die Beispiele zu VoiceXML und zu WML zeigen, dass es bei der Verwendung von XML darauf ankommt, konzeptionelle Modelle für den jeweiligen Gegenstandsbereich zu entwickeln. Zum konzeptionellen Modell von WML gehören Decks und Cards, die dann durch die entsprechenden XML-Sprachmittel wiedergegeben werden. Wir werden uns im Lauf der Lerneinheit mit verschiedenen, zum Teil sehr komplexen Modellierungen von Informationen beschäftigen, die als Basis für die Entwicklung von XML-Vokabularen verwendet werden.