Die EXtensible Markup Language ist eine Untermenge von SGML
Witz an XML
Trennt wie SGML die Logische Struktur von der Darstellung, ist aber nicht so umfangreich.
XML ist eine Metasprache, mit der diverse Sprachen formuliert werden können.
XML wird normiert vom W3C. Aktuell ist http://www.w3.org/TR/2000/REC-xml-20001006
Einsatzgebiete
- Cross-Media Publishing
- Ein Text/Dokument soll z.B. im Internet, auf CD und als Buch herauskommen
Dies wäre auch etwas für unsere Arbeiten hier auf unserem
Technologieportal.
- WWW
-
- Selbstverständlich können XML-Dokumente mit dem HTTP-Protokoll übertragen werden.
- Die HTML-Sprache wird nun zu einer Untermenge von XML -> XHTML
- [minert2000] S.53: Die Grundannahme, daß alle WWW-Dokumente die selbe DTD haben, ist unsinnig.
- Universelles Datenaustauschformat
-
Dokumente können als Objekte (die wiederum aus mehren Teilobjekten zusammengesetzt werden) angesehen werden.
Der Vorteil ist, daß das Format mit universellen XML-Werkzeugen verarbeitbar
ist.
- Beispiel für E-Commerce
- Aus objektorientierten Datenbanken kann leicht das XML-Format generiert
werden.
- Webservices
- Man beachte aber auch unsere Kritik.
Teile
Typbeschreibung
- XML_Dokumente haben eine DTD ( DocumentTypDefinition)
-
formale Strukturbeschreibung eines SGML/XML-Dokuments.
Hier wird also spezifiziert, welche Tags mit welchen Attributen erlaubt sind.
Kritik: nicht genug Ausdruckskraft (z.B. keine genauen Elementartypen), noch nicht mal selber XML und zu komplizierte Syntax.
- XML Schema besteht aus Structures und Datatypes
-
Aktueller Status des XML-Schemas
Eine solche Schemadefinition definiert ein XML-Dokument noch genauer und mit genauen Typbeschreibungen für die Inhalte.
Es sind sogar Vererbungen möglich.
Es erinnert sehr an Objektorientierte Programmiersprachen und Datenbanken.
Hinweise zur Konstruktion von DTD/Schemata d.h. Sprachen
Transformation in andere Formate
- XSL
- dient zur Generierung von anderen Repräsentationen wie RTF,PDF,Postscript
und fällt in 2 Teile:
- Transformation (XSLT)
- Formatierung (FO Formatting Objects)
Mit Xpath-Ausdrücken kann man
Teile eines XML-Dokuments selektieren. XSLT-templates referenzieren so ihre Muster, daneben gibt es noch andere Anwendungen.
- TeXML von IBM
- ist ein Zwischenformat für TeX
- Alternativen zu XSL
- Vor XSL gab es schon lange DSSSL (bei SGML)
und daneben gibt es
- CSS (Cascading Stylesheets)
- ad hoc formatierungen
APIs für Bibliotheken zur Bearbeitung von XML-Dokumenten
Allgemein/programmiersprachenunabhänig
- SAX: Simple API for XML
- DOM: Dokument Objekt Model
- JAXP
- ist die Java Api for XML Processing mit SAX und DOM
- jdom
- SAX und DOM sind in erster Linie API-Klassen, die verschieden implementiert werden können. Dahingegen sit jdom eine Bibliothek, die sich besser in Java integriert
- dom4j
- ähnlich jdom, performanter
- XOM
- ähnlich jdom, performanter
- JAXB JavaArchitecture for XML-Binding
- Aus XML-XML_Schema werden Klassen generiert und aus Klassen wird XML-Schema generiert [Wikipedia]
Oracle Documentation zu JAXB
Hier gibt es mehrere Abstraktionsstufen:
- XMLReader
- Pull-Modell, iterator über XML-Dokumente
- LINQ XML
- abstrakte Abfragen auf XML-Dokumente
- Serialisierung/Deserialisierung mit Generator xsd
- Hier wird ein XML als Objekt deserialisiert und seralisiert
Vergleiche
- Apache Xerces-C++
- vollständige, aber umfangreiche Bibliothek
- Rapid-XML
- templatebasiertes DOM-Modell, man muss nur ein Header einbinden
Github
Visual Basic und XML-SAX
- Microsofts Developper Network: How Do I Use SAX ?
sollten auf Dokument Object Model basieren.
Prognose aus [minert2000]: In Zukunft werden
- Browser
- Textverarbeitungsprogramme
- E-Mailprogramme
alle mit XML umgehen können.
(Damit ist der Austausch von Dokumenten, die mit Programmen verschiedener Hersteller generiert worden ist (WORD,StarOffice,FrameMaker,...) überhaupt kein Problem mehr.)
- Beziehung zu Datenbanksystemen
standardisierte XML-Dokumentypes/Schemas
- XHTML XML-Version von HTML
- aufgegeben worden ???
- SVG - Scalable Vektor Graphik
- MathML
- xlink
-
Style-Sheets
- DokBook
- Version 4.1.2 ist nun in XML
(Beispielsweise die Dokumentation von BIND nutzt DokBook.)
Bob Stayton: "DocBook XSL: The Complete Guide", u.a.
MathML in Docbook
Sonstiges
- Diverse Details zu XML
- XML-Validierungsdienst, wo man URLs aus dem Netz validieren kann.
- Umfangreiche Linksammlung
zum Thema.
- Interessant ist, daß hier alle, sogar Microsoft und Sun, Beiträge liefern...
- XML-Hacks vom E-Tutorial
Wichtige Einführungen und Links
- http://www.xml.org/
- Seiten der XML-Industrie, hier gibt es unter anderm Schemas zu allen
möglichen Zwecken
- http://www.xml.com/
- Inhaltsreiches XML-Portal
- Deutsche Übersetzung vom XML1.0-Standard-Dokument
- Wikipedia über XML
- XML-Bemerkungen von
SELFHTML
-
- Henning Behme und Stefan Mintert: XML in der Praxis
- Technologies for the future WeB
- Einführung in diverse XML-Techniken
- XML-Bible
- XML für WWW-Designer
- SGML Center mit vielen Papers
- XML2DAY
- Hier ist ein Portal zum Thema XML mit Nachrichten, Literatur, Seminar-Angeboten und Grundlagen.
- Literatur
Programmierung
- Processing XML mit Java
-
Optimierte Speicherungen
Eine Studie in einem proprietären FundE-Projekts ergab, dass bei einer Transformation von binären Nachrichten (in "handgestrickten" Format) in unkomprimierte XML-Nachrichten die Grösse XML/Binär - Größe ungefähr 10 ist. - damit ist aus Performancegründen I/O-Durchsatz, Speicherverbrauch usw. bei vielen Anwendungen der Einsatz nicht oppertun.
Wikipedia über Binäres XML zeigt Lösungen auf, die man aber mit anderen traditionellen Objektpersistenzmechanismen vergleichen sollte.
Informatik- und Netzwerkverein Ravensburg e.V Rudolf Weber