DTD-Dateiformat
(Adressen.dtd)
XML-Schema-Dateiformat
(Adressen.xsd)
Einführungsbeispiel
Darstellung der Grundlagen für
XML/XSL/CSS siehe Anwendungsbeispiel
XML = Extensible Markup Language
plattformunabhängiges Datenformat,
Datenbaum mit frei definierbaren „Tags“ (z.B. <Adresse>), Hinweis: Excel/
Access XP importieren/exportieren XML-Format
XSLT = Extensible Stylesheet Language Transformation
ermöglicht Transformierung der
XML-Inhalte in eine beliebige andere Darstellungssprache (z.B. HTML, PDF,
ASCII, CSV). Transformierung erfolgt dabei entweder implizit durch den Browser
beim Anzeigen einer XML-Datei, die einen Verweis auf die für die Transformation
zu verwendende XSL-Datei enthält oder durch expliziten Aufruf eines
XSL-Prozessors (z.B. msxml aufgerufen durch Zusatztool msxls.exe).
CSS = Cascading Style Sheets
definiert optische Eigenschaften für HTML-Elemente,
die in HTML dann z.B. über die einfache Zuweisung des class-Attributes
verwendet werden können.
DTD = Document Type Definition
definiert die für eine XML-Datei
vorgesehenen Tags (siehe Beispiel unten)
XML Schema
Weiterentwicklung der DTD, erlaubt
genauere Definition der Tags (siehe Beispiel unten)
XPath
Sprache zur Angabe des Pfades für den
Zugriff auf ein einzelnes XML-Element oder Attribut, wird z.B. innerhalb von
XSLT-Code verwendet.
Beispiele: “Memo/DayOfWeek“, „Memos/EachDay/Memo/@type“. Unterstützt auch Navigation zu Geschwister-, Kind- und
Elternelementen (z.B. „EachDay/Memo/following-sibling::Memo/Time“)
XML-Parser
unterstützen in der regel folgende Modi:
SAX-Modus (Simple
API for XML)
ereignisgesteuert (Überschreiben vordefinierter Handlerfunktionen notwendig),
schneller und einfacher Zugriff, nachträgliche Manipulation der Daten nicht
möglich
DOM-Modus (Document Object Model)
erzeugt einen Dokumentenbaum des gesamten XML-Inhaltes im Speicher, alle
Inhalte können geändert und wieder als XML abgespeichert werden.
Zugriffsmethoden (NodeList tagList = getElementsByTagName(), Node tag =
tagList.getItem(i); String nodeName = tag.getNodeName(); String inhalt = tag.getFirstChild().getNodeValue())
SVG (Scalable Vector Graphics)
ermöglicht es Vektorgrafiken für das Internet verfügbar zu machen.
Viewer für SVG-Plugin zB. http://www.adobe.com/svg/viewer/install/beta.html
XHTML (Extensible HyperText Markup Language)
ist kein neues HTML, sondern die Neudefinition von HTML 4.0 auf der Basis von
XML. Strengere Syntaxprüfung (Abschlusstags, alle Tagnamen kleinschreiben,
Attributwerte in Anführungszeichen, Script-Sequenzen über
<script><![CDATA[ ... ]]>
einbetten). Wird langfristig das reguläre HTML ersetzen!
wohlgeformtes (well formed) XML-Dokument
es existiert keine DTD, aber zu jedem Tag gibt es ein zugehöriges End-Tag. in
vielen Fällen ausreichend, schneller zu erstellen
gültiges (valid) XML-Dokument
es existiert eine DTD, der Inhalt gehorcht den in DTD definierten Regeln; mehr
Aufwand bei der Erstellung, dafür vollständiger Überblick über verfügbare
(optionale und verbindliche) Attribute vorhanden.
XML-Dateiformat
|
|
|
|
<?xml version=”1.0” ?> <!--Das ist ein Kommentar--> <!--Optional:
Bezug auf eine externe DTD--> <!-- Wahlweise kann das
Rootelement auch mit Bezug zu einem XML-Schema definiert
werden --> <Adressen xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance“
xsi:noNamespaceSchemaLocation=“Adressen.xsd“> <!—Im einfachsten Fall
gibt es weder DTD noch Schema --> <Adressen> // einziges Wurzelelement <Adresse> <Strasse>Buchenweg</Strasse>
<HausNr>15</HausNr>
<Telefon art=“privat“>
// art ist ein Attribut des Tags Telefon
08088/12345
</Telefon> </Adresse>
<Adresse>
<Strasse>Feldgasse</Strasse>
<HausNr>4</HausNr> </Adresse> </Adressen> |
DTDs können sowohl direkt in der XML-Datei als auch als externe Datei (siehe unten) verwaltet werden.
DTD-Dateiformat
(Adressen.dtd)
|
|
|
|
<!ELEMENT Adressen(Adresse)+> <!ELEMENT
Adresse(Strasse, HausNr, Telefon?)> <!ELEMENT Strasse
(#PCDATA)> <!ELEMENT
HausNr (#PCDATA)> <!ATTLIST Strasse art (privat|buero) „privat“> <!ELEMENT Telefon (#PCDATA)> <!ATTLIST Telefon art
(privat|buero) #REQUIRED> |
Das Wurzelelement „Adressen“ enthält beliebig viele Datensätze vom Typ „Adresse“ (jedoch mindestens 1). Ein Datensatz vom Typ Adresse enthält die untergeordneten Tags Strasse, HausNr, Telefon. #PCDATA (Parsed Character Data) bezeichnet normale Zeichen (Ziffern, Buchstaben). Das Tag Telefon kann auch weggelassen werden. Wird Telefon angegeben, so muss stets für das Attribut „art“ einer der beiden Werte „privat“ oder „buero“ gesetzt sein. Beim Eintrag für Strasse wird automatisch das Attribut „privat“ angenommen. Man muss das Attribut nur noch dann angeben, wenn man einen Eintrag „buero“ definieren will.
XML-Schema-Dateiformat
(Adressen.xsd)
|
|
|
|
<?xml version=”1.0” encoding=“iso-8859-1“?> <xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema“> <xsd:element name=“Adressen“>
<xsd:complexType> <xsd:sequence> <xsd:element
name=“Adresse“ maxOccurs=“100“>
<xsd:complexType>
<xsd:sequence> <xsd:element name=“Strasse“ type=“TypShortText”/>
<xsd:element name=“HausNr“ type=“xsd:nonNegativeInteger”/> <xsd:element name=“Telefon“ type=”xsd:string” minOccurs=”0”> <xsd:attribute name=”art” type=”TypArt”/>
<xsd:simpleType name=”TypArt”> <xsd:restriction
base=”xsd:string”> <xsd:enumeration
value=”privat”/> <xsd:enumeration
value=”buero”/> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:simpleType name=”TypShortText”> <xsd:restriction
base=”xsd:string”> <xsd:maxLength value=50”/> </xsd:restriction> </xsd:simpleType> </xsd:element> </sd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> |
Es sind maximal 100 Adresseinträge erlaubt (maxOccurs). Die Angabe von Telefon kann entfallen (minOccurs). Typen können spezifisch definiert werden (maximale Zeichenlänge, Aufzählungswerte)
XMLSem |
Michael Seeboerger-Weichselbaum |
ExampleOnline |
|
XMLNews |
|
SelfHTML |
vollständige
Referenz lokal, http://www.selfhtml.org/
(z.B. über Suche „XSL“) |