Script XML. Martin Ruppert

Größe: px
Ab Seite anzeigen:

Download "Script XML. Martin Ruppert"

Transkript

1 Script XML Martin Ruppert 5. März 2015

2 Inhaltsverzeichnis 1 Einführung in XML XML-Elemente Attribute Cascading Style Sheets (CSS) Namensräume Document Type Definition (DTD) XSL Transformation (XSLT) Baumstruktur Daten serialisieren XML-Anwendungen

3 Dieser Text ist nur als Begleitmaterial zur Vorlesung zu verwenden verwendete Literatur: Alfred Nussbaumer/Dr. August Mistlbacher, XML, mitp 3

4 Kapitel 1 Einführung in XML Dieses Kapitel soll die Möglichkeit geben, sich rasch in das Thema XML einzuarbeiten und so einen ersten Einblick zu gewinnen. Es werden wichtige, grundlegende Konzepte anhand von Beispielen gezeigt. Diese Beispiele werden kommentiert und sollten daher auch von Neulingen verstanden werden. Als erstes besprechen wir, wie man mit XML-Elementen und Attributen so genannte wohlgeformte XML-Dokumente erstellt und mithilfe von CSS 1 ausgibt. Anschließend wird die Idee von Namensräumen vorgestellt, um schließlich XML- Dokumente zu erstellen, die durch eine Document Type Definition kurz DTD beschrieben werden. Solche XML-Dokumente werden gültig genannt. Es folgt eine Darstellung der Extended Stylesheet Language Transformation (XSLT), einer mächtigen Sprache zur Ausgabe von XML-Dokumenten in unterschiedlichen Formaten. Ein etwas theoretischer Abschnitt behandelt die Struktur von XML-Daten, ein Thema, welches für viele fortgeschrittenere Aspekte wie beispielsweise dem Parsen von XML-Dateien grundlegend ist. Zuletzt stellen wir einige praktische Werkzeuge für das Arbeiten mit XML vor. Die spezialisierten XML-Editoren sind zwar ein bequemes Hilfsmittel mit entsprechenden unterstützenden Features, stellen aber keineswegs eine Voraussetzung für das Arbeiten mit XML dar. XML-Dateien sind einfache ASCII-Texte und können daher mit jedem beliebigen Texteditor geschrieben werden. Wenn man XML kennen lernen möchte, ist es sicher zunächst eine große Hilfe, die Verwandschaft von XML und HTML zu verwenden. Daher wird in dieser Einführung auf die Analogien und die Unterschiede dieser beiden Auszeichnungssprachen immer wieder hingewiesen. Es soll jedoch schon jetzt klargestellt werden, 1 Cascading Style Sheets 4

5 dass XML viel mehr ist als eine verbesserte Version von HTML. 1.1 XML-Elemente Ein HTML-Quelltext besteht aus so genannten Tags wie <p>, <h1>, <table> usw. Diese Tags haben eine wohldefinierte Bedeutung. Diese Bedeutung ist oft eine zweifache. Das Tag <h1> gibt beispielsweise an, dass es sich um eine Überschrift handelt und die Darstellung des Inhaltes daher in einer entsprechend großen Schrift und fett gedruckt erfolgen soll. HTML-Tags können also den Text einerseits strukturieren und legen andererseits die Art der Ausgabe im Browser fest. Eine XML-Datei enthält keine Tags, sondern Elemente. Diese Elemente sehen im Prinzip genauso aus wie HTML-Tags: Sie bestehen aus dem Start-Tag, dem eigentlichen Inhalt und dem End-Tag. Ihre Bezeichnung kann jedoch praktisch frei gewählt werden. Wenn man also eine XML-Datei schreibt, muss man sich zuerst die Namen für die Elemete überlegen. Wie bei einer HTML-Datei es genau ein Wurzel- Tag <html> gibt, muss es auch bei einer XML-Datei ein bestimmtes Element geben, dem alle anderen Elemente untergeordnet sind. Diese besondere Element nennt man Dokumentelement oder Wurzelelement. Tippen Sie den Text in einem beliebigen Editor und speichern Sie ihn mit der Endung xml. Anschließend können Sie die so erstellte XML-Datei mit einem Browser laden. computer1.xml: <?xml version="1.0" encoding="iso "?> <!-- --> <!-- Kommentar: Eine erste XML-Datei --> <!-- --> <computer> <hersteller> PC-Maker </hersteller> <ram> 128MB </ram> 5

6 <festplatte> 20GB </festplatte> </computer> Das Dokumentelement von computer1.xml hat den Namen computer Ihm sind die Elemente <hersteller>, <ram> und <festplatte> untergeordnet. Man spricht in diesem Zusammenhang auch von Kindelementen oder umgekehrt von einem Elternelement. Beachten Sie, dass alle Elemente mit einem End-Tag abgeschlossen werden müssen. In HTML gibt es ja Tags wie <br>, die einfach für sich alleine stehen können. Auch wird es von den Browsern meist toleriert, wenn das Ende-Tag fehlt. Der Browser versucht in einem solchen Fall selber herauszufinden, wo das End-Tag stehen sollte. In XML sind derartige schlampige Schreibweisen verboten. Die Darstellung, die der Browser nach dem Laden von computer1.xml zeigt, ist gewöhnungsbedürftig. Die XML-Elemente erscheinen gemäß ihrer Stellung: Das Dokumentelement steht ganz links, die Kindelemente werden eingerückt. Damit kommen wir zu einem wesentlichen Unterschied von XML zu HTML. XML-Elemente beschreiben grundsätzlich nur die Struktur der in der XML-Datei enthaltenen Information. In unserem Beispiel enthält das XML-Dokument Daten zu einem Computer, die in drei Kindelementen abgelegt sind. Damit ist eine Struktur wie in einer Datenbank festgelegt. Im Gegensatz zu HTML-Tags enthalten XML-Elemente keinerlei Information, wie ihr Inhalt dargestellt werden soll. Daher kann ein Browser eine XML-Datei nicht so darstellen, wie man es von HTML-Dateien gewohnt ist. Die erste Zeile unserer XML-Datei enthält die XML-Deklaration. Sie gibt die verwendete XML-Version an. Optional kann mit dem Attribut encoding auch ein Zeichensatz ausgewählt werden. Der hier spezifizierte Zeichensatz ist jener für westeuropäische Schriften und ermöglicht daher die Verwendung der deutschen Sonderzeichen. Wir sehen auch, dass man einen Kommentar in einer XML-Datei genauso schreibt wie in einer HTML-Datei. Wenn man Daten zu mehreren Computern in einer XML-Datei unterbringen möchte, benötigt man eine neue Struktur. Vernünftigerweise wird man die Struktur, mit der man die Informationen zu einem Gerät speichert, nicht ändern zumindest, wenn sich diese Struktur bereits bewährt hat. Daher muss man sich ein neues Dokumentelement überlegen. Das Ergebnis könnte folgendermaßen aussehen. computer2.xml: 6

7 <?xml version="1.0" encoding="iso "?> <pcliste> <computer> <hersteller> PC-Maker </hersteller> <ram> 128MB </ram> <festplatte> 20GB </festplatte> </computer> <computer> <hersteller> PC-Fabrikant </hersteller> <ram> 256MB </ram> <festplatte> 40GB </festplatte> </computer> </pcliste> Das neue Dokumentelement heißt pcliste. Es besitzt zwei Kindelemente vom Typ computer, die wie gehabt selber wiederum jeweils drei Kindelemente haben. Wenn der Browser diese Datei lädt, erkennt er, dass es sich um eine XML-Datei handelt und aktiviert einen XML-Parser. Dieser überprüft, ob die XML-Syntax erfüllt ist und es sich um eine wohlgeformte Datei handelt. Wenn ja, wird sie dargestellt, ansonsten zeigen Fehlermeldungen die vermutliche Ursache. In unserem Fall ist die Datei wohlgeformt und wir erhalten mit dem Browser das entsprechende Bild. Es gibt praktisch zwei Arten von XML-Elementen. Elemente mit Kindelementen, durch die eine Datenstruktur aufgebaut wird, und Elemente, die keine Kindelemente besitzten, dafür aber Inhalt haben und so die Träger der eigentlichen Daten sind. Wichtig ist, dass alle Elemente korrekt ineinander geschachtelt sind. 7

8 Wenn das nicht der Fall ist, liefert der Parser eine Fehlermeldung. Das ist bei der nächsten Datei der Fall. computer3.xml: <?xml version="1.0" encoding="iso "?> <computer> <hersteller> PC-Maker </hersteller> <ram> 128MB </ram> <festplatte> <zugriffszeit> 20ms 20GB </festplatte> <!-- Hier müßte das End-Tag von "zugriffszeit" stehen --> </zugriffszeit> </computer> Das neu eingefügte Element <zugriffszeit> ist ein Kindelement von <festplatte>. Daher muss das End-Tag von <zugriffszeit> vor dem End-Tag von <festplatte> stehen. Die XML-Datei computer3.xml ist daher nicht wohlgeformt. Im Gegensatz zu XML werden nicht korrekt geschachtelte HTML-Tags von den Browsern toleriert und meistens auch richtig interpretiert. Der aufmerksame Zuhörer wird bemerkt haben, dass auch in XML Leerzeichen, Tabulatoren oder leere Zeilen keinen Einfluss für die Ausgabe besitzen. Dieser Leerraum (white-space) genannte Teil der XML-Datei wird vom Parser ignoriert bzw. auf ein einziges Leerzeichen komprimiert. Ein XML-Dokument, das neben der korrekten Schachtelung der verwendeten Elemente weitere grundlegende Strukturregeln befolgt, nennt man wohlgeformt. Nur die Inhalte von wohlgeformten XML-Dateien werden vom Parser akzeptiert. XML-Dokumente, die nicht wohlgeformt sind, sollen nicht weiter bearbeitet werden. Es ist beispielsweise nicht sinnvoll, den Inhalt von solchen Dokumenten auf einem Bildschirm oder einem Drucker auszugeben. 8

9 1.2 Attribute Attribute sind ebenfalls von den HTML-Tags bekannt. XML-Attribute sind jedoch wiederum im Detail anders. Ihr Name kann wie die Namen der Elemente weitgehend frei und klarerweise sinnvoll gewählt werden, sodass man durch die Bezeichnung des Attributes einen klaren auf seine Bedeutung hat. Diese Freiheit bei der Namensgebung von Elementen und Attributen erfordert ein gewisses Maß an Kreativität, bietet jedoch den nicht zu unterschätzenden Vorteil, dass man durch entsprechende Sorgfalt bei der Gestaltung seiner XML-Datei einen leicht verstehbaren Text erhält. Man kann so je nach dem Verwendungszweck der XML-Datei sein eigenes Markup definieren. XML ermöglicht also das Erstellen eines semantischen Markup. Wir erweitern die XML-Datei zur Beschreibung eines Computers durch zwei Attribute. Gleichzeitig wird das Element <zugriffszeit> richtig gestellt und durch ein neues Element <kapazität> ergänzt. computer4.xml: <?xml version="1.0" encoding="iso "?> <computer type="notebook"> <hersteller> PC-Maker </hersteller> <ram art="sdram" schaltzeit="5ns"> 128MB </ram> <festplatte> <zugriffszeit> 8ms </zugriffszeit> <kapazität> 20GB </kapazität> </festplatte> </computer> Das Element <computer> hat ein Attribut type. Das Element <ram> besitzt zwei Attribute art und schaltzeit 9

10 Man fragt sich mit Recht, warum die Schaltzeit der Ram-Bausteine in einem Attribut und nicht in einem Kindelement von <ram> abgelegt ist. Dies ist in diesem Beispiel auch nicht vernünftig zu argumentieren. Das Beispiel soll jedoch auf die Problematik Attribut versus Kindelement aufmerksam machen. Beim Schreiben von Attributen muss man zwei Dinge beachten. XML-Attribute haben immer einen Attributnamen und einen Attributwert. Der Attributwert muss unbedingt angegeben werden und er muss in Anführungsstrichen oder in Apostrophen eingeschlossen werden. Ähnlich wie das HTML-Tag <br> kann man auch in XML Elemente definieren, die keinen Inhalt besitzen. Solche Elemente nennt man leere Elemnte und schreibt sie mit einem Schrägstrich am Ende des Tags 2 Das wäre an und für sich sinnlos, weil ja XML-Elemente eigentlich genau den Sinn haben, entweder die Struktur zu definieren (und daher als Inhalt Kindelemente zu haben) oder eben Daten zu speichern. Wenn aber leere Elemente Attribute besitzen, sind sie so ebenfalls Träger von Information und machen daher Sinn. Zur Illustration sollen bei der Beschreibung eines Computers einige leere Elemente benutzt werden. Wie weit ihre Verwendung in diesem Beispiel tatsächlich sinnvoll ist, soll momentan dahingestellt bleiben. computer5.xml: <?xml version="1.0" encoding="iso "?> <computer type="notebook"> <hersteller> PC-Maker </hersteller> <ram art="sdram" schaltzeit="5ns" kapazität="128mb" /> <festplatte zugriffszeit="8ms" kapazität="20gb" /> </computer> Die XML-Datei enthält dieselben Daten, aber in einer anderen Struktur. Die Ausgabe durch den Browser ist dementsprechend. 2 Ein leeres Element mit dem Namen Titel schreibt man daher in der Form <Titel/>. Es wäre aber auch die ausführlichere Schreibweise <Titel></Titel> korrekt. 10

11 1.3 Cascading Style Sheets (CSS) Bis jetzt haben wir uns um eine Darstellung der XML-Daten durch einen Browser in einer Form, wie wir sie von HTML-Dokumenten gewöhnt sind, überhaupt nicht gekümmert. Dies hat mindestens zwei Gründe. Auf der einen Seite sind XML-Dokumente viel allgemeiner als HTML-Dateien. HTML-Dateien besitzen praktisch keinen anderen Zweck, als eine bestimmte Information in einer durchdachten, übersichtlichen Form im WWW zu präsentieren. Die Daten, die in einer XML-Datei abgelegt sind, können hingegen auf vielfältige Art und Weise genutzt werden, nur eine davon ist ihre Darstellung im WWW. Andererseits ist die Trennung von Inhalt und Darstellung ein Grundprinzip von XML. Dies ist ja eigentlich eine logische Konsequenz dessen, dass XML-Dateien auf unterschiedlichste Art genutzt werden können. Wird der Inhalt auf einem Computermonitor dargestellt, müssen die Formatierbefehle bestimmt anders lauten, als wenn die Darstellung auf einem WAP-Handy oder in gedruckter Form erfolgt. Daher wird es zu ein und derselben XML-Datei unterschiedliche Stylesheet-Dateien geben, in denen die entsprechenden Formatierungsbefehle stehen. Grundsätzlich gibt es zwei Möglichkeiten, Inhalte einer XML-Datei für ein Ausgabemedium zu formatieren. Die Cascading Style Sheets (CSS) bieten einen einfachen, von HTML bekannten Zugang und besitzten in der Version2.0 einen äußerst umfangreichen Satz an Befehlen. Leider werden viele recht interessante CSS-Befehle von den Browsern noch immer nicht unterstützt. Noch mächtiger sind die Sprachen XSLT und XSL-FO. Diese Sprachen wurden im Gegensatz zu CSS eigens für XML-Dokumente geschaffen und erlauben es, sie für eine Vielzahl von unterschiedlichen Ausgabeformaten in einer höchst selektiven Form aufzubereiten. Es gibt auch XML-Dateien, mit denen Texte, Grafiken, Bilder oder mathematische Formeln gespeichert werden. Unterschiedliche Textverarbeitungsprogramme wie OpenOffice, KOffice oder WordPerfect verwenden bereits das XML-Format. Dieses könnte so zu einem gemeinsamen Austauschformat unterschiedlicher Textverarbeitungsprogramme werden. Hier geht es also nicht darum, die Daten der XML-Datei durch eine Transformation in ein anderes Format zu bringen. Die Daten werden in diesem Fall von einer XML-Anwendung gelesen und ausgewertet. 11

12 Man nennt diesen Vorgang Parsen einer XML-Datei 3. Zur Demonstration der Ausgabe von XML-Daten durch CSS wird folgende XML-Datei verwendet: jemen.xml: <?xml version="1.0" encoding="iso "?> <?xml-stylesheet href="jemen.css" type="text/css"?> <buch> <buchtitel> Jemen </buchtitel> <kapitel> <titel> 1) Land und Leute </titel> <abschnitt> Der vor dem Bauch getragene Krummdolch ist das Statussymbol eines jeminitischen Mannes. Er dient als Schmuck und ist allgegenwärtig. </abschnitt> <abschnitt> Die Blätter der Qatsträucher werden als moderates Rauschmittel gekaut. Diese Pflanzen wachsen nur in Höhenlagen zwischen 1000m und 2500m. </abschnitt> </kapitel> <kapitel> <titel> 2) Anreisemöglichkeiten </titel> <abschnitt> Die Anreise auf dem Landweg ist nicht empfehlenswert. Auch der Seeweg ist keine gute Altermative </abschnitt> </kapitel> 3 Wenn ein Browser eine XML-Datei einliest und anschließend grafisch darstellt, handelt es sich genau um diesen Vorgang. Das XML-Dokument wird geparst. In diesem Sinne ist jeder XML-fähige Browser eine XML-Anwendung 12

13 </buch> Die CSS-Befehle stehen in einer eigenen Datei jemen.css. Diese Datei wird durch eine so genannte XML-Stylesheet-Verarbeitungsanweisung in das XML- Dokument eingebunden. Sie steht unmittelbar nach der XML-Deklaration in der zweiten Zeile der XML-Datei. Ihr Inhalt besteht aus dem Namen der CSS-Datei und der Angabe, welche Art von Stylesheets diese Datei enthält. Bei der Bezeichnung der CSS-Datei sind auch Pfadangaben möglich. Dies ist insbesondere dann interessant, wenn man für seine CSS-Dateien ein eigenes Unterverzeichnis verwendet. Auch relative Pfade können angegeben werden. jemen.css: buchtitel {display: block; font-family: Arial; font-size: 20pt; text-alignment: center; color: blue; } kapitel { font-size: 12pt; font-family: Times } titel {display: block; font-size: 15pt; color: blue; } In der CSS-Datei jemen.css wird für die Elemente <kapitel>, <buchtitel> und <titel> eine Stilklasse (style sheet) definiert. Entsprechend diesen Vereinbarungen wird der Inhalt der Elemente ausgegeben. Dabei ist zu beachten, dass <titel> und <abschnitt> Kindelemente von <kapitel> sind und daher alle CSS-Befehle, die für <kapitel> definiert sind, auch für <titel> und <abschnitt> gültig sind. CSS-Befehle werden von Elternelementen auf ihre Kindelemente vererbt. Vererbte Befehle können aber durch eine eigene CSS-Regel des Kindelementes überschrieben werden. In unserem Beispiel werden daher die Inhalte der Elemente <titel> mit einer Schriftgröße von 15 Punkten dargestellt. 13

14 Die Eigenschaft display: block bewirkt, dass der Inhalt der Elemente mit Zeilenumbruch erfolgt. 1.4 Namensräume Bei der Verwendung von CSS-Regeln für die Ausgabe von Daten stößt man leider auf manche Grenzen, die man bei HTML nicht hat. Vertraute und oft benutzte Features wie das Erstellen von Links oder das Einbinden von Grafiken kann man bei XML in Kombination mit CSS nur mit fortgeschrittenen Techniken, die von der aktuellen Generation von Browsern nicht unterstützt wird, realisieren. Wir haben hier ein Beispiel, dass man mit den von XML im Kern zur Verfügung gestellten Fähigkeiten nicht auskommt. Dieses Problem wäre nämlich sofort gelöst, wenn man HTML-Befehle in einer XML-Datei benutzen könnte. Immer, wenn in einem XML-Dokument Elemente einer fremden Auszeichnungssprache wie eben beispielsweise HTML (oder XSL oder MathML oder XLink usw.) Verwendung finden sollen, muss ein so genannter Namensraum vereinbart werden. Dieses unglaublich mächtige Konzept soll nun anhand von HTML-Namensräumen demonstriert werden. Namensräume erweitern die Fähigkeit von XML. Mit jedem Namensraum ist eine Auszeichnungssprache assoziiert, deren Markup im XML-Dokument verwendet werden kann. Namensräume werden mithilfe des Attributs xmlns (xml-namespace) vereinbart. Dieses Attribut kann in jedem Element verwendet werden. Die Auszeichnungssprache des deklarierten Namensraumes kann in allen Kindelementen benutzt werden. Wird der Namensraum im Dokumentelement vereinbart, ist die Verwendung des entsprechenden Markups im gesamten XML-Dokument möglich. Wir erweitern die XML-Datei jemen.xml um einen HTML-Link. jemen1.xml: <?xml version="1.0" encoding="iso "?> <?xml-stylesheet href="jemen.css" type="text/css"?> <buch> <buchtitel> 14

15 Jemen </buchtitel> <kapitel> <titel>3) Politik</titel> <abschnitt>am wurde in Adan die jeminitische Republik proklamiert. </abschnitt> <abschnitt>seither ist der Jemen wieder eine politische Einheit </abschnitt> </kapitel> <kapitel> <titel>4) Wirtschaft</titel> <abschnitt>viele Jemeniten arbeiten in Saudi-Arabien als Gastarbeiter.</abschnitt> <abschnitt xmlns:html=" <html:a href=" class="link">weitere Informationen </html:a> </abschnitt> </kapitel> </buch> Der erste Teil der XML-Datei ist unverändert und daher in komprimierter Form wiedergegeben. Der HTML-Namensraum wird erst im letzten abschnitt -Element vereinbart. Er wird für ein HTML-Link benutzt. Man beachte, dass bei der Vereinbarung des HTML-Namensraumes das Präfix html angegeben werden muss. Dieses Präfix steht dann auch verpflichtend bei jedem benutzten HTML-Tag, hier beim Anchor-Tag <a>. HTML-Tags müssen klein geschrieben werden. Bei der gleichzeitigen Verwendung mehrerer Namensräume werden durch Voranstellen der jeweiligen Präfixe Namenskollisionen vermieden. Solche Namenskonflikte wären gegeben, wenn zwei Namensräume Elemente mit denselben Namen beinhalten würden. Der Text des <html:a>-elementes muss so dargestellt werden, dass der Link als solcher auch erkannt wird. Daher wird die CSS-Datei durch folgende Regel ergänzt: {\tt.link {text-align:center text-decoration:underline } 15

16 Das Verwenden von HTML-Tags im XML-File widerspricht der Grundidee, dass das XML-Dokument nur strukturierte Daten enthält, aber keine Information für deren Ausgabe. Trotzdem ist die Verwendung von HTML-Namensräumen für Dokumente sinnvoll, die in erster Linie im WWW verwendet werden. Das nächste Beispiel zeigt, dass man durch die Verwendung eines HTML- Namensraumes auch die Möglichkeit bekommt, Skriptsprachen in XML-Dokumenten zu verwenden. Wir verwenden die bekannte Skriptsprache JavaScript, um das aktuelle Datum zu ermitteln. Das HTML-Tag <html:scripttype="text/javascript"> wird zweimal verwendet: einmal zum Definieren einer Funktion, die mithilfe des Date -Objektes das Datum liefert, und einmal, um diese Funktion an geeigneter Stelle im XML-Text aufzurufen. Der HTML-Namensraum wird im Dokumentelement vereinbart und umfasst daher das gesamte XML-Dokument. jemen2.xml: <?xml version="1.0" encoding="iso "?> <?xml-stylesheet href="jemen.css" type="text/css"?> <buch xmlns:html=" <html:script type="text/javascript"> function Datum(){ var date=new Date(); var monat=date.getmonth()+1; var datum=date.getdate()+"."+monat+"."+date.getyear(); alert(datum) } </html:script> <buchtitel>jemen</buchtitel> <kapitel> <titel>5) Klima</titel> <abschnitt>an der Küste hat es im Sommer und im Winter über 30 Grad.</abschnitt> <abschnitt>in den Wüstengebieten ist es genauso heiß, aber sehr trocken. </abschnitt> <abschnitt>nur in den Bergen kann man angenehme Temperaturen erwarten. </abschnitt> 16

17 <titel>6) Reisekleidung</titel> <abschnitt>männer und Frauen sollten möglichst viel Haut bedecken. </abschnitt> <abschnitt> <html:a href=" class="link"> Weitere Informationen </html:a> </abschnitt> <abschnitt> <html:form> <html:input type="button" value="aktuelles Datum" onclick="datum()" /> </html:form> </abschnitt> </kapitel> </buch> Man beachte, dass die XML-Datei trotz dieser HTML-Einschübe noch immer wohlgeformt ist. Das HTML-Tag <html:input> ist mit XML-Augen betrachtet ein leeres Element mit drei Attributen und wird daher mit einem abschließenden Schrägstrich geschrieben. Würde man diesen Schrägstrich nicht schreiben, wäre die Datei nicht mehr wohlgeformt und der Parser würde einen entsprechenden Fehler melden. Dies ist nun nicht der Fall. 1.5 Document Type Definition (DTD) Im Folgenden beschäftigen wir uns mit XML-Dateien, bei denen es in erster Linie auf die Struktur der Inhalte ankommt. Es wurde bereits erwähnt, dass bei gemeinsam benutzten XML-Dokumenten zuerst eine bestimmte Struktur der abgelegten Daten vereinbart werden muss. Diese Struktur kann in einer so genannten Document Type Definition kurz DTD beschrieben werden. Durch diese Definition wird der Name des Dokumentenelementes festgelegt. Man nennt dies den Dokumententyp. In diesem Sinne ist der Dokumententyp der Dateien jemen.xml, jemen1.xml und jemen2.xml jeweils gleich buch. Ihre innere Struktur ist jedoch nicht ganz gleich. In je- 17

18 men1.xml besitzt das letzte Element vom Typ abschnitt ein Kindelement, wogegen in jemen.xml alle Elemente vom Typ abschnitt Text enthalten. Solche Differenzen erschweren die gezielte Nutzung der Inhalte einer XML-Datei. In einer DTD wird daher auch festgelegt, welche Kindelemente das Dokumentenelement hat oder haben darf und ob diese wiederum Kindelemente besitzen. Hat ein Element keine Kindelemente, so kann man bis zu einem gewissen Grad definieren, welchen Inhalt das Element haben muss. Auch Attribute werden in der DTD deklariert. Es können Werte für diese Attribute vorgegeben werden und auch hier kann man angeben, welche Werte überhaupt auftreten dürfen. Wohlgeformte XML-Dokumente, deren Struktur in dieser Form durch eine DTD beschrieben werden, werden gültig genannt. Gültige XML-Dateien können von Anwendungsprogrammen gezielt bearbeitet werden, weil eben bekannt ist, wo welche Information gefunden werden kann. Im einfachsten Fall steht die DTD im Prolog der XML-Datei unmittelbar nach der XML-Deklaration. Man spricht dann von einer internen DTD. Das erste Beispiel für eine gültige XML-Datei knüpft an die letzten Dateien an und ist durch eine interne DTD ergänzt. jemen3.xml: <?xml version="1.0" encoding="iso "?> <?xml-stylesheet href="jemen2.css" type="text/css"?> <!DOCTYPE buch [ <!ELEMENT buch (buchtitel?,kapitel+)> <!ELEMENT buchtitel (#PCDATA)> <!ELEMENT kapitel (titel,abschnitt*)> <!ELEMENT titel (#PCDATA)> <!ELEMENT text (#PCDATA)> ]> <buch> <buchtitel>jemen</buchtitel> <kapitel> <titel>7) Sprache</titel> <abschnitt>die Muttersprache der meisten Jeminiten ist arabisch. </abschnitt> <abschnitt>das arabische Alphabet besteht aus 28 Buchstaben, 18

19 die von rechts nach links geschrieben werden. </abschnitt> </kapitel> <kapitel> <titel>8) Poesie</titel> <abschnitt>worte und Dichtkunst haben ein hohes Ansehen. </abschnitt> </kapitel> </buch> Der Name des Dokumentenelementes <buch> steht bereits in der ersten Zeile direkt in der DOCTYPE-Deklaration. Dann folgt in eckigen Klammern eingeschlossen die Beschreibung der Struktur der einzelnen Elemente. In der Zeile <!ELEMENT buch(buchtitel?,kapitel+)> wird vereinbart, dass das Dokumentenelement buch Kindelemente mit den Namen buchtitel und kapitel hat. Das Fragezeichen? bedeutet, dass das Kindelement <buchtitel> entweder genau einmal auftritt oder auch fehlen kann. Das Plus + gibt an, dass mindestens ein Kindelement vom Typ Kapitel vorhanden sein muss. Nach diesen Vereinbarungen hat der Dokumenttyp buch nicht unbedingt ein Element <buchtitel>, aber auf jeden Fall ein oder mehrere Elemente <kapitel>. Durch <!ELEMENT buchtitel (#PCDATA)> wird festgelegt, dass der Inhalt des Elementes <buchtitel> beliebiger Text sein kann. Die nächste Zeile <!ELEMENT kapitel (titel,abschnitt*)> deklariert, dass jedes Element <kapitel> genau ein Kindelement <titel> und eine beliebige Anzahl von Kindelementen <abschnitt> besitzt. Die Verwendung der Symbole +, * und? ermöglicht eine gewisse Flexibilisierung. Es wäre sicher nicht sinnvoll, die genaue Anzahl der Kapitel eines Buches festzulegen. Die Bedeutung dieser Kleene-Notation wird in der Tabelle noch einmal zusammengefasst. 19

20 Operator Elementtyp darf auftreten? 0-mal oder 1-mal * 0-mal oder beliebig oft + 1-mal oder beliebig oft Sequenz: Die durch Beistrich getrennten Elemente müssen der Reihe nach auftreten Auswahl: Die durch einen senkrechten Strich (ODER-Operator) getrennten Elemente können nur ausschließend alternativ auftreten () Gruppierungsklammern Eine DTD enthält eigentlich die Beschreibung der inneren Struktur für eine bestimmte Klasse von XML-Dokumenten. Daher sollte beispielsweise die oben gegebene Beschreibung des Dokumenttyps buch für dutzende, ja vielleicht hunderte XML-Dokumente Gültigkeit haben. Aus diesem Grund ist es nicht sinnvoll, dass die DTD jeweils in jeder XML-Datei steht. Man lagert die Vereinbarungen der DTD in eine eigene DTD-Datei aus und spricht in diesem Fall von einer externen DTD. Im XML-Dokument verbleibt nur die DOCTYPE-Deklartion mit einer Referenz auf die verwendete DTD-Datei. Im nächsten Beispiel sehen wir, wie das konkret gemacht wird. Die Dokumentstruktur wird außerdem durch ein leeres Element <genre> ergänzt, welches ein Attribut kategorie besitzt. jemen4.xml: <?xml version="1.0" encoding="iso "?> <?xml-stylesheet href="jemen2.css" type="text/css"?> <!DOCTYPE Buch SYSTEM "jemen4.dtd"> <buch> <genre kategorie="reisefuehrer"/> <buchtitel>jemen</buchtitel> <kapitel> <titel>9) Fernbusse</titel> <abschnitt>busse der National verbinden die größeren Städte. </abschnitt> <abschnitt>ansonsten muss man sich Sammeltaxis organisieren, die aber nur fahren, wenn sie wirklich voll sind.</abschnitt> 20

21 </kapitel> <kapitel> <titel>10) Kinder</titel> <abschnitt>für viele jemenitische Kinder ist es ein beliebter Sport, bei Touristen möglichst viel abzukassieren. </abschnitt> <abschnitt>meist steckt keine echte Not dahinter</abschnitt> </kapitel> </buch> Die externe DTD steht, wie in der DOCTYPE-Deklaration angegeben, in der Datei jemen4.dtd. Diese Datei muss sich im selben Verzeichnis befinden wie die XML-Datei. Ansonsten müsste man den Dateinamen durch eine Pfadangabe ergänzen. jemen4.dtd: <!ELEMENT buch (genre,buchtitel?,kapitel+)> <!ELEMENT genre EMPTY> <!ATTLIST genre kategorie(reisefuehrer roman fachbuch) #REQUIRED> <!ELEMENT buchtitel (#PCDATA)> <!ELEMENT kapitel (titel,abschnitt*)> <!ELEMENT titel (#PCDATA)> <!ELEMENT text (#PCDATA)> In der Deklaration <!ELEMENT genre EMPTY> zeigt das Schlüsselwort EMPTY an, dass das Element genre ein leeres Element ist. In der nächsten Zeile wird das Attribut kategorie vereinbart. Es gehört zu Element genre und kann nur bestimmte Werte annehmen: reisefuehrer, roman und fachbuch. Attribute werden bei der Darstellung durch CSS nicht ausgegeben. Überhaupt merkt man an der Ausgabe der XML-Datei jemen4.xml nichts davon, dass es sich um eine gültige XML-Datei mit einer externen DTD handelt. Attribute können durch XSL ausgegeben werden. XML-Parser und XML-Anwendungen haben selbstverständlich ebenfalls Zugriff auf die Attributwerte. Im nächsten Abschnitt findet sich dazu ein Beispiel mit XSL. 21

22 Beim Erstellen einer DTD gibt es eine wichtige Methode: die so genannten Parameter-Entities. Mit Parameter-Entities kann man öfter wiederkehrende Textpassagen einer DTD mit einem Namen versehen und unter diesem Namen jeweils dort aufrufen, wo man sie braucht. Dies ermöglicht, längere DTDs übersichtlich zu gestalten. In unserer DTD-Datei jemen4.dtd ist dies selbstverständlich nicht notwendig. Durch ihre Kürze ist sie auf jeden Fall übersichtlich. Trotzdem soll der Einsatz der Parameterentities gezeigt werden. Der Ausdruck (#PCDATA) kommt dreimal vor und wird durch ein Parameterentity mit dem Namen text abgekürzt. Das sieht so aus: jemen5.dtd: <!ENTITY %text "(#PCDATA)"> <!ELEMENT buch (genre,buchtitel?,kapitel+)> <!ELEMENT genre EMPTY> <!ATTLIST genre kategorie(reisefuehrer roman fachbuch) #REQUIRED> <!ELEMENT buchtitel %text;> <!ELEMENT kapitel (titel,abschnitt*)> <!ELEMENT titel %text;> <!ELEMENT text %text;> Das Parameterentity text steht in der ersten Zeile der DTD. Es ist durch ein Prozent-Zeichen charakterisiert. Dann kommt der Name des Entities und schließlich folgt der in Anführungszeichen eingeschlossene Text, der durch das Entity abgekürzt werden soll. Weiter unten wird das Entity dreimal aufgerufen. Der Aufruf wird durch ein Prozentzeichen eingeleitet, dann schließt ohne Abstand der Name des Entities an. Ein Strichpunkt vervollständigt den Aufruf des Entities. 1.6 XSL Transformation (XSLT) Die Ausgabe von XML-Dateien mittels XSLT (Extensible Stylesheet Language Transformation) ist eine relativ komplexe Sache, die daher hier nur in ihren Grundzügen besprochen werden kann. XSLT ist ein mächtiges Instrument. Es wählt gewisse Elemente aus dem XML-Dokument aus und bringt ihre Information in eine bestimmte Form. 22

23 Angenommen, eine XML-Datei enthält Informationen zu einem Konzertzyklus. Mithilfe geeigneter XSL-Dateien werden die Informationen dieser XML-Datei benutzt, um einerseits eine HTML-Datei für das WWW zu erzeugen und andererseits ein LaTeX-File für eine Broschüre zu erstellen. Drittens könnte man eine WML- Datei für WAP-Handys oder eine PDF-Datei für das Internet mit XSL herstellen. Man sieht, XSL führt über die Möglichkeiten von CSS weit hinaus. Ähnlich wie bei CSS sind die XSLT-Befehle in einer eigenen Datei gespeichert: der XSL-Datei. Man braucht einen XSLT-Prozessor, der die Befehle der XSL-Datei interpretiert. Eine XSL-Datei erfüllt alle Anforderungen einer XML-Datei. Sie ist ebenfalls wohlgeformt und kann daher von XML-Parsern überprüft werden. Das ist ein nicht zu unterschätzender Vorteil gegenüber von CSS-Dateien. Wir erzeugen in diesem Abschnitt durchwegs HTML-Dateien, weil die eher vertraut sind und wir uns daher auf bekanntem Terrain bewegen zumindest, was das Ergebnis der Transformation betrifft. Unsere XML-Datei enthält verschiedene Daten zu afrikanischen Ländern. Wir werden diese Daten auf unterschiedlichste Weise nutzten. afrika.xml: <?xml version="1.0" encoding="iso "?> <?xml-stylesheet href="afrika1.xsl" type="text/xsl"?> <!DOCTYPE Buch SYSTEM "afrika.dtd"> <Laender> <Land region="nordost"> <Name>Sudan</Name> <Hauptstadt>Al-Khartum</Hauptstadt> <Groesse> <Flaeche> qkm</Flaeche> <Einwohner> </Einwohner> </Groesse> </Land>... <Land region="nord"> <Name>Algerien</Name> <Hauptstadt>Algier</Hauptstadt> 23

24 <Groesse> <Flaeche> qkm</Flaeche> <Einwohner> </Einwohner> </Groesse> </Land> </Laender> Ganz ähnlich wie bei der Ausgabe mit einer CSS-Datei steht am Beginn eine Verarbeitungsanweisung mit einem Verweis auf die XSL-Datei: <?xml-stylesheet href="afrika.xsl" type="text/xsl"?>. Die Datei afrika.xsl enthält also die XSL-Befehle. Sie muss sich im selben Verzeichnis befinden wie die XML-Datei. Diese arbeitet mit folgender DTD-Datei: afrika.dtd: <!ELEMENT Laender (Land)+> <!ELEMENT Land (Name,Hauptstadt,Groesse)> <!ATTLIST Land region (nord nordost ost suedost sued suedwest west nordwest) #REQUIRED> <!ELEMENT Name (#PCDATA)> <!ELEMENT Hauptstadt (#PCDATA)> <!ELEMENT Groesse (Flaeche,Einwohner)> <!ELEMENT Flaeche (#PCDATA)> <!ELEMENT Einwohner (#PCDATA)> Die erste XSL-Datei erzeugt eine Überschrift und schreibt die Namen aller Staaten untereinander auf. Sie sieht so aus: afrika1.xsl: <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:output method="html"/> <xsl:template match="laender"> <html> <head> <title>afrika</title> </head> <body> <h2>afrikanische Staaten</h2> 24

25 <xsl:for-each select="land"> <h4> <xsl:value-of select="name"/> </h4> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet> Der XSL-Namensraum wird direkt im Wurzelverzeichnis durch xmlns:xsl=" vereinbart. Daher werden die XSL-Befehle in der gesamten Datei verstanden. Wie man sieht, stehen in der XSL-Datei auch HTML-Befehle. Der Grund, warum das möglich ist, ist einfach: Die XSL-Datei wird ja in eine HTML-Datei transformiert, indem die XSL-Befehle ausgeführt werden. Aus jedem XSL-Befehl wird also durch die Transformation ein oder mehrere HTML-Befehle. Jene HTML-Befehle, die von vorneherein in der XSL-Datei stehen, scheinen in der erzeugten HTML-Datei einfach unverändert auf. Als Präfix für den XSL-Namensraum muss man xsl verwenden. In der Zeile <xsl:output method="html"/> wird festgelegt, dass durch die XSL-Datei eine HTML-Datei erzeugt werden soll. Nun wird durch den Befehl <xsl:template match="laender"> ein so genanntes template auf das Dokumentelement <Laender> angewendet. Durch dieses Template werden alle am Element <Laender> hängenden Kindelemente, in diesem Fall also alle Elemente der XML-Datei, in Form eines Baumes abgebildet und man erhält so einen Zugriff auf deren Inhalte. Unsere XML-Datei besitzt einen Baum mit 4 Ebenen. Die Wurzel des Baumes bildet das Dokumentelement <Laender>. In der nächsten Ebene befinden sich die Kindelemente von <Laender>, die Elemente <Land>. Deren Kindelemente <Name>, <Hauptstadt> und <Groesse> befinden sich in der dritten Ebene des Baumes. Die vierte Ebene wird von den Kindelementen von <Groesse> gebildet: von <Einwohner> und <Flaeche>. Bereits dieses erste Beispiel zeigt deutlich die grundlegende Technik von XSL: Es werden bestimmte Elemente aus dem XML-Dokument ausgewählt und ihre Infor- 25

26 mation wird dazu benutzt, eine HTML-Datei mit bestimmten, gewünschten Eigenschaften zu erzeugen. Bei CSS entspricht die Struktur der Ausgabe meist der in der XML-Datei vorhandenen Struktur. XSL kann Dokumente erzeugen, deren Struktur völlig verschieden von der Struktur der XML-Datei ist. Baumstrukturen sind ein in der Informatik unglaublich wichtiges und leistungsfähiges Konzept. Für XML haben sie eine ganz spezielle Bedeutung. So bedeuten die Forderungen an eine wohlgeformte XML-Datei im Wesentlichen nichts anderes, als dass ihre Elemente einen Baum bilden. Der nächste Abschnitt wird dieses Thema etwas genauer behandeln. Die Elemente des XML-Dokumentes aftika.xml bilden folgende Baumstruktur 4. Laender / \ Land Land Land / \ / \ / \ Name Hauptstadt Groesse Name Hauptstadt Groesse Name Hauptstadt Groesse / \ / \ / \ Flaeche Einwohner Flaeche Einwohner Flaeche Einwohner Nach dem Erzeugen des Templates kommen einige reine HTML-Zeilen, die den ersten Teil der HTML-Datei bilden. Der XSL-Befehl <xsl:for-each select="land">... </xsl:for-each> erzeugt innerhalb seines Start- und End-Tags eine Schleife, in der alle durch das Attribut select ausgewählten Elemente in der Reihenfolge, in der sie in der XML- Datei stehen, durchlaufen werden. In unserem Fall werden daher alle Elemente vom Typ Land der Reihe nach von dieser Schleife angesprochen. Innerhalb der Schleife steht der Befehl <xsl:value-of select="name"/>. Er liefert den Inhalt des selektierten Elementes, hier also den Namen des betreffenden Staates. Dieser wird als Überschrift der Hierarchie <h4> ausgegeben. Der Quelltext der HTML-Datei zeigt sehr schön die genaue Wirkung der XSL- Befehle: <html> <head> 4 Natürlich besteht die XML-Datei aus mehr als drei Elementen Land. Für die Darstellung der Baumstruktur sind jedoch drei Elemente sicher ausreichend 26

27 <META http-equiv="content-type" content="text/html; charset=utf-16"> <title>afrika</title> </head> <body> <h2>afrikanische Staaten</h2> <h4>sudan</h4> <h4>angola</h4> <h4>ägypten</h4> <h4>äthiopien</h4> <h4>botswana</h4> <h4>dschibuti</h4> <h4>eritrea</h4> <h4>algerien</h4> </body> </html> In der nächsten XSL-Datei wird gezeigt, dass man durch die wiederholte Anwendung von Templates dieselbe Wirkung wie mit einem <for-each>-befehl erzielen kann. Diese Technik reflektiert auch deutlich die Baumstruktur des XML- Dokumentes. afrika2.xsl: <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:output method="html"/> <xsl:template match="laender"> <html> <head> <title>afrika</title> </head> <body> <h2>afrikanische Staaten</h2> <xsl:apply-templates select="land"/> </body> </html> </xsl:template> 27

28 <xsl:template match="land"> <h4> <xsl:apply-templates select="name"/> </h4> </xsl:template> <xsl:template match="name"> <xsl:value-of select="."/> </xsl:template> </xsl:stylesheet> Bitte beachten Sie, dass man die Stylesheet-Anweisung in der XML-Datei afrika.xml entsprechend abändern muss, damit die Befehle von afrika2.xsl wirksam werden können. Die ersten Zeilen stimmen noch mit der vorigen XSL-Datei überein. Im body - Teil stehen jetzt aber nur zwei Befehle: <h2>afrikanische Staaten</h2> <xsl:apply-templates select="land"/> Der erste Befehl schreibt die Überschrift. Der XSL-Befehl erzeugt ein Template für das ausgewählte Element <Land> Die XML-Datei hat jedoch mehrere Elemente vom Typ Land. Daher wird tatsächlich der Reihe nach für jedes einzelne Element <Land> ein Template erzeugt. Anschließend wird mit diesem Template das durchgeführt, was zwischen <xsl:template match="land"> und </xsl:template> steht. Hier befinden sich die HTML-Tags <h4> und </h4>, die den XSL-Befehl <xsl:apply-templates select="name"/> einschließen. Dieser erzeugt ein neues Template für das Kindelement <Name>. In diesem Template wird mit <xsl:value-of select="."/> der Inhalt des Elementes <Name> ausgegeben. Der aktuelle Knoten des Elementbaumes wird durch "." selektiert. ".." würde das übergeordnete Elternelement selektieren. Die Wirkung ist insgesamt dieselbe wie bei der letzten XSL-Datei: Es werden die Namen der einzelnen Länder in der Reihenfolge, in der sie in der XML-Datei 28

29 stehen, ausgegeben. Die erzeugte HTML-Datei ist vollkommen identisch mit der oben angegebenen. Bei den nächsten Beispielen wird der HTML-Quelltext der erzeugten HTML-Datei nicht mehr wiedergegeben. Die XSL-Datei afrika3.xsl benutzt wieder nur ein einziges Template, welches den gesamten Elementenbaum der XML-Datei abbildet. Wie in der ersten XSL-Datei sorgt der Befehl <xsl:for-each select="land"> dafür, dass eine Schleife über alle Elemente <Land> gebildet wird. Nun steht allerdings der Sortierbefehl <xsl:sort select="name"/>, der dafür sorgt, dass die Elemete vom Typ Land alphabetisch sortiert nach dem Eintrag des Elementes <Name> durchlaufen werden. Daher ist die erzeugte Tabelle alphabetisch sortiert. Die value-of -Befehle liefern wieder die eigentlichen Eintragungen der Liste. Sie sind jeweils von den HTML- Tags <span> umschlossen. Diese erlauben es, in HTML semantische Einheiten zu bilden. Hier werden sie benutzt, um über das Style-Attribut Formatierungen für die Ausgabe festzulegen. In jeder Zeile der Tabelle werden Name, Einwohnerzahl und Flächeninhalt der einzelnen Länder ausgegeben. afrika3.xsl: <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:output method="html"/> <xsl:template match="laender"> <html> <head> <title>afrika</title> </head> <body> <h2>afrikanische Staaten</h2> <h4>(verkehrt alphabetisch sortiert)</h4> <table border="2" STYLE="border-style:outset"> <tr style="font-weight:bold; font-size:16pt;"> <td><b>staat</b></td> <td><b>einwohner</b></td> <td><b>flaeche</b></td> 29

30 </tr> <xsl:for-each select="land"> <xsl:sort select= -Name /> <tr> <td> <span STYLE="font-size:15pt"> <xsl:value-of select="name"/> </span> </td> <td align="right"> <xsl:value-of select="groesse/einwohner"/> </td> <td align="right"> <xsl:value-of select="groesse/flaeche"/> </td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Der oben wiedergegebene Code von afrika3.xsl zeigt deutlich, dass XSL-Dokumente wohlgeformt sein müssen. Im Gegensatz zu DTD-Dateien oder CSS-Dateien gehorchen sie also denselben Spielregeln wie XML-Dokumente. Beachten Sie die Selektion der Elemente bei den value-of -Befehlen. Mit select="name" wird ein Element der nächsten Ebene ausgewählt. Wir befinden uns an dieser Stelle innerhalb der for-each Schleife. Daher ist eines der Land -Elemente das aktuell gültige, selektierte Element und die Befehle in der Schleife werden relativ zu diesem Element ausgewertet. Mit select="groesse/einwohner" und select="groesse/flaeche" werden hingegen Elemente aus der übernächsten Ebene ausgewählt. Die restlichen Befehle sind HTML: <tr> erzeugt eine neue Zeile in der Tabelle, <td> einen neuen 30

31 Tabelleneintrag. Die nächste XSL-Datei erzeugt ebenfalls eine Tabelle. Zur Abwechslung und damit man die Techniken vergleichen kann, wird nun kein Schleifenbefehl verwendet. Es werden wieder wie in afrika1.xsl wiederholt Templates erzeugt. Daher ist die Ausgabe in der Tabelle auch nicht sortiert. Nun wird erstmals der Wert des Attributs region ausgelesen und in der zweiten Spalte der Tabelle ausgegeben. Mit CSS ist eine Ausgabe von Attributwerten nicht möglich. Attributwerte können in CSS nur bei der Auswahl der Elemente, die für eine bestimmte CSS-Regel angewendet werden soll, eine Rolle spielen. afrika4.xsl: <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:output method="html"/> <xsl:template match="laender"> <html> <head> <title>afrika</title> </head> <body> <h2>afrikanische Staaten</h2> <h4>(unsortiert)</h4> <table border="2" STYLE="border-style:outset"> <tr style="font-weight:bold;font-size:16pt;"> <td><b>staat</b></td> <td><b>region</b></td> <td><b>einwohner</b></td> <td><b>flaeche</b></td> </tr> <xsl:apply-templates select="land"/> </table> </body> </html> </xsl:template> <xsl:template match="land"> 31

32 <tr> <xsl:apply-templates select="name"/> <td align="right"> <xsl:value-of </td> <xsl:apply-templates select="groesse"/> </tr> </xsl:template> <xsl:template match="name"> <td> <span STYLE="font-size:15pt"> <xsl:value-of select="."/> </span> </td> </xsl:template> <xsl:template match="groesse"> <td align="right"> <xsl:value-of select="einwohner"/> </td> <td align="right"> <xsl:value-of select="flaeche"/> </td> </xsl:template> </xsl:stylesheet> Die XSL-Datei ist übersichtlich strukturiert. Im Template Land wird zuerst mit <xsl:apply-templates select="name"/> ein Template für das Kindelement <Name> aufgerufen. Dieses Template erledigt den ersten Tabelleneintrag. Anschließend wird durch <xsl:value-of der Wert des Attributes region ausgelesen und als zweiter Eintrag in die Tabelle geschrieben. Der Wert eines Attributes wird durch ein vorangestelltes Klammeraffe-Zeichen an- 32

33 gesprochen. Dazu muss das Element, zu dem das Attribut gehört, selektiert sein. Dies ist in unserem Beispiel das Element <Land> Der Aufruf <xsl:apply-templates select="groesse"/> erledigt schließlich die restlichen beiden Eintragungen für die Einwohnerzahl und den Flächeninhalt des Landes. 1.7 Baumstruktur Daten serialisieren Die Baumstruktur einer XML-Datei kann nicht so ohne weiteres auf einem Datenträger gespeichert werden. Während ein Programm einen Dokumentbaum mit geeigneten Algorithmen auf vielfältige Weise abarbeiten kann, muss eine Datei auf ein Trägermedium sequentiell geschrieben werden. Die Daten eines XML-Baumes müssen also serialisiert werden. Genau dies ist mit den schon besprochenen Merkmalen einer XML-Datei besonders einfach zu lösen: Beginnend mit dem öffnenden Tag des Wurzelelementes werden der Reihe nach alle Elemente der obersten Ebene, die so genannten Top-Level-Elemente gespeichert. Verzweigungen in der Baumstruktur bedingen, dass die Top-Level-Elemente weitere Elemente beinhalten. Jede Verzweigung des Baumes bedingt, dass ein Element Kindelemente besitzt. 5 Bevor das schließende Tag eines Elementes geschrieben wird, müssen also alle Kindelemente gespeichert werden. Sollte eines dieser Kindelemente Kinder haben, so wird auf die gleiche Weise verfahren. Erst wenn alle Nachfahren eines Top-Level-Elementes gepeichert worden sind, wird das öffnende Tag des nächsten Top-Level-Elementes geschrieben usw. Sind alle XML-Elemente auf die obige Weise gespeichert, so liegt notwendigerweise eine wohlgeformte XML-Datei vor. Umgekehrt kann nur eine wohlgeformte XML-Datei in einen XML-Baum eingelesen werden. Dieses Deserialisieren übernimmt beispielseweise ein XML-Parser, wenn eine XML-Datei aufgerufen wird. Eine besondere Bedeutung hat das Serialisieren von Daten im Zusammenhang mit den im letzten Abschnitt behandelten Transformationen. Wie zu sehen war, werden dabei zwei XML-Dateien verwendet: In der so genannten Eingabedatei sind die XML-Daten enthalten, die die Grundlage für die geplanten Transformationen bilden. Diese Eingabedatei muss zunächst in den so genannten Eingabebaum deserialisiert werden. Danach wird die Transformationsdatei, die ebenfalls eine wohlgeformte XML-Datei sein muss, in den Transformationsbaum eingelesen, der alle 5 Besitzt ein Element nur ein einziges Kindelement, so liegt zwar keine Verzweigung im eingentlichen Sinne vor, aber die Verbindung zwischen Elternelement und Kindelement bedingt einen so genannten Knoten. 33

34 vorgesehenen Transformationen enthält. Nach der Transformation liegt das Ergebnis im so genannten Ergebnisbaum (Zielbaum) vor. XML-Daten können bei der Transformation in verschiedene Ausgabeformate serialisiert werden. Zurzeit ist es möglich, XML-Daten in eine Textdatei, in eine HTML-Datei oder eine XML-Datei zu serialisieren. Dabei ist zu beachten, dass etwa im Fall der Ausgabe in eine Textdatei der Ergebnisbaum nicht mehr wohlgeformt sein muss. Mit XSL-FO ist es möglich, XML-Daten in PDF-Dokumente zu serialisieren, die mit herkömmlichen PDF-Viewern angezeigt werden können. Während im DOM (Document Object Model) die gesamte Baumstruktur einer XML-Datei im Speicher abgebildet wird, durchläuft SAX (Simple Acces for XML) alle Elemente einer XML-Datei genau einmal. Das Serialisieren von XML-Baumstrukturen ist nicht nur zum Speichern der Daten auf dem Datenträger wichtig. Allgemein müssen XML-Daten auf irgendeinem Weg von einem Rechner auf einen anderen übertragen werden, ohne dass die Daten dazwischen physikalisch auf einen Datenträger geschrieben werden. Dies ist ebenfalls nur in serialisierter Form, in so genannten Datenströmen möglich. Jedenfalls muss sichergestellt sein, dass der sendenden und der empfangenden Anwendung die Datenstruktur gleichermaßen bekannt ist. 1.8 XML-Anwendungen In der relativ kurzen Zeit seit des Bestehens der XML-Spezifikation wurden zahlreiche Anwendungen entwickelt. Einige davon wurden in den vergangenen Abschnitten bereits genannt: So stellen XSLT (extended Stylesheet Language Transformations) oder XSL-FO (extended Stylesheet Language Formatting Objects) XML- Anwendungen dar. XML-Schema legt unter Verwendung des XML-Protokolls genaue Datenstrukturen für XML-Dokumente fest. Aus den Medien sind wahrscheinlich eine Reihe weiterer Anwendungen bekannt, die auf dem XML-Datenformat aufbauen. In der folgenden Tabelle sind einige davon aufgeführt und kurz beschrieben: 34

35 XML-Anw. CML MathML RDF SMIL SOAP SSMLS SVG VoiceXML WDDX WML XHTML XML-RPC Beschreibung Chemical Markup Language. Dient zur Darstellung von chemischen Formeln Mathematical Markup Language. Dient zur Beschreibung und Formatierung mathematischer Ausdrücke und Formeln. Wird beispielsweise für den Formelsatz in Textverarbeitungsprogrammen verwendet (z.b. StarOffice, OpenOffice, Koffice) Resource Description Framework. Legt eine Beschreibungsprache für Dokumente allgemein fest Synchronized Multimedia Integration Language. Dient zur vereinheitlichten Beschreibung von multimedialen Präsentationen Simple Object Access Protocol. Dient zur Übertragung von Daten zwischen SOAP-Sender und SOAP-Empfänger auf der Basis von HTTP Speech Synthesis Markup Language Specification. Gibt eine XML-basierte Beschreibung von Elementen für Voice-Browser an. Scalable Vector Graphics. Erlaubt die Beschreibung zahlreicher Vektorgrafikobjekte Voice extensible Markup Language. Beschreibt die Benutzer-Interaktion mittels Sprachausgabe und Spracheingabe Web Distributed Data exchange. Ermöglicht den Datenaustausch auf der Basis von HTTP. Wireless Markup Language. Dient zur Darstellung von Informationen für Mobiltelefone und PDAs Extensible HyperText Markup Language. Stellt eine XML-konforme Weiterentwicklung von HTML 4.0 dar XML Remote Procedure Calls. Erlaubt Funktionsaufrufe auf entfernten Systemen 35

HTML5. Wie funktioniert HTML5? Tags: Attribute:

HTML5. Wie funktioniert HTML5? Tags: Attribute: HTML5 HTML bedeutet Hypertext Markup Language und liegt aktuell in der fünften Fassung, also HTML5 vor. HTML5 ist eine Auszeichnungssprache mit der Webseiten geschrieben werden. In HTML5 wird festgelegt,

Mehr

Übungsaufgaben zu XML:

Übungsaufgaben zu XML: Übungsaufgaben zu XML: Aufgabe 1 Allgemeine Fragen zu XML: (Benutzen Sie zum Lösen der Aufgaben die Online-Hilfen, welche wir erwähnt haben.) a) Was ist eine DTD? DTD steht für Document Type Definition.

Mehr

... MathML XHTML RDF

... MathML XHTML RDF RDF in wissenschaftlichen Bibliotheken (LQI KUXQJLQ;0/ Die extensible Markup Language [XML] ist eine Metasprache für die Definition von Markup Sprachen. Sie unterscheidet sich durch ihre Fähigkeit, Markup

Mehr

WEBSEITEN ENTWICKELN MIT ASP.NET

WEBSEITEN ENTWICKELN MIT ASP.NET jamal BAYDAOUI WEBSEITEN ENTWICKELN MIT ASP.NET EINE EINFÜHRUNG MIT UMFANGREICHEM BEISPIELPROJEKT ALLE CODES IN VISUAL BASIC UND C# 3.2 Installation 11 Bild 3.2 Der Webplattform-Installer Bild 3.3 IDE-Startbildschirm

Mehr

XSL Templates. Mit Templates arbeiten. XSL Templates

XSL Templates. Mit Templates arbeiten. XSL Templates XSL Templates Mit Templates arbeiten Innerhalb von XSLT werden Templates verwendet. Ein Template ist eine Vorlage für die Transformation bestimmter Knoten. Diese Knoten können Elemente, Attribute oder

Mehr

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August 2002. Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August 2002. Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back XML Grundlagen Andreas Rottmann,Sebastian Riedl 27. August 2002 Rottmann, Riedl: XML Grundlagen 1 Überblick Hintergründe und Geschichte Aufbau von XML-Dokumenten DTD Schemata Erweiterungen XML APIs Rottmann,

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis IT-Zertifikat: Daten- und Metadatenstandards Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig I. Was ist XSLT? XSL Transformation (XSLT) ist eine Programmiersprache zur Transformation

Mehr

Webseite in XML Kurzeinführung

Webseite in XML Kurzeinführung Webseite in XML Kurzeinführung 1. Entwicklung... 1 2. Erste Webpage in XML... 2 2.1 Erstes Beispiel... 2 2.2 Tags definieren... 4 2.3 Kommentare in XML... 5 2.4 XML mittels CSS im Browser ansehen... 5

Mehr

Einführung in XML von Julian Bart

Einführung in XML von Julian Bart Über diese Einführung Diese Einführung soll Ihnen einen groben, ersten Überblick über XML, dem designierten Nachfolger der Seitenbeschreibungssprache HTML 4.0, vermitteln und Ihnen einen ersten Einstieg

Mehr

Schiller-Gymnasium Hof 20.12.2004

Schiller-Gymnasium Hof 20.12.2004 Erstellen eines HTML-Dokumentes Zum Erstellen einer Homepage benötigen wir lediglich einen Editor. Zum Ansehen der fertigen Site benötigen wir wir natürlich auch einen Browser, z.b. Firefox oder Netscape

Mehr

Einfügen von Bildern innerhalb eines Beitrages

Einfügen von Bildern innerhalb eines Beitrages Version 1.2 Einfügen von Bildern innerhalb eines Beitrages Um eigene Bilder ins Forum einzufügen, gibt es zwei Möglichkeiten. 1.) Ein Bild vom eigenem PC wird auf den Webspace von Baue-die-Bismarck.de

Mehr

HTML Programmierung. Aufgaben

HTML Programmierung. Aufgaben HTML Programmierung Dr. Leander Brandl BRG Keplerstraße - A-8020 Graz Universität Graz - Institut für Experimentalphysik Fachdidaktik der Physik http://w4.brgkepler.asn-graz.ac.at 1. Die erste Web-Seite

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

Kennen, können, beherrschen lernen was gebraucht wird www.doelle-web.de

Kennen, können, beherrschen lernen was gebraucht wird www.doelle-web.de Inhaltsverzeichnis Inhaltsverzeichnis... 1 Grundlagen... 2 Hyperlinks innerhalb einer Datei... 2 Verweisziel definieren... 2 Einen Querverweis setzen... 3 Verschiedene Arten von Hyperlinks... 3 Einfache

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung Kapitel 1 Die Vorbereitung Vorgängerversionen. Bald darauf folgte dann schon die Version 4, die mit einer kleinen Bearbeitung bis vor Kurzem 15 Jahre unverändert gültig war. All das, was du die letzten

Mehr

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an.

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an. 3. SPEICHERN DATEIEN SPEICHERN Dateien werden in Word Dokumente genannt. Jede Art von Datei, die Sie auf Ihrem Computer neu erstellen, befindet sich zuerst im Arbeitsspeicher des Rechners. Der Arbeitsspeicher

Mehr

Datenaustauschformate. Datenaustauschformate - FLV

Datenaustauschformate. Datenaustauschformate - FLV Datenaustauschformate FLV-Dateien CSV-Dateien XML-Dateien Excel-Dateien Access- Backupdateien Günter M. Goetz 108 Datenaustauschformate - FLV Fixed Length Values Repräsentation einer Tabelle als 'Flat-File'

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Seite 1. Datum einfügen

Seite 1. Datum einfügen Seite 1 Den Text zu schreiben ist einerseits Abhängig von der DIN 5008, an die man sich halten sollte. Andererseits sind Schriftart und Aussehen durch die schnell erkennbaren Symbole leicht zu gestalten.

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

Speichern. Speichern unter

Speichern. Speichern unter Speichern Speichern unter Speichern Auf einem PC wird ständig gespeichert. Von der Festplatte in den Arbeitspeicher und zurück Beim Download Beim Kopieren Beim Aufruf eines Programms Beim Löschen Beim

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

Die Formatierungsregeln (die so genannte Wiki-Syntax) für Texte in DokuWiki sind zu großen Teilen die selben, wie in anderen Wiki-Systemen.

Die Formatierungsregeln (die so genannte Wiki-Syntax) für Texte in DokuWiki sind zu großen Teilen die selben, wie in anderen Wiki-Systemen. DokuWiki Kurzanleitung DokuWiki ein sehr einfach zu installierendes und anzuwendendes Wiki und bietet einige Funktionen, welche das Erstellen von Hypertexten, Dokumentationen und Präsentation von Projekten

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Zahlen auf einen Blick

Zahlen auf einen Blick Zahlen auf einen Blick Nicht ohne Grund heißt es: Ein Bild sagt mehr als 1000 Worte. Die meisten Menschen nehmen Informationen schneller auf und behalten diese eher, wenn sie als Schaubild dargeboten werden.

Mehr

CSS. Cascading Stylesheets

CSS. Cascading Stylesheets CSS Cascading Stylesheets Themen Was sind Cascading Stylesheets? Vorteile von CSS Nachteile von CSS CSS: Versionen Regelsyntax für Stylesheets Einem HTML-Dokument Styles hinzufügen und Numerische

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Serienbrief aus Outlook heraus Schritt 1 Zuerst sollten Sie die Kontakte einblenden, damit Ihnen der Seriendruck zur Verfügung steht. Schritt 2 Danach wählen Sie bitte Gerhard Grünholz 1 Schritt 3 Es öffnet

Mehr

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Das können wir Ihnen versprechen: An der neuen Taskleiste in Windows 7 werden Sie sehr viel Freude haben. Denn diese sorgt

Mehr

Berechnungen in Access Teil I

Berechnungen in Access Teil I in Access Teil I Viele Daten müssen in eine Datenbank nicht eingetragen werden, weil sie sich aus anderen Daten berechnen lassen. Zum Beispiel lässt sich die Mehrwertsteuer oder der Bruttopreis in einer

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Zweck dieser Anleitung ist es einen kleinen Überblick über die Funktion Last Minute auf Swisshotelportal zu erhalten. Für das erstellen

Mehr

Das Einsteigerseminar

Das Einsteigerseminar Michael Seeboerger-Weichselbaum Das Einsteigerseminar XML Inhalt Vorwort Einleitung und Ziel des Buches 1 Was ist XML 1.1 HTML 1.2 XML 1.3 XSLT 1.4 XML und HTML - wo sind die Unterschiede? 1.5 Einsatzgebiete

Mehr

Meine erste Homepage - Beispiele

Meine erste Homepage - Beispiele Meine erste - Beispiele 1. Beispiel meine Willkommen auf meiner Befehle nicht über Hier ist ein Senior, der noch fit für's Internet ist. Probieren wir

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden? Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden? Anforderung Durch die Bearbeitung einer XML-Datei können Sie Ihre eigenen Dokumentationen (z.b. PDF-Dateien, Microsoft Word Dokumente

Mehr

Barrierefreie Webseiten erstellen mit TYPO3

Barrierefreie Webseiten erstellen mit TYPO3 Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard 1 von 6 102013 18:09 SharePoint 2013 Veröffentlicht: 16.07.2012 Zusammenfassung: Hier erfahren Sie, wie Sie einen KPI (Key Performance Indicator) mithilfe des PerformancePoint Dashboard Designer in SharePoint

Mehr

11 Tabellen als Inhaltselement (ohne RichTextEditor)

11 Tabellen als Inhaltselement (ohne RichTextEditor) 11 Tabellen als Inhaltselement (ohne RichTextEditor) Inhaltsverzeichnis 11 Tabellen als Inhaltselement (ohne RichTextEditor) 1 Vorbemerkung.......................................... 1 11.1 Eine einfache

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

Informationen zu den regionalen Startseiten

Informationen zu den regionalen Startseiten Informationen zu den regionalen Startseiten Inhaltsverzeichnis Informationen zu den regionalen Startseiten 1 1. Grundlegende Regeln 2 1.1. Was wird angezeigt? 2 1.2. Generelle Anzeigeregeln 2 2. Anpassbare

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Online-Publishing mit HTML und CSS für Einsteigerinnen

Online-Publishing mit HTML und CSS für Einsteigerinnen mit HTML und CSS für Einsteigerinnen Dipl.-Math. Eva Dyllong Universität Duisburg Dipl.-Math. Maria Oelinger spirito GmbH IF MYT 07-2002 Web-Technologien Überblick HTML und CSS, XML und DTD, JavaScript

Mehr

Klaus Schild, XML Clearinghouse 2003. Namensräume

Klaus Schild, XML Clearinghouse 2003. Namensräume Namensräume Lernziele Namenskonflikte Warum lösen im World Wide Web einfache Präfixe dieses Problem nicht? Wie lösen globale Namensräume das Problem? Wie werden sie in XML-Dokumenten benutzt? Was sind

Mehr

3. GLIEDERUNG. Aufgabe:

3. GLIEDERUNG. Aufgabe: 3. GLIEDERUNG Aufgabe: In der Praxis ist es für einen Ausdruck, der nicht alle Detaildaten enthält, häufig notwendig, Zeilen oder Spalten einer Tabelle auszublenden. Auch eine übersichtlichere Darstellung

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Beuth Hochschule Die erweiterbare Markierungssprache XML WS10/11

Beuth Hochschule Die erweiterbare Markierungssprache XML WS10/11 Die erweiterbare Markierungssprache XML 1. Einleitung Eine Markierungssprache (markup language) dient dazu, Textdateien mit zusätzlichen Informationen anzureichern. Die verbreitete Markierungssprache HTML

Mehr

Erzherzog Johann Jahr 2009

Erzherzog Johann Jahr 2009 Erzherzog Johann Jahr 2009 Der Erzherzog Johann Tag an der FH JOANNEUM in Kapfenberg Was wird zur Erstellung einer Webseite benötigt? Um eine Webseite zu erstellen, sind die folgenden Dinge nötig: 1. Ein

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Doku zur Gebäudebrüter Datenbank

Doku zur Gebäudebrüter Datenbank Autor: Christina Baradari, christina.baradari@berlin.de, 0162 2008 114 Doku zur Gebäudebrüter Datenbank Team Web Programmierer: Rahim Baradari Inhaltsverzeichnis 1 Suchen nach Kartierungsdaten... 2 1.1

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Kommunikations-Management

Kommunikations-Management Tutorial: Wie importiere und exportiere ich Daten zwischen myfactory und Outlook? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory Daten aus Outlook importieren Daten aus myfactory nach Outlook

Mehr

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

FlowFact Alle Versionen

FlowFact Alle Versionen Training FlowFact Alle Versionen Stand: 29.09.2005 Rechnung schreiben Einführung Wie Sie inzwischen wissen, können die unterschiedlichsten Daten über verknüpfte Fenster miteinander verbunden werden. Für

Mehr

EINFACHES HAUSHALT- KASSABUCH

EINFACHES HAUSHALT- KASSABUCH EINFACHES HAUSHALT- KASSABUCH Arbeiten mit Excel Wir erstellen ein einfaches Kassabuch zur Führung einer Haushalts- oder Portokasse Roland Liebing, im November 2012 Eine einfache Haushalt-Buchhaltung (Kassabuch)

Mehr

http://www.therealgang.de/

http://www.therealgang.de/ http://www.therealgang.de/ Titel : Author : Kategorie : Vorlesung HTML und XML (Einführung) Dr. Pascal Rheinert Sonstige-Programmierung Vorlesung HTML / XML: Grundlegende Informationen zu HTML a.) Allgemeines:

Mehr

HTML5. Grundlagen der Erstellung von Webseiten. Linda York, Tina Wegener. 2. Ausgabe, 3. Aktualisierung, Januar 2013 HTML5

HTML5. Grundlagen der Erstellung von Webseiten. Linda York, Tina Wegener. 2. Ausgabe, 3. Aktualisierung, Januar 2013 HTML5 HTML5 Linda York, Tina Wegener 2. Ausgabe, 3. Aktualisierung, Januar 2013 Grundlagen der Erstellung von Webseiten HTML5 2 HTML5 - Grundlagen der Erstellung von Webseiten 2 Die erste Webseite mit HTML erstellen

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien Sie haben von der VR DISKONTBANK GmbH ein signiertes PDF-Dokument (i.d.r. eine Zentralregulierungsliste mit dem Status einer offiziellen Rechnung) erhalten und möchten nun die Signatur verifizieren, um

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

GRAF-SYTECO. Handbuch. Zeichensatzgenerator für AT-Geräte. Erstellt: November 2004. SYsteme TEchnischer COmmunikation

GRAF-SYTECO. Handbuch. Zeichensatzgenerator für AT-Geräte. Erstellt: November 2004. SYsteme TEchnischer COmmunikation GRAF-SYTECO Handbuch Zeichensatzgenerator für AT-Geräte Dokument: Status: H165A0 Freigegeben Erstellt: November 2004 SYsteme TEchnischer COmmunikation GRAF-SYTECO Gmbh & Co.KG * Kaiserstrasse 18 * D-78609

Mehr

12. Dokumente Speichern und Drucken

12. Dokumente Speichern und Drucken 12. Dokumente Speichern und Drucken 12.1 Überblick Wie oft sollte man sein Dokument speichern? Nachdem Sie ein Word Dokument erstellt oder bearbeitet haben, sollten Sie es immer speichern. Sie sollten

Mehr

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...

Mehr

Snippets - das Erstellen von "Code- Fragmenten" - 1

Snippets - das Erstellen von Code- Fragmenten - 1 Snippets - das Erstellen von "Code- Fragmenten" Das Erstellen von "Code- Fragmenten", welche mit dem TinyMCE ausgewählt werden können. Grundlegendes: Die Datei, welche die in Folge erklärten Daten und

Mehr

«/Mehrere Umfragen in einer Umfrage durchführen» Anleitung

«/Mehrere Umfragen in einer Umfrage durchführen» Anleitung QuickStart «/Mehrere Umfragen in einer Umfrage durchführen» Anleitung Mehrere Umfragen in einer Umfrage durchführen Mögliches Szenario oder wann Sie davon Gebrauch machen können Sie führen regelmässig

Mehr

Programme im Griff Was bringt Ihnen dieses Kapitel?

Programme im Griff Was bringt Ihnen dieses Kapitel? 3-8272-5838-3 Windows Me 2 Programme im Griff Was bringt Ihnen dieses Kapitel? Wenn Sie unter Windows arbeiten (z.b. einen Brief schreiben, etwas ausdrucken oder ein Fenster öffnen), steckt letztendlich

Mehr

Da die Bedienung des Editors viele Möglichkeiten aufweist, aber auch etwas Übung voraussetzt, haben wir ihm ein eigenes Unterkapitel gewidmet.

Da die Bedienung des Editors viele Möglichkeiten aufweist, aber auch etwas Übung voraussetzt, haben wir ihm ein eigenes Unterkapitel gewidmet. 5.6. Der HTML-Editor Da die Bedienung des Editors viele Möglichkeiten aufweist, aber auch etwas Übung voraussetzt, haben wir ihm ein eigenes Unterkapitel gewidmet. Bild 33: Der Editor 5.6.1. Allgemeine

Mehr

Typo3 - Inhalte. 1. Gestaltung des Inhaltsbereichs. 2. Seitenunterteilung einfügen

Typo3 - Inhalte. 1. Gestaltung des Inhaltsbereichs. 2. Seitenunterteilung einfügen Typo3 - Inhalte 1. Gestaltung des Inhaltsbereichs Das Layout der neuen TVA Website sieht neben dem grafischen Rahmen und den Navigations-Elementen oben und links einen grossen Inhaltsbereich (graue Fläche)

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Inkrementelles Backup

Inkrementelles Backup Inkrementelles Backup Im Gegensatz zu einer kompletten Sicherung aller Daten werden bei einer inkrementellen Sicherung immer nur die Dateien gesichert, die seit der letzten inkrementellen Sicherung neu

Mehr