Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 1
3.7.03 Erik Wilde 1
XML, XHTML und MathML
Erik WildeInstitut für Technische Informatik und
Kommunikationsnetze (TIK)ETH Zürich
3.7.03 Erik Wilde 2
Programm
10'Demo: Konvertierung MathML nach PDF
15'Übung 3: Amaya als Formeleditor
15'Mathematical Markup Language (MathML)
10'Übung 2: XHTML Dokument
10'XHTML als neue Version von HTML
15'Übung 1: XML Dokument und DTD
35'XML Basics (Dokumente, DTDs)
10'Einführung und Geschichte von XML
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 2
3.7.03 Erik Wilde 3
XML und HTML
sieht "so ungefähr" aus wie HTMLgleiche Basis (Standard Generalized Markup Language, SGML)proven success (SGML und HTML sind Erfolge)geringere Hemmschwelle für Umsteiger
funktioniert ähnlich wie HTMLgleiche Strukturierungsverfahren (Grammatiken)rein textorientiertes Format (keine Binärdaten!)
andere Zielgruppe als HTMLweiterverarbeitbare Information (B2B)anwendungsabhängige Datenstrukturenetabliertes Umfeld (EDIFACT, SGML, proprietär)
3.7.03 Erik Wilde 4
SGML
Standard Generalized Markup Languagedefiniert in ISO Standard 8879 (1986)
Markup Language trennt Struktur und TextStruktur ist syntaktisch identifizierbar
Vorteile einer Markup Languageeinfache Repräsentation (Erzeugung "von Hand")Austauschbarkeit als rein textbasierte Dokumente
Definition beliebiger Dokumenttypenanwendungsspezifische Dokumenttypengemeinsamer zugrundeliegender Mechanismusgemeinsam verwendbare Software
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 3
3.7.03 Erik Wilde 5
SGML als Design-Philosophie
GML als erstes inhaltsorientiertes FormatDokumentformatierung als getrennter SchrittDefinition von Dokumentenklassen (Datentypen)
SGML kombiniert Struktur und Textzeichenbasiertes Format (keine binäre Form)Strukturinformation in der Form von "Markup"
internationaler Standard (ISO 8879, 1986)nicht unter Kontrolle eines Herstellersunabhängig von spezifischer Software
Optimierungen für manuelle Eingabegedacht als Erleichterungen für Menschenaber Hindernisse und Anforderungen für Maschinen
3.7.03 Erik Wilde 6
Aufbau von SGML
die SGML Declarationkonkrete Syntax (Zeichen mit spezieller Bedeutung)SGML Features (wie Markup Minimization)
die Document Type Definition (DTD)definiert erlaubte Elementedefiniert Kombination der erlaubten Elementedefiniert Attribute der erlaubten Elementedefiniert Entities, z.B. für Sonderzeichen
das Document selberStruktur des Inhaltes gemäss der DTDInhalt der Struktur (Text)
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 4
3.7.03 Erik Wilde 7
SGML Parser
SGML Parser
SGMLDeclaration DTD Document
3.7.03 Erik Wilde 8
SGML/XML-Teile von HTML
<a href="http://www.ethz.ch/">ETH Zürich</a>
Begrenzung des Attributwertes
Attributwert
SG
ML
Dec
lara
tion
Beginn eines Start-Tags
Element-Name
Attribut-Name
Zuweisung eines Attributwertes
Ende eines Tags
Beginn eines End-Tags
Sonderzeichen
DTD
Anchor-Element
Referenz-Attribut
URI der Referenz Text
Umlaut 'u'Docu
men
t
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 5
3.7.03 Erik Wilde 9
Vergleich SGML/XML/HTML
freifreifreiDocument
fixfreifreiDTD
fixfixfreiSGML Declaration
SGML XML HTML
3.7.03 Erik Wilde 10
Beispiel (XML)
<?xml version="1.0" ?><!DOCTYPE kurs SYSTEM "kurs.dtd">
<kurs><titel kurz="XML">XML - Grundlagen und Umfeld</titel>
<referent email="[email protected]"homepage="http://dret.net/">
<vorname>Erik</vorname><name>Wilde</name><organisation homepage="http://www.tik.ee.ethz.ch/">ETHZürich</organisation>
</referent>
<referent> ... </referent>
<termin date="20000512" location="technopark"/>
<inhalt> ... </inhalt> </kurs>
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 6
3.7.03 Erik Wilde 11
XML Baumstruktur
titeltitelinhaltinhalt
namename
referentreferent
organisationorganisationvornamevorname
namename
referentreferent
organisationorganisationvornamevorname
termintermin
kurskurs
emailemail
kurzkurz
homepagehomepage
datedate
locationlocation
emailemail
homepagehomepage
3.7.03 Erik Wilde 12
XML Dokumente sind Bäume
XM
L Parser
titeltitel
inhaltinhalt
namename
referentreferent
organisationorganisation
vornamevorname
namename
referentreferent
organisationorganisation
vornamevorname
termintermin
kurskurs
emailemail
kurzkurz
homepagehomepage
datedate
locationlocation
emailemail
homepagehomepage
<?xml version="1.0" ?><!DOCTYPE kurs SYSTEM "kurs.dtd">
<kurs><titel kurz="XML">XML -Grundlagen und Umfeld</titel>
<referent email="[email protected]"
homepage="http://dret.net/"><vorname>Erik</vorname><name>Wilde</name><organisation
homepage="...">ETHZürich</organisation>
</referent>
<referent> ... </referent><inhalt> ... </inhalt>
</kurs>
u.U. Schema-Information (z.B. Attribut-Defaults aus DTD oder XML Schema)
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 7
3.7.03 Erik Wilde 13
Document Type Definition (DTD)
Beschreibung der Datenstrukturen in einem SchemaSchema beschreibt eine Klasse von DokumentenSGML/XML DTD ist nur eine mögliche Variante
Beschreibung von DatenblöckenElemente als StrukturmittelAttribute als Daten zu Elementen
Beschreibung der erlaubten KombinationenDefinition einer GrammatikVerwendung für die Validierung von Daten
Schema Modellierung als Kern von XML
3.7.03 Erik Wilde 14
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
email CDATA #IMPLIED
homepage CDATA #IMPLIED >
<!ELEMENT vorname (#PCDATA) >
<!ELEMENT name (#PCDATA) >
<!ELEMENT organisation (#PCDATA) >
<!ATTLIST organisation
homepage CDATA #IMPLIED >
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 8
3.7.03 Erik Wilde 15
Elemente
Elemente sind der grundlegende MechanismusStrukturierung von hierarchischen Daten"beliebige" Namensgebung für ElementeDefinition gemäss inhaltlichen StrukturenKernpunkt des DTD-Designs
Elementtypen haben zwei wichtige Aspekteein content model für erlaubten InhaltAttribute (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 16
Elementtyp-Deklarationen
der Inhalt von Elementen kann seinnur Elemente (element content model)Text gemischt mit Elementen (mixed content model)kein Inhalt erlaubt (EMPTY Keyword)
das content model eines Elementsoptionales Vorkommen mit ?, wiederholbar mit *notwendig und wiederholbar mit +Sequenz mit ,Alternativen (Exklusiv-oder) mit |
nicht erlaubt sind folgende SGML Konstruktevertauschbare Vorkommen mit & und Exceptions
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 9
3.7.03 Erik Wilde 17
Attribute
Attribute sind Informationen zu ElementenAttribute geben ZusatzinformationenEntscheidung Attribut/Element nicht immer klar
optional (#IMPLIED) oder notwendig (#REQUIRED)Attribute können verschiedene Typen haben
ein Konzept, das für Elemente nicht existiertdeutliche Einschränkungen (siehe HTML DTD)
DTD: <!ATTLIST titel kurz CDATA #REQUIRED >
Dokument: <titel kurz="XML">XML - Grundlagen...
3.7.03 Erik Wilde 18
Attributlisten-Deklarationen
erlaubt sindmehrere Attribute in einer AttributlisteNamenskonflikte: das erste Vorkommen zählt gleiche Attributnamen für verschiedene Elemente
erlaubte Typen sindString types (beliebiger String als Wert)Tokenized types (XML Namen)
ID/IDREF(S) als Referenzierungsmechanismus
Enumerated typesAuswahl aus vordefinierter Liste (z.B. Ja/Nein)
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 10
3.7.03 Erik Wilde 19
Programm
10'Demo: Konvertierung MathML nach PDF
15'Übung 3: Amaya als Formeleditor
15'Mathematical Markup Language (MathML)
10'Übung 2: XHTML Dokument
10'XHTML als neue Version von HTML
15'Übung 1: XML Dokument und DTD
35'XML Basics (Dokumente, DTDs)
10'Einführung und Geschichte von XML
3.7.03 Erik Wilde 20
HTML und XML
HTML basiert auf SGMLGross-/Kleinschreibung ist irrelevantMarkup-Minimierung ist erlaubt (Tags weglassen)
99% aller HTML-Seiten sind fehlerhaftTools und Menschen sind nachlässigBrowser und Suchmaschinen sind tolerantdiese beiden Faktoren verstärken sich gegenseitig
XHTML ist HTML auf XML-Basiseine XHTML-Seite muss gültiges XML seindamit mit XML-Tools weiterverarbeitbareinfach mit XML-Tools zu erzeugen
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 11
3.7.03 Erik Wilde 21
SGML
HTML/SGML und XHTML/XML
HTML
XML
XHTML"A Reformulation of HTML"
"SGML on the Web"
bas
ed o
n
bas
ed o
n
3.7.03 Erik Wilde 22
HTML → XHTML
Umwandlung bestehender HTML-Seiten1. valides HTML (http://validator.w3.org)2. alle Elemente und Attribute in lowercase3. leere Elemente als <element /> codieren4. End-Tags einfügen (<p>Text</p>)5. Attributwerte müssen in Quotes sein6. Attributnamen müssen angegeben werden7. vordefinierte Attributwerte müssen lowercase sein
http://www.w3.org/TR/xhtml1/#diffs
es existieren Utilities zur Umformunghttp://tidy.sourceforge.net
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 12
3.7.03 Erik Wilde 23
Programm
10'Demo: Konvertierung MathML nach PDF
15'Übung 3: Amaya als Formeleditor
15'Mathematical Markup Language (MathML)
10'Übung 2: XHTML Dokument
10'XHTML als neue Version von HTML
15'Übung 1: XML Dokument und DTD
35'XML Basics (Dokumente, DTDs)
10'Einführung und Geschichte von XML
3.7.03 Erik Wilde 24
Mathematical Markup Language
MathML ist eine XML-AnwendungHTML unterstützt keine Formeln
Darstellung durch BilderDarstellung durch HTML-Layout-Steuerung
MathML definiert zwei NotationenPresentation Elements
für die Struktur der Darstellung (Präsentation)Konzepte wie Klammern, Matrizen, Operatoren
Content Elementsfür die mathematische StrukturKonzepte wie Addition, Exponentiation, Sinusbeschränkter Vorrat an definierten Konzepten
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 13
3.7.03 Erik Wilde 25
MathML Inhalt
keine manuelle ErzeugungXML verlangt volles Markupkomplexe Darstellung einfacher FormelnTools (Formeleditoren), u.U. Import und Export
Presentation Element für ZahlenZahl als Operand in einer FormelLayout-Steuerung (Font und Farbe)
Content Element für ZahlenZahl als Repräsentation eines KonzeptsTyp der Zahl (ganzzahlig oder Fliesspunkt)Basis der Zahl (dezimal, binär, oktal)
3.7.03 Erik Wilde 26
Beispiel einer MathML Formel
<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>
( )2ba +
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 14
3.7.03 Erik Wilde 27
MathML Formeln sind Bäume
3.7.03 Erik Wilde 28
MathML 2.0 Referenz
MathML 2.0 ist eine grosse DTDca. 30 Elemente für Presentation Markupca. 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/
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 15
3.7.03 Erik Wilde 29
Programm
10'Demo: Konvertierung MathML nach PDF
15'Übung 3: Amaya als Formeleditor
15'Mathematical Markup Language (MathML)
10'Übung 2: XHTML Dokument
10'XHTML als neue Version von HTML
15'Übung 1: XML Dokument und DTD
35'XML Basics (Dokumente, DTDs)
10'Einführung und Geschichte von XML
3.7.03 Erik Wilde 30
MathML Wiederverwendung
MathML ist XMLkann mit beliebigen XML Tools verarbeitet werdenkann in andere XML Dokumente integriert werden
in unseren Beispielen mit XHTMLdie Umgebung muss die Kombination verstehen
MathML Abbildung auf andere VokabulareMathML-Transformation mittels XSLT
XSLT ist eine Sprache für XML-TransformationenZielformate 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
XML, XHTML und MathML 3.7.03
©2003 Erik Wilde 16
3.7.03 Erik Wilde 31
Besten Dank
Fragen? Kommentare?
mailto:[email protected]
http://dret.net/netdret/
http://dret.net/netdret/publications#biel2003