Oliver Schmid

Seminar Web-Technologien

Sommersemester 1999

Warum XML?

  • HTML
  • nicht erweiterbar
  • nur einfache Struktur
  • keine Validierung

  • HTML ist zu sehr beschränkt.
  • SGML
  • komplexe Struktur, dafür erweiterbar
  • strenge Validierung
  • Spezifikation über 200 Seiten

  • SGML ist zu komplex.
  • XML
  • erweiterbar
  • validierbar
  • einfache Spezifikation (40 Seiten)
  • Style Sheets (XSL)
  • verbesserte Links (XLL)

  • XML ist HTML ähnlich.
  • Unterschiede zu HTML
  • XML verlangt korrekte Schachtelung der Elemente.
  • Es gibt nur ein einziges Root-Element.
  • Entities brauchen eine DTD.
  • Bei Elementnamen ist Groß- und Kleinschreibung zu beachten.
  • White-Space im Inhalt ist relevant.
  • Es gibt nur wenige reservierte Zeichen.
  • ...
  • Wie sieht XML aus?
  • <p>Das ist ein Element.</p>
  • <b>Eine Zeichenfolge im Fettdruck.</b>
  • <!-- Das ist ein Kommentar. --> B

    Aufbau einer XML-Datei

  • Definitionen
  • XML-Version
  • XSL-File (Referenz)
  • <?xml version="1.0" standalone="yes"?>

    <?xml-stylesheet type="text/xsl" href="dateiname.xsl"?>

  • DTDs (Document Type Definition)
  • <?xml-version="1.0"?>

    <!doctype Personen [

    <!element Personen Teilnehmer*>

    <!element Teilnehmer (Vorname+,Nachname+)>

    <!element Vorname (#PCDATA)>

    <!element Nachname (#PCDATA)>

    <!attlist Teilnehmer ID #required>

    ]>

  • Beispiel
  • <?xml-version="1.0"?>

    <?xml-stylesheet type="text/xsl" href="Seminar.xsl"?>

     

    <Personen> <!-- Das Root-Element -->

    <Teilnehmer ID="1">

    <Vorname>Christoph</Vorname>

    <Nachname>Rendel</Nachname>

    </Teilnehmer>

    <Teilnehmer ID="2">

    <Vorname>Lars</Vorname>

    <Nachname>Vogelgesang</Nachname>

    </Teilnehmer>

    <Teilnehmer ID="3">

    <Vorname>Hasan</Vorname>

    <Nachname>Karaaslan</Nachname>

    </Teilnehmer>

    <Teilnehmer ID="4">

    <Vorname>Oliver</Vorname>

    <Nachname>Schmid</Nachname>

    </Teilnehmer>

    </Personen>

  • Links in XML
  • <h3>Homepage der <a href="http://fim.informatik.uni-mannheim.de">Fachschaft Informatik und Mathematik</a></h3>

    Homepage der Fachschaft Informatik und Mathematik

    Warum XSL?

  • Beschränkungen von CSS
  • ist nicht imstande, eine Einheit (etwa Überschrift) an weiteren Stellen im Dokument erneut anzuzeigen.
  • kann keine Zwillings-Beziehungen schaffen
  • ist keine Programmiersprache
  • ist auf Sprachen der westlichen Welt orientiert

  • XSL überwindet diese Beschränkungen (aus DSSSL entwickelt)
  • Aufbau einer XSL-Datei

  • Definitionen
  • XML-Version
  • Stylesheet-Definition

  • Dateiname entsprechend XML-Definition
  • <?xml version="1.0"?>

    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

    ... Stylesheet ...

    </xsl:stylesheet>

    Stylesheet: XSL-Specification of W3C

  • XSL-Struktur
  • xsl:import und xsl:include
  • xsl:macro
  • xsl:constant
  • xsl:template
  • <xsl:template match="pattern">
  • ...
  • Mustererkennung (Patternmatching)
  • pattern1 | pattern2 Alternativen
  • * Wildcard
  • / Root Knoten
  • . aktueller Knoten
  • .. Elternknoten
  • ...
  • Verarbeitung in Templates
  • xsl:apply-templates select="pattern"
  • xsl:for-each
  • xsl:sort order=ascending|descending)
  • xsl:if test="bedingung"
  • xsl:choose mit xsl:when test="bedingung"
  • xsl:value-of select="pattern"
  • ...
  • Beispiel
  • <xsl:template match="/">

    <table border="3pt">

    <tr style="font-size:12pt"; color:blue">

    <td>Vorname</td>

    <td>Nachname</td>

    </tr>

    <xsl:apply-templates/>

    </table>

    </xsl:template>

  • Beispiel
  • <xsl:template match="Personen">

    <xsl:for-each select="Teilnehmer">

    <tr style="font-size:12pt; color:red">

    <td>

    <xsl:value-of select="Vorname"/>

    </td>

    <td>

    <xsl:value-of select="Nachname"/>

    </td>

    </tr>

    </xsl:for-each>

    </xsl:template>

    XML - Tools und Anwendungen

  • XML-Tools
  • XML4J (XML-Parser in Java von IBM, mit DTD)
  • msxml (XML-Parser in Java von MS, ohne DTD)

  • versch. XSL-Prozessoren (Koala, Lotus)
  • XML-Anwendungen
  • RDF Resource Description Framework (PICS, CDF, CRP)
  • CML und MML
  • XML - Links

  • XML-Links und Quellen
  • SelfXML
  • What is XML?
  • LearnXML in 11.5 minutes
  • World Wide Web Consortium
  • FirstSurf

    <?XML!>