• Keine Ergebnisse gefunden

Tutorium 2 XML-Technologien

N/A
N/A
Protected

Academic year: 2022

Aktie "Tutorium 2 XML-Technologien"

Copied!
9
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

XML-Technologien

Tutorium 2

Themen:

Musterlösung Ü1 Warum validieren?

DTD

von: Kain Kordian Gontarska

kainkordian@gmail.com

(2)

Warum validieren?

Wohlgeformtheit reicht nicht aus um konsistente Daten zu erzeugen.

Wir brauchen weitere Regeln, um fest zu legen wie die Dokumente konkret aussehen sollen.

<Items>

<Item id=“1“ name=“Snickers“/>

<item>

<Id>two</Id>

<name>Mars</name>

</item>

<ITEM ID=“3“><Name>MilkyWay</Name></ITEM>

</Items>

<Items>

<Item id=“1“ name=“Snickers“/>

<item>

<Id>two</Id>

<name>Mars</name>

</item>

<ITEM ID=“3“><Name>Milky-Way</Name></ITEM>

</Items>

<Items>

<Item id=“1“ name=“Snickers“/>

<Item id=“2“ name=“Mars“/>

<Item id=“3“ name=“Milky-Way“/>

</Items>

(3)

DTD – Document Type Definition

Ist ein Regelsatz zur Deklaration eines bestimmten Dokumententyps.

In einer DTD wird die Struktur eines Dokuments festgelegt.

Dient unter anderem dem Erstellen einer SGML/XML Anwendung (Bsp. HTML/XHTML)

DTD ist Bestandteil der XML-Spezifikation, obwohl DTD nicht in XML-Syntax gehalten ist.

DTD wird in XML zwischen XML-Deklaration und Wurzelelement eingebunden.

Entweder In XML-Dokument integriert oder Referenz auf externe

DTD

(4)

DTD - Deklaration

3 Möglichkeiten der Deklaration

– 1. Externe DTD

– 2. Externe publizierte DTD

– 3. Interne DTD

<?xml version=“1.0“ encoding=“UTF-8“?>

<!DOCTYPE RootName SYSTEM “myDTD.dtd“>

<RootName>Hello, Wordl!</RootName>

<?xml version=“1.0“ encoding=“UTF-8“?>

<!DOCTYPE RootName PUBLIC “URI“ “myDTD.dtd“>

<RootName>Hello, Wordl!</RootName>

<?xml version=“1.0“ standalone=“yes“?>

<!DOCTYPE RootName [<!ELEMENT RootName #PCDATA>]>

<RootName></Rootname>

(5)

DTD - Elemente

Wir deklarieren: Elemente, Attribute und Entitäten (Dabei verwenden wir eine der kontextfreien Grammatik ähnliche Syntax)

Elemente:

Können unterschiedliche Inhalte haben

Häufigkeit von Elementen lässt sich angeben. (Rekursion möglich, Verschachteln beliebig)

* (n>=0) ,? (n<=0) ,+ (n>0) und „nichts“ (n=1)

RegEx „|“

Sequenzen (Feste Reihenfolge)

<! ELEMENT myElem EMPTY>

<! ELEMENT myElem ANY>

<! ELEMENT myElem (#PCDATA)>

<! ELEMENT myElem (some, content)>

<! ELEMENT myElem (child+|myElem)>

<! ELEMENT myElem (child1 | child2)*>

<! ELEMENT myElem (child3,child4)?>

(6)

DTD - Attribute

Attribute werden Elementgebunden deklariert:

Attributtyp:

CDATA, Aufzählung, ,NMTOKEN, ID, IDREF

Attributbeschreibung:

#REQUIRED, #IMPLIED, # FIXED

<!ATTLIST myElem

AttrName1 AttrType1 AttrDescription1 AttrName2 AttrType2 AttrDescription2 ...

>

(7)

DTD – Interne DTD

DTD lässt sich direkt in XML-Dokument schreiben:

– <?xml version="1.0" encoding="UTF-8" standalone=“yes“?>

<!DOCTYPE BookStore [

<!ELEMENT BookStore (Book+)>

<!ELEMENT Book (#PCDATA)>

]>

<BookStore>

<Book/>

</BookStore>

(8)

DTD – Entitäten

In DTDs definierbare Abkürzungen für Zeichenfolgen

Wie &amp; für & oder &lt; für <

<!ENTITY author "Kain">

Auch um externe Definitionen in DTD zu importieren (Internal Entity):

– <!ENTITY % andereDTD SYSTEM

"meineAndereDTD.dtd">

Verwendung:

– <!ELEMENT someElement %andereDTD;>

(9)

DTD - Nachteile bzw. Wieso XML-Schema?

Nicht in XML-Syntax → eigener Parser notwendig

Sehr wenige Datentypen (Inhalt lässt sich zB. nicht auf Zahlen beschränken)

Keine eigenen Datentypen definierbar

Keine Vererbungshierarchien für Typen

Keine Namensräume: Es darf keine Namenskonflikte bei mehreren DTDs geben

Wenn Reihenfolge der Elemente nicht wichtig, müssen alle Permutationen definiert sein

<!ELEMENT CD ((Name, Interpret) | (Interpret, Name))>

Referenzen

ÄHNLICHE DOKUMENTE

Da Attribute nur durch ein Pr¨ afix einem Namensraum zugeordnet werden k¨ onnen, sind sie nicht namensraumeingeschr¨ ankt und liegen damit im Null-Namensraum.. (e) Das Attribut

Zwischenstands jeden Mittwoch (zwei Folien erlaubt). • dienstags:

Sowohl das shipTo- als auch das billTo-Element enthält immer ein Attribut type aus dem Namensraum http://www.w3.org/2001/XMLSchema-instance, jeweils mit dem Werten ipo:EU-Address

Das shipTo- und das billTo-Element einer gültigen Instanz kann entweder aus a) den Elementen name, street, city, und postcode oder aus b) den Elementen name, street, city, state

Das XSLT-Stylesheet soll nicht nur das obige XML-Dokument, sondern alle gültigen Instanzen des XML-Schemas document.xsd auf analoge Art und

Ein Projekt ist durch einen eindeutigen Namen, die zugehörige Arbeitgruppe, eine Kurzbeschreibung (String) sowie die Mitarbeiter des Projektes beschrieben.. Eine Arbeitsgruppe

• Mit Document Type Definitions (DTDs) können aber spezielle Auszeichnungssprachen mit konkreten Tags definiert werden:. • werden Anwendungen von

Markus Luczak-Rösch Freie Universität Berlin Institut für Informatik2. Netzbasierte