Softwareentwicklung mit Komponenten XML Extensible Markup Language TU Berlin im Wintersemester 2000/2001 Von Akin Kurdoglu Betreuer M.Bittner, W. Koch, Prof. Dr. S. Jähnichen 1
Gliderung - Definition von SGML, HTML, XML, DTD -XSL XML Stylesheet Language - JAVA APIs - DOM Document Object Model - Ein Beispiel 2
SGML - Standardized Generalized Markup Language - Metasprache für Auszeichnungssprachen (Markup Languages), wie z.b. HTML - Eine Document Type Definition (DTD) spezifiziert eine Sprache durch Festlegung syntaktischer Regeln (ähnlich einer Grammatik) - Syntaktische Elemente (u.a.): Tags <TITLE>Much ado about nothing</title> Attribute von Tags <BOOK author=shakespeare>... 3
HTML - HyperText Markup Language - Einbetten der Markup-Befehle in jede Html Datei <DOCTYPE HTML PUBLIC -//W3C//DTD HML 3.2 Final//EN > <HTML> <HEAD> <TITLE>Hallo World</TITLE> </HEAD> <BODY> <h1>hello World</h1> </BODY> </HTML> 4
XML The Extensible Markup Language (XML) describes a class of data objects called XML documents which are stored on computers, and partially describes the behavior of programs that process these objects. XML is a subset or restricted form of SGML, the Standard Generalized Markup Language (ISO 8879). The goal of XML is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. XML is a method for putting structured data in a text file XML looks a bit like HTML but isn't HTML XML is text, but isn't meant to be read 5
XML Eine Empfehlung von W3C (World Wide Web Konsortium Die Designziele für XML sind: - XML ist direkt über dem Internet verwendbar. - XML unterstützt eine breite Vielzahl von Anwendungen. - XML ist mit SGML kompatibel. - Es ist einfach, Programme zu schreiben, die Prozeß- XML dokumentiert. - Die Zahl Zusatzeinrichtungen in XML soll zum absoluten Minimum gehalten werden, auf Null einstellen ideal. -XML- Dokumente sollten menschlich-lesbar und recht klar sein. -Das XML- Design sollte schnell vorbereitet werden. - Das Design von XML ist formal und kurz. -XML- Dokumente sind einfach zu erstellen. 6
Markup, Text, Element Markup beschreibt das Struktur von Dokument Text ist Dokumentinhalt <AUTOR> Günter Grass </AUTOR> <BUCH> <TITEL> Die Blechtrommel </TITEL> <AUTOR> Günter Grass </AUTOR> </BUCH> Tags and elements <p> <person>tony Blair</person> <function>prime Minister</function> <country>great Britain</country> </p> 7
Wohlgeformtheit - Genau eine Wurzel des Dokumentbaumes (Root-Element) - Korrekte Verschachtelung von Tags - Attributwerte immer in Anführungszeichen - Zu jedem Tag muß es ein End-Tag geben <doc> <title>xyz</title> <author>abc</author> <inhalt>klm</inhalt> </doc> Gültigkeit (optional): - Syntaktische Korrektheit in Bezug zu einem Dokumenttyp - Dokumenttyp: Menge aller gültigen Dokumente zu einer Syntaxspezifikation 8
DTD DokumenTtype-Definition -- In einer DTD werden Struktur-merkmale für Dokumente festgelegt - Die DTD liefert Vorgaben, - wie Elemente ineinander verschachtelt werden können - welche Attribute zu welchen Elementen gehören und welche Attributwerte jeweils zulässig sind. DTDs haben diese beiden Hauptfunktionen: - Sie sagen den Verfassern von Dokumenten, welche Strukturen es in den Dokumenten geben muß. -- Und den Programmierern sagen sie, auf was ihre Programme - "sich gefaßt machen müssen". 9
XML und DTDs <!ELEMENT Telefonliste (Angestellter*)> <!ELEMENT Angestellter> <!ATTLIST Angestellter name CDATA #REQUIRED> <!ATTLIST Angestellter typ CDATA #REQUIRED> <!ATTLIST Angestellter telefon CDATA #REQUIRED> 10
XML und DTDs <?xml version= 1.0?> <!DOCTYPE Telefonliste SYSTEM liste.dtd > <Telefonliste> <Angestellter name= Prof. Dr. H. Weber typ= Hochschullehrer nummer= 31423555 /> <Angestellter name= Dr. R. Kutsche typ= WM nummer= 31423557 /> <Angestellter name= Dipl.-Inform. F. Bübl typ= WM nummer= 31421154 /> </Telefonliste> 11
XML Stylesheet Language XSL - In der XSL-Datei stehen die Anweisungen, wie die Elemente, die in der XML- Datei stehen, dargestellt werden - XSL ist eine Transformationssprache, die eine XML-Datei in eine andere Sprache transformiert XSL XML Transformation Engine (XSL Processor) HTML (or text or XML) 12
<?xml version= 1.0?> <library> <book> <title>java in a Nutshell</title> <author>david Flanagan</author> <company>o Reilly</company> <isbn>1-56592-262-x</isbn> </book> </library> XML <html> <?xml version= 1.0?> </html> <xsl:stylesheet xmlns:xsl="http://www.w3.org/tr/wd-xsl"> <xsl:template match= /library"> <html> <head><title>library</title></head> <body><xsl:apply-templates/></body> </html> </xsl:template> <xsl:template match= /library/book"> <h3><xsl:value-of select= title"/></h3><br/> <b>author : </b><xsl:value-of select= author /><br/> <b>company : </b><xsl:value-of select= company /><br/> <b>isbn : </b><xsl:value-of select= isbn /><br/><br/> </xsl:template> </xsl:stylesheet> XSL <head><title>library</title></head> <body> <h3>java in a Nutshell</h3><br/> <b>author : </b>david Flanagan<br/> <b>company : </b>o Reilly<br/> <b>isbn : </b>1-56592-262-x<br/><br/> </body> Html 13
JAVA -APIs Wieso braucht man die Java-APIs? - um Xml Dokument durch Java Bearbeiten zu können. - man braucht viel Zeit für solche Implementierung. - Die W3C hat deswegen Xml-Dokument-Readers oder Parsers realisiert - Es gibt frei erhältliche XML-Parser von IBM, SUN und Datachannel - Die Parsers sind in Java geschrieben und man kann sie einfach benutzen. 14
Die wichtigsten JAVA APIs -Dom Document Object Model -SAX Second generation of the Simple API for XML -JAXP Java API for XML Parsing -JDOM Java Document Object Model 15
Dom Document Object Model - Erster Standart von W3C für XML Parsing - WML-Dokument wird in ein XML Document Object convertiert. - Dieses Document Object beinhaltet Xml-Datei als ein Baum. - Dieser Baum kann bearbeitet werden. - Dabei handelt es sich nur um einen Satz von Schnittstellen - Für die praktische Verwendung benötigt man eine DOM-Implementierung 16
17
18
SAX Second generation of the Simple API for XML - Neben Dom ist zweiten wichtigsten Schnittstelle zur XML-Verarbeitung - Der Schwerpunkt des API liegt auf der Ansteuerung des XML-Parsers - im gegensatz zu Dom ist kein offizieller W3C Standart JAXP Java API for XML Parsing - Es umfasst DOM und SAX JDOM Java Document Object Model - Zel ist, ein kompaktes API bereitzustellen, das das beste von DOM nd SAX in sich vereint 19
Context Server I-centric Service Profile Analyzer Profile Generator Context Profile Relation Profile Profile Manager 2 Context Interpreter Profile Analyzer Service Execution 4 History Profile 3 Profile Generator 1 5 Things of Interest 20