Konzeptionelle Modellierung von XML-Dokumenttypen Rainer Eckstein Institut für Informatik LFE DBIS Humboldt-Universität zu Berlin Rainer Eckstein 1 Konzeptionelle Modellierung von XML: XML (extensible Markup Language): W3C: Teilmenge von SGML Trennung von Struktur und Inhalt vom Layout Große Spannbreite von Anwendungen: z.b. E-Commerce, Digital Libraries DTD (Document Type Definition) Für Klassen von Dokumenten Grammatik der erlaubten Tag-Struktur Fehleranfällig im Entwurf und Benutzung Rainer Eckstein 2 1
1. Beispiel:... Konzeptionelle Modellierung von XML: <Anreisebeschreibung> <Flug> Mit dem Flugzeug kommen Sie auf einem der drei Flughäfen <Flughafen>Berlin-Tegel (TXL) </Flughafen>,... </Flug> <Bahn> Mit der Bahn fahren Sie bis <Bahnhof> Berlin-Ostbahnhof</Bahnhof>. Von dort... </Bahn> <Auto> Mit dem Auto fahren Sie von <Himmelsrichtung>Westen</Himmelsrichtung> kommend von der A2... </Anreisebeschreibung> Rainer Eckstein 3... Konzeptionelle Modellierung von XML: 2. Beispiel: <Person> <Name>Eckstein</Name> <Vorname>Rainer</Vorname> <Titel>Dr.</Titel> <Organisation>Humboldt-Universität</Organisation> <Abteilung>Institut für Informatik</Abteilung>... </Person> mögliche Dokument-Typ-Definition dazu: <!ELEMENT Person (Name, Vorname, Titel?, Organisation, Abteilung?, Adresse) > <!ELEMENT Adresse (Strasse, Hausnummer, PLZ, Ort) > <!ELEMENT Name (#PCDATA)> Rainer Eckstein 4 2
... Konzeptionelle Modellierung von XML: Reale Welt Konzeptionelles Schema Logisches Schema ER Relationales Schema Anwendung UML...... Programm Templates Transformation! XML DTD Rainer Eckstein 5... Konzeptionelle Modellierung von XML: Beispiel 1: Datenaustausch ER Schema UML Diagramm UML Diagramm Relationales Schema XML DTD OO Schema XML- Dok Rainer Eckstein 6 3
... Konzeptionelle Modellierung von XML: Example 2: Digitale Bibliotheken UML Diagramm XML DTD XML Datenbank Rainer Eckstein 7 Inhalt Konzeptionelle Modellierung von XML: Andere Ansätze: Bitte nicht verwechseln! Transformations-Highlights Zusammenfassung Rainer Eckstein 8 4
Andere Ansätze: Bitte nicht verwechseln! OEM (Object Exchange Model, Stanford University) DOM (Document Object Model, W3C) XML Data Model (Note to W3C) alle basieren auf Instanzenebene DTD nicht notwendig XMI (XML Metadata Interchange, Proposal to W3C) Austauschformat für UML-Diagramme basiert auf UML-Metamodel Rainer Eckstein 9 Inhalt Konzeptionelle Modellierung von XML: Andere Ansätze: Bitte nicht verwechseln! Transformations-Highlights Zusammenfassung Rainer Eckstein 10 5
Idee der Transformation und Highlights Unterschiedliche Möglichkeiten der Abbildung: Standard-Transformation Intuitive Abbildung der grundlegenden UML-Konzepte in DTD-Konzepte Anwendungsabhängige Transformation Einige DTD -Konzepte nicht ausdrückbar Steuern der Abbildung Idee: Nutzen der Erweiterungsmechanismen der UML UML konform Stereotyp Einschränkungen DTD- bzw. XML-Schema-Profil so wenig wie möglich Rainer Eckstein 11 Relevante Konzepte für die Abbildung Statische Anteile der UML: Klassen, Attribute, Aggregation, Assoziation, Generalisierung, Paket XML-DTD: Elementtyp, Attributliste Entity, Notation, Verarbeitungsanweisung Rainer Eckstein 12 6
Standard-Transformation: Klasse <!ELEMENT author ( firstname, middlename*, lastname, suffix? ) > author firstname middlename [0..*] lastname suffix [0..1] <!ELEMENT firstname (#PCDATA)> <!ELEMENT middlename (#PCDATA)> <!ELEMENT lastname (#PCDATA)> <!ELEMENT suffix (#PCDATA)> Beispiel für Dokumentinstanz: <author><firstname>peter</firstname> <lastname>miller</lastname> </author> Keine Attributlisten-Deklaration!!! Rainer Eckstein 13 Anwendungsabhängige Transformation : Element-Attribute für Metadaten publication <!ELEMENT publication EMPTY > <<meta>> id [0..1] ID <!ATTLIST publication <<meta>> author: CDATA id ID #IMPLIED <<meta>> style [0..1]: author CDATA #REQUIRED (article, book) = book <<meta>> organization: style (article book) book CDATA = foo organization CDATA #FIXED "foo" > Ohne Stereotyp: Elementinhalt Entwurfsentscheidung: Daten «Metadaten Rainer Eckstein 14 7
Standard-Transformation: Aggregation author firstname 0..* 0..1 middlename lastname suffix <!ELEMENT author (firstname, middlename*, lastname, suffix?) > <!ELEMENT firstname (#PCDATA)> <!ELEMENT middlename (#PCDATA)> <!ELEMENT lastname (#PCDATA)> <!ELEMENT suffix (#PCDATA)> Rainer Eckstein 15 Anwendungsabhängie Transformation : Auswahl im Inhalt chapter 0..1 0..* head {choice: 0..* } section paragraph citation table <!ELEMENT chapter > (head?, (paragraph citation table)*, section*) Rainer Eckstein 16 8
Standard-Transformation: Generalisierung Jede Klasse in eine Elementtyp-Deklation transformieren Eine Instanz wird gespeichert: verteilt ( Fremdschlüssel ) oder als Ganzes name person <!ELEMENT person (name) > <!ATTLIST person id ID #REQUIRED> employee phone student semester <!ELEMENT employee (phone) > <!ATTLIST employee idref IDREF #REQUIRED> <!ELEMENT student (semester) > <!ATTLIST student idref IDREF #REQUIRED> Abhängig von Generalisierungseinschränkungen Rainer Eckstein 17 Anwendungsabhängige Transformation : Steuerung der Transformation einer Generalisierung Adaption des Konzepts der Universalrelationen 1 Elementtyp für alle Klassen einer Hierarchie name person <!ELEMENT person (name,(phone subject)) > Diskriminator Attribute employee phone {discriminator} {complete,disjoint} subject student <<meta>> semester=1 Verarbeitungsanweisung für Integritätsüberpr. der Element -Attribute <?UML:DISCRIMINATOR person <!ATTLIST person:student semester CDATA "1"> Generalisierungsbedingungen beeinflussen das Zusammenführen der Elementinhalte Rainer Eckstein 18?> 9
Weitere Aspekte Weitere UML-Konzepte: Assoziation XLink (+ XPointer); u.u. Dokumenttrennung Paket Entities: Verschachtelung, externe DTDs Anwendungsabhängige DTD-Konzepte: Elementinhalt ANY, #PCDATA Entities Notationen Klassen-Stereotypen <<content>>, <<entity>>, <<notation>> Rainer Eckstein 19 Future Work Entwicklung eines Transformationswerkzeugs (XMI, XSLT) Erfahrung sammeln mit Anwendungsfällen Weitere XML-Richtungen einbeziehen Zusammenfassung Konzeptionelle Modellierung zur Verbesserung des DTD Entwurf Ansatz: Abbildung der statischen Anteile von UML auf DTDs Lücke zwischen OO-Softwareentwurf und XML-DTD-Entwurf schließen Ein anderer Weg um die Semantik von XML zu erklären Sollte weitere Entwicklungen von XML beeinflussen Rainer Eckstein 20 10