of {$slidecount} ½ {$title}, {$author}

Lecture 07

Prof. Dr.-Ing. S. Gössner

FH Dortmund - University of Applied Sciences

Inhalt

XML - Definition

XML ist eine standardisierte, erweiterbare Auszeichnungssprache zur Erstellung maschinen- und menschenlesbarer Dokumente.

XML wird als universelles Datenformat bezeichnet, das insbesondere nicht auf Webdokumente beschränkt ist.

Historie

Was ist XML

XML ist …

Einführendes Beispiel

Ein XML-Dokument wird üblicherweise von einer Software(komponente) verarbeitet. Diese bezeichnet man üblicherweise als den XML-Parser.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Recipe name="bread" prep_time="5 mins" cook_time="3 hours">
  <title>Basic bread</title>
  <ingredient amount="3" unit="cups">Flour</ingredient>
  <ingredient amount="0.25" unit="ounce">Yeast</ingredient>
  <ingredient amount="1.5" unit="cups">Warm Water</ingredient>
  <ingredient amount="1" unit="teaspoon">Salt</ingredient>
  <Instructions>
    <step>Mix all ingredients together, and knead thoroughly.</step>
    <step>Cover with a cloth, and leave for one hour in warm room.</step>
    <step>Knead again, place in a tin, and then bake in the oven.</step>
  </Instructions>
</Recipe>

[Quelle: Wikipedia]

XML-Deklaration

Muss immer am Anfang eines XML-Dokuments stehen

<?xml version="1.0" 
     [encoding="{Zeichensatz}"] 
     [standalone="{yes|no}"] ?>
version
im Normalfall "1.0" (obligatorisch);encoding: verwendeter Zeichensatz, UTF-8 voreingestellt, z.B. ISO-8859-1, westeuropäischer Zeichensatz (optional)
standalone
yes: keine/interne DTD verfügbar
no: externe DTD notwendig
(optional)

Verarbeitungsanweisung

Verarbeitungsanweisungen (Processing Instructions) sind Direktiven an den XML-Parser, spezielle Verarbeitungsschritte an bestimmte Programme/-komponenten zu delegieren.

Syntax

<?pi-name [attribute1] ... [attributeN]?>

Beispiele

<?xml-stylesheet type="text/css" href="print.css"?>

<?xml-stylesheet type="text/xsl" href="sample.xsl" ?>

<?xul-overlay href="chrome://test/content/myOverlayxul"?>

Obwohl die XML-Deklaration dieselbe Syntax besitzt, ist diese keine Verarbeitungsanweisung.

Kommentare

Kommentare sind Notizen für den Autor des XML-Dokuments oder für andere menschliche Leser (in Ausnahmefällen für verarbeitende Software), die vom XML-Parser überlesen wird.

Syntax

<!-- Kommentar Text -->

CDATA - Anweisung

CDATA-Anweisungen werden vom XML-Parser als nicht weiter zu untersuchender Block von Zeichendaten (character data) gehandhabt.

Syntax

<![CDATA[ Zeichenfolge ]]>

Beispiel

<raw-data>
  <![CDATA[ a > b && c < d ]]>
</raw-data>

Spezielle Zeichen

Gewisse Zeichen, die in XML-Dokumenten eine besondere Bedeutung haben, müssen etwas anders geschrieben werden:

ZeichenNotation in XML
< &lt;
> &gt;
& &amp;
" &quot;
' &apos;

Elemente

Ein XML-Dokument besteht aus genau einem Wurzelelement (root element).

Syntax

<element [attr1="value1"] ... [attrN="valueN"]>
  content
</element>

XML-Elemente bestehen aus …

Elementinhalt

Der Inhalt von Elementen kann …

unstrukturiertes Element

Syntax: <Name [Attribut]*>PCDATA</Name>

Beispiel

<paragraph id="p5">
  some text. some text. some text. some text. some text. 
  some text. some text. some text. some text. some text.
</paragraph>

strukturiertes Element

Syntax: <Name [Attribut]*>Element+</Name>

Beispiel

<section level="2">
  <subsection> some text. some text. </subsection>
  <subsection> some other text. </subsection>
</section>

semistrukturiertes Element

Syntax: <Name [Attribut]*>[PCDATA|Element]+</Name>

Beispiel

<paragraph>
  some text. some text. some text. some text. some text. 
  some text. some text. some text. some text. some text.<section>
  <section>
    <subsection> inner text. inner text. </subsection>
    <subsection> more inner text. </subsection>
  </section>
  some other text. some other text. some other text. 
</paragraph>

leeres Element

Syntax: <Name [Attribut]* />

Beispiel

<br/>
<image src="smiley.png" />
<date y="2005" m="feb" d="23" />

Attribute

Element oder Attribut

Wann also Attribute und wann Elemente verwenden?

<student name="smith" firstname="eric" matnr="123456789" />

oder

<student>
  <name>smith</name>
  <firstname>eric</firstname>
  <matnr>123456789</matnr>
</student>

Element oder Attribut (2)

Regeln für wohlgeformte Elemente

Ein nichtvalidierender Parser prüft ein XML-Dokument auf Wohlgeformtheit (wellformed document).

  1. Jedes Anfangs-Tag muss ein zugehöriges Ende-Tag haben.
  2. Elemente dürfen sich nicht überlappen.
  3. XML-Dokumente haben genau ein Wurzel-Element.
  4. Elementnamen müssen bestimmten Namenskonventionen entsprechen.
  5. XML beachtet grundsätzlich Groß- und Kleinschreibung.
  6. XML belässt Formatierungen (white space) im Text.
  7. Ein Element darf niemals zwei Attribute mit demselben Namen haben.

Namenskonventionen

XML - Familie

XML ist die Mutter einer Familie standardisierter Markup Sprachen.

xml.gif

XHTML

XHTML ist eine Neuformulierung von HTML auf der Basis von XML.

Vorteile

XHTML - Dokument

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
          "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Titel</title>
    <meta name="herkunft" content="fh lippe & höxter"/>
    <link rel="stylesheet" type="text/css"
          href="/css/main.css" media="all" />
  </head>
  <body>
    Inhalt
  </body>
</html>

XHTML vs. HTML