XML, XHTML und MathML Erik Wilde Institut für Technische Informatik und Kommunikationsnetze (TIK) ETH Zürich 3.7.03 Erik Wilde 1 Programm Einführung und Geschichte von XML XML Basics (Dokumente, DTDs) Übung 1: XML Dokument und DTD XHTML als neue Version von HTML Übung 2: XHTML Dokument Mathematical Markup Language (MathML) Übung 3: Amaya als Formeleditor Demo: Konvertierung MathML nach PDF 35' 3.7.03 Erik Wilde 2 2003 Erik Wilde 1
XML und HTML sieht "so ungefähr" aus wie HTML gleiche Basis (Standard Generalized Markup Language, SGML) proven success (SGML und HTML sind Erfolge) geringere Hemmschwelle für Umsteiger funktioniert ähnlich wie HTML gleiche Strukturierungsverfahren (Grammatiken) rein textorientiertes Format (keine Binärdaten!) andere Zielgruppe als HTML weiterverarbeitbare Information (B2B) anwendungsabhängige Datenstrukturen etabliertes Umfeld (EDIFACT, SGML, proprietär) 3.7.03 Erik Wilde 3 SGML Standard Generalized Markup Language definiert in ISO Standard 8879 (1986) Markup Language trennt Struktur und Text Struktur ist syntaktisch identifizierbar Vorteile einer Markup Language einfache Repräsentation (Erzeugung "von Hand") Austauschbarkeit als rein textbasierte Dokumente Definition beliebiger Dokumenttypen anwendungsspezifische Dokumenttypen gemeinsamer zugrundeliegender Mechanismus gemeinsam verwendbare Software 3.7.03 Erik Wilde 4 2003 Erik Wilde 2
SGML als Design-Philosophie GML als erstes inhaltsorientiertes Format Dokumentformatierung als getrennter Schritt Definition von Dokumentenklassen (Datentypen) SGML kombiniert Struktur und Text zeichenbasiertes Format (keine binäre Form) Strukturinformation in der Form von "Markup" internationaler Standard (ISO 8879, 1986) nicht unter Kontrolle eines Herstellers unabhängig von spezifischer Software Optimierungen für manuelle Eingabe gedacht als Erleichterungen für Menschen aber Hindernisse und Anforderungen für Maschinen 3.7.03 Erik Wilde 5 Aufbau von SGML die SGML Declaration konkrete Syntax (Zeichen mit spezieller Bedeutung) SGML Features (wie Markup Minimization) die Document Type Definition (DTD) definiert erlaubte Elemente definiert Kombination der erlaubten Elemente definiert Attribute der erlaubten Elemente definiert Entities, z.b. für Sonderzeichen das Document selber Struktur des Inhaltes gemäss der DTD Inhalt der Struktur (Text) 3.7.03 Erik Wilde 6 2003 Erik Wilde 3
SGML Parser SGML Declaration DTD Document SGML Parser 3.7.03 Erik Wilde 7 SGML/XML-Teile von HTML Document DTD SGML Declaration Beginn eines Start-Tags Ende eines Tags Element-Name Begrenzung des Attributwertes Attribut-Name Attributwert Beginn eines End-Tags Zuweisung eines Attributwertes Sonderzeichen <a href="http://www.ethz.ch/">eth Zürich</a> Referenz-Attribut Umlaut 'u' Anchor-Element URI der Referenz Text 3.7.03 Erik Wilde 8 2003 Erik Wilde 4
Vergleich SGML/XML/HTML SGML XML HTML SGML Declaration frei fix fix DTD frei frei fix Document frei frei frei 3.7.03 Erik Wilde 9 Beispiel (XML) <?xml version="1.0"?> <!DOCTYPE kurs SYSTEM "kurs.dtd"> <kurs> <titel kurz="xml">xml - Grundlagen und Umfeld</titel> <referent ="xml@dret.net" homepage="http://dret.net/"> <vorname>erik</vorname> <name>wilde</name> <organisation homepage="http://www.tik.ee.ethz.ch/">eth Zürich</organisation> </referent> <referent>... </referent> <termin date="20000512" location="technopark"/> <inhalt>... </inhalt> </kurs> 3.7.03 Erik Wilde 10 2003 Erik Wilde 5
XML Baumstruktur kurz kurz titel titel kurs kurs termin termin inhalt inhalt date date homepage homepage referent referent vorname vorname referent referent name name location location organisation organisation vorname vorname name name organisation organisation homepage homepage 3.7.03 Erik Wilde 11 XML Dokumente sind Bäume <?xml version="1.0"?> <!DOCTYPE kurs SYSTEM "kurs.dtd"> <kurs> <titel kurz="xml">xml - Grundlagen und Umfeld</titel> <referent ="xml@dret.net" homepage="http://dret.net/"> <vorname>erik</vorname> <name>wilde</name> <organisation homepage="...">eth Zürich</organisation> </referent> <referent>... </referent> <inhalt>... </inhalt> XML Parser homepage homepage kurz kurz titel titel referent referent kurs kurs vorname vorname termin termin referent referent name name inhalt inhalt date date location location organisation organisation </kurs> vorname vorname name name organisation organisation homepage homepage u.u. Schema-Information (z.b. Attribut-Defaults aus DTD oder XML Schema) 3.7.03 Erik Wilde 12 2003 Erik Wilde 6
Document Type Definition (DTD) Beschreibung der Datenstrukturen in einem Schema Schema beschreibt eine Klasse von Dokumenten SGML/XML DTD ist nur eine mögliche Variante Beschreibung von Datenblöcken Elemente als Strukturmittel Attribute als Daten zu Elementen Beschreibung der erlaubten Kombinationen Definition einer Grammatik Verwendung für die Validierung von Daten Schema Modellierung als Kern von XML 3.7.03 Erik Wilde 13 Beispiel (Teil einer DTD) <!ELEMENT kurs (titel, referent+, termin+, inhalt) > <!ELEMENT titel (#PCDATA) > <!ATTLIST titel kurz CDATA #REQUIRED > <!ELEMENT referent (vorname, name, organisation?) > <!ATTLIST referent CDATA #IMPLIED homepage CDATA #IMPLIED > <!ELEMENT vorname (#PCDATA) > <!ELEMENT name (#PCDATA) > <!ELEMENT organisation (#PCDATA) > <!ATTLIST organisation homepage CDATA #IMPLIED > 3.7.03 Erik Wilde 14 2003 Erik Wilde 7
Elemente Elemente sind der grundlegende Mechanismus Strukturierung von hierarchischen Daten "beliebige" Namensgebung für Elemente Definition gemäss inhaltlichen Strukturen Kernpunkt des DTD-Designs Elementtypen haben zwei wichtige Aspekte ein content model für erlaubten Inhalt Attribute (optionales Vorkommen oder notwendig) DTD deklariert Typ, den Dokument verwendet DTD: <!ELEMENT titel (#PCDATA) > Dokument: <titel>xml - Grundlagen und Umfeld</titel> 3.7.03 Erik Wilde 15 Elementtyp-Deklarationen der Inhalt von Elementen kann sein nur Elemente (element content model) Text gemischt mit Elementen (mixed content model) kein Inhalt erlaubt (EMPTY Keyword) das content model eines Elements optionales Vorkommen mit?, wiederholbar mit * notwendig und wiederholbar mit + Sequenz mit, Alternativen (Exklusiv-oder) mit nicht erlaubt sind folgende SGML Konstrukte vertauschbare Vorkommen mit & und Exceptions 3.7.03 Erik Wilde 16 2003 Erik Wilde 8
Attribute Attribute sind Informationen zu Elementen Attribute geben Zusatzinformationen Entscheidung Attribut/Element nicht immer klar optional (#IMPLIED) oder notwendig (#REQUIRED) Attribute können verschiedene Typen haben ein Konzept, das für Elemente nicht existiert deutliche Einschränkungen (siehe HTML DTD) DTD: <!ATTLIST titel kurz CDATA #REQUIRED > Dokument: <titel kurz="xml">xml - Grundlagen... 3.7.03 Erik Wilde 17 Attributlisten-Deklarationen erlaubt sind mehrere Attribute in einer Attributliste Namenskonflikte: das erste Vorkommen zählt gleiche Attributnamen für verschiedene Elemente erlaubte Typen sind String types (beliebiger String als Wert) Tokenized types (XML Namen) ID/IDREF(S) als Referenzierungsmechanismus Enumerated types Auswahl aus vordefinierter Liste (z.b. Ja/Nein) 3.7.03 Erik Wilde 18 2003 Erik Wilde 9
Programm Einführung und Geschichte von XML XML Basics (Dokumente, DTDs) Übung 1: XML Dokument und DTD XHTML als neue Version von HTML Übung 2: XHTML Dokument Mathematical Markup Language (MathML) Übung 3: Amaya als Formeleditor Demo: Konvertierung MathML nach PDF 35' 3.7.03 Erik Wilde 19 HTML und XML HTML basiert auf SGML Gross-/Kleinschreibung ist irrelevant Markup-Minimierung ist erlaubt (Tags weglassen) 99% aller HTML-Seiten sind fehlerhaft Tools und Menschen sind nachlässig Browser und Suchmaschinen sind tolerant diese beiden Faktoren verstärken sich gegenseitig XHTML ist HTML auf XML-Basis eine XHTML-Seite muss gültiges XML sein damit mit XML-Tools weiterverarbeitbar einfach mit XML-Tools zu erzeugen 3.7.03 Erik Wilde 20 2003 Erik Wilde 10
HTML/SGML und XHTML/XML HTML "A Reformulation of HTML" XHTML based on based on SGML "SGML on the Web" XML 3.7.03 Erik Wilde 21 HTML XHTML Umwandlung bestehender HTML-Seiten 1. valides HTML (http://validator.w3.org) 2. alle Elemente und Attribute in lowercase 3. leere Elemente als <element /> codieren 4. End-Tags einfügen (<p>text</p>) 5. Attributwerte müssen in Quotes sein 6. Attributnamen müssen angegeben werden 7. vordefinierte Attributwerte müssen lowercase sein http://www.w3.org/tr/xhtml1/#diffs es existieren Utilities zur Umformung http://tidy.sourceforge.net 3.7.03 Erik Wilde 22 2003 Erik Wilde 11
Programm Einführung und Geschichte von XML XML Basics (Dokumente, DTDs) Übung 1: XML Dokument und DTD XHTML als neue Version von HTML Übung 2: XHTML Dokument Mathematical Markup Language (MathML) Übung 3: Amaya als Formeleditor Demo: Konvertierung MathML nach PDF 35' 3.7.03 Erik Wilde 23 Mathematical Markup Language MathML ist eine XML-Anwendung HTML unterstützt keine Formeln Darstellung durch Bilder Darstellung durch HTML-Layout-Steuerung MathML definiert zwei Notationen Presentation Elements für die Struktur der Darstellung (Präsentation) Konzepte wie Klammern, Matrizen, Operatoren Content Elements für die mathematische Struktur Konzepte wie Addition, Exponentiation, Sinus beschränkter Vorrat an definierten Konzepten 3.7.03 Erik Wilde 24 2003 Erik Wilde 12
MathML Inhalt keine manuelle Erzeugung XML verlangt volles Markup komplexe Darstellung einfacher Formeln Tools (Formeleditoren), u.u. Import und Export Presentation Element für Zahlen Zahl als Operand in einer Formel Layout-Steuerung (Font und Farbe) Content Element für Zahlen Zahl als Repräsentation eines Konzepts Typ der Zahl (ganzzahlig oder Fliesspunkt) Basis der Zahl (dezimal, binär, oktal) 3.7.03 Erik Wilde 25 Beispiel einer MathML Formel ( a + b) 2 <msup> <mfenced> <mrow> <mi>a</mi> <mo>+</mo> <mi>b</mi> </mrow> </mfenced> <mn>2</mn> </msup> <apply> <power/> <apply> <plus/> <ci>a</ci> <ci>b</ci> </apply> <cn>2</cn> </apply> 3.7.03 Erik Wilde 26 2003 Erik Wilde 13
MathML Formeln sind Bäume 3.7.03 Erik Wilde 27 MathML 2.0 Referenz MathML 2.0 ist eine grosse DTD ca. 30 Elemente für Presentation Markup ca. 140 Elemente für Content Markup Arithmetic, Algebra, and Logic (<plus/>) Relations (<eq/>) Calculus (<int/>) Theory of Sets (<union/>) Sequences and Series (<sum/>) Classical Functions (<sin/>) Statistics (<mean/>) Linear Algebra (<matrix/>) Constants (<pi/>) http://www.zvon.org/xxl/mathml/output/ 3.7.03 Erik Wilde 28 2003 Erik Wilde 14
Programm Einführung und Geschichte von XML XML Basics (Dokumente, DTDs) Übung 1: XML Dokument und DTD XHTML als neue Version von HTML Übung 2: XHTML Dokument Mathematical Markup Language (MathML) Übung 3: Amaya als Formeleditor Demo: Konvertierung MathML nach PDF 35' 3.7.03 Erik Wilde 29 MathML Wiederverwendung MathML ist XML kann mit beliebigen XML Tools verarbeitet werden kann in andere XML Dokumente integriert werden in unseren Beispielen mit XHTML die Umgebung muss die Kombination verstehen MathML Abbildung auf andere Vokabulare MathML-Transformation mittels XSLT XSLT ist eine Sprache für XML-Transformationen Zielformate sind textbasierte Formate andere XML-Dialekte oder generell andere Formate http://sourceforge.net/projects/xsltml/ XSLT Programme für MathML LaTeX LaTeX nach PDF mittels pdflatex 3.7.03 Erik Wilde 30 2003 Erik Wilde 15
Besten Dank Fragen? Kommentare? mailto:net.dret@dret.net http://dret.net/netdret/ http://dret.net/netdret/publications#biel2003 3.7.03 Erik Wilde 31 2003 Erik Wilde 16