2000
         						
         						
         						
         
      Persönliche mobile Kommunikations-Endgeräte werden verwendet, die mit einer Bandbreiten-Informationsrate von mehr als 10 Mb/s arbeiten und die Multimedia-Dienstleistungen empfangen können.Diese These aus der Delphi-Studie 1998 wird nach Meinung der Befragten bis ca. 2005/2006 Realität werden.
Delphi'98
Bislang ist es bei XSLT beziehungsweise den
            Transformationen (fast) immer um das Ergebnis HTML
            gegangen. In diesem Kapitel soll es außerdem um ein anderes
            Zielformat gehen: die Wireless Markup
               Language (WML), in der Dokumente abgefaßt
            sein müssen, die von einem Handy oder Personal Digital Assistant
            (PDA) abgerufen werden können. Solche Daten kann
            man auf einem normalen
 Webserver wie dem Apache
            bereithalten; er muss lediglich ein paar neue
            MIME-Typen kennen, das heißt, die Datei
            mime.types im Konfigurationsverzeichnis des Apache
            muss die folgenden Zeilen beinhalten, damit der Server die
            WML-Daten ausliefern kann:
         
text/vnd.wap.wml                wml
application/vnd.wap.wmlc        wmlc
text/vnd.wap.wmlscript          wmls
application/vnd.wap.wmlscriptc  wmlsc
      Das s in den Endungen steht für Scripts, das c für eine kompilierte Datei. Für den Apache bedeutet dies, dass er wie gewohnt die Daten über HTTP ausliefert; erst das WAP-Gateway nimmt den Protokollwechsel vor.
WML ist anders als HTML. Aber
            es ist wie dessen Neudefinition (siehe Kapitel 19) eine XML-Anwendung. Das heißt
            unter anderem, wer WML schreibt oder, wie in diesem
            Fall, generiert, muss die üblichen XML-Vorgaben
            beachten: ordentliches Schachteln et cetera. Wer nicht selbst
            schreibt, sondern WML aus XML generiert,
            muss sich darüber keine Gedanken machen, weil XSLT
            und Tools wie XT und Saxon
            falsches Schachteln anmahnen. WML-Dokumente haben
            einen Dokumenttyp, dessen offizielle Definition auf dem Server
            des WAP-Forums liegt
Möglicherweise ändert
               sich das irgendwann, denn das WAP-Forum und das
               W3C arbeiten gemeinsam an einer neuen Version von
               WML. Die Beteiligten beim W3C stellen
               sich das WML der Zukunft als eine Teilmenge des
               kürzlich verabschiedeten
               XHTML vor.. 
         
Ausgangspunkt für die Beschäftigung mit WML
            beziehungsweise WAP war die Tatsache, dass einer
            der Autoren innerhalb der iX-Redaktion für die CeBIT
            2000 eine WML-Demonstration vorbereitet hat, bei
            der XML eine tragende Rolle spielte.
An
               dieser Stelle sei Jürgen Seeger, dem iX-Chefredakteur,
               gedankt, weil er nicht nur die Genehmigung dazu gegeben hat, die
               Quellen hier zu verwenden, sondern auch wesentlichen Anteil am
               Fortschritt und Debugging des XSLT-Codes
               hatte.
Natürlich sollte die CeBIT-Demonstration kein Selbstzweck sein, sondern eine tatsächliche Anwendungsmöglichkeit darstellen. Dazu sollten die Daten, die anlässlich eines kleinen Sonderheftes schon vorhanden waren, sowohl in HTML als auch in WML gewandelt online zur Verfügung stehen. Es handelte sich um eine Liste von Ausstellern zu bestimmten Themen, wie Application Server, Bluetooth oder Java, die man über das Web oder über das Handy leichter finden können sollte.
Basis für die Online-Dateien waren zwei Relationen in einer Datenbank: eine, in der die Firmen stehen, und eine, die die CeBIT-Daten beinhaltete. Man hätte sicherlich direkt aus dem DBMS über eine Reihe Reports HTML und WML erzeugen könen, aber wie dieses Kapitel zeigen wird, ist die Lösung, auf XML aufzubauen, variabler. Dies aus zwei Gründen: erstens, weil sich aus dem Zwischenformat XML viele Zielformate erzeugen lassen; und zweitens ermöglicht es ein Programm wie Saxon, beliebig viele Dateien über ein einziges Stylesheet zu generieren. Dementsprechend ging es zunächst darum, eine XML-Basisdatei zu generieren, aus der über XSLT unterschiedliche Sichten erzeugt werden sollten.

WML-Dateien dürfen nicht allzu groß sein, damit der Speicher eines Handys nicht überlastet wird. Es war also von vornherein darauf zu achten, die resultierenden Dateien möglichst klein zu halten. Wir gingen nach Gesprächen mit Experten davon aus, dass es auf keinen Fall mehr als 3000 Zeichen sein dürfen.
Jede WML-Einheit ist ein Deck (englisch für
            einen Kartenstapel). Inkonsequenterweise heißt das
            Top-Level-Element aber nicht deck, sondern
            wml. Konsequenterweise heißen die einzelnen Karten
            card. Innerhalb dieser ist eine HTML
            nicht unähnliche Syntax vorgesehen, wie das Ergebnis der
            Transformation zeigt
Vorgezogen ist das Listing an
               dieser Stelle, weil wir das Stylesheet noch gar nicht behandelt
               haben :-). Damit Sie einen Einblick bekommen, wie
            solch eine WML-Datei aussieht, wollen wir Ihnen ein
            Listing in dieser Auszeichnungssprache nicht länger
            vorenthalten. Die hier wiedergegebene Datei wap4.wml
            ist eine von circa 100, die mit dem später folgenden
            XSLT-Stylesheet erzeugt wird:
         
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE wml
  PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 
         "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml xmlns="http://www.wapforum.org/DTD/wml_1.1.xml">
   <template>
      <do type="options" label="Top">
         <go href="index.wml"/>
      </do>
   </template>
   <card id="wap1" title="WAP">
      <p>
         <strong>Comma Soft AG</strong>
         <br/>Halle     4, Stand A61<br/>Produkt: 
           helpLINE W@PDesk - WAP-Anbindung fuer 
           CallCenter und   Hotlines</p>
      <do type="accept" label="Next">
         <go href="#wap2"/>
      </do>
      <do type="prev" label="Prev">
         <go href="wap3.wml#wap5"/>
      </do>
   </card>
<!-- hier fehlen drei weitere Firmen, wie sich an den
     Verweisen auf die nächste Firma nachvollziehen lässt -->
   <card id="wap5" title="WAP">
      <p>
         <strong>Danet IS GmbH</strong>
         <br/>Halle     6, Stand C18, 
              Mitaussteller bei Intershop<br/>Produkt: 
              Distribution Nokia WAP-Server, WAP-Projekte</p>
      <do type="accept" label="Next">
         <go href="wap5.wml"/>
      </do>
      <do type="prev" label="Prev">
         <go href="#wap4"/>
      </do>
   </card>
</wml>
          Auffallend ist am Anfang der doppelte Eintrag des
            System-Bezeichner für die DTD, einmal einleitend aber noch einmal als
            Namensraumbezeichner im Top-Level-Element. Das war
            Saxon leider nicht abzugewöhnen. Ebenfalls
            auffallend (zumindest in Mitteleuropa), dass der Zeichensatz
            nicht ISO-8859-1
 ist. Das erwies sich insofern als
            unproblematisch, weil nicht alle Handys mit solchen
            encoding-Anweisungen etwas anzufangen wussten, sodass
            es erforderlich war, in einer kleinen Nachbearbeitung Details
            wie die Zeichensatzkodierung und den Namensraumbezeichner bei
            WML herauszufischen. Aus demselben Grund (nicht alle
            Handys sind gleich) war es auch nötig, auf Umlaute zu
            verzichten.