VU Semistrukturierte Daten 2

Größe: px
Ab Seite anzeigen:

Download "VU Semistrukturierte Daten 2"

Transkript

1 VU Semistrukturierte Daten 2 XML-APIs (Teil 1) Reinhard Pichler

2 Inhalt Einführung APIs für XML-Prozessoren (XML-Parser) DOM SAX JDOM StAX API für XSLT-Prozessoren: TrAX API für XQuery-Prozessor: Saxon 8

3 XML-APIs und Java Einführung Die wichtigsten XML-APIs (DOM und SAX) sind eigentlich programmiersprachen-unabhängig. In der SSD2-Vorlesung werden aber nur die Java-Realisierungen behandelt. JAXP (Java API for XML-Processing): Teil von JDK ab Version 1.4 Enthält Java-Realisierung von DOM und SAX sowie ein XSLT-API (TrAX: Transformation API for XML) JAXP-Packages: javax.xml.parsers (gemeinsames Interface für SAX und DOM Parser von unterschiedlichen Herstellern). org.w3c.dom org.xml.sax javax.xml.transform

4 Idee eines XML-Prozessors (Parsers) Stellt der Applikation eine einfache Schnittstelle zum Zugriff auf ein XML-Dokument (plus eventuell zum Manipulieren und wieder Abspeichern des XML-Dokuments) zur Verfügung. Ermöglicht die Konzentration auf die logische Struktur bzw. den Inhalt des XML-Dokuments (und nicht auf die exakte Syntax) => wesentlich flexibler/robuster als Text-Parsen.

5 Aufgaben eines XML-Prozessors Parser: Überprüfung der Wohlgeformtheit und (optional) der Gültigkeit Unterstützung unterschiedlicher Encodierungen Ergänzung von default/fixed-werten Auflösen von internen/externen Entities und Character References Normalisierung von whitespace Generiert aus dem XML-Dokument eine interne Datenstruktur Serialisierer: Generiert aus der internen Datenstruktur ein XML-Dokument Kümmert sich dabei um Wohlgeformtheit des XML-Dokuments

6 Parser-Modelle Objektmodell Parser: Baut gesamten XML-Baum im Speicher auf => wahlfreier Zugriff Beispiele: DOM, JDOM Push Parser (ereignisorientiert, Kontrolle liegt beim Parser): XML-Dokument wird einmal durchlaufen => sequentieller Zugriff Applikation kann für die möglichen Events (d.h. syntaktische Einheiten) callback Funktionen bereitstellen Beispiel: SAX Pull Parser (ereignisorientiert, Kontrolle liegt bei der Applikation): XML-Dokument wird einmal durchlaufen => sequentieller Zugriff Applikation fordert Analyse der nächsten syntaktischen Einheit an Beispiel: StAX

7 DOM-Parser DOM DOM: Document Object Model W3C-Recommendation: DOM-Versionen in Form von Levels : Level 0 (keine Recommendation): nur HTML, für JavaScript in Browsern Level 1: Unterstützung von XML 1.0 und HTML 4.0 Level 2: Namespaces im Element/Attribute Interface, erweiterte Baum- Manipulationsmöglichkeiten, etc. Level 3 (in Entwicklung) : Laden/Speichern, XPath, etc. Plattform- und programmiersprachen-unabhängig; Implementierung muss nicht einmal in OO-Sprache erfolgen. DOM legt logische Struktur eines XML-Dokuments (als Baum) fest und definiert Methoden zum Navigieren im Baum und zum Manipulieren des Baumes.

8 DOM-Baumstruktur XML Dokument wird als Baumstruktur dargestellt Dieser Baum ist im allgemeinen detaillierter als der Baum laut XPath/XSLT Datenmodell (z.b.: eigene Knoten für Entity, CDATA-Section, etc.) Knoten des Baums sind vom Typ Node Die verschiedenen Knoten-Arten erben von Node : Document : hier ist der ganze DOM-Baum aufgehängt Element, Attr, Text, ProcessingInstruction, Comment DocumentFragment, DocumentType, EntityReference, CDATASection, EntityReference, Notation Wichtige Knoten-Eigenschaften: nodename, nodevalue, nodetype, Attributes

9 Beispiel für einen DOM-Baum <sentence> The &projectname; <![CDATA[<i>project</i>]]> is <?editor: red?><bold>important</bold><?editor: normal?>. </sentence> Dazugehöriger DOM-Baum: + ELEMENT: sentence + TEXT: The + ENTITY REF: projectname + COMMENT: latest name + TEXT: Eagle + CDATA: <i>project</i> + TEXT: is + PI: editor: red + ELEMENT: bold + TEXT: important + PI: editor: normal DOM- 1

10 Wichtige Eigenschaften der Node Types

11 DOM-Interfaces Zentrales Interface: Node Gemeinsame Methoden der Knoten des DOM-Baums z.b.: Navigieren im Baum, Manipulieren des Baums (Knoten löschen/einfügen/ändern), Get/Set Eigenschaften, etc. Subinterfaces von Node für jeden node type Stellen spezifische weitere Methoden zur Verfügung Weitere Interfaces: NamedNodeMap: Sammlung von Knoten, auf die mittels Name oder Index zugegriffen werden kann. NodeList: Sammlung von Knoten, auf die mittels Index zugegriffen werden kann DocumentImplementation

12 DOM Java-Interface Hierarchie interface org.w3c.dom.node * interface org.w3c.dom.attr * interface org.w3c.dom.characterdata o interface org.w3c.dom.comment o interface org.w3c.dom.text + interface org.w3c.dom.cdatasection * interface org.w3c.dom.document * interface org.w3c.dom.element... * interface org.w3c.dom.processinginstruction interface org.w3c.dom.namednodemap interface org.w3c.dom.nodelist interface org.w3c.dom.domimplementation

13 Node Interface Node Types: public static final short ELEMENT_NODE = 1; public static final short ATTRIBUTE_NODE = 2; public static final short TEXT_NODE = 3; public static final short CDATA_SECTION_NODE = 4; ENTITY_REFERENCE_NODE = 5; ENTITY_NODE = 6; PROCESSING_INSTRUCTION_NODE = 7; COMMENT_NODE =8; DOCUMENT_NODE = 9; DOCUMENT_TYPE_NODE = 10; DOCUMENT_FRAGMENT_NODE = 11; NOTATION_NODE = 12;

14 Node Interface Node Properties: public String getnodename(); public String getnodevalue() throws DOMException; public void setnodevalue(string nodevalue) throws DOMException; public short getnodetype(); public String getnamespaceuri(); public String getprefix(); public void setprefix(string prefix) throws DOMException; public String getlocalname();

15 Node Interface Methoden zur Navigation im Baum: public Node getparentnode(); public boolean haschildnodes(); public NodeList getchildnodes(); public Node getfirstchild(); public Node getlastchild(); public Node getprevioussibling(); public Node getnextsibling(); public Document getownerdocument(); public boolean hasattributes(); public NamedNodeMap getattributes();

16 Node Interface Methoden zur Manipulation des Baums: public Node insertbefore(node newchild, Node refchild) throws DOMException; public Node replacechild(node newchild, Node oldchild) throws DOMException; public Node removechild(node oldchild) throws DOMException; public Node appendchild(node newchild) throws DOMException;

17 Node Interface Utilities: public Node clonenode(boolean deep); public void normalize(); verschmelzt // eliminiert leere Text-Knoten und // benachbarte Text-Knoten im ganzen Subbaum public boolean issupported(string feature, String version);

18 Einige Subinterfaces von Node Einige zusätzliche Methoden von Document : createattribute(), createcomment(), createelement(), createtextnode(), etc getdoctype(), getdocumentelement() Einige zusätzliche Methoden von element : getattribute(), removeattribute(), setattribute() // Attribut wird mittels Attribut-Namen identifiziert getattributenode(), setattributenode(), removeattributenode() // Attribut wird als Input-Parameter vom Typ Node übergeben hasattribute(), etc.

19 Benutzung von DOM in JAXP

20 Mindest-Code Importe: DOMBuilder/Factory, DOM: import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import org.w3c.dom.document; import org.xml.sax.saxexception; import org.xml.sax.saxparseexception; Factory-Instanzierung: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); Parser-Instanzierung und Parsen: static Document document; try { DocumentBuilder builder = factory.newdocumentbuilder(); document = builder.parse( new File(filename) ); } catch (SAXParseException spe)

21 Einige weitere Anweisungen Einstellungen des Parsers (z.b. validieren: ja/nein) DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setvalidating(true); factory.setnamespaceaware(true); try { DocumentBuilder builder = Neuen DOM-Baum erzeugen: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newdocumentbuilder(); document = builder.newdocument(); } catch (ParserConfigurationException pce)

22 Einige weitere Anweisungen Neuen Knoten erzeugen und einfügen: document = builder.newdocument(); Element root = (Element) document.createelement("test"); document.appendchild(root); root.appendchild(document.createtextnode("some Text")); DOM-Baum als XML-Dokument ausgeben: DOM- 2 mittels transformer : Eigentlich für XSLT-Transformationen gedacht Erlaubter Input: StreamSource, DOMSource oder SAXSource Erlaubter Output: StreamSource, DOMSource oder SAXSource Ohne Angabe eines XSLT-Stylesheets wird ein XML-Dokument einfach von einem der Input-Formate in eines der Output-Formate umgewandelt.

23 DOM-Ausgabe mittels transformer Importe: import javax.xml.transform.transformer; import javax.xml.transform.transformerfactory; import javax.xml.transform.dom.domsource; import javax.xml.transform.stream.streamresult; import java.io.*; Transformer instanzieren: TransformerFactory tfactory = TransformerFactory.newInstance(); Transformer transformer = tfactory.newtransformer(); Ausgabe: DOMSource source = new DOMSource(document); StreamResult result = new StreamResult(new File("output.xml")); transformer.transform(source, result); DOM- 3

24 Beispiel: Suche nach einem Subelement name tag name for the (first sub-)element to node element node to start searching the Node found */ public Node findsubnode(string name, Node node) { if (node.getnodetype()!= Node.ELEMENT_NODE) return null; if (! node.haschildnodes()) return null; NodeList list = node.getchildnodes(); for (int i=0; i < list.getlength(); i++) { Node subnode = list.item(i); if (subnode.getnodetype() == Node.ELEMENT_NODE) { if (subnode.getnodename().equals(name)) return subnode; } } return null; } DOM- 4

25 SAX-Parser SAX SAX: Simple API for XML keine W3C Recommendation, aber ein de-facto Standard: Entwickelt von XML-Entwicklern ( jeder kann mitmachen über die Mailing List xml-dev@w3.org) Plattform- und programmiersprachen-unabhängig (auch wenn SAX ursprünglich für Java entwickelt wurde) SAX Versionen: SAX 1.0: entstanden auf Initiative von Peter Murray-Rust (mit dem Ziel, mehrere ähnliche aber inkompatible Java XML-APIs zusammenzuführen), im Mai 1998 freigegeben. SAX 2.0: erweitert um Namespace-Unterstützung; führte zu inkompatibler Erweiterung von SAX 1.0

26 Funktionsweise von SAX

27 Funktionsweise von SAX Applikation startet SAX-Parser (d.h.: XMLReader ) SAX-Parser durchläuft das XML-Dokument einmal sequentiell Parser erkennt Events (syntaktische Einheiten) beim Analysieren des XML-Dokuments Parser ruft für jedes Event die entsprechende Callback Funktion auf, die die Applikation bereitstellt. Diese Callback Funktionen sind auf 4 Event Handler aufgeteilt: ContentHandler, ErrorHandler, DTDHandler, EntityResolver Der Speicherbedarf des SAX-Parsers ist konstant! (d.h.: unabhängig von der Größe des XML-Dokuments)

28 XMLReader Ist der eigentliche SAX-Parser, d.h.: liest das XML-Dokument und ruft die callback Funktionen auf Erlaubt das Setzen/Auslesen bestimmter Properties/Features: setfeature, setproperty, getfeature, getproperty Benutzer registriert die Event Handler (mit den callback Funktionen): setcontenthandler, setdtdhandler, setentityresolver, seterrorhandler Analog dazu get-methoden für die Event Handler: getcontenthandler, getdtdhandler, etc. Methode zum Anstoßen des Parsers: parse

29 Methoden des ContentHandler void startdocument(): void enddocument() void startelement(string namespaceuri, String localname, String qname, Attributes atts) void endelement(string namespaceuri, String localname, String qname) void characters(char[] ch, int start, int length) void processinginstruction(string target, String data) void setdocumentlocator(locator locator) void ignorablewhitespace(char[] ch, int start, int length) void skippedentity(string name) void startprefixmapping(string prefix, String uri) void endprefixmapping(string prefix) SAX-1

30 Methoden der anderen Event Handler ErrorHandler: void fatalerror(saxparseexception exception) // non-recoverable error void error(saxparseexception exception) void warning(saxparseexception exception) DTDHandler: void notationdecl(string name, String publicid, String systemid) void unparsedentitydecl(string name, String publicid, String systemid, String notationname) EntityResolver: InputSource resolveentity(string publicid, String systemid) // allows the application to resolve external entities.

31 Attributes Interface z.b. die startelement() Funktion liefert die Attribute dieses Elements als Attributes Object zurück. Zugriff auf die Attributes mittels getlength() und Attribut-Index: String getlocalname(int index) String getqname(int index) String gettype(int index) // ohne DTD: CDATA // sonst auch ID, IDREF, IDREFS, NMTOKEN, etc. Weitere Zugriffsmöglichkeit: mittels Namespace-qualified name mittels qualified (prefixed) name.

32 Benutzung von SAX in JAXP

33 SAXParser-Interface Das SAXParser-Interface in JAXP ist einfach ein Wrapper um den XMLReader. Mit getxmlreader() kann man diesen XMLReader holen. Methoden zum Abfragen von Parser-Eigenschaften: getproperty(), isnamespaceaware(), isvalidating() SAXParser enthält mehrere Varianten von parse()-methoden, mit denen die Event Handler beim XMLReader registriert werden und die parse()-methode des XMLReaders aufgerufen wird. Bequeme Art, die Event Handler zu registrieren: mittels DefaultHandler, der beim Aufruf von parse() übergeben wird.

34 DefaultHandler Deklaration des DefaultHandlers (in org.xml.sax.helpers) public class DefaultHandler extends Object implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler Enthält default-deklarationen für alle callback Funktionen dieser 4 Event Handler Default-Verhalten: do nothing Bequeme Definition eines eigenen SAX-Parsers: von DefaultHandler erben die tatsächlich benötigten callback Funktionen überschreiben

35 Mindest-Code eines SAX-Parsers Importe: DOMBuilder/Factory, DOM: import javax.xml.parsers.saxparserfactory; import javax.xml.parsers.saxparser; import org.xml.sax.saxexception; import org.xml.sax.saxparseexception; Factory-Instanzierung: SAXParserFactory factory = SAXParserFactory.newInstance(); Parser-Instanzierung und Parsen: DefaultHandler handler = new MyDefaultHandler(); try{ SAXParser saxparser = factory.newsaxparser(); saxparser.parse(new File(argv[0]), handler); } catch (Throwable t) SAX-2

36 Einige weitere Anweisungen Einstellungen des Parsers (z.b. validieren: ja/nein) SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setvalidating(true); factory.setnamespaceaware(true); Output des XMLReaders als XML-Dokument: mittels transformer, analog zur DOM-Ausgabe, d.h.: Erzeuge mittels XMLReader eine SAXSource Aufruf des transformers mit dieser SAXSource als Input SAX-3

37 SAX-Ausgabe mittels transformer Importe + Transformer-Instanzierung: siehe DOM-Ausgabe Zusätzliche Importe (+ Transformer instanzieren: : import javax.xml.transform.sax.saxsource; import javax.xml.transform.stream.streamresult; Ausgabe (d.h.: erzeuge SAXSource mittels XMLReader) XMLReader reader = saxparser.getxmlreader() SAXSource source = new SAXSource(reader, new File("input.xml")); StreamResult result = new StreamResult(new File("output.xml")); transformer.transform(source, result);

38 SAX-Filter

39 Funktionsweise eines SAX-Filters Vorbereitung: Applikation teilt dem Filter mit, auf welchen Reader er horchen muss Applikation registriert ihre Event Handler beim Filter Start des Parse-Vorgangs: Applikation ruft parse()-methode des Filters auf Filter ruft parse()-methode des Readers auf Parse-Vorgang: Reader erzeugt Events => ruft callback Funktionen des Filters auf Filter ruft innerhalb seiner callback Funktionen die callback Funktionen der Applikation auf. Filter ist also gleichzeitig Event Handler und Reader

40 Verwendung eines SAX-Filters XMLFilter Interface: erweitert XMLReader um 2 Methoden: void setparent(xmlreader parent), XMLReader getparent() parent = Reader, auf den der Filter horchen muss Mittels setcontenthandler, etc. werden die Event Handler der Applikation beim Filter registriert Implementierung des XMLFilter Interface: per Hand : ziemlich aufwändig (XMLReader hat 14 Methoden) Eleganterer Weg: mittels XSLT Stylesheet kann ein XMLFilter automatisch erzeugt werden (nächster Termin) Die Klasse XMLFilterImpl in org.xml.sax.helpers stellt einen Default-Filter bereit, der die Requests in beiden Richtungen transparent durchreicht. SAX-4

41 DOM vs. SAX DOM: Baut gesamten XML-Baum im Speicher auf => wahlfreier Zugriff Manipulation des Baums möglich Hoher Speicherbedarf, langsamer SAX: XML-Dokument wird einmal durchlaufen => sequentieller Zugriff streaming möglich (d.h.: Bearbeiten und Weiterreichen, bevor das ganze Dokument übertragen ist). Geringerer Speicherbedarf, höhere Geschwindigkeit Falls mehrmaliger Zugriff auf Knoten erforderlich: Applikation ist selbst für das Puffern verantwortlich. Low level (DOM-API benutzt SAX-API)

42 Performance-Vergleich *) Test Cases: 1. Read and parse a small DTD-enforced XML file (approx. 25 elements) 2. Read and parse a large DTD-enforced XML file (approx. 50,000 elements) 3. Navigate the DOM created by Test #2 from root to all children. 4. Build a large DOM (approximately 60,000 elements) from scratch 5. Build an infinitely large DOM from scratch using createelement(...) and similar function calls until a java.outofmemoryerror is raised. Measure the time it takes to hit the "memory wall" within a default (32MB heap) JRE and count how many elements are created. *) Quelle: XML Parsers: DOM and SAX Put to the Test von Steve Franklin,

43 Ergebnis der Tests: Performance-Vergleich

44 Literatur Spezifikationen: (Online) Bücher und Artikel: Elliotte Rusty Harold: Processing XML with Java J2EE Tutorial (Kap. 4-7):

45 Übungsbeispiel A Schreiben Sie ein Java-Programm Kleinschreibung-DOM, das folgende Funktionalität bereitstellt: 1. Ein XML-Dokument wird mittels DOM-Parser eingelesen 2. optional wird das Dokument validiert 3. Der DOM-Baum wird im Speicher so umgeformt, dass alle Element- und Attribut-Namen in Kleinbuchstaben umgewandelt werden; ansonsten soll das Dokument völlig unverändert bleiben. 4. Anschließend wird der DOM-Baum in eine XML-Datei ausgegeben 5. Das Programm soll 3 Kommandozeilen-Parameter haben: Name der Input-Datei Name der Output-Datei (Validierung beim Einlesen) Ja/Nein Erlaubte Annahme: XML-Dokument enhält keine Namespaces

46 Übungsbeispiel B Schreiben Sie ein Java-Programm Kleinschreibung-SAX-DOM, das nach außen dieselbe Funktionalität wie Übungsbeispiel A bereitstellt. Ändern Sie jedoch die Implementierung folgendermaßen: Das Einlesen erfolgt mittels SAX-Parser Bauen Sie einen DOM-Baum mit den kleingeschriebenen Elementund Attribut-Namen im Speicher "per Hand" neu auf (d.h.: der DOM-Baum soll nicht einfach mittels Transformer erzeugt werden!) am Ende dieses Schritts müsste der gleiche DOM-Baum im Speicher stehen wie am Ende von Schritt 3 in Übungsbeispiel A. Punkt wie in Übungsbeispiel A.

47 Übungsbeispiel C Schreiben Sie ein Java-Programm Kleinschreibung-SAX-Filter, das nach außen die Funktionalität von Übungsbeispiel A dahin gehend vereinfacht, dass nur die Element-Namen in Kleinbuchstaben umgewandelt werden. Verwenden Sie zur Realisierung einen XML Filter, d.h.: gegenüber dem Übungsbeispiel A sind folgende Änderungen nötig: Das Einlesen erfolgt mittels SAX-Parser. Der Filter führt die Übersetzung der Element-Namen durch Die vom Filter erzeugten Events bilden den Input für einen Transformer, der den umgeformten XML-Stream direkt in eine XML-Datei ausgibt. Tipp: Bei Verwendung von XMLFilterImpl müssen nur die Methoden startelement() und endelement() geändert werden!

Inhalt. Parser-Modelle. Aufgaben eines XML-Prozessors. XML-APIs und Java. Idee eines XML-Prozessors (Parsers) 181.139 VU Semistrukturierte Daten 2

Inhalt. Parser-Modelle. Aufgaben eines XML-Prozessors. XML-APIs und Java. Idee eines XML-Prozessors (Parsers) 181.139 VU Semistrukturierte Daten 2 Inhalt 181.139 VU Semistrukturierte Daten 2 XML-APIs (Teil 1) 25.4.2006 Reinhard Pichler Einführung APIs für XML-Prozessoren (XML-Parser) DOM SAX JDOM StAX API für XSLT-Prozessoren: TrAX API für XQuery-Prozessor:

Mehr

5.5. Document Object Model - DOM. Überblick DOM DOM und JAXP Node-Interface Einige Subinterfaces von Node Weitere Interfaces

5.5. Document Object Model - DOM. Überblick DOM DOM und JAXP Node-Interface Einige Subinterfaces von Node Weitere Interfaces 5.5. Document Object Model - DOM Überblick DOM DOM und JAXP Node-Interface Einige Subinterfaces von Node Weitere Interfaces Überlick DOM DOM-Entwicklung DOM-Baumstruktur Knoten-Eigenschaften DOM Interfaces

Mehr

Semistrukturierte Daten

Semistrukturierte Daten Teil 5: DOM Semistrukturierte Daten Sommersemester 2007 5.1. Überblick 5.2. DOM-Interfaces 5.3. Node-Interface 5.4. Einige Subinterfaces von Node 5.5. weitere Interfaces 5.6. Benutzung von DOM in JAXP

Mehr

Semistrukturierte Daten. Teil 5: Java API for XML Processing

Semistrukturierte Daten. Teil 5: Java API for XML Processing Semistrukturierte Daten Sommersemester 2010 Teil 5: Java API for XML Processing 5.1. Überblick 5.2. SAX (Simple API for XML) 5.3. DOM (Document Object Model) 5.4. Serialisierung von XML Daten 5.5. Epilog

Mehr

Programmieren II XML. Heusch -- Ratz -- Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Programmieren II XML. Heusch -- Ratz --  Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft Programmieren II XML Heusch -- Ratz -- KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Begriffe und APIs zu XML, unabhängig von Java XML (Extensible Markup Language) XML definiert,

Mehr

Programmieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008

Programmieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008 Programmieren II SAX Dr. Klaus Höppner DOM Hochschule Darmstadt SS 2008 JAXB 1 / 21 2 / 21 SAX SAX (Simple API for XML) ist eine ereignisorientierte Methode zum Parsen von XML-Dateien. Dies bedeutet, das

Mehr

Programmieren II XML. Heusch -- Ratz -- www.kit.edu. Institut für Angewandte Informatik

Programmieren II XML. Heusch -- Ratz -- www.kit.edu. Institut für Angewandte Informatik Programmieren II XML Heusch -- Ratz -- KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Begriffe und APIs zu XML, unabhängig von

Mehr

XML-Technologien. XML-Parser. Florian Raith Hochschule München Fakultät für Informatik und Mathematik am 04. November 2010

XML-Technologien. XML-Parser. Florian Raith Hochschule München Fakultät für Informatik und Mathematik am 04. November 2010 XML-Technologien XML-Parser Florian Raith Hochschule München Fakultät für Informatik und Mathematik am 04. November 2010 XML-Technologien Inhalt Das Document Object Model (DOM) Simple API for XML Vergleich

Mehr

JAVA/XML Das bhv Taschenbuch

JAVA/XML Das bhv Taschenbuch Michael Seeboerger-Weichselbaum JAVA/XML Das bhv Taschenbuch UMLJJLLLUJJ Inhaltsverzeichnis Inhaltsverzeichnis Vorwort 15 Teil I: Installation und erste Schritte 17 1 Das Konzept des Buches 19 Aufbau des

Mehr

Java und XML. Praktikum aus Softwareentwicklung 2. Java Praktikum SS 2010

Java und XML. Praktikum aus Softwareentwicklung 2. Java Praktikum SS 2010 Java und XML Praktikum aus Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Java und XML Einführung in XML Merkmale von XML SAX Grundlagen, Verwendung in Java, DOM Grundlagen, Verwendung in Java, Validierung

Mehr

XML. extensible Markup Language. Dr. Beatrice Amrhein. www.w3.org/xml

XML. extensible Markup Language. Dr. Beatrice Amrhein. www.w3.org/xml XML extensible Markup Language www.w3.org/xml Dr. Beatrice Amrhein Inhaltsverzeichnis 1 XML Grundlagen...5 1.1 Die wichtigsten Punkte...5 1.2 XML Sprachen und Anwendungen...7 1.3 Der Aufbau eines XML Dokuments...7

Mehr

Programmieren II XML. Heusch -- Ratz -- www.kit.edu. Institut für Angewandte Informatik

Programmieren II XML. Heusch -- Ratz -- www.kit.edu. Institut für Angewandte Informatik Programmieren II XML Heusch -- Ratz -- KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Grundlegendes XML (Extensible Markup Language)

Mehr

Verarbeitung von XML mit SAX und DOM

Verarbeitung von XML mit SAX und DOM Verarbeitung von XML mit SAX und DOM Sven Peters Seminar Dokumentenverarbeitung Typeset by FoilTEX Urspünglich nur für Java SAX Simple Api for XML Peter Murray-Rust (Jumbo XML Browser) - YAXPAPI (Yet Another

Mehr

2004-2006, Rainer Schmidberger, ISTE. XML und Java. Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de

2004-2006, Rainer Schmidberger, ISTE. XML und Java. Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de XML und Java Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de Was ist XML? Müller Hans Ulmenweg 22 70565

Mehr

Praktikum aus Softwareentwicklung 2. Java und XML. Java Praktikum SS 2008 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Java und XML. Java Praktikum SS 2008 Gerald.Ehmayer@borland.com Java und XML 1 Java und XML Einführung in XML Merkmale von XML SAX Grundlagen, Verwendung in Java, DOM Grundlagen, Verwendung in Java, Validierung DTD, XML Schema 2 Motivation für XML (1/4) Von HTML zu

Mehr

1 Software Engineering 1

1 Software Engineering 1 1 Software Engineering 1 XML 1.1 XML Extensible Markup Language Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten Wird für den Datenaustausch/Speicherung benutzt

Mehr

Anbindung von XML an OOP

Anbindung von XML an OOP Anbindung von XML an OOP Java und C++ Vortrag am 20.06.2002 Idris Hamid Arrahmane 1 Inhalt SAX und DOM in C++ und JAVA Vergleich zwischen SAX && DOM Der Java Class Generator Der C++ Class Generator 2 Basis-APIs

Mehr

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung Matthias Bethke bethke@linguistik.uni-erlangen.de Linguistische Informatik Universität Erlangen-Nürnberg Sommersemester

Mehr

Berner Fachhochschule Software Schule Schweiz JDOM. http://www.jdom.org/ Beatrice Amrhein. Oktober 06

Berner Fachhochschule Software Schule Schweiz JDOM. http://www.jdom.org/ Beatrice Amrhein. Oktober 06 Berner Fachhochschule Software Schule Schweiz JDOM http://www.jdom.org/ Beatrice Amrhein Oktober 06 1 Motivation JDOM ist ein Open Source, Baumbasiertes, Java API zum Parsen, Erzeugen, Verarbeiten und

Mehr

11 XML Programmierung

11 XML Programmierung 11 XML Programmierung Programmatische Interfaces (API) zur Manipulation von XML (DOM und JDOM) Data Binding: Abbildung von DTD/Schema auf isomorphe Datenstrukturen Strombasierte Verarbeitung Integration

Mehr

XML APIs allgemein. XML APIs, DOM und SAX. Erinnerung. Ansprüche an XML APIs. Welche Möglichkeiten bestehen? Vor- und Nachteile

XML APIs allgemein. XML APIs, DOM und SAX. Erinnerung. Ansprüche an XML APIs. Welche Möglichkeiten bestehen? Vor- und Nachteile Fachhochschule Wiesbaden - Fachhochschule Wiesbaden - XML APIs, DOM und SAX XML APIs allgemein XML aus Sicht der Software-Entwickler Mit freundlicher Unterstützung von Prof. Weitz (danke für die Java-Folien

Mehr

XML. M. Löberbauer, T. Kotzmann, H. Prähofer

XML. M. Löberbauer, T. Kotzmann, H. Prähofer XML XML-Dokumente Schemadefinition DOM-Parser SAX-Parser StAX-Reader Erzeugen von XML-Dokumenten aus DOM Schreiben von XML-Dokumenten mit StAX XSL-Transformation Java Architecture for XML Binding API-Auszug

Mehr

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: EMail: Datum: http://ruhr.pm.org/

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: EMail: Datum: http://ruhr.pm.org/ XML-Daten verarbeiten mit XML::LibXML Autor: EMail: Datum: Simon Wilper simon AT ruhr.pm.org http://ruhr.pm.org/ Template Version 0.1 The use of a camel image in association with Perl is a trademark of

Mehr

XML-Verarbeitung (VER) Lernziele

XML-Verarbeitung (VER) Lernziele XML-Verarbeitung (VER) Lernziele Sie kennen die Standardschnittstellen zum Zugriff auf XML-Dokumente. Sie wissen, wie ein XML-Parser arbeitet. Sie können einschätzen, welcher Parser der geeignete für Ihr

Mehr

Klaus Schild, XML Clearinghouse Verarbeitung von XML- Dokumenten

Klaus Schild, XML Clearinghouse Verarbeitung von XML- Dokumenten Verarbeitung von XML- Dokumenten Lernziele Was unterscheidet Pull- von Push-Parser? Was unterscheidet Einschritt- von Mehrschritt-Parser? Wie ordnen sich SAX und DOM bezüglich dieser Kategorien ein? Warum

Mehr

XML-Programmierschnittstellen: SAX, DOM

XML-Programmierschnittstellen: SAX, DOM XML-Programmiershnittstellen: SAX, DOM SAX: The Simple API for XML Event-Based Doument Objet Model (DOM) Baumdarstellung APIs zum Parsen, Bearbeiten und Serialisieren von XML-Dokumenten. (Weitgehend) sprahunabhängig

Mehr

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 2. 12. 2013 Kennnr. Matrikelnr. Familienname Vorname Arbeitszeit: 100 Minuten. Aufgaben sind auf den Angabeblättern zu lösen; Zusatzblätter werden nicht

Mehr

1. Einführung. Gliederung. Document Object Model (DOM) DOM Die Spezifikation (1) Level 2 HTML Specification. 1. Einführung. 2.

1. Einführung. Gliederung. Document Object Model (DOM) DOM Die Spezifikation (1) Level 2 HTML Specification. 1. Einführung. 2. Gliederung Document Object Model (DOM) Level 2 HTML Specification 1. Einführung Spezifikation 2. DOM Module Levels, Core, Überblick 3. DOM Intern Funktionsweise, Parser 4. DOM Level 2 HTML Eigenschaften,

Mehr

XML - Datei Zugriff mit Java

XML - Datei Zugriff mit Java XML in Java XML - Datei Zugriff mit Java XML in Java XML-Dateien für Experimente SAX (Simple API fort XML) STAX (Streaming API fort XML) Übung: SAX - STAX DOM JDOM und XPath Exkurs: DAO-Pattern Übung:

Mehr

XML-Parser K. Schild, 2006 / M. Mochol 2007 1

XML-Parser K. Schild, 2006 / M. Mochol 2007 1 XML-Parser 1 Heutige Vorlesung letzte Woche XML-Schema - Datentypen - Element- und Attribut-Deklarationen - Typsubstitution heutige Vorlesung Welche XML-Parser gibt es? Was sind ihre Vor- und Nachteile?

Mehr

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen XML-Abfragesprachen XML-Schemasprachen DTD XML-Schema... XPath XQuery XML XML-Transformationssprache XSLT Relationale DBMS XML in DBMS Dedizierte XML-DBMS 12 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

Mehr

XML-Parser. Markus Luczak-Rösch Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme markus.luczak-roesch@fu-berlin.

XML-Parser. Markus Luczak-Rösch Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme markus.luczak-roesch@fu-berlin. XML-Parser Markus Luczak-Rösch Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme markus.luczak-roesch@fu-berlin.de Was bisher geschah Syntax wohlgeformter XML-Dokumente

Mehr

Kapitel 3. XML-Prozessoren. Document Object Model Simple API for XML DOM SAX

Kapitel 3. XML-Prozessoren. Document Object Model Simple API for XML DOM SAX Kapitel 3 XML-Prozessoren DOM SAX Document Object Model Simple API for XML Anforderungen Verarbeitung von XML Suchen und Ändern in bzw. von XML-Dokumenten gewünscht Schnittstellen für Anwendungen, die

Mehr

DOM - Document Object Model

DOM - Document Object Model In diesem Kapitel Einleitung Die Entstehung des DOM Die Baumstruktur von DOM Document, Element, Attribute, Attribute, Leaf DOM und Java JAXP DOM3 Das Node Interface Das NodeList Interface DOM Exceptions

Mehr

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 181.135 21. 01. 2011 Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 181.135 21. 01. 2011 Kennnr. Matrikelnr. Familienname Vorname Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 181.135 21. 01. 2011 Kennnr. Matrikelnr. Familienname Vorname Arbeitszeit: 120 Minuten. Aufgaben sind auf den Angabeblättern zu lösen; Zusatzblätter werden

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II Heiko Neuweger (Alexander Goesmann) Bioinformatics Resource Facility Center for Biotechnology Universität Bielefeld Vorlesung Sommer 2010 Überblick Was ist XML und wofür

Mehr

XML-Verarbeitung mit Java

XML-Verarbeitung mit Java Westfälische Wilhelms-Universität Münster Thema: XML-Verarbeitung mit Java Ausarbeitung im Rahmen des Hauptseminars Softwaretechnik am Lehrstuhl für Praktische Informatik Themensteller: Betreuer: vorgelegt

Mehr

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 25. 10. 2013 Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 25. 10. 2013 Kennnr. Matrikelnr. Familienname Vorname Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 25. 10. 2013 Kennnr. Matrikelnr. Familienname Vorname Arbeitszeit: 100 Minuten. Aufgaben sind auf den Angabeblättern zu lösen; Zusatzblätter werden

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

XML-Datei für Web Service auslesen und schreiben

XML-Datei für Web Service auslesen und schreiben XML-Datei für Web Service auslesen und schreiben Einleitung Anliegen dieses Tutorials ist das Einbinden einer XML-Datei als Datenquelle für den AutoKauf Web Service. Wenn der Web Service z. B. auf die

Mehr

Multimediale Web-Anwendungen. JavaScript. Einführung. MWA JavaScript-Einführung Dr. E. Schön Sommersemester 2015 Folie 1.

Multimediale Web-Anwendungen. JavaScript. Einführung. MWA JavaScript-Einführung Dr. E. Schön Sommersemester 2015 Folie 1. Multimediale Web-Anwendungen JavaScript Einführung MWA JavaScript-Einführung Dr. E. Schön Sommersemester 2015 Folie 1 Entstehungsgeschichte: JavaScript 1995 Netscape Communications Corp. (Brendan Eich)

Mehr

XML Informationsmodelle

XML Informationsmodelle XML Vorlesung ETHZ, Sommersemester 2006 XML Informationsmodelle Erik Wilde 25.4.2006 http://dret.net/lectures/xml-ss06/ 25.4.2006 XML Vorlesung ETHZ SS 2006 1 Übersicht XML Namespaces für Schema-Kombination

Mehr

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder holger.roeder@informatik.uni-stuttgart.de.

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder holger.roeder@informatik.uni-stuttgart.de. Java: Kapitel 9 Java und XML Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 9 Einführung in XML XML-Verarbeitung in Java Document Object

Mehr

> Datenstrukturen in Java (Teil 3)

> Datenstrukturen in Java (Teil 3) Datenstrukturen > Datenstrukturen in (Teil 3) Mark Egloff 2006 1 Lernziel Heute Abend > Sie lernen noch eine zusätzliche Datenstrukturen und Ihre Bedeutung kennen Bäume > Sie wissen die Vor und Nachteile

Mehr

X-Technologien. XML and Friends. Jörn Clausen joern@techfak.uni-bielefeld.de. 9. Juli 2001

X-Technologien. XML and Friends. Jörn Clausen joern@techfak.uni-bielefeld.de. 9. Juli 2001 X-Technologien XML and Friends 9. Juli 2001 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht XML SAX DOM XSL XPath XSLT XSL FO Extensible Markup Language Simple API for XML Document Object Model Extensible

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5. www.hanser.de

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5. www.hanser.de CARL HANSER VERLAG Dirk Ammelburger XML Grundlagen der Sprache und Anwendungen in der Praxis 3-446-22562-5 www.hanser.de 1 1.1 Einleitung... 2 Über dieses Buch... 3 1.2 Für wen ist das Buch gedacht?...

Mehr

XML und Java -- wohin geht die Reise?

XML und Java -- wohin geht die Reise? XML und Java -- wohin geht die Reise? Mario Jeckle DaimlerChrysler Forschungszentrum Ulm mario.jeckle@daimlerchrysler.com mario@jeckle.de www.jeckle.de Gliederung I XML und Programmiersprachen... Was ist

Mehr

Vortrag im Rahmen des IFC-Seminars am 06.12.2000. Performance Messungen mit XML bei der empolis GmbH

Vortrag im Rahmen des IFC-Seminars am 06.12.2000. Performance Messungen mit XML bei der empolis GmbH Vortrag im Rahmen des IFC-Seminars am 06.12.2000 von Stefan Rauch Diplomarbeit zum Thema: Performance Messungen mit XML bei der empolis GmbH Übersicht / Agenda Einleitung Die Firma empolis GmbH XML, SAX,

Mehr

XML. JAXP - XML-Verarbeitung in Java. Client API. Plugability- Layer. Implementations

XML. JAXP - XML-Verarbeitung in Java. Client API. Plugability- Layer. Implementations XML XML-Dokumente Schemadefinition DOM-Parser SAX-Parser StAX-Reader Erzeugen von XML-Dokumenten aus DOM Schreiben von XML-Dokumenten mit StAX XSL-Transformation Java Architecture for XML Binding API-Auszug

Mehr

P A X P A X. Power API for XML. DOM und SAX. PAX : Ideen und Konzepte. Wie PAX funktioniert. Wie PAX angewandt wird. WWW-Links. von Manfred Duchrow

P A X P A X. Power API for XML. DOM und SAX. PAX : Ideen und Konzepte. Wie PAX funktioniert. Wie PAX angewandt wird. WWW-Links. von Manfred Duchrow P A X Power API for XML von Manfred Duchrow P A X DOM und SAX : Ideen und Konzepte Wie funktioniert Wie angewandt wird WWW-Links 2 1 DOM (Document Object Model) Document Element Element Text Attribute

Mehr

Linux I II III Res WN/TT NLTK XML Weka E XML BNC XSLT BNC/XML 7 BNC/XML XML BNC XSLT. Ressourcen-Vorkurs

Linux I II III Res WN/TT NLTK XML Weka E XML BNC XSLT BNC/XML 7 BNC/XML XML BNC XSLT. Ressourcen-Vorkurs BNC/XML 7 BNC/XML XML BNC XSLT extensible Markup Language I XML erlaubt es, strukturierte Daten in Textdateien zu speichern. Zum Schreiben und Lesen von XML-Dateien genügen einfache Text-Editoren wie Emacs

Mehr

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Stefan Thater & Michaela Regneri Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Übersicht XML XML-Parser in Python HTML HTML-Parser in Python 2 Extensible

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

1 ZUR EINSTIMMUNG............................................ 13 1.1 AUFBAU DES BUCHES.......................................... 13 1.2 VORAUSSETZUNGEN FÜR DIESES BUCH.............................. 14

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

XML-Verarbeitung mit DOM

XML-Verarbeitung mit DOM XML-Verarbeitung mit DOM Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2011-02-02 Inhaltsverzeichnis 1 Einführung in DOM 1 1.1 Parsen von XML................................ 2 1.2 Erzeugen eines neuen

Mehr

Webservices. XML Signature und XML Processing. Meiko Jensen, Juraj Somorovsky, Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

Webservices. XML Signature und XML Processing. Meiko Jensen, Juraj Somorovsky, Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Master-Praktikum zur Programmierung sicherer Webservices XML Signature und XML Processing WS-SecuritySecurity Transport-level security VS Message-level security Client Web Service Action Server Web Service

Mehr

XML Parser. Ein Überblick XML UND JAVA. In diesem Kapitel Einleitung Streams und Readers

XML Parser. Ein Überblick XML UND JAVA. In diesem Kapitel Einleitung Streams und Readers In diesem Kapitel Einleitung Streams und Readers XML Parser Auswahl eines XML API s Auswahl eines XML Parsers Verfügbare Parser SAX Simple API for XML Sun Crimson Apache Xerces SAX Handler DOM Document

Mehr

Asynchrone Webservices mit Axis 1.x in Java

Asynchrone Webservices mit Axis 1.x in Java Asynchrone Webservices mit Axis 1.x in Java 1. Übersicht Architektur Da Webservices nach relativ kurzen Timeouts Anfragen abgearbeitet haben müsse, sind komplexe Anfragen wie sie in der Bioinformatik üblich

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Praktikum aus Softwareentwicklung 2, Stunde 10

Praktikum aus Softwareentwicklung 2, Stunde 10 Praktikum aus Softwareentwicklung 2, Stunde 10 Lehrziele/Inhalt 1. XML XML XML (Extensible Markup Language) ist eine Auszeichnungssprache mit hierarchischer Struktur. Die Daten werden als Text abgelegt

Mehr

Programmierung mit XML

Programmierung mit XML Programmierung mit XML XML als Austausch- und Speicherformat. Anwendungsbeispiele: Ein XML-Parser für Formen Darstellung betrieblicher Organisationsstrukturen Befragen der Strukturen Transformation der

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Java Metadata Interface. Thorsten Pivl

Java Metadata Interface. Thorsten Pivl Java Metadata Interface Thorsten Pivl Einleitung Was sind Metadaten? Das Wort Meta stammt aus dem griechischen und bedeutet über Meta-Daten: Daten über Daten Beschreibung von Daten 2 Einleitung Warum Metadaten?

Mehr

Dokumentenstrukturen

Dokumentenstrukturen Dokumentenstrukturen Dokumentation zum Projekt Die Welt von BreakOut von: Kristian Kraft Email: Kristian.Kraft@gmx.de Matrikelnummer: 80 59 17 Dirk Vincent Kops Email: Vincent.Kops@gmx.de Matrikelnummer:

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4. ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/15 1 / 24 Singleton-Muster 2 / 24 Das Singleton Im einfachsten Fall wird ein Singleton über

Mehr

Das Ziel. Frage: Welche Wege gibt es dazu?

Das Ziel. Frage: Welche Wege gibt es dazu? Dokumentenmodell Das Ziel Ziel Verändern des Dokuments Hinzufügen, Entfernen, Verändern von Inhalt und / oder Darstellung Sofortiges oder kontrollierbares Reflow erwartet Möglicherweise Triggern durch

Mehr

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code.

Current Workflow. formatted. Rules. Extensions. Rules. DOM processing with Meta API-calls. Code Generation (Smarty) XMLfile. Source code. Current Workflow Rules T1 Rules Extensions XMLfile DOM processing with Meta API-calls Model 1 T2 Model 2 Code Generation (Smarty) Source code PP formatted sourcecode DTD V1 Rules XMI 1/21 Anbindung eines

Mehr

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester 2015. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester 2015. Fachbereich MNI Technische Hochschule Mittelhessen Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Übersicht Semistrukturierte Daten Dokumenttypdefinition XML-Schema XML aus Datenbank konstruieren XML in Datenbank speichern Merkmale

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 7. 1. 2014 Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 7. 1. 2014 Kennnr. Matrikelnr. Familienname Vorname Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 7. 1. 2014 Kennnr. Matrikelnr. Familienname Vorname Arbeitszeit: 100 Minuten. Aufgaben sind auf den Angabeblättern zu lösen; Zusatzblätter werden nicht

Mehr

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR Rainer Stropek cubido Baumschule Expression Trees in C#, CLR und DLR Inhalt Als Anwendungsentwickler kommt man selten mit Expression Trees in Berührung. Sie sind ein Implementierungsdetail von LINQ. Ihre

Mehr

Übersicht. Web (Site) Engineering (WebSE) Java-Applets II. Java-Applets. Client-basierte Techniken Applets

Übersicht. Web (Site) Engineering (WebSE) Java-Applets II. Java-Applets. Client-basierte Techniken Applets Übersicht Web (Site) Engineering (WebSE) Vorlesung 6: Dynamisierungstechniken für Client und Server B. Schiemann, P. Reiß Lehrstuhl für Informatik 8 Universität Erlangen-Nürnberg 20. 11. 2007 XSL-Verarbeitung

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

XML-Verarbeitung in Java Praktikum zur Vorlesung Intelligente Informationssysteme WS 2004/05 1 XML. Gunar Fiedler (fiedler@is.informatik.uni-kiel.

XML-Verarbeitung in Java Praktikum zur Vorlesung Intelligente Informationssysteme WS 2004/05 1 XML. Gunar Fiedler (fiedler@is.informatik.uni-kiel. Concept Content.. Information Topic XML-Verarbeitung in Java Praktikum zur Vorlesung Intelligente Informationssysteme WS 2004/05 Gunar Fiedler (fiedler@is.informatik.uni-kiel.de) Question 1 : When should

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0 9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung

Mehr

XML und.net. Proseminar Objektorientiertes Programmieren mit.net und C# Tuan Duc Nguyen. Institut für Informatik Software & Systems Engineering

XML und.net. Proseminar Objektorientiertes Programmieren mit.net und C# Tuan Duc Nguyen. Institut für Informatik Software & Systems Engineering XML und.net Proseminar Objektorientiertes Programmieren mit.net und C# Tuan Duc Nguyen Institut für Informatik Software & Systems Engineering Agenda Überblick über XML XML Klassen in.net Lesen von XML

Mehr

SAX. Seminararbeit im Seminar XML und Datenbanken Sommersemester 2004 Universität Jena. vorgelegt von Stefan Scheidewig

SAX. Seminararbeit im Seminar XML und Datenbanken Sommersemester 2004 Universität Jena. vorgelegt von Stefan Scheidewig SAX Simple API for XML Seminararbeit im Seminar XML und Datenbanken Sommersemester 2004 Universität Jena vorgelegt von Stefan Scheidewig Mai 2004 1 Inhaltsverzeichnis 1 Einleitung 3 2 Simple API for XML

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Was ist SGML. - welche Auszeichnungen (Mark up) sind erlaubt? - welche Auszeichnungen sind notwendig?

Was ist SGML. - welche Auszeichnungen (Mark up) sind erlaubt? - welche Auszeichnungen sind notwendig? Was ist SGML SGML = Standard Generalized Markup Language internationaler Standard für die Beschreibung von Textauszeichnungen ( marked up text ) SGML ist keine Auszeichnungssprache sondern ein Formalismus

Mehr

Einführung in Perl. WWW, Teil 2: XML

Einführung in Perl. WWW, Teil 2: XML Einführung in Perl WWW, Teil 2: XML Jörn Clausen Georg Fuellen Übersicht XML: extensible Markup Language XML parsen: XML::Parser SAX: Simple API for XML DOM: Document Object Model XPath XML erzeugen die

Mehr

Kapitel 9: Klassen und höhere Datentypen. Selektoren

Kapitel 9: Klassen und höhere Datentypen. Selektoren Selektoren Üblicherweise erlaubt man keinen (direkten) öffentlichen (public) Zugang zu Objektvariablen mehr Kontrolle über Zugang interne Details besser verborgen Statt dessen: Zugriff auf privates Feld

Mehr

Modell/Metamodell. Generated Source Code. Generator. Model. Fakultät für Informatik und Wirtschaftsinformatik MDSD - SS 2014

Modell/Metamodell. Generated Source Code. Generator. Model. Fakultät für Informatik und Wirtschaftsinformatik MDSD - SS 2014 Modell/Metamodell Model Generator Generated Source Code Andreas Schmidt Modellierung 1/18 Modell Modell beschreibt die zu generierende Anwendung Modell ist... abstrakt kompakt formal Modell kann in unterschiedlichen

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Exportieren von Domino-Datenbanken in XML Das Lotus XML Toolkit Abbildung 1 Anwendung des Lotus XML Toolkits Seite 1 von 8

Exportieren von Domino-Datenbanken in XML Das Lotus XML Toolkit Abbildung 1 Anwendung des Lotus XML Toolkits Seite 1 von 8 Exportieren von Domino-Datenbanken in XML Mit Hilfe des seit kurzem in Version 1.0 verfügbaren Lotus XML Toolkits lassen sich nahezu alle Inhalte von Notes-Datenbanken exportieren und importieren. Neben

Mehr

1 Was ist XML? Hallo XML! Kommentare in XML 52

1 Was ist XML? Hallo XML! Kommentare in XML 52 Inhalt Vorwort 13 Einleitung und Ziel des Buches 15 1 Was ist XML? 21 1.1 XML ein Definitionsversuch 21 1.2 XML und HTML wo sind die Unterschiede? 22 1.3 XSLT 24 1.4 Einsatzgebiete von XML und XSLT 25

Mehr

Der MyCoRe-URI-Resolver

Der MyCoRe-URI-Resolver by Thomas Scheffler, Wiebke Oeltjen, Jens Kupferschmidt 2015-06-16 Der URI-Resolver in MyCoRe ist eine Erweiterung des Standard-URI-Resolvers und gestattet innerhalb der MyCoRe- Anwendung den einfachen

Mehr

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079)

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079) XML Verarbeitung mit einer in Haskell eingebetteten DSL Manuel Ohlendorf (xi2079) 2.0.200 Manuel Ohlendorf Übersicht 1 2 Einführung Datenstruktur Verarbeitung Vergleich mit anderen Verfahren Fazit 2 Übersicht

Mehr

Einführung in Datenbanken - XML - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung

Einführung in Datenbanken - XML - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung Einführung in Datenbanken - XML - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung 1 XML XML steht für die extensible Markup Language (XML) XML ist eine sogenannte Markup-Sprache (wie

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

- dynamisches Laden -

- dynamisches Laden - - - Fachbereich Technik Department Elektrotechnik und Informatik 21. Juni 2012 1/23 2/23 s dynamisch Code kann von mehreren Programmen genutzt werden => kleinere Programme einzelne Teile eines Programms

Mehr

Dynamische Generierung von XML

Dynamische Generierung von XML Kunde: DOAGNews Ort, Datum: Artikel im Heft Q3 / 2005 Thema / Themen: Projekt: Autor: Artikel von merlin.zwo Dynamische Generierung von XML In Hakon Lugert Oracle & Technologien Systementwicklung Individuelle

Mehr

Programmieren II in Java

Programmieren II in Java Programmieren II in Java Dr. Klaus Höppner 2. Zusammenfassung Inhaltsverzeichnis 1 Grafische Oberflächen mit Swing (Nachtrag zur 1. Zusammenfassung) 1 1.8 Listen und Tabellen..................................

Mehr

Kapitel WT:III (Fortsetzung)

Kapitel WT:III (Fortsetzung) Kapitel WT:III (Fortsetzung) III. Dokumentsprachen Auszeichnungssprachen HTML Cascading Stylesheets CSS XML-Grundlagen XML-Schema Die XSL-Familie APIs für XML-Dokumente WT:III-392 Document Languages STEIN

Mehr