90 likes | 189 Views
Dienstag, 26. Juli 2011. WS 2011/2012. Aufbau der Einheit: Was ist XML: Terminologie Eigenschaften von XML Dokumenten Java XML-APIs. 1. Einleitung. Terminologie : Markup-Sprachen: dienen der strukturierten Gliederung von Texten und Daten, (Überschriften, Fußnoten, Absätze etc.)
E N D
Java für Fortgeschrittene Kurseinheit 05 Java XML Thomas Klutsch Florian Köttner Dienstag, 26. Juli 2011 WS 2011/2012
Netzwerkprogrammierung • Aufbau der Einheit: • Was ist XML: • Terminologie • Eigenschaften von XML Dokumenten • Java XML-APIs
1. Einleitung • Terminologie: • Markup-Sprachen: dienen der strukturierten Gliederung von Texten und Daten, (Überschriften, Fußnoten, Absätze etc.) • Auszeichnungssprachen heben dies durch Auszeichnungen hervor, Beispiel HTML • Begriffe wie tags bezeichnen Auszeichnungselemente wie <b>fett</b> • Internetseiten: z.B. HTML, SGML als Standardisierungssprache • XML von W3C entwickelt (Extensible Markup Language)
Eigenschaften von XML-Dokumenten: • Enthält strukturierte Elemente in Hierarchie • Einzelne Elemente können Attribute besitzen, welche zusätzliche informationen speichern • Groß und Kleinschreibung zur Unterscheidung wichtig! • in Attribut besteht aus einem Attributnamen und einem Wert • Anfangs und Endtag beschreiben Elemente (Tags können sofort geschlossen sein) • XML-Dokument muss wohlgeformt sein! • Kommentare : <!-- Text des Kommentars -->
Beschreibungssprache für den Aufbau von XML-Dokumenten • Keinerlei Festlegung auf Anzahl und Art der Tags bei XML • Beschreibungssprache notwendig, welche für bestimmte Anwendungen, die Regeln zur Verwendung von Tags und deren Kombination festlegt und somit prüfen kann, ob die XML-Datei für die Anwendung zulässig ist. • 2 Sprachen haben sich durchgesetzt: DTD (DocumentType Definition) und XML-Schema
2. JAVA APIs für XML • DOM-orientierte APIs (repräsentieren den XML-Baum im Speicher): W3C-DOM, JDOM, dom4j, XOM … • Pull-API (wie ein Tokenizer wird über die Elemente gegangen): Dazu gehören XPP (XML Pull Parser), wie sie der StAX-Standard definiert. • Push-API (nach dem Callback-Prinzip ruft der Parser Methoden auf und meldet Elementvorkommen): SAX (Simple API for XML) ist der populäre Repräsentant. • Mapping-API (der Nutzer arbeitet überhaupt nicht mit den Rohdaten einer XML-Datei, sondern bekommt die XML-Datei auf ein Java-Objekt umgekehrt abgebildet): JAXB, Castor, XStream, …
JAXB als Java Schnittstelle zu XML • DOM, SAX, XPath, StAX sind erst einmal pure APIs, mit verschiedener Implementation • Nachteil bei direkter Parserbenutzung: Abhängigkeit von bestimmten Klassen. • Deswegen: Java API for XML Parsing (JAXP) als Abstraktionsschicht • Java Architecturefor XML Binding (JAXB) ist eine API zum Übertragen von Objektzuständen auf XML-Dokumente und umgekehrt. • Erste JAXP-Anwendung: Auslesen eines DOM-Baumes mit JAXB
JAXB Bean aufbauen: • Klassen-Annotationstag @XmlRootElement über die Klasse schreiben! • Nur Default-Konstruktor verwenden und das Objekt selber initialisieren