220 likes | 332 Views
XML – Grundlagen und Anwendungen. Teil 1: Dokumenten- und Datenstrukturen in XML Prof. Dr. Michael Löwe, FHDW Hannover. Inhalt. Gehirnsturm: Was ist XML? Warum ist XML so erfolgreich? Was sind Dokumentenstrukturen? Elemente, Tags und Texte Attribute
E N D
XML – Grundlagen und Anwendungen Teil 1: Dokumenten- und Datenstrukturen in XML Prof. Dr. Michael Löwe,FHDW Hannover
Inhalt Gehirnsturm: Was ist XML? Warum ist XML so erfolgreich? Was sind Dokumentenstrukturen? Elemente, Tags und Texte Attribute Kommentare und Standard-Entity-Referenzen Zusammenfassung XML Grundlagen und Anwendungen
Was ist XML? Weiterentwicklung von HTML Untermenge von SGML (DTD-lite) Metasprache – Sprache zur Definition von Sprachen Alles und Nichts Ein Satz von Kerntechnologien (XML, DTD, XML-Schema, XPath, XSL-T, XSL-FO,…) Die Menge aller definierten Instanzen (SOAP, WSDL, UDDI, XMI, BPEL, VoiceXML,…) XML Grundlagen und Anwendungen
Warum ist XML erfolgreich? Alle machen mit (MicroSoft, Sun, IBM, etc.) XML ist einfach Es ist Alles aber eben auch Nichts XML ist nur technisches Mittel zum fachlichen Zweck XML ist nur Dokumentenform und nicht –Inhalt Kommunikationsplattform/Austauschformat/Trägermedium Konkrete Dokumente benötigen XML-Anwendung Bei den Inhalten ist die Standardisierung viel geringer XML Grundlagen und Anwendungen
e1 e1 e2 e3 e4 … e2 e3 e4 e5 e6 e1 e2 e3 e4 e5 e6 Dokumentenstruktur Reihenfolge Totale Ordnung der Elemente „nach“: Gliederung Starke partielle Ordnung der Elemente „in“: Es gibt genau eine Wurzel ohne Vater Alle anderen haben genau einen Vater Gliederung + Reihenfolge Totale Ordnung pro Element „nache“: Rekonstruktion von „nach“ aus „in“ und „nache“ XML Grundlagen und Anwendungen
e1 e2 e3 e4 e5 e6 Dokumentenstruktur Linearisierung (e1 (e2(e4 )e4 )e2 (e3(e5 )e5 (e6 )e6 )e3)e1 SGML-isierung (e = <e> )e = </e> XML-Parser <e1><e2><e4> </e4></e2><e3><e5> </e5><e6> </e6></e3></e1> XML Grundlagen und Anwendungen
Wo ist der Text? <e1> Da ist der Text. <e2> <e4> Er kann überall </e4> zwischen den und in den </e2> Elementen stehen. <e3> <e5> Es kann auch leere Elemente wie </e5> <e6> </e6> </e3> das Element 6 geben. </e1> Start-Tag Gemischter Inhalt Element e2 Reiner Textinhalt Reiner Elementinhalt Inhalt von e3 End-Tag XML Grundlagen und Anwendungen
0..1 0..1 Node nextBrother nextBrother 0..1 firstSon Text Element value:String name:String Empty Element Non-Empty Element firstSon Element und Text print() pT() + nextBrother.print() value() vT() + nextBrother.value() vT() value pT() value pT() “<“ + name + “/>“ vT() ““ vT() firstSon.value() pT() “<“ + name + “>“ + firstSon.print() + “</“ + name + “>“ XML Grundlagen und Anwendungen
Beispiel 1: Message receiver.operation(12,“argument“) <MessageSend> <Receiver> receiver </Receiver> . <AppliedOperation> operation </AppliedOperation> ( <ActualParameter> 12 </ActualParameter> , <ActualParameter> „argument“ </ActualParameter> ) </MessageSend> XML Grundlagen und Anwendungen
Beispiel 2: Buch <Book> <Title> Tolles Buch </Title> <Author> Michael Löwe </Author> <Chapter> <Title> Tolles Kapitel </Title> <Section> <Title> Toller Abschnitt </Title> <Paragraph> blabla 1 …</Paragraph> <Paragraph> blabla 2 …</Paragraph> ….. </Section> … </Chapter> … </Book> XML Grundlagen und Anwendungen
Name: im Glück Vorname: Hans Tel: 0511 12 34 56 Fax: 0511 12 34 57 Email: h.i.g@gans.de <Entry> <Name>im Glück</Name> <Vorname>Hans</Vorname> <Tel>0511 12 34 56</Tel> <Fax>0511 12 34 57</Fax> <Email>h.i.g@gans.de</Email> </Entry> Beispiel 3: Adresseintrag XML Grundlagen und Anwendungen
<a> bla1 <b/> bla2 <c>ccc</c> bla3 </a> <a> <text>bla1 </text> <b/> <text> bla2 </text> <c>ccc</c> <text> bla3 </text> </a> Vermeidung gemischten Inhalts XML Grundlagen und Anwendungen
0..1 Node 0..1 nextBrother Text Element 0..1 0..1 value:String name:String Empty Element Non-Empty Element firstSon XML ohne Gemischten Inhalt nextBrother XML Grundlagen und Anwendungen
<MessageSend> <Receiver> receiver </Receiver> . <AppliedOperation> operation </AppliedOperation> ( <ActualParameter> 12 </ActualParameter> , <ActualParameter> „argument“ </ActualParameter> ) </MessageSend> <MessageSend> <Receiver> receiver </Receiver> <Dot>.</Dot> <AppliedOperation> operation </AppliedOperation> <BracketOpen>(</BracketOpen> <ActualParameter> 12 </ActualParameter> <Separator>, </Separator> <ActualParameter> „argument“ </ActualParameter> <BracketClose>) </BracketClose> </MessageSend> Von der Form zum Inhalt <MessageSend> <Receiver> receiver </Receiver> <Dot/> <AppliedOperation> operation </AppliedOperation> <BracketOpen/> <ActualParameter> 12 </ActualParameter> <Separator/> <ActualParameter> „argument“ </ActualParameter> <BracketClose/> </MessageSend> <MessageSend> <Receiver> receiver </Receiver> <AppliedOperation> operation </AppliedOperation> <ActualParameter> 12 </ActualParameter> <ActualParameter> „argument“ </ActualParameter> </MessageSend> XML Grundlagen und Anwendungen
<Entry> <Name>im Glück</Name> <Vorname>Hans</Vorname> <Tel>0511 12 34 56 </Tel> <Fax>0511 12 34 57 </Fax> <Email>h.i.g@gans.de</Email> </Entry> <Entry> <Name value = “im Glück“/> <Vorname value = “Hans“/> <Tel value = “0511 12 34 56“/> <Fax value = “0511 12 34 57“/> <Email value = “h.i.g@gans.de“/> </Entry> Attribute: Beispiel 1 XML Grundlagen und Anwendungen
<MessageSend Receiver = “receiver“ AppliedOperation = “operation“> <ActualParameter value = “12“/> <ActualParameter value = ‘“argument“‘ /> </MessageSend> <MessageSend> <Receiver> receiver </Receiver> <AppliedOperation> operation </AppliedOperation> <ActualParameter> 12 </ActualParameter> <ActualParameter> „argument“ </ActualParameter> </MessageSend> Attribute: Beispiel 2 Attributwerte können in einfachen oder doppelten Hochkommata eingeschlossen werden XML Grundlagen und Anwendungen
0..1 Node nextBrother * Text Element Attribute name 0..1 value:String name:String name:String value:String firstSon Empty Element Non-Empty Element Modell mit Attributen XML Grundlagen und Anwendungen
Unterelement: Trägt zum Wert bei Ist Inhalt Kann Struktur haben Kann mehrfach auftreten Position ist signifikant Erfordert Textknoten Attribut: Trägt nicht zum Wert bei Ist Form Hat keine Struktur Kann nur einmal auftreten Position ist unerheblich Textknoten überflüssig Attribute vs. Unterelemente XML Grundlagen und Anwendungen
Kommentare Beginnen mit: <!-- Enden mit: --> Können beliebig im Text (auch vor und nach der Wurzel) vorkommen Können nicht in Tags vorkommen Beispiel: <a> bla1 <!--Kommentar-->bla2<b/></a> XML Grundlagen und Anwendungen
Character (Entities) Standard: Unicode 16-Bit-Kodierung Groß- und Kleinschreibung ist signifikant Sonderzeichen: < für “<“ & für “&“ > für “>“ " für “““ ' für “‘“ XML Grundlagen und Anwendungen
Zusammenfassung XML-Dokumente sind Texte mit • Gliederungsstruktur (Kompositum aus Element und Text) Gliederungsstruktur realisiert mit passenden Klammern (Tags) • Reihenfolge (Unterknoten eines Elements sind geordnete Liste) Elemente können mit Attributen dekoriert sein Attribute werden im öffnenden Tag des Elements angegeben • Attributnamen müssen pro Element eindeutig sein • Attributwerte sind Texte (in Hochkommata eingeschlossen) XML-Dokumente müssen in diesem Sinne wohlgeformt sein XML Grundlagen und Anwendungen
Übung 1 Beschreiben Sie die Struktur des folgenden XML-Dokuments nur mit den Elementen „Element“, „Attribute“ und „Text“: <Program> <Function name = “f“> <Parameter name = “x“ type =“int“/> <ReturnType type = “int“/> <Body> ?(x = 0, 1, x * f(x – 1) </Body> </Function> <Type name = “pair“ type = “product“> <Component name = “x“>int</Component > <Component name = “y“>int </Component > </Type> </Program> XML Grundlagen und Anwendungen