Java und XML Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen,

Slides:



Advertisements
Ähnliche Präsentationen
XML.
Advertisements

Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
XML - Aufbau und Struktur - mit Einsatz im B2B
Hands On – Einführung in XML
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Dynamische Datentypen
Java: Grundlagen der Sprache
DOM (Document Object Model)
Seminar XML und Datenbanken Sven Wiegelmann SS 2002.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
XML-Parser Manuel Röllinghoff.
Document Object Model (DOM)
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Überblick XML: Extensible Markup Language Entwickelt, um Informationen bereitzustellen, zu speichern und zu übertragen Im Gegensatz zu HTML keine vordefinierten.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
XML Standardisierungen und Abfragesprachen
Speicherung von XML- Dokumenten als Large Objects.
Einführung XML XML Einführung Andreas Leicht.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
JDBC EDV JDBC.
Einführung MySQL mit PHP
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
1 Grundlagen und Anwendung der Extensible Markup Language (XML ) Peter Buxmann Institut für Wirtschaftsinformatik Johann Wolfgang Goethe-Universität Frankfurt.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Templates. © beas2009 / Page 2 This documentation and training is provided to you by beas group AG. The documents are neither approved nor in any way.
Coccon das Web-XML-Publishing System Thomas Haller.
Die Persistenzschicht
Einsatzgebiete und Anwendungen
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Java für Fortgeschrittene
XML-Serverpages Vortrag im Rahmen des Seminars XML-Technologien Tobias Faessler.
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
XML IV: Cocoon 2.
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Oliver Spritzendorfer Thomas Fekete
XML und Datenbanken © 2006 Markus Röder
XML (Extensible Markup Language)
Objectives Verstehen was unterDelegate verstanden wird
EPROG Tutorium #4 Philipp Effenberger
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Reinhold Rumberger Web Services.
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
Schnaiter XML in Java XML - Datei Zugriff mit Java.
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
- Warum: Das HTML-Dilemma
IT-Zertifikat der Phil.Fak Kurs 4: Daten- und Metadatenstandards Patrick Sahle XML-BasicsWS 08/09.
Peter Brezany Institut für Softwarewissenschaften Universität Wien
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
Java-Kurs Übung Besprechung der Hausaufgabe
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Stefan Metzlaff1 Cocoon Stefan Metzlaff
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
XML - Warum: Das HTML-Dilemma HTML, SGML, XML - Wie: Syntax, Konzepte, Sprachelemente Basics Wohlgeformte XML-Dokumente (ohne DTD) Gültige XML-Dokumente.
Markus Röder. XML 1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher,
1 Java und XML Stephan Baldes Warum XML? In welchem Format wurden die Daten gespeichert? Bernd;Thomas;3;5;1987;Freiburg;Karlsruhe Peter;Maier;7;9;1980;Karlsruhe;Freiburg.
Document Type Definitions (DTDs) Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
Tutorium Software-Engineering SS14 Florian Manghofer.
XML und Java Verarbeitung von XML-Dokumenten mit JAVA.
1 © Thales IS GmbH 2002 Thales Information Systems GmbH Im Team für Ihren Erfolg DOAG - Regionaltreffen Hannover Donnerstag, Oracle 9i XML Datenbank.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
 Präsentation transkript:

Java und XML Markus Röder

XML

1. XML ist eine Methode, um strukturierte Daten in einer Textdatei darzustellen strukturierten Daten sind –Kalkulationstabellen, –Adressbücher, –Konfigurationsparameter, –finanzielle Transaktionen, –technische Zeichnungen usw. zu verstehen. XML ist eine Menge von Regeln, Richtlinien, Konventionen XML in 10 Punkten

2. XML sieht fast aus wie HTML, ist aber kein HTML Wie HTML verwendet XML Tags (durch ' ' geklammerte Wörter) Attribute (der Form name="value"), aber HTML legt fest, was jedes Tag und Attribut bedeutet XML nutzt Tags zur Abgrenzung von Daten überlässt die Interpretation der Daten vollkommen der Anwendung, die sie verarbeitet. Mit anderen Worten: wenn Sie " " in einer XML-Datei sehen, sollten Sie nicht annehmen, dass es sich um einen Absatz (englisch: paragraph) handelt. Je nach Kontext kann es ein Preis, ein Parameter, eine Person, ein(e) P.... sein (übrigens, wer sagt denn, dass es ein Wort mit einem "p" sein muss?) XML in 10 Punkten

3. XML ist Text, aber nicht zum Lesen XML-Dateien sind Textdateien, XML-Dateien sind viel strikter als für HTML. Ein vergessenes Tag oder ein Attribut ohne Anführungszeichen macht die Datei unbrauchbar, während dies bei HTML oft explizit erlaubt oder zumindest toleriert wird. In der offziellen XML-Spezifikation steht: Anwendungen dürfen keine Vermutungen anstellen, was der Erzeuger einer beschädigten Datei meinte; wenn die Datei kaputt ist, muss eine Anwendung genau da anhalten und eine Fehlermeldung ausgeben. XML in 10 Punkten

4. XML ist eine Familie von Techniken Hier ein Ausschnitt: Xlink (in Entwicklung seit November 1999), das eine Standardmethode beschreibt, um Hyperlinks zu einer XML-Datei hinzuzufügen. XPointer & XFragments (ebenfalls noch in Entwicklung) sind Syntaxen, um auf Teile eines XML-Dokuments zu zeigen. CSS, die Style-Sheet-Sprache XSL (Herbst 1999) ist die weiterentwickelte Sprache zum Erstellen von Style Sheets. Sie basiert auf XSLT Das DOM ist eine Standardmenge von Funktionsaufrufen zur Manipulation von XML- (und HTML-) Dateien aus einer Programmiersprache. XML Namespaces ist eine Spezifikation Die XML Schemas 1 und 2 unterstützen Entwickler bei der präzisen Definition ihrer eigenen XML-basierten Formate. XML in 10 Punkten

5. XML ist ausführlich, was aber kein Problem darstellt XML-Dateien fast immer größer als vergleichbare binäre Formate. Programme wie zip und gzip können Dateien sehr gut und sehr schnell komprimieren. Diese Programme sind für fast alle Plattformen verfügbar (und meistens kostenlos). Kommunikationsprotokolle wie Modemprotokolle und HTTP/1.1 können Daten automatisch komprimieren und damit ebenso effektiv Bandbreite sparen wie ein binäres Format. XML in 10 Punkten

6. XML ist neu, aber nicht so neu Die Entwicklung von XML begann 1996 Seit Februar 1998 ist es ein W3C-Standard, Vor XML gab es SGML, seit 1986 eine ISO-Norm Vor XML gab es HTML, dessen Entwicklung 1990 begann. XML in 10 Punkten

7, 8, 9... Diese kenne ich selbst noch nicht. XML in 10 Punkten

10. XML ist lizenzfrei, plattformunabhängig und gut unterstützt Wachsenden Ansammlung von Werkzeugen (eines davon macht vielleicht schon das, was Sie brauchen!) und zu einer Menge versierter Fachleute. Sich für XML zu entscheiden, ist fast so wie SQL für Datenbanken zu wählen: XML als eine W3C-Entwicklung ist lizenzfrei, XML ist nicht immer die beste Lösung, aber es lohnt sich immer, XML in Erwägung zu ziehen XML in 10 Punkten Miss at your own RISK

Von SGML zu XML

Probleme konkret – 1 Was bedeuten diese Daten? – |00001|Modell|Handy S 200|| |00002|Spannung V/Hz|230/50|| |00003|Einstellbereich Elektrode A|10-140|| |00004|Einstellbereich WIG A|10-150|| – X0.3MLVOLTAREN OPHTHA SINE EDP ATR MLPREWASH GALL SEIFE X0.4MLPOLYRINSE LINSEN KLAERER –AENDERNARTNR MATCHCODEKnebelschalter u.P. BEGINN_TEXTKURZTEXT Knebelschalter u.P. ENDE_TEXTKURZTEXT PREISTYP0 PREISPER1 BRUTTOPREIS14,20 WarengruppeElektrozubeh”r ProduktgruppeSchalter und Taster – Microsoft Corp. MSFT 92,23

 Was sind die Daten? Die Abgrenzung von Bedeutungseinheiten ist schwer: Probleme konkret – 2 Index: 0Index: 1Index: 2Index: 3 PeterMustermannIsestr Hamburg  Wo sind die Daten? Die Ermittlung der Positionen von Bedeutungseinheiten ist schwer:

Keine einheitliche Grundstruktur –Wechselnde Delimiter, nicht immer zeilenorientiert usw. Nicht plattformunabhängig –Binärrepräsentation bestimmter Datentypen nicht portabel Schwer lesbar –Nicht textbasiert –Keine Metainformationen Unflexibel –Keine hierarchischen oder unstrukturierten Daten Nicht erweiterbar –Grundstruktur und Semantik proprietär Nachteile proprietärer Datenformate

 Das sind die Daten! Bedeutungseinheiten werden von Tags eingeschlossen. Bedeutungseinheiten können geschachtelt werden. Das XML-Lösungsangebot – 1 „Vor“„Nach“ „Name“ Peter Mustermann  Dort sind die Daten! Bedeutungseinheiten können über Namen identifiziert werden.

Das XML-Lösungsangebot – 2 Standardisiertes Regelwerk –WohlgeformtheitsregelnWohlgeformtheitsregeln –Standardisiertes Import-Werkzeug: XML-Parser –Standardisierte In-memory-Repräsentation: XML DOMXML DOM Textbasiertes Format –Plattformunabhängig –Lesbar & einfach zu erzeugen Hierarchische Struktur –Kann flache, hierarchische und unstrukturierte Daten transportieren Beliebig »erweiterbar« –Eigene XML-Formate werden nach den Wohlgeformtheitsregeln entworfen –Optionale Validation / » semantische « Prüfung DTD bzw. XML Schema

Wohlgeformtheit Eine Auswahl von Regeln: –Elemente: Daten zwischen öffnende und schließende Tags Aufbau von Tags ist festgelegt Schließendes Tag kann entfallen, wenn keine Daten umschlossen werden sollen –Genau 1 Dokumentenelement –Elemente können geschachtelt werden Keine Überlappung! –Attribute: Name "=" Wert Nur im öffnenden Tag erlaubt

Vom Text zum Objektmodell: XML DOM Mustermann id="1234" MSXML XML-Parser Adressen Adresse Name PLZ Mustermann id 1234

XML abstrakt Datenserialisierung/-persistenz –In-Memory-Datenstrukturen (XML DOM oder proprietär) werden auf einen Text abgebildet Text kann übertragen oder gespeichert werden Kommunikation... –zwischen Anwendungen –zwischen Rechnern –zwischen Plattformen –in der Zeit Dieselbe Anwendung arbeitet mit Daten zu verschiedenen Zeitpunkten

XML-Einsatzgebiete XML-Auslöser –Web-Client Trennung von Daten und Darstellung –Web-Server Verallgemeinerungen –Applikationskommunikation Vgl. COM vs. CORBA Lose Kopplung –Plattformunabhängig persistente Daten Datenaustausch Archivierung

XML-Landschaft – 1 XML Anwendung XML Schema XQL XML DOM XSL

XML-Landschaft – 2 XML DOM –Generisches Objektmodell für hierarchische Daten XSL(T) & CSS –XML transformieren nach... XML HTML andere Datenformate XQL/XPath –Abfragen auf XML-Daten XML Schema –Validierung von XML-Daten –Datentypen Namespaces –Daten aus verschiedenen Schemata mischen

What´s hot in XML? XML2HTML –Trennung von Daten und Darstellung XSLT, CSS SQL XML Datenaustausch –XML2COM B2B –XML EDI –BizTalk Web Services –SQL XML Applikationskommunikation –SOAP –Objektpersistenz

Die Grenzen von XML Read-Mostly –Veränderungen an XML-Daten (in Dateien) sind aufwendig Kein Ersatz für Datenbanken –Zugriff nicht sehr performant, solange (große) Datenbestände in Dateien liegen Overhead durch Tags –Metadaten vergrößern Datenumfang Binärdaten müssen selbst kodiert werden

XML ist keine exotische Technologie, sondern eine (zukünftige) Selbstverständlichkeit wie Datenbanken, SQL, das Internet oder Skriptsprachen.

Fragen? Uff...

Ressourcen Microsoft XML Workshop – W3C – XML Informationen/Leitseiten – – – – – Welche XML-Software gibt es? – DTD-Generator – XML Code Generator – Diskussion des MSXML-Test auf – BizTalk – Bücher / Dokumentation –»XML in Action«, William J. Pardi, MSPress –»XML IE5 Programmer´s Reference«, Alex Homer, Wrox – »Die neue Web-Sprache«, Norbert Hranitzky,

Praktische Anwendungen XML WML XHTML MathML CML SVG

Du sollst Deine Elemente immer schließen. Du sollst Attributwerte immer in doppelte Anführungszeichen setzen. Schachtelte Deine Elemente immer hierarchisch 3 Gebote von XML

Übung XML Erstellen Sie eine xml Datei, die Datensätze zu Personen enthält 3 Personen mit Name, Vorname, Adresse, und möglichen Kontaktdaten, wie Datum, Grund des Kontaktes Es soll pro Person möglich sein mehrere Kontaktinformationen zu speichern

Übung - Attribute Erweitern Sie Ihre XML Datei, indem Sie den Personen noch ein Attribut Alter und ein Attribut id hinzufügen Den Kontaktdatensätzen fügen Sie bitte noch das Attribut typ hinzu, das die Werte tel, fax, brief, persoenlich enthalten kann

Teile einer XML Struktur Elemente –Leere Elemente Attribute... Kommentare PI CDATA... weiter nächste Seite

Teile einer XML Datei CDATA stehen]]> Zeichen-Referenzen : z.B: &#64 &#xA3 Entitäts-Referenzen: > < &

Kurzeinführung in DTD Document Type Definition z.B :

Komplexe Strukturen <!ELEMENT person (name) muss genau einmal erscheinen <!ELEMENT personen (*person) n mal <!ELEMENT kontakt (+datum) 1... n mal <!ELEMENT person (?ehemann) mal

Übung 2 - DTD Erzeugen Sie eine DTD für Ihre Personendatei Definieren Sie –

Einbinden in XML Markus Susu Mimi

Gültig oder Wohlgeformt ? Wohlgeformt –Syntax von XML wird eingehalten –Wurzelelement existiert –Korrekte Verschachtelung Gültig –Wohlgeformt –Entspricht DT Definitionen

Validieren Nicht - Validierende Parser überprüfen Wohlgeformtheit Validierende Parser überprüfen Gültigkeit

DTD Spezialitäten ENTITY Röder mac “> Benutzung mit &mac;

Attribute Zeichenkettenattribute Aufzählungsattribute Notationsattribute Tokenattribute –id –idref –idrefs

Attribute definieren <!ATTLIST id ID #REQUIRED priority (high | low |medium) #REQUIRED type CDATA #IMPLIED >

Übung 2 - DTD Attribute Erweitern Sie Ihre DTD mit den Attributwerten mittels –<!ATTLIST Binden Sie Ihre DTD in Ihre xml Datei mittels

Namespace Namespaces sind eine Erweiterung des Elementnamen oder des Attributnamens um eine URI Mehrere Namespaces können in einer XML Datei benutzt werden. xmlns:mr =„ xmlns:hans =„

Java und XML

DB -> XML Mögliche Varianten –DB - JDBC:ODBC -> XML –XML - Database mit XML nativ Data (Tamino) –Servlets mit Taglibs –Cocoon und XSP (XML - Server Pages

XML erzeugen per JDBC Lade Treiber Erzeuge Connection Erzeuge Statement Datenbankabfrage per executeQuery Ergebnis der Abfrage liegt als Resultset vor. Ausgabe in Stream

SUN ONE

Web Services

Welche Parser gibt es XML4J (IBM) crimson Xerces Aelfred kxml....

SAX Simple API for XML speziell für XML entwickelt XML Dokument als Folge von (vorbeihuschenden) Ereignissen Eventorientierte Methoden - Callbacks Entwicklung von Megginson Tech. Inc (

DOM erzeugt aus XML Datei eine Baumstruktur Methoden zum Navigieren durch den Baum Speicherverbrauch hoch, da XML Dokument im Speicher verarbeitet wird

Java und XML Java API for XML Processing (JAXP) Java Architecture for XML Binding (JAXB) Java API for XML Messaging (JAXM) Java API for XML-based RPC (JAX-RPC) Java API for XML Registries (JAXR) Long Term JavaBeans Persistence

JAXP Java API für XML Parsers SAX DOM und XSLT - Support Erlaubt „einfaches“ wechseln von Parsern ohne Codeänderung

JAXB JavaTM Architecture for XML Binding Early Access Release Ermöglicht es aus XML Schema Klassen zu generieren. Klassen kümmern sich dann um die Formatierung und das Parsen Meist effizienter als DOM und SAX

SAX - How to... Instanziere XMLParser, der das XMLReader Interface implementiert hat parser.parse (filename) lädt und parst eine Datei dabei catch IOException. und SAXException. implementiere einen Content-Handler –optional noch DTDHandler und –EntityResolver

Content Handler org.xml.sax.ContentHandler Benötigt Locator und Attributes Klassen Wichtige Methoden –startDocument(...), endDocument(...) –startElement(...), endElement(...) –characters(...) –ignorableWhitespace(...) –setDocumentLocator(...)

Locator Zeigt an, an welcher Stelle im XML File ein Event aufgetreten ist Aktuelle Location ist nur zur Laufzeit gültig Will man es später benutzen, sollte man den Locator zwischenspeichern.... private Locator locator public void setDocumentLocator (Locator locator) { this.locator = locator; }

Start und Ende eines Dokuments Das Event startDocument ereignet sich um den wirklichen Beginn des Parsens anzuzeigen. Es ist das erste Event das stattfindet (Außer: setDocumentLocator() endDocument ist das allerletzte Beide Events feuern SAXExceptions

Namespace Callbacks z.B Hallo Ein Namespace kann entweder für das ganze Dokument oder für einen Teil definiert werden startPrefixMapping gibt den Start an startPrefixMapping logischerweise das Ende des Bereichs

Elemente Elemente werden indentifiziert Attribute werden aufgelistet Die nächste Information ist Text oder weitere Elemente

Element Daten characters(char[] ch, int start, int length) Verschiedene Parser splitten Text auch mal und schicken Ihn in einzelnen Stücken char Array ist offen für eine Erweiterung der SAX Api, bei der ein Vorauslesen von Daten denkbar wäre

Leerzeichen (Whitespace) ignorableWhitespace(char[], int, int) enthält die formatierenden Leerzeichen und Zeilenumbrüchen, die benutzt werden um den Text lesbarer zu gestalten.

skipped Entities Wird nur von ganz speziellen Parsern aufgerufen, da die meisten die Entities auflösen

SAX20 Extensions Optionale Erweiterungen für Parser –DeclHandler (DTD Parsing) –LexicalHandler (Kommentare und CDATA)

Fehlerbehandlung –org,xml.sax.ErrorHandler –org.xml.sax.SaxParseException Sax Fehler Meldungen –Warning –Error –Fatal Error Durch feuern einer SAXException in der Fehler- callback - funktion kann der Parsevorgang beendet werden.

Parser - Warnings Meist fehlende Definitionen aus der DTD o.ä Definiert in der XML 1.0 Spezifikation –z.B: At user option, an XML processor may issue a warning when a declaration mentions an element type for which no declaration is provided, but this is not an error. –z.B. At user option, an XML processor may issue a warning if attributes are declared for an element type not itself declared, but this is not an error.

Non-Fatal Errors Es ist ein Fehler aufgetreten, bei dem das Dokument den XML Regeln wiederspricht, doch der normale Parse-Vorgang fortgesetzt werden kann. Tritt meist nur beim Validieren auf. Ein XML Dokument, das der DTD widerspricht ist trotzdem kein fatal Error.

Fatal Error Sollte immer zum Parse-Abbruch führen, da nur wirklich schwere Fehler erzeugt werden. Falsche DTD Sysntax gibt auch einen Fatal Error

SAXParserFactory public abstract SAXParserFactory { public static SAXParserFactory newInstance() public abstract SAXParser newSAXParser () throws ParserConfigurationException, SAXException; public void setNamespaceAware (boolean awareness); public void setValidating (boolean validating);... public abstract void setFeature (String name, boolean value) public abstract boolean getFeature (String name) }

Bsp: Xerces Features

interface Attributes (collection) für SAX int getIndex(java.lang.String qName) int getLength() java.lang.String getLocalName(int index) java.lang.String getQName(int index) java.lang.String getType(int index) java.lang.String getURI(int index) java.lang.String getValue(int index) java.lang.String getValue(java.lang.String qName) Nicht mehr gültig nach Callbackende Ersetzt und implementiert AttributeList This interface allows access to a list of attributes in three different ways: by attribute index; by Namespace-qualified name; or by qualified (prefixed) name.

DOM Parser Erzeugt einen DOM Tree import org.apache.xerces.parsers.DOMParser; –Xerces bietet DOM und SAX parser.parse alte Versionen haben beim Parsen ein Document Object geliefert Vereinheitlichung; heute mit getDocument();

Was für ein Node-Type (Node) node.getNodeType() Klasse org.w3c.dom.Node MÖGLICHE WERTE static short ATTRIBUTE_NODE static short CDATA_SECTION_NODE static short COMMENT_NODE static short DOCUMENT_FRAGMENT_NODE static short DOCUMENT_NODE static short DOCUMENT_TYPE_NODE static short ELEMENT_NODE static short ENTITY_NODE static short ENTITY_REFERENCE_NODE static short NOTATION_NODE static short PROCESSING_INSTRUCTION_NODE static short TEXT_NODE

DOCUMENT_NODE Document ist eine Erweiterung der Node selbst. Enthält DTD und andere Elemente RootNode kann davon gebildet werden mit doc.getDocumentElement()

DOM element besteht aus Name, Attribut und Wert –name : getNodeName() Hat evtl. noch Nachkommen –public NodeList getChildNodes() Für XML to XML gilt folgende Ausgabe –< name –atributliste > –Nachkommen oder Wert –

collection NodeList Was sagt die Documentation int getLength() Anzahl der Nodes in der Liste Node item(int index) gibt den Node aus der Liste zurück nodelist = node.getChildNodes(); Aber Vorsicht : Keine normale Collection The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live. The items in the NodeList are accessible via an integral index, starting from 0.

Attribute auflisten Rückgabe über (Node).getAttributes () Rückgabetyp: interface NamedNodeMap –Ist Liste von Node : mit item (index) Zugriff auf einen AttributKnoten

Ausgabe per Transform (JAXP) DOMSource –Acts as a holder for a transformation Source tree in the form of a Document Object Model (DOM) tree. TransformerFactory.newTransformer erzeugt : Transform –An instance of this abstract class can transform a source tree into a result tree. –Transform.transform transform (Source xmlSource, Result outputTarget) –Process the source tree to the output result. Result –DOMResult oder SAXResult oder StreamResult

JDOM komplett JAVA 2 basierte API nur für JAVA kann auch andere Formate als XML verarbeiten folgt bekannten JAVA Regeln kaum Interfaces, so ist es z.B einfach möglich sofort ein Document ohne Parser zu erzeugen Eigener DOM Tree

SAX, DOM oder JDOM??? DOM kann in jeder Sprache benutzt werden und ist allgemeingültig SAX braucht nicht das ganze Dokument erst in den Speicher zu laden. JDOM benötigt das Dokument nicht vollständig im Speicher, doch arbeitet nicht mit Events. Java-typischer.

3 Wege zum JDOM Document Direkt von einem DOM mittels DOMBuilder Class Indirekt über SAX mittels SAXBuilder Class (Bevorzugte Weg) Mittels JDOM Klassen (z.B für neue JDOMs)

Output von JDOM als DOM als SAX Events File oder Stream (xml Dokument)

JDOM Packages org.jdom input output DOM Adapters

Übungen SAX: Schreibe eine Funktion, die Fehler in einem Protokoll ablegt. ! Achtung: Was passiert, Wenn Log nicht geschrieben werden kann? VCard Application DOM: Lese Datei ein - Füge einen Datensatz hinzu und schreibe Ergebnis wieder in Datei. Erzeugen eines JTree aus einem JDOM Tree. Jeder Knoten wird ein Vector Element. Nur eine einfache Liste. Kein vollständiger Baum. Erzeuge eine DTD aus einer XML Datei (SAX)