Das XQuery-Datenmodell

Größe: px
Ab Seite anzeigen:

Download "Das XQuery-Datenmodell"

Transkript

1 Das XQuery-Datenmodell

2 Gliederung Sequenzen Atomare Werte Knoten Knoteneigenschaften Sequenztypen und Knotenzugriffsfunktion Typabfrage Gleichheit von Sequenzen Zusammenfassung

3 Das XQuery-Datenmodell Das Datenmodell ist eine interne Darstellung eines XML Dokumentes. Zentraler Konstrukt ist eine Sequenz mit einer beliebigen Anzahl von Einträgen (atomare Werte oder Knoten), die eine Position haben.

4 Struktur einer Sequenz Eine Sequenz besteht aus keinem, einem oder mehreren Einträgen ( items ) atomarer Wert oder Knoten Die einzelnen Einträge werden aneinander gereiht durch Komma getrennt. Eine Klammerung ist oft nicht notwendig verdeutlicht aber die Sequenzbildung Eine leere Sequenz wird durch () dargestellt, sie ist aber von Nichts zu unterscheiden Auch ein einzelner Wert ist eine Sequenz Sequenzen können nicht ineinander verschachtelt sein Eine Sequenz ist geordnet und hat keine Mengeneigenschaften Duplikate

5 Beispiele identischer Sequenzen (1,2,1) und (1,(2,1)) liefert eine Sequenz aus drei Zahlen (1, (),<B/>) und (1, <B/>) liefert eine Sequenz aus Zahl und Knoten (<A/>) und <A/> liefert eine Sequenz mit nur einem Eintrag () und ( (), () ) liefert die leere Sequenz

6 Funktionen und Operationen auf Sequenzen Da jeder Ausdruck in XQuery eine Sequenz ergibt, sind alle Funktionen in XQuery Funktionen auf Sequenzen Man unterscheidet 2 Gruppen, die sich mit der Struktur von Sequenzen befassen: Kardinalität von Sequenzen und Veränderung von Sequenzen - Bei der Syntaxdarstellung werden die Parameter, die Sequenzen darstellen, mit $seq benannt - Die Notation item()* steht für einen allgemeinen Sequenztyp

7 Kardinalität von Sequenzen Signatur Beschreibung fn:zero-or-one ($seq as item() *) as item()? fn:one-or-more ($seq as item() *) as item() + fn:exactly-one ($seq as item() *) as item() fn:empty ($arg as item() *) as xs:boolean fn:exists ($arg as item() *) as xs:boolean Eingabesequenz höchstens einen Eintrag, sonst Fehler Eingabesequenz mindestens einen Eintrag, sonst Fehler Eingabesequenz genau einen Eintrag, sonst Fehler True Eingabesequenz leer, sonst false True Eingabesequenz nicht leer, sonst Fehler fn:count ($seq as item() *) as xs:integer Anzahl der Einträge einer Sequenz

8 Veränderung von Sequenzen Mit diesem Operator kann man auch einzelne Einträge an eine Sequenz anfügen: let $seq := (1,2,3) return ($seq,4) liefert (1,2,3,4) Mit der Funktion fn:insert-before() kann man auch an andere Stellen der Sequenz Einträge einfügen. Das Löschen von Einträgen geht mit der Funktion fn:remove() Die Reihenfolge der Einträge in einer Sequenz kann mit fn:reverse() umgedreht werden Mit fn:subsequence() kann man einen Ausschnitt aus einer Sequenz bilden, indem Startposition und Anzahl der Elemente angegeben werden. Die Funktion fn:unordered() gibt den Verzicht auf eine bestimmte Reihenfolge wieder

9 Beispiele let $seq := ( E1, E2, E3, E4,E5 ) return fn:insert-before (fn:remove ($seq, 3), 3, Neu ) Ergebnis: ( E1, E2, Neu, E4, E5 ) - let $seq := (6,5,4,3,2,1,0) return subsequence( ($seq, fn:reverse ($seq)), fn:count ($seq) div 2, fn:count ($seq)) Ergebnis: (3,2,1,0,0,1,2)

10 Veränderungen von Sequenzen- Signatur Funktionen Beschreibung fn:insert-before ($seq as item()*, $position as xs:integer,$seqneu as item()*) as item()* fn:remove ($seq as item()*, $position as xs:integer) as item()* fn:reverse ($seq as item()*) as item()* fn:subsequence ($seq as item()*, $start as xs:double[,$length as xs:double] ) as item()* fn:unordered ($seq as item()*) as item ()* Neue Sequenz Einträge werden aus der Sequenz $seqneu an Position $position in die Sequenz $seq eingeschoben Neue Sequenz der Eintrag in $seq wird an Position $position entfernt Neue Sequenz mit allen Einträgen aus $seq in umgekehrter Reihenfolge Neue Sequenz beginnend mit dem Eintrag an Position round ($start) in $seq, Rest von $seq wenn $length fehlt Sequenz enthält alle Einträge aus $seq, Reihenfolge unbestimmt

11 Atomare Werte Atomare Werte sind Instanzen eines einfachen Typs bzw. von XML Schema, z.b. Zeichenketten wie Emma Müller oder Zahlen, z.b Werte von den Typen durch Vereinigung oder Listenbildung sind keine atomaren Werte.

12 Konstruktoren Konstruktoren sind dafür da, in einem XQuery-Ausdruck einen Wert eines bestimmten Typs anzugeben, z.b. als Vergleichswert. xs:float (1) bezeichnet einen Wert des Datentyps xs:float.

13 Literale für Zeichenketten Zeichenketten, die in einfache oder doppelte Anführungszeichen stehen, gelten als Werte vom Typ xs:string, z.b.: `Dies ist ein Literal vom Typ xs:string` Solche Literale sind in oder `eingeschlossen Die Anführungszeichen kann man auch im Literal selbst verwenden, wenn man sie verdoppelt.

14 Operationen und Funktionen auf Sequenzen atomarer Werte Eine Sequenz aus Werten vom Typ xs:integer kann mit dem to-operator erzeugt werden: 3 to 7 die Sequenz (3,4,5,6,7) Die Funktion fn:index-of() kann die Positionen innerhalb der Sequenz liefern, an denen ein atomarer Wert steht, der gleich dem Suchausdruck ist. Wird der Ausdruck nicht gefunden, so ergibt sich eine leere Sequenz. Der erste Eintrag einer Sequenz steht auf 1 nicht auf 0! Z.B: fn:index-of( (1,0,0,1), 1) (1,4) Die Funktion fn:distinct-values() eliminiert Duplikate in Sequenzen. Das Ergebnis enthält alle verschiedene Werte, wobei die Reihenfolge abhängig ist von der XQuery-Implementierung.

15 Funktionen auf Sequenzeinträgen Signatur Beschreibung Op:to ($firstval as xs:integer, $lastval as xs:integer) as xs:integer* fn:index-of fn:distinct-values Sequenz ganzzahliger Werte, die zwischen den beiden Werten der Parameter liegen Liefert alle Positionen, an denen ein Eintrag steht, der gleich dem gesuchten Wert ist. Liefert alle verschiedenen Werte aus der Eingabesequenz

16 Knoten Elementknoten Ein Elementknoten repräsentiert ein Element aus XML 1.0. Der textuelle Wert eines Elementknotens ergibt sich aus der Verkettung aller Textknoten, die diesem Knoten folgen Wenn das Element keinen komplexen Inhalt hat (nicht nur Kindelemente), hat das Element einen getypten Wert. Beispiel: der getypte Wert hat den Typ xs:integer XML Schema: einfacher Typ xs:integer! Hat das Element den Typ xdt:untypedany (unbest.komplexer Typ) ist der getypte Wert vom Typ xdt:untypedatomic (unbest.atomarer Typ).

17 Erzeugung eines Elementknotens Der direkte Elementkonstruktor: benutzt die vertraute XML-Notation, z.b. <Arzt ID= Arzt_01 >Hans Müller</Arzt> Referenzen auf vordefinierte Entitäten (z.b. <) und Zeichenreferenzen (z.b. ) in Attributwerten und Elementinhalten sind erlaubt, sie werden aber bei der Konstruktion aufgelöst: <Fähigkeit>Altenbetreuung & Altenpflege</Fähigkeit>

18 Der berechnete Elementkonstruktor muss eingesetzt werden, wenn auch der Name eines Elementes berechnet werden soll element { Ausdruck_der_den_Namen_berechnet } oder Ausdruck_der_den_Inhalt_berechnet z.b.: element Labortest { attribute ID { Labortest_ }, element Nummer {1}, <Name>Röntgen</Name> element Datum { }, }

19 Gemeinsame Regeln für beide Konstruktorarten Das Präfix muss definiert sein, entweder im XQuery-Prolog oder im Element selbst. Das Element wird automatisch gegen die bekannten Schemadefinitionen validiert und bekommt ggf. einen Typ zugewiesen.

20 Dokumentknoten Einen Dokumentknoten repräsentiert ein XML- Dokument. Der textuelle Wert eines Dokumentknotens ergibt sich aus der Verkettung der textuellen Werte aller Textknoten, die dem DK folgen. Ein DK kann in XQuery mit einem berechneten Konstruktor erzeugt werden, z.b. document {<Arzt>Emil Müller</Arzt>} Die Knoten, die als Kinder dieses DKs angefügt werden, verlieren jegliche Typinfo und ihnen werden die Typen xs:anytype (Elementknoten) und xs:anysimpletype (Attributknoten) zugewiesen.

21 Attributknoten Attributknoten entsprechen den Attributen von XML- Elementen. Der textuelle Wert ergibt sich aus dem Attributwert, gewandelt nach xs:string. Einen Attributknoten kann man über einen berechneten Konstruktor erzeugen, bei dem auf das Schlüsselwort attribute der Name des Attributs und sein Wert folgen, z.b. attribute {$a} {6*7}

22 Kommentarknoten Ein Kommentarknoten entspricht einem Kommentar in einem XML- Dokument. Der textuelle Wert besteht aus dem Inhalt des Kommentars und dem getypten Wert (Wert vom Typ xs:string). Direkter Konstruktor: <!- -Dies ist ein Kommentar - -> Berechneter Konstruktor: comment { Dies ist ein Kommentar }

23 Textknoten Ein Textknoten ist der einfache Inhalt eines Elementes, unabhängig von seinem Typ. Direkter Konstruktor: <![CData[Dies ist der Inhalt des Textknotens]]> Berechneter Konstruktor: text { Dies ist der Inhalt des Textknotens }

24 Knoteneigenschaften Dokumentreihenfolge Die Dokumentordnung ist eine Ordnung der Knoten in der Dokumentreihenfolge: Der Elternknoten wird vor seinen Kindern besucht. Der Namensraumknoten eines Elements werden vor den Attributknoten desselben Elementes besucht. Die Attributknoten werden vor den Kindern eines Elementknotens besucht und die Geschwisterknoten werden in der gleichen Reihenfolge besucht wie im XML- Dokument Eliminierung identischer Knoten durch Entfernung von Duplikaten

25 Funktionen auf Knoten Auf den Namen eines Knotens kann man mit den XQuery- Funktionen fn:node-name() und fn:name() zugreifen. Wenn der Knoten keinen Namen hat wird eine leere Zeichenkette geliefert, sonst der Name Bei Attributen und Elementen kann der Name aus einem Namensraum stammen fn:node-name() Name als expandierten QName kein Namensraumpräfix fn:name() String in der syntaktischen Form eines QName Namensraumpräfix gebraucht

26 Oft sinnvoll auf den lokalen Namen und der URI separat zuzugreifen: fn:local-name() und fn:namespace-uri(), z.b. <A xmlns= /> local-name:a, namespaceuri: Die in einem Knoten zugeordnete Wurzel des Knotenbaumes wird mit der Funktion fn:root() adressiert, z.b. fn:root (<Arzt/>) Textueller Wert eines Knotens fn:string Zugriff auf den getypten Wert mittels fn:data(), z.b.: fn:string (<Name> <Vorname>Daniela</Vorname> <Nachname>Baumann</Nachname> </Name>)

27 fn:data(<geburtstagsdatum> </Geburtstagsdatum>) Zur Behandlung numerischer Daten benutzt man fn:number(). Diese Funktion erzeugt aus einem Knoten einen Wert des Typs xs:double meldet einen Fehler, wenn das Argument eine leere Sequenz ist oder nicht von xs:double stammt. Z.B.: Es gilt: fn:number (<A><B>1</B><C>2</C><A/>) =12.0 fn:number (<A><B>1.0</B><C>2.0</C></A>)

28 Symbol (keines) Sequenztypdefinitionen: Häufigkeitsangaben Bedeutung Sequenz mit genau einem Eintrag? Sequenz mit höchstens einem Eintrag + Sequenz mit mindestens einem Eintrag empty() Leere Sequenz * Sequenz mit unbeschränkter Anzahl von Einträgen

29 Eintragstypen Der allgemeinste Eintragstyp item() lässt sowohl atomare Werte als auch Knoten zu Als atomare Typen können alle in XML Schema definierten einfachen Typen, wie z.b.: xs:integer+ mein Namensraum:meine Schuhgröße? XQuery gibt nicht nur den Typ an, sondern auch jeden davon mit durch Erweiterung oder Restriktion abgeleiteten Typ

30 Knotentypen Knotentyp Bedeutung node() document-node() Beliebiger Knoten Ein Dokumentknoten document-node(element( )) Ein Dokumentknoten, wobei das Dokument als Wurzelelement ein Element hat text() comment() processing-instruction() processing-instruction(ziel) Ein Textknoten Ein Kommentarknoten Ein Verarbeitungsanweisungskn oten

31 Knotentyp element(), element(*) element(name) element(name,typ) attribute(), attribute(*) attribute(name) attribute(name,typ) Ein beliebiger Elementknoten Ein bestimmtes Element Ein Element mit bestimmtem Namen und Typ Ein beliebiges Attribut ein bestimmtes Attribut Ein Attribut mit bestimmtem Namen und Typ

32 Werden für ein Element Name und Typ angegeben, werden alle Elemente akzeptiert, die diesen Namen haben, z.b.: element (Angestellte, Angestellte_T) Der Typ des Elementes kann auch beliebig sein, z.b.: element (Krankenwagenfahrer, *) Ein Element mit leerem Inhalt und dem Attribut xsi:nil= true wird nur akzeptiert, wenn das Schlüsselwort nillable hinzugefügt wird: <Gehalt xsi:nil= true /> element (*, xs:integer nillable) element (Krankenwagenfahrer) führt zu einem Fehler, da dieses Element nicht definiert wurde Element (Angestellte) akzeptiert ein Arzt- Element, da er zu seiner Ersetzungsgruppe gehört XQuery erlaubt auch die Angabe eines Kontextpfades, z.b. element (Operation/Beginn) Falls es eine Typdefinition ist: element (type(person_t)/ )

33 Operationen auf Sequenzen aus Knoten Sequenzen von Knoten kann man miteinander kombinieren, indem man den Durchschnitt, die Vereinigung oder die Differenz bildet Sequenzen werden hier temporär als Menge betrachtet Die Ergebnisse der Sequenzoperationen union, intersect und except sind immer nach der Dokumentordnung sortiert.

34 Beispiel Let $doc := document {<Wurzel> ERGEBNIS: <A>1</A> <A-Sequenz> <A>1</A> <A>3</A <B>2</B> ></A-Sequenz> <A>3</A> <B-Sequenz> <B>4</B> <B>2</B <B>4</B> ></B-Sequenz> </Wurzel>} Let $a := $doc//a Let $b := fn:reverse($doc//b) Return (<A-Sequenz>{$a}</A-Sequenz>, <B-Sequenz>{$b}</B-Sequenz>, <Vereinigung>{$a $b}</vereinigung>, <Differenz>{$b excerpt $a}</differenz>, <Durchschnitt>{$b intersect $b}</durchschnitt>)

35 Typabfrage XQuery stellt zur Abfrage des Typs eines Sequenzwertes die Ausdrücke instance of und typeswitch zur Verfügung. Instance of liefert den Wert true, wenn der Typ des ersten Operanden mit dem zu überprüfenden Datentyp übereinstimmt, z.b.: let $a :=xs:integer(4711) where $a instance of xs:integer and $a instance of xs:decimal and $a instance of item() return <Text>Dieser Text wird erscheinen</text>

36 Die Typüberprüfung ist nicht nur für atomare Typen, sondern für alle Sequenztypen möglich: <Text>bla bla</text> instance of element (*,xs:string) Ein typeswitch- Ausdruck entspricht der bekannten switch- Anweisung, aber es entscheidet hier nicht der Wert sondern der Typ des Auswahlausdrucks. Ein typeswitch- Ausdruck besteht aus einer zu überprüfenden Ausprägung eines Sequenztyps (Angestellter für die Variable $a) und einer Liste von Fällen, die zu überprüfen sind. Falls keine Typübereinstimmung erzielt werden kann, wird der Ausdruck in der default-klausel ausgewertet und als Rückgabewert verwendet Hängt der Rückgabewert in einer case- oder default- Klausel von der zu untersuchenden Sequenz ab, so kann darauf zurückgegriffen werden, indem eine zusätzliche Variable angegeben wird.

37 Beispiel typeswitch ($a) case element (*, Arzt_T) return 25 case element (*, Pfleger_T) return 15 case element (*, Techniker_T) return 20 case element (*, Sekretärin_T) return 10 default return 0 Überstunden in Abhängigkeit von der Berufsgruppe. Überstunden werden bei Ärzten mit 25, bei Pfleger nur mit 15 entlohnt. Die Variable ist aus der Ersetzungsgruppe von Angestellten.

38 Beispiel typeswitch ($a) case $x as element (*, Arzt_T) return <Merkmal> $x/spezialgebiet</merkmal>

39 Gleichheit von Sequenzen Es ist möglich zwei Sequenzen auf Gleichheit zu prüfen mittels fn:deep-equal(). Damit Sequenzen gleich sind müssen sie dieselbe Anzahl von Einträgen haben und die Einträge müssen an derselben Position jeder Sequenz paarweise gleich sein. Eine leere Sequenz ist gleich einer leeren Sequenz Sind beide Einträge atomare Werte, ist die Gleichheit über eq definiert Sortierordnung Ist ein Eintrag ein atomarer Wert und der andere ein Knoten sind sie nicht gleich Sind beide ein Knoten ist die Gleichheit rekursiv definiert

40 Die Art der Knoten muss gleich sein Wenn die Knoten Namen haben, müssen die Namen gleich sein Wenn es sich um Attributknoten handelt, müssen Name und getypter Wert gleich sein Bei Text,-Namensraum- und Kommentarknoten muss der textuelle Wert gleich sein Bei Knoten für Verarbeitungsanweisungen müssen Name und textueller Wert gleich sein Bei Elementknoten müssen Attributknoten gleich sein Wenn beide Elementknoten einen einfachen Typ haben, muss der getypte Wert gleich sein Wenn ein Elementknoten einen einfachen Typ hat und der andere nicht sind sie nicht gleich Wenn beide Elementknoten einen komplexen gemischten Inhalt haben, sind sie gleich, wenn ihre Kindknoten paarweise gleich sind

41 Zusammenfassung XQuery definiert ein eigenes Datenmodell Das zentrale Konstrukt ist die Sequenz: Eine Sequenz kann aus atomaren Werten und Knoten bestehen Dann habe ich die atomaren Werte erläutert, i.z. mit Konstruktoren und Literale Dann kommt das zweite große Komplex, die Knoten, mit den Knotenarten und Funktionen, die auf Knoten arbeiten Dann die Typabfrage mit instance of und typeswitch Und als letztes das Konzept der Gleichheit von Sequenzen, wobei die Tatsache, dass Knoten als Einträge einer Sequenz dazu führt, dass die Gleichheit rekursiv definiert werden muss!

42 Quellen Bild: l.png W.Lehner,H.Schöning:XQuery:Grundlagen und fortgeschrittene Methoden:2004.

43 GESCHAFFT!!!! ENDE

3.5 Knoten. denselben Wert wie

3.5 Knoten. denselben Wert wie D3kjd3Di38lk323nnm 3.5 Knoten 71 rationen oder Vergleichen. Hier gibt es jeweils spezielle Regeln, die eine»vernünftige«typumwandlung von diesen unbestimmten Typen in»geeignete«typen für die jeweilige

Mehr

8.3 Das Verarbeitungskonzept von XQuery

8.3 Das Verarbeitungskonzept von XQuery 234 8 Erweiterte Konzepte Einstellung für die Behandlung von begrenzendem Leerraum Variablendeklarationen, auch für externe Variablen Benutzerdefinierte Funktionen Versionsangabe und Moduldeklaration gehören

Mehr

Anfragen an XML-Dokumente mit XPath

Anfragen an XML-Dokumente mit XPath Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1 / 32 Motivation Gliederung Motivation Mit XPath kann man... Knoten aus XML-Dokumenten auswählen Werte aus XML-Dokumentdaten berechnen => ganz

Mehr

Dokumentverarbeitung

Dokumentverarbeitung Dokumentverarbeitung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Winter 2012/13, 2. November 2012, c 2010-13 D.Rösner D. Rösner

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

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel

XML-QL. Querysprachen für XML. Semistrukturierte Datenmodell und XML Datenmodell. Beispiel XML-QL Querysprachen für XML Zusätzliche Quellen: http://www.w3.org/tr/xquery/ http://www.w3schools.com/xquery/ XML-QL ist eine Querysprache für XML mit folgenden Eigenschaften: Kombiniert die XML-Syntax

Mehr

XPath & XQuery Standardisierte Abfragesprachen für XML-Dokumente. Sebastian Apel

XPath & XQuery Standardisierte Abfragesprachen für XML-Dokumente. Sebastian Apel XPath & XQuery Standardisierte Abfragesprachen für XML-Dokumente Sebastian Apel Inhalt Die Geschichte XPath 1.0 Das Datenmodell Pfadausdrücke Anwendung von XPath XPath 2.0 & XQuery Neues in XPath 2.0 Wozu

Mehr

XPATH (XPATH) Lernziele

XPATH (XPATH) Lernziele XPATH (XPATH) Lernziele Sie finden sich im XPath-Datenmodell zurecht. Sie kennen alle XPath-Achsen. Sie können Knoten und Knotenmengen mit XPath-Ausdrücken auswählen. Sie sind in der Lage, Lokalisierungspfade

Mehr

Projektseminar Texttechnologische Informationsmodellierung

Projektseminar Texttechnologische Informationsmodellierung Projektseminar Texttechnologische Informationsmodellierung XQuery Ziele der Sitzung Nach dieser Sitzung sollten Sie: XQuery als wesentlichen Standard zur Abfrage von in XML kodierten Daten kennen Mit Hilfe

Mehr

2 XML-Basiskonzepte. 2.1 XML-Dokumente

2 XML-Basiskonzepte. 2.1 XML-Dokumente D3kjd3Di38lk323nnm 19 Im Rahmen dieses Buches können wir keine vollständige Einführung in alle XML-Konzepte geben. Diejenigen Konzepte von XML, die für das Verständnis von XQuery nötig sind, sollen aber

Mehr

Seminar: XML und intelligente Systeme

Seminar: XML und intelligente Systeme Seminar: XML und intelligente Systeme XML-Navigation: XPath, E4X Christoph Weitkamp cweitkam@techfak.uni-bielefeld.de Einleitung XPath ist eine Sprache, um Informationen in XML-Dokumenten zu finden Modellierung

Mehr

Programmieren in Haskell Programmiermethodik

Programmieren in Haskell Programmiermethodik Programmieren in Haskell Programmiermethodik Peter Steffen Universität Bielefeld Technische Fakultät 12.01.2011 1 Programmieren in Haskell Bisherige Themen Was soll wiederholt werden? Bedienung von hugs

Mehr

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

Mehr

10. XML und XQuery. Prof. Dr.-Ing. Wolfgang Lehner

10. XML und XQuery. Prof. Dr.-Ing. Wolfgang Lehner 10. XML und XQuery Prof. Dr.-Ing. Wolfgang Lehner XML in DB2 XML in DB2 vor Version 9 als CLOB mit XML-Extender: Dekomposition von XML-Dokumenten auf relationale Tabellen XML in DB2 ab Version 9 Datentyp

Mehr

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz

Mehr

Datenbankadministration

Datenbankadministration Datenbankadministration 9. XML und XQuery AG DBIS University of Kaiserslautern, Germany Karsten Schmidt kschmidt@informatik.uni-kl.de (Vorlage TU-Dresden) Wintersemester 2008/2009 XML in DB2 XML in DB2

Mehr

XML-Abfrage- und Transformationssprachen. (Weiter-) Entwicklung der Standards. XQuery 1.0. bisher betrachtet. XPath 2.0. XPath 1.0 XSLT 2.0 XSLT 1.

XML-Abfrage- und Transformationssprachen. (Weiter-) Entwicklung der Standards. XQuery 1.0. bisher betrachtet. XPath 2.0. XPath 1.0 XSLT 2.0 XSLT 1. (Weiter-) Entwicklung der Standards bisher betrachtet XQuery 1.0 XPath 1.0 XPath 2.0 XSLT 1.0 XSLT 2.0 1999 2007 142 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen Warum weiter- bzw. neuentwickeln? -

Mehr

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Der finally-block catch or throw WS 07/08 1/ 23 2/ 23 Grundlagen von Exceptions

Mehr

XSD - XML Schema Definition

XSD - XML Schema Definition XSD - XML Schema Definition Definieren von XML-Dokumenten Michael Dienert 15. September 2016 Inhaltsverzeichnis 1 Was sind XSD Dateien und warum soll man das lernen? 1 1.1 XSD Dateien und Anwendungen....................

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Kapitel 6: SQL und XML

Kapitel 6: SQL und XML 6. SQL und XML Seite 1 Kapitel 6: SQL und XML Wie können die Inhalte einer Datenbank als XML-Dokumente exportiert werden (Publizieren von XML? Wie können die Inhalte eines XML-Dokumentes in eine Datenbank

Mehr

181.139 VU Semistrukturierte Daten 2. XQuery (Teil 2) 9.5.2005. Inhalt

181.139 VU Semistrukturierte Daten 2. XQuery (Teil 2) 9.5.2005. Inhalt 181.139 VU Semistrukturierte Daten 2 XQuery (Teil 2) 9.5.2005 Reinhard Pichler Inhalt Motivation / Einführung XQuery Datenmodell Ausdrücke (Expressions) Beispiele: relationale Datenbanken XQuery Moduln

Mehr

XML Path Language (XPath)

XML Path Language (XPath) Fachhochschule Wiesbaden - Fachbereich DCSM XML Path Language (XPath) http://www.w3.org/tr/xpath/, http://www.w3.org/tr/xpath20/ 18.05.2009 2004, 2009 H. Werntges, SB Informatik, FB DCSM, FH Wiesbaden

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

Programmieren in Haskell

Programmieren in Haskell Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für diese Woche Programmieren

Mehr

XQuery. XML Query Language. eine Abfragesprache für XML. Ulrike Henny. IDE Autumn School 2012, Chemnitz

XQuery. XML Query Language. eine Abfragesprache für XML. Ulrike Henny. IDE Autumn School 2012, Chemnitz XQuery XML Query Language eine Abfragesprache für XML Ulrike Henny ulrike.henny@uni-koeln.de Abfragesprache für XML Entwicklung seit 1999, aus Quilt, XQL und XML-QL hervorgegangen 2007/2010 W3C-Recommendation

Mehr

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz

XML 1. Einführung, oxygen. Ulrike Henny. ulrike.henny@uni-koeln.de. IDE Summer School 2013, Chemnitz XML 1 Einführung, oxygen Ulrike Henny ulrike.henny@uni-koeln.de XML extensible Markup Language Was ist XML? XML-Grundlagen XML-Editoren, oxygen HTML + CSS XPath Übungen Literatur Folie 2 Was ist XML? extensible

Mehr

INVENTARNR NAME BENUTZNR

INVENTARNR NAME BENUTZNR XML-Datenbanken 1. Traditionale Datenbanken 1.1 Heutzutage, wenn wir von Datenbanken reden, denken wir vielleicht zuerst an den traditionale Datenbaken, bzw relationale Datenbanken, die wir schon seit

Mehr

Semistrukturierte Daten

Semistrukturierte Daten Semistrukturierte Daten Teil 7: XPath 1.0 Sommersemester 2007 7.1. Einführung 7.2. XPath Ausdrücke (expressions) 7.3. Pfadangaben (location paths) 7.4. Operatoren 7.5. Vordefinierte Funktionen 4.1. Einführung

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable 1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem

Mehr

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

8 Baum in perfekter Komposition

8 Baum in perfekter Komposition 8 Baum in perfekter Komposition Die Implementierung des Binärbaums im letzten Kapitel wird mithilfe des Entwurfsmusters Kompositum optimiert. Knoten und Abschluss Bei der einfach verketteten Liste wurde

Mehr

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder

Mehr

Programmieren in Haskell Einstieg in Haskell

Programmieren in Haskell Einstieg in Haskell Programmieren in Haskell Einstieg in Haskell Peter Steffen Universität Bielefeld Technische Fakultät 24.10.2008 1 Programmieren in Haskell Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Datenbanksysteme 2015 Kapitel 10

Datenbanksysteme 2015 Kapitel 10 Datenbanksysteme 2015 Kapitel 10 Einführung in XML, XPath und XQuery 8.6.2015 Martin Gieseking Was ist XML? XML (Extensible Markup Language) ist eine Meta- Auszeichnungssprache zur textbasierten Beschreibung

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname Age Gruppe Schmidt Hans Meisel Amelie

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname  Age Gruppe Schmidt Hans Meisel Amelie Seminar 1 SQL Abfragen DML Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro 21 331 1235 Meisel Amelie meisel@cs.ro 22 331 1236 Krause Julia krause@cs.ro 21 332 1237 Rasch

Mehr

XML Schema 2012/2013 S Seite 1 h_da W

XML Schema 2012/2013 S Seite 1 h_da W XML Schema Seite 1 XML/Schema: Strukturen Wiederholung Element / Attribut Deklaration XML Document Type Declaration Seite 2 XML Schema Schemata sind XML-Dokumente

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

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

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

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit XML- und Webservice- Sicherheit 2. XML 2.1 XML 1.0 und XML Schema Gliederung 1. XML 1.0 2. XML Namespaces: URI, URL und URN 3. XML Schema Literatur: A. Tanenbaum, Computer Networks. E. R. Harold and W.

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

3.3. Objektorientierung

3.3. Objektorientierung 3.3. Objektorientierung JavaScript hat ein einfaches Objektmodell: Ein Objekt ist ein Programmgegenstand, der Eigenschaften hat, die bestimmte Werte besitzen. Ein Objekt hat auch funktionswertige Eigenschaften.

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

Beispiele elementarer Datentypen Ganze Zahlen (integer) Unterbereiche Gleitkommazahlen Festkommazahlen

Beispiele elementarer Datentypen Ganze Zahlen (integer) Unterbereiche Gleitkommazahlen Festkommazahlen Beispiele elementarer Datentypen Ganze Zahlen (integer) - Werte sind ganze Zahlen in vorgegebenen Bereich (z. B. -2 31 bis 2 31-1) - Übliche Operationen: Arithmetik (z. B. +,-,*, Division mit Rest, Rest

Mehr

Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen:

Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen: Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen: take 1 0 ( f i l t e r ( fn x => x mod 2=0) nat ) ; val it =

Mehr

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was 1 In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was die wichtigsten Konzepte sind. Den Themenbereich XML

Mehr

Einführung in XML Torsten Schaßan SCRIPTO digital Wolfenbüttel

Einführung in XML Torsten Schaßan SCRIPTO digital Wolfenbüttel Einführung in XML Was ist XML? XML steht für extensible Markup Language. XML trennt Struktur, Inhalt und Aussehen von Dokumenten. XML ist eine Meta-Sprache, welche Regeln zur Formulierung von Auszeichnungssprachen

Mehr

XML Grundlagen Teil I

XML Grundlagen Teil I XML Vorlesung FH Aargau, SS 2006 XML Grundlagen Teil I Erik Wilde 20.3.2006 http://dret.net/lectures/xml-fhnw-ss06/ 20.3.2006 XML Vorlesung FHA SS 2006 1 Übersicht Aufbau von XML XML Dokumenten-Syntax

Mehr

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT SQL SQL SELECT Anweisung Mit der SQL SELECT-Anweisung werden Datenwerte aus einer oder mehreren Tabellen einer Datenbank ausgewählt. Das Ergebnis der Auswahl ist erneut eine Tabelle, die sich dynamisch

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1 Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Einführung. Hallo-Welt in XSLT

Einführung. Hallo-Welt in XSLT 2. Vorlagen-Technik Inhalt 1. Einführung 2. Vorlagen 3. XPath 4. Kontrollstrukturen 5. Sortierung, Gruppierung und Nummerierung 6. Parameter und Variablen 7. Vorgaben für Ein- und Ausgabeformate 8. Auslagerung

Mehr

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung.

R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung. R-Wörterbuch Ein Anfang... ein Klick auf einen Begriff führt, sofern vorhanden, zu dessen Erklärung. Carsten Szardenings c.sz@wwu.de 7. Mai 2015 A 2 B 3 C 4 D 5 F 6 R 16 S 17 V 18 W 19 Z 20 H 7 I 8 K 9

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

3. XML Schema. XML Schema. Eigenschaften von XML Schema. Vorteile eines expliziten Schemas: Die XML Schema Recommendation des W3C besteht aus:

3. XML Schema. XML Schema. Eigenschaften von XML Schema. Vorteile eines expliziten Schemas: Die XML Schema Recommendation des W3C besteht aus: 3. XML Schema Schemata 3. XML Schema 3. XML Schema Schemata XML Schema Vorteile eines expliziten Schemas: Bekanntmachen der Struktur vereinfachte Verarbeitung in Applikationen dedizierte Speicherung Die

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

11. Elementare Datenstrukturen

11. Elementare Datenstrukturen 11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische

Mehr

Enumerations und innere Klassen

Enumerations und innere Klassen Enumerations und innere Klassen Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung

Mehr

2.5 Listen. Kurzschreibweise: [42; 0; 16] Listen werden mithilfe von [] und :: konstruiert.

2.5 Listen. Kurzschreibweise: [42; 0; 16] Listen werden mithilfe von [] und :: konstruiert. 2.5 Listen Listen werden mithilfe von [] und :: konstruiert. Kurzschreibweise: [42; 0; 16] # let mt = [];; val mt : a list = [] # let l1 = 1::mt;; val l1 : int list = [1] # let l = [1;2;3];; val l : int

Mehr

Die Warenkorbfunktion (workbasket)

Die Warenkorbfunktion (workbasket) Beschreibung der Komponente zur integration eines Warenkorbs in die Anwendung Table of contents 1 Allgemein...2 2 Körbe speichern und laden...3 3 Aufgelöstes XML oder beliebige weitere Metadaten im Korb...

Mehr

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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Programmieren in Haskell

Programmieren in Haskell Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für s Wochenende Programmieren

Mehr

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Kapitel 3. Grunddatentypen, Ausdrücke und Variable Kapitel 3 Grunddatentypen, Ausdrücke und Variable Grunddatentypen, Ausdrücke und Variable 1 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Relationale Datenbanken und SQL Theorie und Anwendung Prof. Dr. Nikolaus Wulff Gründe für eine Datenbank Meist werden Daten nicht in XML-Dokumenten, sondern innerhalb einer

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

4 ZEICHEN UND ZEICHENKETTEN

4 ZEICHEN UND ZEICHENKETTEN 4 ZEICHEN UND ZEICHENKETTEN Leitideen: Jedes Zeichen aus dem Basiszeichensatz wird mittels einer kleinen ganzen Zahl (Länge 1 Byte = 8 Bit) gespeichert, die seiner Position im Zeichensatz entspricht. C-Zeichenketten

Mehr

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery XML-Datenbanken & XQuery Folie 1 XML Digitale Edition XSL-FO XSLT XQuery XML-DB Folie 2 Programm - Ausgewählte Biere verköstigen - Brauereibesichtigung - Anwendung der Hefe erlernen - brauen Folie 3 Telota

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

<Trainingsinhalt> XML umsetzen und nutzen

<Trainingsinhalt> XML umsetzen und nutzen XML umsetzen und nutzen i Inhaltsverzeichnis Einführung 11 Das Problem mit HTML 12 Die Stärke von XML 13 Die XML-Helfer 14 XML im wirklichen Leben 15 Zu diesem Buch 16 Was Sie hier nicht

Mehr

XML Schema 2016 S h_da S Seite 1

XML Schema 2016 S h_da S Seite 1 XML Schema Seite 1 XML/Schema: Strukturen Dokumentinstanz Dokumenttyp Wellformed Valid Dokumentstrukturdefinition mit XML/Schema XML Document Type Definition Seite 2 XML Dokument Instanz XML-Deklaration

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

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

Wichtige DOM-Eigenschaften und -Methoden für die SVG-Aktionsprogrammierung

Wichtige DOM-Eigenschaften und -Methoden für die SVG-Aktionsprogrammierung Hochschule Merseburg (FH) FB IKS / Studiengang TRW Dr. T. Meinike 2005 2010 Wichtige DOM-Eigenschaften und -Methoden für die SVG-Aktionsprogrammierung Hinweis: Die Eigenschaften und Methoden sind als weitgehend

Mehr

26 Hierarchisch strukturierte Daten

26 Hierarchisch strukturierte Daten Algorithmik II Peter Wilke Sommersemester 2005 Teil III Funktionale Programmierung 26 Hierarchisch strukturierte Daten Peter Wilke Algorithmik II Sommersemester 2005 1 Peter Wilke Algorithmik II Sommersemester

Mehr

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Lexikalische Programmanalyse der Scanner

Lexikalische Programmanalyse der Scanner Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung

Mehr

Primitive Datentypen und Felder (Arrays)

Primitive Datentypen und Felder (Arrays) Primitive Datentypen und Felder (rrays) Primitive Datentypen Java stellt (genau wie Haskell) primitive Datentypen für Boolesche Werte, Zeichen, ganze Zahlen und Gleitkommazahlen zur Verfügung. Der wichtigste

Mehr

XQuery 2013 S Seite 1 h_da S

XQuery 2013 S Seite 1 h_da S XQuery 1 XPath: XML Information Set Das Information Set besteht aus Information Items und hat zumindest ein document information item. Ein Information Item ist die abstrakte Beschreibung eines Teils eines

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen

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

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen)

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Präsentation zum Thema XML Datenaustausch und Integration

Präsentation zum Thema XML Datenaustausch und Integration Sebastian Land Präsentation zum Thema XML Datenaustausch und Integration oder Warum eigentlich XML? Gliederung der Präsentation 1. Erläuterung des Themas 2. Anwendungsbeispiel 3. Situation 1: Homogene

Mehr

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Algorithmen & Programmierung. Ausdrücke & Operatoren (1) Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck

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

Inhalt. Beispiel: XML Dokument. Beispiel: Dokumentenbaum. XPath VU Semistrukturierte Daten 1. Datenmodell

Inhalt. Beispiel: XML Dokument. Beispiel: Dokumentenbaum. XPath VU Semistrukturierte Daten 1. Datenmodell XPath 181135 VU XPath ist die Basis für viele XML-related Standards: insbesondere für XSLT aber auch für XPointer und XQuery (in eingeschränkter Form) auch in XML Schema Nachteil: ist selbst nicht in XML

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

Mehr

Literatur. Verteilte Anwendungen WS Teil 2/Namensräume

Literatur. Verteilte Anwendungen WS Teil 2/Namensräume Literatur [2-1] Eckstein, Robert; Casabianca, Michel: XML Kurz und gut. O'Reilly, 2. Auflage, 2003 [2-2] Nussbaumer, Alfred; Mistlbacher, August: XML Ge-Packt. mitp, 2002 [2-3] Musciano, Chuck; Kennedy,

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2011 I. Die

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 2. Typen und Variablen 27.10./03.11.2014 Prof. Dr. Ralf H. Reussner Version 1.2 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION

Mehr

Der Datentyp String. Stringvariable und -vergleiche

Der Datentyp String. Stringvariable und -vergleiche Informatik 12 mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da

Mehr