Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

('Extended Markup Language’)

Ähnliche Präsentationen


Präsentation zum Thema: "('Extended Markup Language’)"—  Präsentation transkript:

1 ('Extended Markup Language’)
Datenmodell 2: XML ('Extended Markup Language’)

2 Was ist XML? Motivation XML-Konzepte Einordnung und Bewertung von XML
Weitere, zu XML gehörende Gliederungs-punkte: Zusammenfassungen semistrukturierter Datenbestände Layout und Transformation Erweiterbarkeit Hyperlinks Einleitung Konzepte Vergleich

3 XML Dokumentklassen Modell Dokumenttyp Dokument- instanz E-R Modell
Einleitung Konzepte Vergleich E-R Modell XML SGML Modell Schema für Material- verwaltung z.B. MathML HTML Dokumenttyp e ip +1= 0 n f (n) = S k k=1 Homepage von Hans Schek Dokument- instanz Datenbank, konform zum Schema

4 XML Syntax Graphische Darstellung Textuelle Darstellung "Elementbaum"
<?xml version="1.0"?> <rezept> <zutaten id="x1"> <zutat>Ei</zutat> <zutat>Mehl</zutat> </zutaten> <expertise/> <zutaten id="x2"> <zutat>Salz</zutat> </rezept> rezept expertise zutaten zutat id=x1 id=x2 Textuelle Darstellung Graphische Darstellung "Elementbaum" Ei Mehl Salz Einleitung Konzepte Vergleich

5 Was ist XML? Syntax zur Beschreibung von teilweise strukturierter Information: Explizite Repräsentation der logischen Struktur von Dokumenten (Alte Version der) W3C (World Wide Web Consortium) FAQ: "It's actually slightly misnamed.” Kernarchitektur für Hypermedien, genormt durch das W3C, aufbauend auf der Syntax, z.B. Annotationen, Stylesheets. Dokumenttypen und Anwendungen aufbauend auf der Kernarchitektur: Offen, unternehmensintern, kommerziell, Norm des W3C. Einleitung Konzepte Vergleich

6 "XML will be the ASCII of the Web - basic, essential, unexciting"
Was ist XML? Tim Bray: "XML will be the ASCII of the Web - basic, essential, unexciting" Einleitung Konzepte Vergleich

7 Kernarchitektur Verwendung des Begriffs 'Architektur' unterscheidet sich von der gewohnten, z.B. Hardware-Architektur, Software-Architektur. 'Architektur' bezeichnet hier die Menge der Zusammenhänge zwischen XML und verwandten Standards. Beispiele für derartige Zusammenhänge: XML-Namespace Recommendation verwendet im XML-Standard definierte Konstrukte, XSL Formatting Vocabulary ist XML-Namespace. Einleitung Konzepte Vergleich

8 Was ist HTML? HTML ist ein spezieller Dokumenttyp.
Elementtypen entsprechen (weitgehend) den Layout-Bestandteilen des Dokuments. HTML-Dokumenttypdefinition, d.h. insbesondere zulässige Anordnung der Elemente, ist von untergeordneter Bedeutung. Parsen und Validieren von HTML-Dokumenten ist ebenfalls zweitrangig. Einleitung Konzepte Vergleich

9 Warum braucht man XML, verglichen mit HTML?
Trennung zwischen logischer und Layout-Struktur führt zu höherer Flexibilität, insbesondere unterschiedliche Darstellungsmöglichkeiten für unterschiedliche Benutzer und unterschiedliche Anforderungen, bessere Strukturierungsmöglichkeiten. Dokument mit logischem Markup enthält i.a. mehr Information, leichteres kooperatives Arbeiten bzw. bessere Dokumentation eigener Arbeitsschritte. Konsistenz der Dokumente: 'intra-document consistency', 'inter-document consistency'. Einleitung Konzepte Vergleich

10 XML Entwicklung Jul 96 "SGML-Subset" Arbeitsgruppe (ERB)
Nov 96 Erster öffentlicher XML-Entwurf Mär 97 Microsoft veröffentlicht CDF-DTD (Dateiformat für Push-Technologie) Apr 97 Netscape erkennt XML an Aug 97 Sun Solaris 2.6 mit XML Dokumentation Okt 97 Microsoft IE 4.0 mit XML ActiveX-Control Feb 98 XML Version 1.0 Apr 98 MathML, Mozilla 5.0 mit XML Aug 98 Reorganisation der W3C-XML-WG Apr 99 Microsoft IE 5.0 mit XSL Q2 99 Microsoft Office mit HTML/XML Q1 01 XML-Schema Einleitung Konzepte Vergleich

11 Ziele des XML Entwurfs (1/2)
Ziele beim Entwurf von XML, nicht Ziele der Modellierung mit XML. XML soll sich im Internet auf einfache Art und Weise nutzen lassen. XML soll ein breites Spektrum von Anwendungen unterstützen. XML soll zu SGML kompatibel sein. Es soll einfach sein, Programme zu schreiben, die XML-Dokumente verarbeiten. Die Zahl optionaler Merkmale in XML soll minimal sein, idealerweise Null. Einleitung Konzepte Vergleich

12 Ziele des XML Entwurfs (2/2)
XML-Dokumente sollen für Menschen lesbar und angemessen verständlich sein. Der XML-Entwurf sollte zügig abgefasst werden. (D.h. die Erstellung der XML-Spezifikation.) Der Entwurf von XML soll formal und präzise sein. XML-Dokumente sollen leicht zu erstellen sein. 10 Knappheit von XML-Markup ist von minimaler Bedeutung. Wie wird Ziel X von XML berücksichtigt? Einleitung Konzepte Vergleich

13 XML Konzepte Unicode, Dokument, Dokumentinstanz, DTD
wohlgeformt vs. gültig, XML-Processor, XML-Applikation syntaktische Konstruktionen in XML: Elemente, Attribute, Processing Instructions, Entitäten, Notationen, XML Namensräume, XML-Schema Mechanismus. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - Pis - Entities - Notations - Name- spaces - XML- Schema Vergleich

14 Unicode 2.1 (1/4) Characters in XML sind Nummern.
Festlegung der Abb. von Nummern auf Chars: Unicode, Unicode ist Teilmenge des ISO-Standards ISO/IEC :1993 (Universal Multiple-Octet Coded Character Set (UCS)) ca mögliche Zeichen in 16 Bit belegte, ca unbelegte Zeichenpositionen untere 127 Zeichen binärkompatibel zu ASCII jedes Zeichen ist auf genau eine Weise kodiert Erweiterung um Zeichen möglich unterstützt 25 lebende Sprachen Unicode kodiert keine Fonts. Jede konforme Anwendung von XML ist eine Anwendung von Unicode. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

15 Unicode 2.1 (2/4) Es gibt mehrere Möglichkeiten, 16-Bit Nummern zu speichern. UTF-16 speichert jede 16-Bit Zahl unter Verwendung von 16 Bits. UTF-8 speichert die ersten 127 Characters (ASCII-Zeichen) mit 7 Bits und verwendet zwei bis fünf Bytes für die restlichen Characters. XML Spezifikation legt fest, dass XML Unicode verwendet. 'All XML processors must accept the UTF-8 and UTF-16 encodings of ISO …’. Dokumente, die mit UTF-16 kodiert sind, müssen mit spezieller Bit-Sequenz beginnen. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

16 Unicode 2.1 (3/4) The Unicode Standard defines codes for characters used in the major languages written today. Scripts include Latin, Greek, Cyrillic, Armenian, Hebrew, Arabic, Devanagari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, Malayalam, Thai, Lao, Georgian, Tibetan, Japanese Kana, the complete set of modern Korean Hangul, and a unified set of Chinese/Japanese/Korean (CJK) ideographs. Many more scripts and characters are to be added shortly, including Ethiopic, Canadian Syllabics, Cherokee, additional rare ideographs, Sinhala, Syriac, Burmese, Khmer, and Braille. The Unicode Standard also includes punctuation marks, diacritics, mathematical symbols, technical symbols, arrows, dingbats, etc. It provides codes for diacritics, which are modifying character marks such as the tilde (~), that are used in conjunction with base characters to encode accented or vocalized letters (ñ, for example). In all, the Unicode Standard provides codes for nearly 39,000 characters from the world's alphabets, ideograph sets, and symbol collections. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

17 Unicode 2.1 (4/4) Verwendung anderer Character Encodings ist möglich, XML Processor muss sie aber nicht unterstützen. Spezifikation erfolgt mit dem encoding-Attribut. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

18 Übersicht: XML Dokument
Kommentar, Arbeitsanweisung, Zeichenreferenz Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich Prolog mit Dokument Typ-Deklaration Dokument Typ-Definition (DTD) Element, Attribut, Entität, Parameterentität, Parameterentitätsreferenz Externe DTD Teilmenge Konditionale Abschnitte, beliebige Parameterentitätsreferenz Dokument Element mit Namensraumdeklaration Dokument Start-Tag, Ende-Tag, leeres-Element-Tag, PCDATA, CDATA Abschnitte, Entitätsreferenzen

19 Hamlet: Dokumentinstanz
<?xml version="1.0"? encoding="ISO "?> <!DOCTYPE play PUBLIC "-//Free Text Project//DTD Play//EN" SYSTEM "http://www.shakespeare.org/hamlet.dtd"> <play> <title>The Tragedy of Hamlet, Prince of Denmark</title> <fm> <p>SGML markup by Jon Bosak, </p> <p>XML version by Jon Bosak, </p> <p>This work may be freely copied and distributed worldwide.</p> </fm> <personae> <title>Dramatis Personae</title> <persona>CLAUDIUS, king of Denmark. </persona> <persona>HAMLET, son to the late, and nephew to the present king. </persona> </personae> <scndescr>SCENE Denmark.</scndescr> <playsubt>HAMLET</playsubt> <act> <title>ACT I</title> <scene> <title>SCENE I. Elsinore. A platform before the castle.</title> <stagedir>FRANCISCO at his post. Enter to him BERNARDO</stagedir> <speech><speaker>BERNARDO</speaker> <line>Who's there?</line></speech> ... Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

20 Visual Pattern Builder
Hamlet: Elementbaum Dokument- Element Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich play "act" ist enthalten in "play" ... Element title fm personae scenedescr playsubt act hamlet The Tragedy of Hamlet, Prince of Denmark title acttitle scene Scene Denmark Pfad Act I Dramatis Persona scenetitle persona persona p p stagedir speech Scene I ... speaker line SGML markup ... ... worldwide CLAUDIUS HAMLET FRANCISCO ... BERNARDO Who's there? Visual Pattern Builder

21 Hamlet: DTD <!-- DTD for Shakespeare Jon Bosak , > <!ELEMENT play (title, fm, personae, scndescr, playsubt, induct?, prologue?, act+, epilogue?)> <!ELEMENT title (#PCDATA)> <!ELEMENT fm (p+)> <!ELEMENT personae (title, (persona | pgroup)+)> <!ELEMENT pgroup (persona+, grpdescr)> <!ELEMENT induct (title, subtitle*, scene+|(speech|stagedir|subhead)+))> <!ELEMENT act (title, subtitle*, prologue?, scene+, epilogue?)> <!ELEMENT scene (title, subtitle*, (speech | stagedir | subhead)+)> <!ELEMENT prologue (title, subtitle*, (stagedir | speech)+)> <!ELEMENT epilogue (title, subtitle*, (stagedir | speech)+)> <!ELEMENT speech (speaker+, (line | stagedir | subhead)+)> <!ELEMENT line (stagedir | #PCDATA)+> ... Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

22 Well-Formed vs. Valid wohlgeformt (well-formed) - ein Dokument besitzt geordnete syntaktische Eigenschaften, die im folgenden vorgestellt werden, gültig (valid) - Ein Dokument ist wohlgeformt und folgt einem a priori gegebenen Schema, formalisiert in einer Dokumenttypdefinition (DTD). Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

23 Well-Formedness Illustration, dass Dokumente, die well-formed sind, vollständig markiert sein müssen: Nicht vollständig markiertes Dokumentfragment: <A><B>pipapo<C>hello world</C></A> Zwei mögliche Strukturen: Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich pipapo hello world pipapo hello world

24 XML Processor, Application
XML Processor - Modul, das Zugriff auf Inhalt und Struktur von XML-Dokumenten ermöglicht. Applikation - Modul, das den XML Processor verwendet. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

25 XML Processor, Application
Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich Aufruf für XML-Dok. Callback- Methoden ("User Exits”) XML-Processor (XML-Engine) DOM- Methoden MM-Tool 1 MM-Tool 2 ... Bsp. fuer diese Aufteilung: Workflow aus Bestellung z:\users\boehm\Windows\temp\Samples\expat\elements.c … xmlparse.h

26 Darstellung der logischen Dokumentstruktur
PCDATA = parseable character data, Kein anderer terminaler Typ fuer Content fuer Strings in Attributen gibt es nur den Typ CDATA Tags begrenzen Elemente, hierarchisch oberstes Element heisst Dokumentelement, Syntaktisch zulässige Tag-Namen haben die Struktur [letter][letter0-9.:-_]* Tags sind "case-sensitive", Jedes geöffnete Tag muss wieder geschlossen werden. Tags dürfen einander nicht überlappen; nicht erlaubt z.B.: <A>…<B>…</A>…</B> Tags leerer Elemente haben besondere Syntax. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich <paper> <abstract> Interoperable information systems require </abstract> <body> <acknowl/> Markup such as <keyword>, </body> </paper> Leeres Element

27 CDATA CDATA-Abschnitte dürfen überall vorkommen, wo Character Data vorkommen darf, CDATA wird nicht vom Parser bearbeitet, Entitäten und Tags werden nicht erkannt, ]]> beendet den Abschnitt, oft verwendet für Codebeispiele, z.B. XML-in-XML. ... <script> <![CDATA[ if ( a < b ) { &subroutine(a,b) } else { &subroutine(b,a) } ]]> </script> ... Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich ... Einleitung. Konzepte. - Unicode. - Basics. - XML Proc. - Elemente. - Attribute. - PIs. - Entities. - Notations. - Name- spaces. - XML- Schema. Vergleich.", "width": "800" }

28 DTD-Deklarationen Externe DTD Deklaration Interne DTD Deklaration
<?xml version="1.0" encoding="ISO "?> <!DOCTYPE test PUBLIC "-//Test AG//DTD test V1.0//EN" SYSTEM "http://www.test-ag.de/test.dtd"> <test> "test" ist das Dokumentelement </test> Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich Interne DTD Deklaration <!DOCTYPE test [ <!ELEMENT test EMPTY> ]> <test/> Gemischte Nutzung <!DOCTYPE test SYSTEM "http://www.test-AG.de/test.dtd" [ <!ENTITY hallo "hallo welt"> ]> <test>&hallo;</test> Internal DTD Subset

29 DTD-Deklarationen (2) Erläuterungen:
Gemischte Nutzung – externe DTD, aber proprietäre Entity-Definition encoding - Character Encoding Attribut nicht erforderlich für ASCII, da Subset von UTF-8 Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

30 Elementdeklaration Elementdeklaration legt fest, wie der direkte Inhalt eines Elements aufgebaut ist. (SGML - Inclusions) Inhaltsmodell - regulärer Ausdruck, der Aufbau des direkten Inhalts spezifiziert. Syntax der Elementdeklaration: <!ELEMENT Elementname (Inhaltsmodell)> Beispiel: <!ELEMENT aufsatz (einleit,hauptteil,schluss)> Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

31 Elementdeklaration (1/2)
Elementinhalt <!ELEMENT beispiel (a)> Gemischter Inhalt ("mixed content") <!ELEMENT beispiel (#PCDATA)> <!ELEMENT beispiel (#PCDATA|a)*> Leeres Element <!ELEMENT beispiel EMPTY> Element mit beliebigem Inhalt <!ELEMENT beispiel ANY> 'beliebiger Inhalt'- muss vorher schon deklariert worden sein. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

32 Elementdeklaration (2/2)
Konstruktoren: Sequenz <!ELEMENT beispiel (a, b)> Alternative <!ELEMENT beispiel (a | b)> Occurrence Indicators: Optional (Null- oder einmal) <!ELEMENT beispiel (a)?> Optional und wiederholbar (beliebig oft) <!ELEMENT beispiel (a)*> Notwendig und wiederholbar (mindestens einmal) <!ELEMENT beispiel (a)+> Inhaltsmodelle können mit Klammern kombiniert werden. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

33 Attribute Jedes Element kann mit (beliebig vielen) Attributen versehen sein, Attribut-Belegungen sind normal im Start-Tag enthalten, Beispiel: <!ELEMENT abstract (text)> <!ATTLIST abstract author CDATA #REQUIRED> <abstract author='weber'> Das ganze Leben ist ein Quiz</abstract> Attribute sind eine von mehreren Möglichkeiten, zusätzliche Information mit Elementen in Verbindung zu bringen. Bsp.: <!ELEMENT abstract (author, text)> <!ELEMENT author (#PCDATA)> Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

34 Wozu braucht man Attribute?
Es existieren Typen für Attribute. Das Dokument besteht aus weniger Elementen. Bessere Lesbarkeit, Übersichtlichkeit. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

35 Attributdeklaration Syntax der Attributdeklaration:
<!ATTLIST Elementname Attributname Typ Vorgabe Attributname Typ Vorgabe … > Mögliche Vorgaben: Notwendiges Attribut: #REQUIRED Optionales Attribut: #IMPLIED Festes Attribut: #FIXED "wert" (d.h. DTD legt den Attributwert bereits fest). Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

36 Attribute: Typen (1/5) CDATA Zeichenkette (mit Entitätsersetzung)
<!ATTLIST beispiel HREF CDATA #REQUIRED> Aufzählungstyp Token aus vorgegebener Menge, evtl. Defaultwert <!ATTLIST beispiel auswahl (ja|nein|vielleicht) "ja"> Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich Elementname Attributname

37 Attribute: Typen (2/5) ID, IDREF
Attribut vom Typ ID ist innerhalb eines Dokuments eindeutig, IDREF ist eine Referenz auf eine ID, Parser prüft referentielle Integrität, keine Einschränkung des Typs, kein reftype, <!ATTLIST beispiel indent ID #IMPLIED referenz IDREFS #IMPLIED> NAME, NAMES Name bzw. Namen, beginnend mit Letter, _ oder : NMTOKEN, NMTOKENS Name bzw. Namen, ausschliesslich NAME-Chars <!ATTLIST variablen beispiel NMTOKENS #REQUIRED> Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

38 Arbeitsanweisung/ Processing Instruction (PI)
PI sind nicht Teil des Dokumenttextes. PIs werden an Applikation durchgereicht. PI beginnt mit Target, d.h. Identifier der Applikation, z.B. php PI-Targets werden mit dem XML Notation Mechanismus deklariert (wird später besprochen). <?xml ist reserviert, <?xml erlaubt Erkennung der Zeichenkodierung. <?xml version="1.0" encoding="ISO " standalone="no" ?> ... <?php echo $title;?> ... Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich z:\users\boehm\\Windows\temp\Samples\Samples\Internet\xml\xml_validator\validate.htm z:\users\boehm\\Windows\temp\Samples\xml\example_files\books.xml z:\users\boehm\Windows\temp\Samples\expat\xmlparse.h

39 Zeichenreferenzen und Kommentare
Zeichenreferenzen können beliebige Unicode-Zeichen identifizieren, Beispiel: Zeichen, die auf der Tastatur fehlen, Zeichenreferenzen werden sofort expandiert, Kommentare sind überall erlaubt, nicht aber vor der XML-Processing Instruction (<?xml ...) Kommentare dürfen keine "--" enthalten. û û und © stehen für dasselbe Zeichen ... <!-- Ein Kommentar darf beliebige Zeichenfolgen wie <tagname> oder &entity; enthalten --> Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

40 Attribut-Normalisierung
Bevor ein Attributwert überprüft bzw. an eine Applikation weitergegeben wird, muss der XML Processor ihn normalisieren: Character-Referenz auflösen, Replacement-Text einer Entity-Referenz rekursiv abarbeiten. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

41 Logische vs. physische Dokumentstruktur
Logische Dokumentstruktur ist die Struktur, die mit Hilfe von Markup explizit gemacht wird, physische Dokumentstruktur - Verteilung des Dokuments auf Files, physische Units heissen im XML-Kontext externe Entities. Eine Entity wird anhand ihres Namens identifiziert, Entity-Name hat gleichen Aufbau wie Attribut vom Typ NAME. physische Dokumentstruktur ist i.a. weitgehend orthogonal zur logischen. Entities: Wichtig zum Verstehen der Standards, die auf XML aufsetzen, z.B. verwendet XLink Parameter Entities. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

42 Externe Entities - Beispiel
<!ENTITY chapter1 SYSTEM "http://www.boehm-ag.com/ chapters/chap1.xml"> <dissertation> <intro>This work is a brilliant piece of work …</intro> &chapter1; &chapter2; <conclusion>This work is destined to become a classic.</conclusion> http ://www.boehm-ag.com/ chapters/chap1.xml Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich <chapter> Das ganze Leben ist ein Quiz, und wir sind nur die Kandidaten… </chapter>

43 Physische Partitionierung von Dokumenten - Motivation
Grösse des Files, organisationelle Aspekte, Nicht-XML Resourcen, z.B. Binaries, Wiederverwertung von DTD-Fragmenten. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

44 Entities - Klassifizierung
Internal Entities vs. External Entities, Beispiel für Internal Entity: <!ENTITY hallo "hallo welt"> ... <test>&hallo;</test> Parsed Entities vs. Unparsed Entities, General Entities vs. Parameter Entities. Dimensionen sind z.T. orthogonal zueinander. Z.B. kann External Entity entweder Parsed Entity oder Unparsed Entity sein. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

45 Internal Entities vs. External Entities
External Entities - physische Units im XML-Kontext; Document Entity - 'Wurzel’-Entity, Hub-Dokument Einstiegspunkt für XML Processing Internal Entities - kein separates physisches Objekt, Deklaration der Entity enthält ihren Inhalt; Motivation: Übersichtlichkeit, weniger Code, Wiederverwertbarkeit, weniger Elemente (wird weiter hinten illustriert). Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

46 Externe Entities - Differenzierung
Differenzierung zwischen Parsed und Unparsed Entities: Parsed Entity - Entity-Referenz wird aufgelöst, Entity-Inhalt ist Teil des Dokuments, Unparsed Entity - muss kein XML enthalten. (Weitere Erläuterungen folgen.) Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

47 Entity Deklarationen - Beispiele
Deklaration einer internen Entity: <!ENTITY Pub-Status "This is a pre-release of the specification."> Deklaration externer Entities: Parsed Entity: <!ENTITY oh SYSTEM "http://www.tty.com/bplate/OH.xml"> Unparsed Entity: <!ENTITY hatch-pic SYSTEM "../grafix/OH.gif" NDATA gif> SYSTEM-Identifier identifiziert Position relativ zur Entity-Deklaration. Unterschied: Interne Entity enthält Text, aber keinen SYSTEM-Identifier. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

48 General Entities vs. Parameter Entities
General Entity - Verwendung im Dokumentinhalt, Parameter Entities - Parsed Entity zur Verwendung in der DTD. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

49 Beispiele Character-Referenzen und Entity-Referenzen: Type <key>less-than</key> (<) to save options. This document was prepared on &docdate; and is classified &security-level;. Parameter-Entity Referenz: <!-- declare the param. entity "ISOLat2"... --> <!ENTITY % ISOLat2 SYSTEM "http://www.xml.com/iso/isolat2-xml.entities" > <! now reference it. --> %ISOLat2; Unterschiedliche Syntax Character-Referenzen und Entity-Referenzen sowie Parameter-Entity Referenz Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

50 Parameter-Entitäten <!ENTITY % firmenweit SYSTEM "http://foo.com/std.ent" > %firmenweit; Verwendbar nur innerhalb der DTD, Namensraum unterscheidet sich von dem normaler Entitäten, Ziele: Modularisierung von DTDs, weniger Elemente. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich <!ENTITY % adresse "(name, strasse, plz)" > <!ELEMENT kunde %adresse;> <!ELEMENT lieferant %adresse;>

51 Konditionale Abschnitte
<!ENTITY % draft 'INCLUDE' > <!ENTITY % final 'IGNORE' > <![%draft;[ <!ELEMENT book (comments*, title, body, suppl?)> ]]> <![%final;[ <!ELEMENT book (title, body, suppl?)> ]]> Teile einer DTD können ein- und ausgeblendet werden Üblicher Mechanismus hierfür: Parameter-Entitäten. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

52 Well-Formedness (Fortsetzung)
Zu einem Dokument muss keine DTD gehören. Dokument 'ohne DTD’ muss bestimmte Bedingungen erfüllen, insbesondere muss die Struktur eindeutig sein: Dok. sollte 'Standalone Document Declaration’ (SDD) enthalten: <?xml version="1.0" standalone="yes"?> <foo> <bar>...<blort/>...</bar> </foo> Dokument hat genau eine Wurzel, Tag Omission ist nicht erlaubt, kein überlappender Markup, alle Attributwerte in Anführungszeichen, Attributwerte per Default vom Typ CDATA, leere Elemente müssen als solche erkennbar sein, kein isolierter Markup, z.B. '<’ anstatt '<'. Entitäten, d.h. die externen Files, müssen wohlgeformt sein. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

53 Notations Notationen - Mechanismus, um mit einem Namen
das Format von Unparsed Entities, das Format von Elementen mit einem Notation-Attribut oder die Anwendung, auf die sich eine Processing Instruction bezieht, zu identifizieren. Beispiel für Element mit Notation-Attribut: Element, dessen Inhalt PostScript oder VRML ist. Genaueres später. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

54 Notations Notationen können die Semantik von nicht-analysierten Entitäten, Arbeitsanweisungen und Attributen festlegen, Beispiel: <!NOTATION MPEG SYSTEM "c:\programme\mpeg.exe"> <!ENTITY löwe "leo.mpg" NDATA MPEG> Anwendungen: Multimedia-Elemente, Typsysteme. Zu jeder Unparsed Entity gehört eine Notation, identifiziert durch einen Namen. Ein XML Processor muss einer Anwendung die Identifier der Entity und den Notationsnamen verfügbar machen. Der Notation Identifier wird der Anwendung mit der Notation Declaration verfügbar gemacht. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich Notation Identifier

55 Attribute: Typen (3/5) ENTITY, ENTITIES
Verwendung: Pointer auf Daten eines speziellen (Medien-)Typs ausserhalb der aktuellen Entity Attributwert muss Name einer in der DTD deklarierten Unparsed Entity sein. Parser versucht nicht, Entity aufzulösen. Beispiel: <!NOTATION vrml PUBLIC "VRML 2"> <!ENTITY Antarctica SYSTEM "http://www.antarc.net" NDATA vrml> <!ATTLIST World src ENTITY #REQUIRED> <World src='Antarctica'> Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich Element- typname Attribut- name

56 Attribute: Typen (4/5) NOTATION
Attribut dieses Typs ist nur sinnvoll für Elemente mit 'speziellem' Inhalt, Attributwert muss Name einer deklarierten Notation sein. Verwendung: Typisierte Attribute, Multimedia-Attribute, Beispiel: <!NOTATION vrml PUBLIC "VRML 2"> <!NOTATION ps PUBLIC "PostScript Level 3"> <ATTLIST Rendered In NOTATION (ps|vrml) #IMPLIED> <Rendered In='ps'> gsave moveto lineto showpage grestore </Rendered> Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

57 Attribute: Typen (5/5) Was ist also der Unterschied in der Verwendung von Attributen vom Typ ENTITY und vom Typ NOTATION? Spezieller Content ausserhalb bzw. innerhalb aktueller Entity. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

58 Namespaces Motivation:
Element- und Attributnamen ("Markup Vocabulary”) mit allgemeiner Gültigkeit, Beispiel: Library of Congress Subject Headings (LCSH) Anwendung basiert auf allgemeiner Interpretation dieser Namen, ein XML-Dokument soll Markup Vocabulary aus mehreren 'Dictionaries’ enthalten können. (Erinnerung: XML-Dokument muss keine DTD haben.) Namespaces zur Vermeidung von Namenskonflikten. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

59 Beispiel für die Verwendung von Namespaces (2/2)
<x xmlns:edi='http://ecommerce.org/schema'> <!-- the "edi" prefix is bound to for the "x" element and contents --> <edi:price units='Euro'>32.18</edi:price> <!-- the 'price' element's namespace is --> </x> <x xmlns:edi='http://ecommerce.org/schema'> <!-- the 'taxClass' attribute's namespace is --> <lineItem edi:taxClass="exempt">Baby food </lineItem> </x> Namespace Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich Namespace Prefix stellt Verbindung zum Namespace her. Qualified Name

60 Namespaces - Erläuterung
XML Namespace ist im wesentlichen eine Menge von Namen. Genauer: keine Menge – globale und lokale Variablen. Lokale Variablen: unterschiedliche Namespaces für Attributnamen unterschiedlicher Elementtypen Beispiel: TITLE - Section, TITLE – Author Attribut besteht aus Namespace-Präfix und lokalem Teil. URI identifiziert Namespace. Namespace-Definition muss kein Schema in einer formalen Sprache sein. Es kann sinnvoll sein, dass ET-Name aus Namespace, Attributname jedoch nicht. price - brutto oder netto, keine weiteren Aspekte. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

61 Namensräume Bestellung Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich L:Buch B:Überweisung B:Sorte="DM" B:Betrag B:Signatur B:Datum L:Titel L:ISBN L:Autor Neuro- mancer Gibson, William 0309-8 49,00 80X8... ...F915 <bestellung xmlns:B = "http://bank.de/schema/" xmlns:L = "http://buch.de/schema/">

62 Namespaces – Erläuterung (2)
Namespace Defaulting - Default Namespace gibt für alle Elemente ohne Präfix im Teilbaum und für Element, das Namespace Deklaration enthält, Scoping - Namespace Definition kann überschrieben werden in 'innerem' Element. Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

63 XML-Dokument mit Namespace
<?xml version="1.0"?> <portfolio xmlns:dt="urn:schemas-microsoft-com:datatypes"> <stock exchange="nyse"> <name>zacx corp</name> <symbol>ZCXM</symbol> <price dt:dt="number">28.875</price> </stock> <stock exchange="nasdaq"> <name>zaffymat inc</name> <symbol>ZFFX</symbol> <price dt:dt="number">92.250</price> </stock> <stock exchange="nasdaq"> </stock> </portfolio> Einleitung Konzepte - Unicode - Basics - XML Proc. - Elemente - Attribute - PIs - Entities - Notations - Name- spaces - XML- Schema Vergleich

64 Mängel von XML-DTDs/ neue Anforderungen an XML-Schema
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Keine Erweiterbarkeit – wünschenswert: Erweiterbarkeit des Inhaltsmodells, Einschränkung des Inhaltsmodells. Möglichkeit der Validierung: Datentypen und Wertebereiche, Integritätsbedingungen, getypte Links, Modularität, die über die von DTDs hinausgeht: Scoping.

65 XML-Schema Idee: Schema ist XML-Dokument.
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Idee: Schema ist XML-Dokument. Vergleichbar mit Data Dictionary - Relationen zur Verwaltung der Schemainformation. Aktueller Status (März 2001): W3C Proposed Recommendation.

66 Inhaltsmodell mit XML-Schema
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Beispiel: <xsd:complexType name="Address"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/> </xsd:complexType> Erläuterungen: Typdefinition und Elementdeklaration getrennt. Lokale Typen (lokale Typen mit gleichem Namen anderswo möglich) (Sinnvolle) Beispiele für leere Elemente.

67 Typdefinition und Elementdeklaration
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Beispiel: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> ... <xsd:element name="purchaseOrder" type="PurchaseOrderType"/> <xsd:element name="comment" type="xsd:string"/> <xsd:complexType name="PurchaseOrderType"> <xsd:sequence> <xsd:element name="shipTo" type="Address"/> <xsd:element name="billTo" type="Address"/> <xsd:element ref="comment" minOccurs="0"/> <xsd:element name="items" type="Items"/> </xsd:sequence> <xsd:attribute name="orderDate" type="xsd:date"/> </xsd:complexType>

68 Typdefinition und Elementdeklaration (2)
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Erläuterungen: Globale Elementtypen. Occurrence-Anzahl für comment Wie ist purchaseOrder-Element aufgebaut?

69 Komplexes Inhaltsmodell
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Beispiel: <xsd:complexType name="Items"> <xsd:element name="item" minOccurs="0" maxOccurs="*"> <xsd:complexType> <xsd:sequence> <xsd:element name="productName" type="xsd:string"/> <xsd:element name="price" type="xsd:decimal"/> <xsd:element ref="comment" minOccurs="0"/> <xsd:element name="shipDate" type="xsd:date" minOccurs='0'/> <xsd:attribute name="partNum" type="Sku"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:complexType> Erläuterungen: Default: Genau ein Vorkommen, Implizite Typdefinition.

70 Definition abgeleiteter einfacher Typen
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Beispiele: <xsd:simpleType name="myInteger"> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="10000"/> <xsd:maxInclusive value="99999"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="Sku" base="xsd:string"> <xsd:pattern value="/d{3}-[A-Z]{2}"/> </xsd:simpleType> <xsd:simpleType name="USState"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="AK"/> <xsd:enumeration value="AL"/> <xsd:enumeration value="AR"/> <!-- and so on > </xsd:restriction> </xsd:simpleType>

71 Liste und Union Typ ‚Liste‘ Folge von Instanzen einfacher Typen.
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Typ ‚Liste‘ Folge von Instanzen einfacher Typen. Beispiel: <xsd:simpleType name="USStateList"> <xsd:list itemType="USState"/> </xsd:simpleType> <xsd:simpleType name="SixUSStates"> <xsd:restriction base="USStateList"> <xsd:length value="6"/> </xsd:restriction> </xsd:simpleType> Union Beispiel: <xsd:simpleType name="zipUnion"> <xsd:union memberTypes="USState listOfMyIntType"/> </xsd:simpleType>

72 Inhaltsmodelle In etwa gleiche Konnektoren wie in DTD, andere Syntax.
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich In etwa gleiche Konnektoren wie in DTD, andere Syntax. Konnektoren: Sequence, Choice, All (hat Pendant in SGML, nicht aber XML-DTDs)

73 Namespaces Schema: Menge von Typdefinitionen und Elementdeklarationen.
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Schema: Menge von Typdefinitionen und Elementdeklarationen. Target Namespace eines Schemas – Menge der dort eingeführten Namen. (Legt aber immer noch nicht die Bedeutung fest.) Ziel: Dokument soll zu mehreren Schemata konform sein können. (Bisher noch keine Mechanismen für Beziehung Dokument – Schema.)

74 Inhaltsmodelle Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Beispiel: <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:po="http://www.example.com/PO1" targetNamespace="http://www.example.com/PO1" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <element name="purchaseOrder" type="po:PurchaseOrderType"/> <element name="comment" type="string"/> ...

75 Inhaltsmodelle (Fortsetzung)
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich ... <complexType name="PurchaseOrderType"> <sequence> <element name="shipTo" type="po:USAddress"/> <element name="billTo" type="po:USAddress"/> <element ref="po:comment" minOccurs="0"/> <!-- etc. --> </sequence> <!-- etc. --> </complexType> <complexType name="USAddress"> <sequence> <element name="name" type="string"/> <element name="street" type="string"/> <!-- etc. --> </sequence> </complexType> <!-- etc. --> </schema>

76 Inhaltsmodelle (3) Erläuterungen:
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Erläuterungen: Man muss explizit angeben, auf welchen Namespace man sich bezieht. Attributwert unqualified: Namespace der lokalen Elemente/Attribute muss explizit angegeben werden. unqualified: Default-Wert. Beispiel für Dokument: <?xml version="1.0"?> <apo:purchaseOrder xmlns:apo="http://www.example.com/PO1" orderDate=" "> <shipTo country="US"> <name>Alice Smith</name><street>12 Maple Street</street> </shipTo> ... <apo:comment>Hurry up!</apo:comment> ... </apo:purchaseOrder>

77 Schema in mehreren Dokumenten – Include
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Beispiel: <include schemaLocation="http://www.example.com/schemas/address.xsd"/> Voraussetzung: Gleicher Target Namespace

78 Schema in mehreren Dokumenten – Import
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Jene Voraussetzung muss nicht gelten – Beispiel: <schema targetNamespace="http://www.sample.com/Report" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:r="http://www.sample.com/Report" xmlns:xipo="http://www.sample.com/IPO" elementFormDefault="qualified"> <import namespace="http://www.sample.com/IPO"/> <element name="purchaseReport"> <complexType> <sequence> <element name="regions" type="r:RegionsType"> <simpleContent> <extension base="string"> <attribute name="number" type="xipo:SKU"/> </extension> </simpleContent> ... Nur globale Schemakomponenten können importiert werden.

79 Abgeleitete Typen (1) Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Erweiterung des Inhaltsmodells – Schema-Ausschnitt – Beispiel: <complexType name="UKAddress"> <complexContent> <extension base="ipo:Address"> <sequence> <element name="postcode" type="ipo:UKPostcode"/> </sequence> <attribute name="exportCode" type="positiveInteger" fixed="1"/> </extension> </complexContent> </complexType> Erläuterung: postcode wird angehängt, Attribut exportCode kommt neu hinzu.

80 Abgeleitete Typen (2) Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Erweiterung des Inhaltsmodells – Instanz des neuen Typs – Beispiel: <?xml version="1.0"?> <ipo:purchaseOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ipo="http://www.example.com/IPO" orderDate=" "> <shipTo exportCode="1" xsi:type="ipo:UKAddress"> <name>Helen Zoe</name> <street>47 Eden Street</street> <city>Cambridge</city> <postcode>CB1 1JR</postcode> </shipTo>

81 Abgeleitete Typen (2) Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Restriktion des Inhaltsmodells Beispiel: <element name="quantity"> <simpleType> <restriction base="positiveInteger"> <maxExclusive value="100"/> </restriction> </simpleType> </element> Substitution Groups Beispiel: <element name="shipComment" type="string" substitutionGroup="ipo:comment" /> <element name="customerComment" type="string" substitutionGroup="ipo:comment" />

82 Kontrolle über abgeleitete Typen
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Schema-Autor kann (bestimmte oder alle) Ableitungen verbieten. Beispiel: <complexType name="Address" final="restriction"> <sequence> <element name="name" type="string"/> <element name="street" type="string"/> <element name="city" type="string"/> </sequence> </complexType> Bedeutung des Beispiels: Keine Ableitung by restriction. Andere Attributwerte: #all, extension

83 Uniqueness Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Man will festlegen, dass Werte – innerhalb eines bestimmten Scopes – nur einmal vorkommen. Beispiel: <element name="purchaseReport"> <complexType> <element name="regions" type="r:RegionsType"> </element> ... </complexType> <unique name="dummy1"> <selector xpath="r:regions/r:zip"/> <field </unique> </element> <complexType name="RegionsType"> <sequence> <element name="zip" maxOccurs="unbounded"> <complexType> ... <attribute name="code" type="positiveInteger"/> </complexType> </element> </sequence> </complexType>

84 Schlüssel und Schlüsselreferenzen
Einleitung Konzepte - Name- spaces XML- Schema Basics Neue simple Typen Komplexe Inhalts- modelle Import & Include Abgel. Typen Unique. und Keys XML-Data Vergleich Ziel: Getypte Referenzen. Beispiel: <element name="purchaseReport"> <complexType> <sequence> <element name="regions" type="r:RegionsType"> <keyref name="dummy2" refer="r:pNumKey"> <selector xpath="r:zip/r:part"/> <field </keyref> </element> <element name="parts" type="r:PartsType"/> </sequence> </complexType> <key name="pNumKey"> <selector xpath="r:parts/r:part"/> <field </key> </element>

85 Zum Vergleich: Logische Dokumentstruktur mit HTML
DIV und SPAN-Elemente sind generische Mechanismen für die Strukturierung von HTML-Dokumenten. Beispiel: Einleitung Konzepte Vergleich <DIV id="client-boyera" class="client"> <P><SPAN class="client-title">Client information:</SPAN> <TABLE class="client-data"> <TR><TH>Last name:<TD>Boyera</TR> <TR><TH>First name:<TD>Stephane</TR> <TR><TH>Tel:<TD>(212) </TR> </TABLE> </DIV> <DIV id="client-lafon" class="client"> <P><SPAN class="client-title">Client information:</SPAN> <TABLE class="client-data"> <TR><TH>Last name:<TD>Lafon</TR> <TR><TH>First name:<TD>Yves</TR> <TR><TH>Tel:<TD>(617) </TR> </TABLE> </DIV> SPAN - content is inline DIV - block level

86 Unterschiede XML - SGML
Zu SGML-Dokument muss es DTD geben, nicht aber XML-Dokument. SGML erlaubt Tag-Omission, XML nicht. Zusätzliche Konstrukte in SGML, z.B. &-Konstruktor, Inclusions und Exclusions. Einleitung Konzepte Vergleich

87 Vergleich XML - OEM Gleiche Zielsetzung
OEM ist (auf Modellierungsebene) allgemeiner als XML Mehrere einlaufende Kanten eines Knotens, Zykel im Graph, OEM-Objekt muss keine Baumstruktur haben. Unterschiedliche Diktion, insbesondere (XML-)Elemente - (OEM-)Objekte Vielfalt der XML-Features, z.B. Entities, DTDs, nicht Teil von OEM; OEM ist im Gegensatz zu XML proprietäre Entwicklung/Forschungsarbeit; es gibt keine Produkte. Warum dieser Vergleich? Uebertragbarkeit DataGuides Einleitung Konzepte Vergleich

88 <hier nichts Konkretes, wäre aber denkbar>
Vergleich XML-OEM OEM- Datenbank z.B. MathML HTML Homepage von Hans Schek Modell Dokumenttyp Dokument- instanz e ip +1= 0 n f (n) = S k k=1 XML SGML E-R Modell Schema für Material- verwaltung Datenbank, konform zum Schema OEM <hier nichts Konkretes, wäre aber denkbar> Einleitung Konzepte Vergleich

89 Abläufe Papier HTML XML Bearbeitung Anfrage Papier HTTP/CGI
Patient: Hans Schek Bearbeitung Anfrage Einleitung Konzepte Vergleich Papier Papier HTTP/CGI Patient: Hans Schek Cut / Paste HTML Ausdrucken Anwendungs- oberfläche Patient: Hans Schek XML HTTP Drag / Drop XML Dokument Bsp. Krankenakte

90 XML - Perspektive Weiterentwicklung des Internet:
Neue W3C-Standards setzen auf XML (und RDF) auf, clientseitige Verarbeitung und Sichten von Webdaten, Individualisierung durch vielfältige Services, E-Commerce - handelbare Information, Datenaustausch - Konvertierung von Datenbank-Inhalten in Dokumente u.u., Verwaltung von Dokumentkollektionen; Suchmaschinen: präzisere Anfragen, bessere Ergebnisqualität, Publishing - erst im Web, dann mit anderen Medien (oder nur im Web). Einleitung Konzepte Vergleich


Herunterladen ppt "('Extended Markup Language’)"

Ähnliche Präsentationen


Google-Anzeigen