Überblick über Internet-Technologien Server-Technologien Datenbankkopplung XSP Servlets JSP PHP CGI nur HTML nur HTML XML+ Dokumentsprachen Client-PGM ruft DB-Server Web-Server ruft Datenbankserver nur HTML HTML+Javascript HTML+Applets Client-Technologien (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 1 extended Markup Language (XML) XML - eine Familie von Standards: XML (extended Markup Language) rechnerübergreifend austauschbares Datenformat ( Bäume ) häufig verwendet für Inhalte (=Nutzdaten) XPath Pfadausdrücke, um in XML-Bäumen zu navigieren verwendet in anderen XML-Standards (z.b. ) (extended Stylesheet Language) verwendet als Layout für Nutzdaten / zur Datenkonvertierung viele weitere Standards: XQuery (Anfragen), DTD ( Typdefinition ), XML-Schema ( Integritätsbedingungen ) (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 2 Prof. Dr. Stefan Böttcher 1
Trennung von Nutzdaten und Layout Nutzdaten (Filiale2.xml) Layout (Techniker2.xsl) Nutzdaten (Filiale1.xml) Layout (Kunde1.xsl) HTML-Datei Kombiniert gewünschte Daten mit gewünschtem Layout (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 3 Trennung von Nutzdaten und Layout (2) Konsequenzen: Nutzdaten sind änderbar, ohne Layout zu ändern (neue Preise) Layout ist änderbar ohne Nutzdaten zu ändern ( anderes Logo, neuer Verkäufer, anderer Kunde, anderer Mitarbeiter, neue Sicht der Daten ) 1 Layout für verschiedene Nutzdaten (Rahmen mit Firmenlogo,...) 1 (Nutz-)Datenquelle für verschiedene Layouts (Techniker, Verkäufer, Kunde, Reseller,...) (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 4 Prof. Dr. Stefan Böttcher 2
Einheitlicher Standard für Nutzdaten DTD: legt Datenformat für alle Nutzdaten eines Typs fest => gleiche Datenformate für alle Beteiligten firmenübergreifende Datenaustauschformate Neue Datenaustausch-Sprachen auf XML-Basis Beispiel: ebxml (E-Business XML) als Basis für OTA (Open Travel Association) für Reisen, Reisebüros etc. Konsequenz des Standards: (Markt-)Zwang den Standard zu benutzen (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 5 XML-Syntax XML - Prolog: Version Zeichensatz geht ohne DTD! <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="xmlbsp1.xsl"?> XML - Hauptteil: benutztes Stylesheet (nur wichtig für ie5) Element Start-Tag /End-Tag <Auftrag> <Kunde> meier </Kunde> <PC> pc500 </PC> </Auftrag> Textknoten (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 6 Prof. Dr. Stefan Böttcher 3
Im XML - Hauptteil: XML-Syntax (2) (zufällig) kein Textknoten <Angebote> <Liefert wer= vobis teil= pc500 > </Liefert> Attribut Attributwert Tag-Ende (kein Text) <Liefert wer= IBM teil= pc600 / > </Angebote> Element (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 7 XML-Syntax (3) 7 Arten von Knoten: Wurzel, Element, Text, Attribut, Kommentar, Name- Space, Processing-Instruction Alle Tags müssen geschlossen werden (<tag>... </tag> oder <einzeltag />) Kreuzverschachtelung nicht erlaubt ( <tag1> <tag2>... </tag1> </tag2> ) case-sensitiv ( <tag> ungleich <Tag> ) Attributwerte müssen in Anführungszeichen stehen ( z.b. <p align="center"> ) Text muss zwischen Elementen eingeschlossen werden. (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 8 Prof. Dr. Stefan Böttcher 4
XML- und -Beispiel (1) <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="xmlbsp1e.xsl"?> <Auftrag> <Kunde>Meier</Kunde> <PC>pc500</PC> </Auftrag> X M L XML+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999//transform"> </xsl:stylesheet> X S L (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 9 XML- und -Beispiel (1a) <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="xmlbsp1e.xsl"?> <Auftrag> <Kunde>Meier</Kunde> <PC>pc500</PC> </Auftrag> XML+ X M L <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999//transform"> <xsl:template match="auftrag/*"> Einen Nachfolgeknoten von Auftrag gefunden </xsl:template> <!-- besucht nicht mehr die Unterknoten besuchter Knoten! --> </xsl:stylesheet> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 10 X S L Prof. Dr. Stefan Böttcher 5
XML- und -Beispiel (1b) <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="xmlbsp1e.xsl"?> <Auftrag> <Kunde>Meier</Kunde> <PC>pc500</PC> </Auftrag> XML+ X M L <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999//transform"> <xsl:template match="*"> <!-- anwendbar auf jedes Element (Tag) --> Knoten gefunden <xsl:apply-templates/> <!-- bearbeite auch die Nachfolgeknoten --> </xsl:template> <!-- inklusive Textknoten (PCDATA) --> <xsl:stylesheet>> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 11 X S L XML+ XML- und -Beispiel (1c) <xsl:stylesheet...> <xsl:template match="*"> <!-- anwendbar auf jeden Knoten --> Knoten gefunden: <xsl:value-of select="."/> <!-- zeige Text hiervon (ohne Tags) --> seine Nachfolgeknoten: <xsl:apply-templates/> <!-- bearbeite auch die Nachfolgeknoten --> </xsl:template> <!-- auch Text (PCDATA) ist ein Knoten --> </xsl:stylesheet> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 12 X S L Prof. Dr. Stefan Böttcher 6
XML- und -Beispiel <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="xmlbsp1e.xsl"?> <Auftrag> <Kunde>Meier</Kunde> <PC>pc500</PC> </Auftrag> X M L <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/tr/wd-xsl"> <xsl:template match="/"> <html> <body> Kunde : <xsl:value-of select= Auftrag/Kunde"/>, PC : <xsl:value-of select= Auftrag/PC"/> </body> </html> </xsl:template> </xsl:stylesheet> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 13 XML+ X S L Knotentypen und -Default-Templates Default-Template für Elemente und Wurzel: <xsl:template match="* /"> <xsl:apply-templates/> </xsl:template> transformiere innere Knoten Default-Template für Textknoten und Attribute: <xsl:template match="text() @*"> <xsl:value-of select="."/> </xsl:template> zeige Text und Attributwerte (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 14 Prof. Dr. Stefan Böttcher 7
Knotentypen und -Default-Templates (2) Default-Template für Kommentare und Processing-Instructions : <xsl:template match="comment() processing-instruction()"> </xsl:template> mache nichts mit Kommentaren und Processing-Instructions Default-Verhalten für Namespace-Knoten Namespace-Knoten werden ebenfalls nicht ausgegeben. (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 15 XPath (1) Locations-Ausdrücke Verwendung in : XPath-Location-Ausdruck <xsl:template match="auftrag"> <xsl:value-of select="pc"> <xsl:if test= position() > 1 >...</xsl:if> </xsl:template> XPath-Boolean-Ausdruck / Wurzelknoten des Dokumentes (nicht oberstes Element) /Elem1 absoluter Pfad (beginnt bei Wurzel) zum Knoten Elem1 Elem1 relativer Pfad: Kindelement Elem1 des aktuellen Knotens * alle Element -Kind-Knoten des aktuellen Knotens. aktueller Knoten.. Vorgänger-Knoten../Elem Bruderknoten mit Tagname Elem @size Attribute mit Namen size des aktuellen Knotens (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 16 Prof. Dr. Stefan Böttcher 8
XPath (2) Locations-Ausdrücke / Wurzelknoten des Dokumentes (nicht oberstes Element) /Elem1 absoluter Pfad (beginnt bei Wurzel) zum Knoten Elem1 Elem1 relativer Pfad: Kindelement Elem1 des aktuellen Knotens @size Attribut mit Namen size des aktuellen Knotens. aktueller Knoten * alle Element Kind-Knoten des aktuellen Knotens @ alle Attribut -Kind-Knoten des aktuellen Knotens.. Vorgänger-Knoten../Elem Bruderknoten mit Tagname Elem E1/E2 E2-Kinder von E1-Kindern vom aktuellen Knoten //Elem selektiere alle Elem-Nachfolger inkl. aktuellem Knoten... (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 17 XPath (3) weitere Ausdrücke (in Auswahl) Lokalations-Ausdruck in : schreibe Attribut size <xsl:value-of select="@size"/> XPath-Boolean-Ausdrücke Falls Attribut type den Wert CHAR hat, schreibe... <xsl:if test="@type='char'"> (<xsl:value-of select="@size"/>) </xsl:if> Falls es nicht das erste Element ist (Position >1): <xsl:if test='position() > 1'>nicht das erste</xsl:if> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 18 Prof. Dr. Stefan Böttcher 9
Nutzung von XML und Auf dem Client HTML erzeugen : im XML-fähigen Browser (z.b. ie5 ) daten.xml + layout.xsl -> x.html Auf dem Server HTML erzeugen : transformiere: daten.xml + layout.xsl -> x.html XML ist transformierbar durch transformierbar durch Java kompakt speicherbar (zip) unternehmensübergreifend austauschbar kombinierbar mit Applets, Servlets, JSP,...... (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 19 XML auf Java-Servern XML+ zur Trennung von Layout und Daten Layout (.xsl-file) Daten (.xml-file) Auf dem Webserver zusammenführen XML- Datei - Datei HTML- Seite Eingabe Browser Client ruft generierte HTML-Seite Servlet Server transform XML+ HTML (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 20 Prof. Dr. Stefan Böttcher 10
Weitere Nutzung von XML-Dokument 1 XML-Dokument 2 XML pdf oder ps oder... XML HTML oder WML XML Datenbank Kette von -Prozessoren XML 1 XML 2 XML 4 pdf DB XML 3 HTML WML Fremdfirma (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 21 DTD <!-- DTD xmlbsp2d.dtd zum Beispiel xmlbsp2d.mxl --> <!ELEMENT Auftraege (Auftrag)* > beliebig viele <!ELEMENT Auftrag ( Kunde, PC ) > <!ELEMENT Kunde (#PCDATA) > <!ELEMENT PC (#PCDATA) > Wurzelelement parsed char data Sequenz <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE Auftraege SYSTEM "xmlbsp2d.dtd"> <?xml-stylesheet type="text/xsl" href="xmlbsp2.xsl"?> <Auftraege> <Auftrag> <Kunde>Meier</Kunde> <PC>pc500</PC> </Auftrag> <Auftrag>... </Auftrag> </Auftraege> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 22 Muss kommen Prof. Dr. Stefan Böttcher 11
Element-Deklarationen in DTDs <!ELEMENT PC (#PCDATA) > Text (ohne Elemente) <!ELEMENT Liefert (EMPTY) > <!ELEMENT Angebot (Liefert) > <!ELEMENT Angebote (Liefert)* > <!ELEMENT Auftrag (Kunde,PC) > <!ELEMENT Zahlung (Bar Karte) > <!ELEMENT E ((A B)*,C,(D)?)+ > 1 Subelement leer? 0 oder 1 * beliebig viele + mindestens 1 Subelement Sequenz Alternative Klammern (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 23 Attribut-Deklarationen in DTDs <!-- DTD xmlbsp2d.dtd zum Beispiel xmlbsp2d.mxl --> <!ELEMENT Angebote (Liefert)* > beliebig viele <!ELEMENT Liefert (EMPTY) > leer <!ATTLIST Liefert wer CDATA #REQUIRED teil CDATA #REQUIRED > Wurzelelement Attribut Typ (char data) Muss kommen <Angebote> <Liefert wer= vobis teil= pc500 > </Liefert> <Liefert wer= IBM teil= pc600 / > </Angebote> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 24 Prof. Dr. Stefan Böttcher 12
ID und IDREF <person pnr= 12345 > <bei pid= p1 /> <bei pid= p2 /> </person> <!-- DTD Ausschnitt zum Element person --> <!ELEMENT person (bei)* > <!ATTLIST person pnr PCDATA ID #REQUIRED> <!ELEMENT bei (EMPTY) > <!ATTLIST bei pid PCDATA IDREF #REQUIRED> <projekt p_id= p1 > <mit persid= 12345 /> <mit persid= 6789 /> </person> <projekt p_id= p2 > <mit persid= 12345 /> </person> <!-- DTD Ausschnitt zum Element projekt --> <!ELEMENT projekt (mit)* > <!ATTLIST projekt p_id PCDATA ID #REQUIRED> <!ELEMENT mit (EMPTY) > <!ATTLIST mit persid PCDATA IDREF #REQUIRED > (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 25 ID und IDREFS <person pnr= 12345 pids= p1 p2 /> <!-- DTD Ausschnitt zum Element person --> <!ELEMENT person (EMPTY) > <!ATTLIST person pnr PCDATA ID #REQUIRED pids PCDATA IDREFS #REQUIRED > <projekt p_id= p1 persids= 12345 6789 /> <projekt p_id= p2 persids= 12345 /> <!-- DTD Ausschnitt zum Element projekt --> <!ELEMENT projekt (EMPTY) > <!ATTLIST projekt p_id PCDATA ID #REQUIRED persids PCDATA IDREFS #REQUIRED > (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 26 Prof. Dr. Stefan Böttcher 13
Wireless Markup Language (WML) Ziel: Daten aus dem Internet an das Handy übertragen Quelle: http://www.nokia.de/ (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 27 Ziel von WML / gelöste Probleme Ziel: Daten aus dem Internet an das Handy übertragen Allgemeine Probleme: nur wenige Zeilen/Spalten darstellbar Bilder ungeeignet Probleme von HTML: nicht (speziell) für kleine Displays ausgelegt nicht für Übertragung optimiert effizientes Parsen nicht möglich (zu vage Syntax) (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 28 Prof. Dr. Stefan Böttcher 14
Einordnung von WML WML basiert auf XML strenge Syntax => effiziente Verarbeitung möglich ähnlich HTML, aber nicht HTML-kompatibel auf Binärcode reduzierbar übertragbar über HTTP oder über Wireless Application Protocol (WAP) (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 29 Übertragungsprotokolle für WML drahtlos Gateway Festnetz Web- Server WAP HTTP WML binary WML WML (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 30 Prof. Dr. Stefan Böttcher 15
Wireless Markup Language (WML) Vordefinierte Semantik, ähnlich HTML <p>... </p> für Absatz <br /> für Zeilenumbruch... Syntaxregeln wie bei XML-Tags alle Tags müssen geschlossen werden (<tag>... </tag> oder <einzeltag />) Kreuzverschachtelung nicht erlaubt ( <tag1> <tag2>... </tag1> </tag2> ) Tag-Attribute müssen in Anführungszeichen stehen ( z.b. <p align="center"> ) case-sensitiv ( <tag> ungleich <Tag> ) Syntax definiert in http://www.wapforum.org/dtd/wml13.dtd (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 31 Wireless Markup Language (WML) <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/dtd/wml13.dtd"> <wml> <card id="karte1"> <p>text</p>... <onevent...>...</onevent>... </card> <card id="karte2">... </card> Deck unterteilt in cards ereignisorientierte Sprungbefehle zu einer anderen Karte </wml> (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 32 Prof. Dr. Stefan Böttcher 16
Beitrag / Nutzen von WML Card 1,..., Card n WAP Deck : Card 1,..., Card n Gateway HTTP Web- Server WML binary WML WML Übertragen werden Decks (wenige), sichtbar werden auf dem Handy Cards (mehrere) spart Übertragungskosten, erfordert WML-Interpreter auf Handy (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 33 Generierung von WML aus XML WML Deck : Card 1,..., Card n WML XML Web-Server PDF HTML HTML XML-Quellen werden mit auf dem Server in unterschiedliche Zielformate umgeformt, die verschickt werden: WML, PDF, HTML,... (Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher Folie 34 Prof. Dr. Stefan Böttcher 17