19
1. Übung zur Vorlesung „Service-orientierte Architekturen“ XML Grundlagen SoSe 2011

1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

Embed Size (px)

Citation preview

Page 1: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

1. Übung zur Vorlesung

„Service-orientierte Architekturen“

XML Grundlagen

SoSe 2011

Page 2: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

Wiederholung

• Definition SOA?

• Definition Service?

SoSe 2011

Service-orientierte Architektur (SOA):

Eine Service-orientierte Architektur ist eine unternehmensweite,

verteilte Software-Architektur für betriebliche Informationssysteme,

deren elementare Bestandteile Dienste/Services sind. Diese Dienste

sind entlang von Geschäftsprozessen zusammengestellt. Die

Hauptziele von SOA sind Flexibilität und Wartbarkeit in Bezug auf

Änderungen der Geschäftsprozesse.

Dienst (Service):

Ein Dienst ist eine im Netzwerk verfügbare, lose gekoppelte

Softwarekomponente, welche wohl-definierte Schnittstellen implementiert

und mit standardisierten Protokollen aufgerufen werden kann.

2

Page 3: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

SOA und XML?

• Was hat XML mit SOA zu tun?

• „… wohl-definierte Schnittstellen implementiert und mit

standardisierten Protokollen …“

• XML spielt wichtige Rolle bei Standards für Schnittstellen und

Datenaustauschformaten

– WSDL basiert auf XML

– SOAP basiert auf XML

– UDDI basierte auf XML

– BPEL basiert auf XML

XML-Kenntnisse sind bei der technischen Umsetzung einer

SOA unerlässlich

SoSe 2011 3

Page 4: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

XML Grundlagen

• Bsp. von W3Schools

• XML steht für eXtensible Markup Language

• Textbasierte Auszeichnungssprache zur Datenspeicherung bzw. zum

Datentransport

• XML-Daten haben Baumstruktur

– Root- und Child- / Parent-Elemente

– Neighbor / Sibling

<?xml version="1.0"?>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend!</body>

</note>

SoSe 2011

Root

Child

note

to from heading body

4

Page 5: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

XML Aufbau

• Erste Zeile ist immer XML-Deklaration

– Sie beschreibt Version und Kodierung

Weiterhin gibt es

• Tags– öffnend <note>, schließend </note>, kombiniert <br />

– Jedes öffnende Tag muss ein schließendes Tag haben

– Tags sind Case-Sensitive

• Attribute– version="1.0"

– Werte müssen „gequotet“ sein

• Text– Don't forget me this weekend!

• Kommentare– <!-- This is a comment -->

SoSe 2011

<?xml version="1.0" encoding="ISO-8859-1"?>

5

Page 6: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

Namespaces

• Strukturierung und Vermeidung von Namenskonflikten

– Ähnlich zu Packages in Java

• Beispiel

– Tag <table> existiert auch in HTML

– Namespace vermeidet Doppeldeutigkeit

• Wichtig: Unterschied zwischen

– Namespace http://www.my-table-shop.com und

– Namespace-Präfix mts:

– Unterschiedliche Präfixe können auf den selben Namespace

verweisen

SoSe 2011

<html xmlns:mts="http://www.my-table-shop.com">

<mts:table>

<mts:size length="180" width="90" heigth="76" />

</mts:table>

</html>

6

Page 7: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

XML Schema (XSD)

• XML Schema Definitionen definieren die Struktur eines XML-

Dokuments

• Sie beantworten u. a. folgende Fragen

– Welche Tags sind erlaubt?

– Mit welchem Inhalt?

– Mit welchen Attributen?

– In welchen anderen Tags?

– Mit welchen Datentypen/Restriktionen?

SoSe 2011 7

Page 8: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

XML Schema Typ-Hierarchie

Aus:

http://www.w3.org/TR/xmlschema-2/

SoSe 2011 8

Page 9: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

Eigene Restriktionen

• Bsp.: E-Mail als Restriktion eines String

<xs:element name="eMail">

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:pattern

value="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}" />

</xs:restriction>

</xs:simpleType>

</xs:element>

SoSe 2011 9

Page 10: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

XML Schema Beispiel (von W3Schools)

<?xml version="1.0"?>

<xs:schema xmlns="http://www.w3schools.com"

xmlns:xs="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.w3schools.com"

elementFormDefault="qualified">

<xs:element name="note">

<xs:complexType>

<xs:sequence>

<xs:element name="to" type="xs:string"/>

<xs:element name="from" type="xs:string"/>

<xs:element name="heading" type="xs:string"/>

<xs:element name="body" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

SoSe 2011 10

Page 11: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

XML Schema Beispiel besser

<?xml version="1.0"?>

<xs:schema xmlns="http://www.w3schools.com"

xmlns:xs="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.w3schools.com"

elementFormDefault="qualified">

<xs:element name="note" type="NoteType" />

<xs:complexType name="NoteType">

<xs:sequence>

<xs:element name="to" type="xs:string"/>

<xs:element name="from" type="xs:string"/>

<xs:element name="heading" type="xs:string"/>

<xs:element name="body" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:schema>

SoSe 2011 11

Page 12: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

Schema in XML-Dokument nutzen

• Im Root-Element den Schema-Instanz-Namensraum und die

XSD-Schema-Datei angeben

• Ermöglicht Validierung der XML-Datei anhand des Schemas

• Bsp. EPML

<?xml version="1.0" encoding="UTF-8" ?>

<epml

xmlns="http://www.epml.de"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.epml.de

http://wi.wu-wien.ac.at/home/mendling/EPML/EPML_12.xsd">

[…]

</epml>

Namespace und XSD

sind durch Leerzeichen

getrennt

SoSe 2011 12

Page 13: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

XML-Schema Übung

• Erstellt ein valides XML-Dokument (ohne Schema) mit mind.

– 3 Ebenen im XML-Baum

– einem öffnenden, schließenden und kombinierten Tag

– einem sinnvollen Attribut

– einem Textelement

– einer sinnvollen Nutzung von Namespaces (Doppelte Tags)

• Benutzt den XML- und XSD-Editor von Eclipse (WTP)

• Übersichtliche Einführungen in XML, XSD und Namespaces

– http://www.w3schools.com

• Erstellt ein Schema für Gästebucheinträge und erstellt eine

Beispiel-XML-Datei, die dieses Schema nutzt

• XML-Validieren mit Eclipse WTP

– Rechtsklick auf XML-Datei im Project Explorer Validieren

SoSe 2011 13

Page 14: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

SoSe 2011

XPath

• XPath ist eine Abfragesprache für XML-Dokumente

• XPath selektiert Bereiche in XML-Dokumenten

• XPath definiert Syntax für Pfadausdrücke, um in XML-

Dokumenten zu navigieren

• XPath hat eine Standardbibliothek mit Funktionen

– Z. B. zur String-Manipulation

– Gute Übersicht:

http://www.w3schools.com/XPath/xpath_functions.asp

• XPath ist W3C-Standard

14

Page 15: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

SoSe 2011

XPath Syntax Beispiele

• Knoten auswählen

– entry wählt Kindknoten von entry aus

– /guestbook wählt Wurzelelement guestbook aus

– //entry wählt Unterknoten entry aus, egal von wo

– . bzw. .. wählt aktuellen bzw. Elternknoten aus

– @id wählt id-Attribut aus

• Prädikate (Einschränkung der ausgewählten Knoten)

– //entry[1] wählt ersten entry aus

– //entry[last()] wählt letzten entry aus

– //entry[position()<3] wählt die ersten zwei entries aus

– //entry[@id] wählt entries aus, die ein Attribut id haben

– //entry[@id=1] wählt entry mit id 1 aus

• Axen

– Attribute, child, parent, ancestor, descendant, following, preceding …

15

Page 16: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

SoSe 2011

XPath-Übung

• XML-Datei

http://static.se.uni-hannover.de/documents/

ws2008_soa_uebung/Abschlussarbeitsverwaltung.xml

• Gesuchte XPath-Ausdrücke

1. Alle UseCases auswählen

2. Den ersten UseCase auswählen

3. Den letzten UseCase auswählen

4. Den UseCase mit id 5 auswählen

5. UseCase mit Titel „Betreuer plant Zwischenvortrag“ auswählen

6. Alle UseCase Titel auswählen

(attributes/ConstructionElementAttribute/value mit key=„Titel“)

7. UseCase Titel des UseCase mit id 10 ausgeben

Übung…

16

Page 17: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

Hausaufgaben

• Es gibt Punkte, die bei bestandener Klausur angerechnet

werden

– Zur Punkteverwaltung bitte hier anmelden:

https://anmeldung.se.uni-hannover.de

• Abgaben an [email protected]

• Abgaben möglichst als .zip

• Abgabe bis zur nächsten Übung

Fragen gerne an [email protected]

Raum: G307

Tel.: (0)511 – 762-7463

SoSe 2011 17

Page 18: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

Durchgängiges Beispiel: Web-Shop

• In den Übungen bauen wir Teile eines Web-Shops

• Überlegt euch, was ihr in eurem Web-Shop verkaufen wollt

• Ihr solltet euch mit eurem Produkt ein wenig auskennen

• Wählt die Palette nicht zu breit, lasst aber Spielraum

– Z. B. Snowboard-Kleidung statt Kleidung (zu allgemein) oder blau-

weiß-gestreifte Herren-Snowboard-Handschuhe (zu speziell)

SoSe 2011 18

Page 19: 1. Übung zur Vorlesung - se.uni-hannover.de · SOA und XML? • Was hat XML mit SOA zu tun? • „… wohl-definierte Schnittstellen implementiert und mit standardisierten Protokollen

Aufgabe 1 (10 Punkte)

• (5P) Erstellen Sie ein Schema, dass alle im Shop angebotenen Produkte und deren Eigenschaften wie

– Artikelnummer, Name, Preis, Lagerbestand, Beschreibung

– … (Spezifika Ihrer Produkte)

abdeckt.

• (3P) Erstellen Sie eine Beispiel-XML-Datei mit mindestens 3 Artikeln, die das Schema nutzt.

• (2P) Erstellen Sie folgende XPath-Ausdrücke

– Alle Artikel auswählen

– Alle Artikelnummern auswählen

– Alle Lagerbestände von Artikeln, mit einer bestimmten Eigenschaft (Spezifika)

– Die Beschreibung des ersten Artikels mit einer bestimmten Eigenschaft

• Alle Nutzdaten sollen dabei XML-Elemente sein

• Metadaten sollen möglichst als Attribute definiert werden

SoSe 2011 19