1 Software Engineering 1



Ähnliche Dokumente
, Rainer Schmidberger, ISTE. XML und Java. Rainer Schmidberger

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: Datum:

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

Berner Fachhochschule Software Schule Schweiz JDOM. Beatrice Amrhein. Oktober 06

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

Verarbeitung von XML mit SAX und DOM

Java und XML 2. Java und XML

XML-Programmierschnittstellen: SAX, DOM

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

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

Große Übung Praktische Informatik 1

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

5. Programmierschnittstellen für XML

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Predictive Modeling Markup Language. Thomas Morandell

Software Engineering II

5. Programmierschnittstellen für XML

JavaScript in Drupal

SDK zur CRM-Word-Schnittstelle

Betr.: Neuerungen eps Online-Überweisung

Programmieren in Java

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

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

License Management SDK

XMLBeam. Einfach XML-Handling. W3L AG

XML und SOAP Einführung und Grundlagen

11 XML Programmierung

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

GATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics )

Java: Vererbung. Teil 3: super()

Organisation und technische Voraussetzungen des elektronischen Rechtsverkehrs

IT-Zertifikat: Daten- und Metadatenstandards

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

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

Delegatesund Ereignisse

... MathML XHTML RDF

Spezifikation DPD und primetime WebService Shopfinder Gültig für Paketversender in Österreich. Version 3.3.0

DOM Document Object Model

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Javakurs zu Informatik I. Henning Heitkötter

Einführung in die Programmierung für Wirtschaftsinformatik

Typumwandlungen bei Referenztypen

Übungsaufgaben zu XML:

Algorithmen und Datenstrukturen Suchbaum

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Test-Driven Design: Ein einfaches Beispiel

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

WPF Steuerelemente Listbox, ComboBox, ListView,

Objektorientierte Programmierung

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

Datenaustauschformate. Datenaustauschformate - FLV

Software Engineering II

EndTermTest PROGALGO WS1516 A

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Programmierkurs Java

Remote Method Invocation

Präsentation zum Thema XML Datenaustausch und Integration

Programmieren II. Arbeiten mit XML-Dokumenten. Institut für Angewandte Informatik

Information über die WebServices der Parlamentsdienste

XML-Verarbeitung. XPath XSL die extensible Stylesheet Language. Torsten Schaßan SCRIPTO Modul 4: EDV Wolfenbüttel

Containerformat Spezifikation

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo.

3. Persistenz und Datenbanken Content Providers. Content Providers. Generische Schnittstelle zum Zugriff auf Daten zwischen Anwendungen

Objektorientierte Programmierung

Online-Publishing mit HTML und CSS für Einsteigerinnen

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Webseiten und Web-Apps grafisch gestalten mit HTML5 Canvas ohne Flash und sonstige Tools

Innere Klassen in Java

Inhaltsverzeichnis. Beschreibung. Hintergrund

Java Kurs für Anfänger Einheit 5 Methoden

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

XML-Namensräume. Marc Monecke

XSL Templates. Mit Templates arbeiten. XSL Templates

Einführung in die Programmierung

XML-Austauschformat für Sicherheitsdatenblätter

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

Containerformat Spezifikation

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

XML-Parser. Parser. Heutige Vorlesung. Grundlegende Architektur. Kategorien von Parser

Transkript:

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 Spezifiziert durch das W3C Strukturelle oder Inhaltliche Einschränkungen können mit DTD oder einem XML Schema definiert werden 1.2 XML - Aufbau <?xml version="1.0" encoding="utf-8"?> <contact xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/x <creation-date>2008-03-12t16:36:45</creation-date> <name> <full-name>arthur Zaczek</full-name> <given-name>arthur</given-name> <last-name>zaczek</last-name> </name> <birthday>1978-03-20t00:00:00</birthday> <address> <type>business</type> <street>...</street> <locality>klosterneuburg</locality> <postal-code>3400</postal-code> <country>österreich</country> </address> <uid>ko-ct-89c337bc-1c5f-4e36-b8b0-0c8c781c5d65</uid> <phone> <type>home1</type> <number>+43 (664) 123456789</number> </phone> <email> <display-name>arthur Zaczek</display-name> <smtp-address>zaczek@technikum-wien.at</smtp-address> </email> </contact> 1.3 XML Elemente Arthur Zaczek Attribute +43 (664) 123456789 1

Document Element...... XML Deklaration 1.4 Namespaces Tags können Namespaces zugeordnet werden Somit können mehrere Gruppen von Daten in einem Dokument untergebracht werden, ohne dass sich Tagnamen überschneiden ~ ~ ~~ ~~ {.cs Arthur Zaczek Arthur Zaczek zaczek@technikum-wien.at ~ ~ ~~ ~~ 1.5 DOM Document Object Model Spezifikation einer Programmierschnittstelle Wird vom W3C definiert XML Dokument wird als Objektbaum dargestellt Wird somit vollständig ins RAM geladen Ist nicht für große Dokumente geeignet! 1.6 DOM - Aufbau 1.7 DOM - Node appendchild getattributes getchildnodes getfirst/lastchild getlocalname getnamespaceuri getnodevalue getnodetype getparentnode... 1.8 DOM lesen/java DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newdocumentbuilder(); Document xml = db.parse(xmlinput); Element root = xml.getdocumentelement(); String description = Utils.getXmlElementString(root, "body"); String title = Utils.getXmlElementString(root, "summary"); Time start = Utils.getXmlElementTime(root, "start-date"); Time end = Utils.getXmlElementTime(root, "end-date"); 2

1.9 DOM lesen/java public static final String getxmlelementstring(element parent, String name) { Element e = getxmlelement(parent, name); return getxmlelementstring(e); public static final String getxmlelementstring(element e) { if (e == null) return null; NodeList nl = e.getchildnodes(); if (nl.getlength() > 0) { return nl.item(0).getnodevalue(); return null; 1.10 DOM lesen/java public static final int getxmlelementint(element parent, String name, int defaultvalue) { String value = getxmlelementstring(parent, name); if (value == null "".equals(value)) return defaultvalue; try { return Integer.parseInt(value); catch (TimeFormatException tfe) { Log.e("sync", "Unable to parse DateTime " + value); return defaultvalue; 1.11 DOM neues Dokument public final static Document newdocument(string rootname) throws ParserConfigurationException { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newdocumentbuilder(); Document xml = db.newdocument(); Node root = xml.createelement(rootname); Attr a = xml.createattribute("version"); a.setvalue("1.0"); root.getattributes().setnameditem(a); xml.appendchild(root); return xml; 1.12 XPath Ist eine Abfragesprache Adressiert teile eines XML Baumes Vom W3C entwickelt //phone[type= home ] Liefert alle phone Elemente (auf allen Ebenen) mit dem Attribut type=home 3

1.13 XPath - Java DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document document = builder.parse(new File("/widgets.xml")); XPath xpath = XPathFactory.newInstance().newXPath(); String expression = "/widgets/widget"; Node widgetnode = (Node) xpath.evaluate(expression, document, XPathConstants.NODE); 1.14 SAX Parser Liest XML-Daten als sequentiellen Datenstrom Im Gegensatz zu DOM, der XML als Objektbaum abbildet Der Speicherbedarf wird minimiert 1.15 SAX Parser C XmlTextReader GetAttribute() MoveTo*() Read() ReadAttributeValue() ReadContentAs*() ReadSubTree() Name LocalName Value 1.16 Aufbau eines SAX Parsers (C#) Jedes Element, welches Unterelement hat wird von einer eigenen Methode geparst 1.17 Aufbau eines SAX Parsers (C#) void ReadOsm(System.Xml.XmlTextReader xml) void ReadAnyOsmElement(System.Xml.XmlReader osm) void ReadTag(System.Xml.XmlReader element, Address a) 1.18 Aufbau public static void Update() { var file = "austria.osm"; using (var fs = File.OpenRead(file)) using (var xml = new System.Xml.XmlTextReader(fs)) { while (xml.read()) { if (xml.nodetype == System.Xml.XmlNodeType.Element && xml.name == "osm") { 4

ReadOsm(xml); 1.19 Aufbau private static void ReadOsm(System.Xml.XmlTextReader xml) { using (var osm = xml.readsubtree()) { while (osm.read()) { if (osm.nodetype == System.Xml.XmlNodeType.Element && (osm.name == "node" osm.name == "way")) { ReadAnyOsmElement(osm); 1.20 Aufbau private static void ReadAnyOsmElement(System.Xml.XmlReader osm) { using (var element = osm.readsubtree()) { while (element.read()) { if (element.nodetype == System.Xml.XmlNodeType.Element && element.name == "tag") { ReadTag(element, a); 1.21 Aufbau private static void ReadTag(System.Xml.XmlReader element, Address a) { string tagtype = element.getattribute("k"); string value = element.getattribute("v"); switch (tagtype) { case "addr:city": a.city = value; case "addr:postcode": a.postcode = value; case "addr:street": a.street = value; 5