Extensible Markup Language (XML)


Einleitung

XML-Animation

HTML Beschränkungen

HTML Beispiel (1)

<HTML>
<HEAD>
<TITLE>Beispiel
       </TITLE>
</HEAD>
<BODY>
<H1>Überschrift</H1>
<P>Ein Paragraph 
mit Text ...</P>
</BODY>
</HTML>

HTML Beispiel (2)

<UL>
<LI>Eine ungeordnete 
<LI>Liste 
<LI>it verschiedenen 
<LI>Punkten
</UL>

Komplexität von SGML

SGML Beispiel (1)

<!ELEMENT COMPANY - - (NAME?,PRODUCT?) >
<!ELEMENT NAME - O (#PCDATA)>
<!ELEMENT PRODUCT - - (ITEM*)>
<!ELEMENT ITEM - O (#PCDATA)>
<!ENTITY ... >
<!ATTLIST COMPANY
  type (non-profit | limited | corp) >

SGML Beispiel (2)

<COMPANY type=corp >
<NAME>All you want
<PRODUCT>
<ITEM>Apartments
<ITEM>Automobiles
<ITEM>...
</PRODUCT>
</COMPANY>

Ansatz von XML

XML im Beispiel

<p secret="false">This sentence is in the content of an element whose type is "p"; the content is found between the start-tag and the end-tag. The paragraph has an attribute named "secret" whose value is "false". <IMG SRC='icon.jpg'/> is an empty element, distinguished by the fact that it ends with "/>".</p>

<!doctype book SYSTEM "book.dtd"
[<!entity toc SYSTEM "toc.xml">
 <!entity chap1 SYSTEM "d/c1.xml">
]>
<book>
<head>&toc;</head>
<body>
&chap1; &chap2;
</body></book>
<!doctype eg 
[<!entity xml 
 "Extensible Markup Language">
]>

<eg>The new &xml; standard is fully internationalized; the following are all examples of the digit "1": &#49; (in ASCII), &#x0661; (in Devanagari), &#x0967; (in Arabic), and &#x0d67; (in Malayalam).</eg>

XML "Helfer"


XML Sprachkonstrukte

Unterschiede zu HTML

XML Dokument

Dokumentbeschreibung

Inhaltsbeschreibung, Content Model Spec

Attributbeschreibung

 

Beispiel

Beschreibung des Dokumententyps

<?xml encoding="US-ASCII"?>

<!ELEMENT personals (person)+>
<!ELEMENT person (name,email*,url*,link?)>
<!ATTLIST person id ID #REQUIRED>
<!ELEMENT family (#PCDATA)>
<!ELEMENT given (#PCDATA)>
<!ELEMENT name (#PCDATA|family|given)*>
<!ELEMENT email (#PCDATA)>
<!ELEMENT url EMPTY>
<!ATTLIST url href CDATA #REQUIRED>
<!ELEMENT link EMPTY>
<!ATTLIST link
  manager IDREF #IMPLIED
  subordinates IDREFS #IMPLIED>

XML Dokument entsprechend dieser DTD

<?xml version="1.0"?>
<!DOCTYPE personals SYSTEM "personal.dtd">

<personals>
  ...
  <person id="K.TAMURA">
    <name>
      <family>TAMURA</family> 
      <given>Kent</given>
    </name>
    <!-- This URL is mail address.-->
    <url href="mailto:kent@trl.ibm.co.jp"/>
    <url href="mailto:tkent@jp.ibm.com"/>
    <link manager="H.MARUYAMA"/>
  </person>

</personals>

XML Helfer

Namensräume

Erleichtert die Verwendung verschiedener DTDs im gleichen Dokument.

 

XLink

Am Anfang XLL, jetzt aufgeteilt in XLink und XPointer.

Verhaltensattribute von Links

Beispiel von oben

<X xml:link="group" {oder "extended"} >
<L xml:link="document" {oder nichts}
   ROLE="TR" TITLE="Übersetzung" 
   SHOW="NEW" HREF="/cgi-bin/xlate?term=Verweis" />
<L xml:link="document"
   ROLE="Kontext" TITLE="Links im Kontext" 
   SHOW="REPLACE" HREF="link-spec.html#verweis" />
<L xml:link="document"
   ROLE="Bild" TITLE="Links in Bildern" 
   SHOW="EMBED" HREF="bild.gif" />
<L xml:link="document"
   ROLE="Tutorium" TITLE="Link Tutorium" 
   SHOW="NEW" HREF="xml-tut.html#ID(def-link)..DITTO,NEXT(3,P)" />
Verweise
</X>

mit der DTD

<!ELEMENT X (#PCDATA|L)* >
<!ELEMENT L EMPTY >

<!ATTLIST X xml:link CDATA #FIXED "group" >
<!ATTLIST L xml:link CDATA #FIXED "document" >

XPointer

Verweise auf Teile/Fragmente von Dokumenten.

Steht in enger Beziehung zu DOM.

Beispiele

root().child(1)
       child(2)

child(3,DIV1).child(2,DIV2).child(-9,P)

id(xyz).span(child(3),child(5))

http://host/path/file#child(2,CHAP).child(3,SEC)
 

XSL Style Sheets

CSS:
  EM { font-family: roman }
XSL to CSS:
  <xsl:template match='em'>
    <css:chunk font-family="roman">
    <xsl:process-children/>
    </css:chunk>
  </xsl:template>
XSL to LaTeX:
  <xsl:template match='em'>
    <xsl:text>{\em </xsl:text>
    <xsl:process-children/>
    <xsl:text>}</xsl:text>
  </xsl:template>

Beispiel eines XML Dokuments

Konversion nach HTML und LaTeX mit Koala

 

XSL Struktur

Aus Knoten (nodes) eines Dokuments werden Ergebnisknoten gebildet.

Knoten sind: Elemente, Attribute, etc.

Patterns, Muster in Template-match

 

Erzeugen von Knoten in Templates

 

Verarbeitung in Templates

 

Formatting Objects

Zunächst für Online und Druck-Dokumente.

Spezifikation der grundlegenden Elemente, ohne die Details einer Implementierung festzulegen.

Formatierung durch areas (wie box in CSS) und spaces (Zwischenräume).

elementare Objekte:

Attribute angelehnt an CSS

 

Ausblick

XML Tools

XML Anwendungen

Stand der Entwicklung

2. Februar 1999


© Universität Mannheim, Rechenzentrum, 1998/1999.