Grundlagen & DTD Flashcards

1
Q

Was sind die Bestandteile eines XML-Dokuments?

A

Bestandteile eines Dokuments sind Inhalt, Struktur und Layout

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Für welche beiden Haupteinsatzgebiete wird XML heute genutzt?

A

XML hat heute zwei Haupteinsatzgebiete:
Zum einem ist mit XML eine layout-unabhängige Beschreibung von Dokumenten möglich und somit kann XML als Ausgangsformat für Single-Source-Publishing verwendet werden.
Das zweite Einsatzgebiet von XML ist der Einsatz als universelles Datenaustauschformat.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was versteht man unter Single-Source-Publishing

A

Dokumente sollen oft für mehrere Medien bereitgestellt(z.B. Druck / Webseite), sowie adressatengerecht prodouziert werden (Unterlagen für Studenten / Dozenten). Jedes Dokument einzeln herzustellen wäre wenig effektiv, daher sollen alle Dokumente aus einer Quelle und möglichst automatisch generiert werden.
Dieser Prozess wird als Single-Source-Publishing bezeichnet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was bezeichnet man als Inhalt eines XML-Dokuments?

A

Als Inhalt bezeichnet man die zu vermittelnde Information, oft in Textform, ergänzt durch bilder und immer häufiger auch durch multimediale Elemente, wie Ton und Video.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was bezeichnet man als Struktur eines XML-Dokuments?

A

Als Struktur wird die Aufteilung und Abfolge der Inhaltsstücke bezeichnet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was bezeichnet man als Layout eines XML-Dokuments?

A

Das Layout dient zur Visualisierung des Inhalts und der Struktur. Es wird durch eine entsprechende Formatierung ausgedrückt. Z.b. werden Überschriften anders dargestellt als Inhaltstext.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was muss beachtet werden, wenn ein XML-Dokument für ein anderes Medium publiziert wird?

A

Beim Publizieren für ein anderes Medium genügt es nicht die Publikation in ein neues Format zu konvertieren. Auch medienspezifische Besonderheiten des Zielmediums bezüglich Struktur und Layout müssen berücksichtigt werden.
Damit sich dies automatisieren lässt, müssen die Strukturinformationen vorhanden sein und konsequent umgesetzt werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Warum ist es wichtig, Struktur und Inhalt vom Layout zu trennen und wie wird das ermöglicht?

A

Damit ein automatischer Single-Source-Publishing-Prozess möglich ist, müssen Struktur und Inhalt vom Layout getrennt sein. Dies wird ermöglicht, indem Inhalte nicht mit Formatierungsinformationen, sondern mit Strukturinformationen versehen werden. Das heisst eine Überschrift wird als “Überschrift” ausgewiesen und nicht nur durch eine andere Schriftgrösse und Schriftschnitt dargestellt.
Formatierungsinformationen für die Struktur wird davon getrennt gespeichert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was wird in einer Strukturdefinition festgelegt?

A

In einer Strukturdefinition (Dokumentgrammatik) wird festgelegt welche Struktur die Dokumente haben.
Die einzelnen Strukturelemente werden mit dem Markup ausgezeichnet.
Ein Dokument, das einer bestimmten Strukturdefinition entspricht wird als Dokumentinstanz bezeichnet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was sind die Vorteile (2) der Strukturdefinition?

A
  • Es kann per Programm überprüft werden, ob die Dokumente einer vorgegebenen Struktur entsprechen. Dies wird als Validierung bezeichnet.
  • Durch die logische Strukturierung werden weitere Anwendungen der Dokumentenverarbeitung unterstützt. Z.B. kann die Kapitelnummer berechnet oder ein Inhaltsverzeichnis erstellt werden.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welche Vorteile hat die Trennung der Formatierungsinformationen vom Inhalt und die Auslagerung in Stylesheets?

A
  • Verschiedene Dokumente können mit demselbem Stylesheet einheitlich formatiert werden
  • Ein Dokument kann durch Kombination mit verschiedenen Stylesheets passend zum Anwendungszweck formatiert werden
  • Es kann arbeitsteilig und parallel gearbeitet werden. Ein Mitarbeiter ist für Texte, ein anderer für die Stylesheets zuständig.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist Standard Generalized Markup Language (SGML)?

A

Standard Generalized markup Language (SGML) ist eine Metasprache zur Beschreibung von Auszeichnungssprachen. Mit ihr ist es möglich eigene Markup-Sprachen zu definieren.
Die bekannteste sprache, die mit SGML definiert wurde, ist HTML.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was wird in der Document Type Definition (DTD) beschrieben?

A

In der Document Type Definition (DTD) wird die Strukturdefinition beschrieben. Durch die DTD werden die Markup Tags festgelegt, deren Namen so gewählt werden, dass sie eine semantische Bedeutung haben. Der Name des Tags gibt somit bereits Informationen über den Inhalt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Warum eignet sich XML als universelles Datenaustauschformat?

A

Ein format, welches Informationen durch Auszeichnungselemente (Tags) Kennzeichnet, eignet sich gut als universelles Datenaustauschformat zwischen Anwendungen, da es menschen- und maschinenlesbar ist und beliebig komplexe, hierarchische Strukturen abbilden kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welche zehn Ziele wurden beim Entwurf von XML verfolgt?

A
  1. XML soll sich im Internet auf einfache Weise nutzen lassen.
  2. XML soll ein breites Spektrum von Anwendungen unterstützten.
  3. XML soll zu SGML kompatibel sein.
  4. Es muss einfach sein, Programme zu schreiben, die XML-Dokumente verarbeiten
  5. Die Anzahl optionaler Merkmale in XML soll minimal sein, Idealerweise Null.
  6. XML-Dokumente sollen für Menschen lesbar und angemessen verständlich sein
  7. Der XML-Entwurf soll zügig abgefasst werden
  8. Der entwurf von XML soll formal und präzise sein
  9. XML-Dokumente sollen leicht zu erstellen sein
  10. Die Knappheit von XML ist von minimaler Bedeutung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist eine XML-Anwendung? 5 Beispiele

A

Eine Auszeichnungssprache, die mit XML-definiert worden ist, heisst XML-Anwendung. Eine XML Anwendung konzentriert sich immer auf ein bestimmtes Problemfeld.

Beispiele
1. Extensible Hypertext markup Language (XHTML) als Neuformulierung von HTML mit XML
2. Scalable Vector Graphics (SVG) für die Erstellung von zweidimensionalen Vektorgrafiken
3. Mathematical Markup Language (MathML) zur Darstellung mathematischer Formeln
4. XForms zur Darstellung elektronischer Formulare
5. Synchronized Multimedia Integration language (SMIL) zur Beschreibung von zeitsynchronisierten, multimedialen Inhalten
6. DocBook zur Erstellung von Büchern, Artikeln und Dokumentationen im Bereich der Technischen Dokumentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wie sollte ein XML-Dokument aufgebaut sein?

A

Jedes XML-Dokument sollte mit einem Prolog beginnen. Dieser enthält die XML-Deklaration, welche Informationen (insbesondere XML-Version und Kodierung) für den Parser angibt.
Optional können Verarbeitungsanweisungen und der Verweis auf eine DOCTYPE-Definition oder ein XML-Schema angegeben werden.
Darauf folgen die XML-Daten, als der mit Markup ausgezeichnete Text.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was ist der Prolog im Dokumentaufbau?

A

Jedes XML-Dokument sollte mit einem Prolog beginnen. Die erste Zeile des Prologs ist die XML-Deklaration. Vor der XML-Deklaration dürfen keine Leerzeichen stehen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Wie sieht die XML-Deklaration aus und welche möglichen Attribute gibt es?

A

<?xml version="1.0" encoding="UTF-8"?>
Mögliche Attribute: version, encoding, standalone
Das Attribut version ist Pflicht. Werden die anderen Attribute notiert, müssen sie in der angegebenen Reihenfolge auftreten.

version: gibt die verwendete XML-Version an. Die Versionen 1.0 und 1.1 existieren, wobei Version 1.0 empfohlen wird.

encoding: gibt die verwendete Zeichenkodierung an. Standard: UTF-8

standalone: erlaubte Werte: “yes”, “no”
standalone="yes" => DTD ist innerhalb der DOCTYPE-Deklaration angegeben, also gemeinsam mit der XML-Instanz gespeichert (interne DTD)
standalone="no" => DTD ist in einer eignen Datei gespeichert (externe DTD).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was sind Verarbeitungsanweisungen und wie ist ihre Syntax?

A

Verarbeitungsanweisungen (processing instructions) sind Anweisungen für weiterverarbeitende Programme. Damit können Informationen vom XML-Parser an eine Anwendung weitergereicht werden.
Processing instructions beginnen mit <? und enden mit ?> ihre Syntax lautet:
<?PI-Name PI-Anweisung?>
Oft werden mit Verarbeitungsanweisungen Stylesheets zu XML-Dokumenten zugewisen. Syntax: <?xml-stylesheet type="text/css" href="format.css"?>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Welche Zeichenkette ist für den Namen einer processing instruction nicht erlaubt?

A

Die Zeichenkette “xml” ist als PI-Name nicht erlaubt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Was ist ein XML-Parser welche zwei Varianten werden unterschieden?

A

XML-Parser sind Programme, die ein XML-Dokument lesen und die einzelnen Markierungen herausfiltern können. Sie prüfen ein Dokument beim Einlesen auf Korrektheit. man unterscheidet:
* Nicht validierende Parser: prüfen ob ein Dokument korrekt aufgebaut ist (verschachtellung und Bezeichnung der Strukturelemente). Wird ein Fehler gefunden, meldet der Parser diesen und bricht den Parsing-Vorgang ab
* Validierende Parser: prüfen zusätzlich, ob die Struktur des XML-Dokumentes den Vorgaben einer Dokumenttypdefinition oder eines Schemas entspricht.

Eine Applikation kann über den Parser auf das XML-Dokument zugreifen, indem der Parser der aufrufenden Applikation eine einfache Schnittstelle (API) zur verfügung stellt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Welche sechs Regeln müssen bei XML-Namen beachtet werden?

A
  1. Der Name muss mit einem buchstaben oder Unterstrich beginnen
  2. Danach dürfen als zusätzliche zeichen Ziffern, Bindestrich und Punkt verwendet werden
  3. Ein Doppelpunkt sollte nicht verwendet werden, da er das Namensraum-Präfix vom übrigen Namen trennt.
  4. Die Zeichenfolge “xml” ist reserviert und darf nicht am Anfang eines Namens stehen
  5. Die Länge des Namens ist nicht begrenzt
  6. Gross- und Kleinschreibung werden unterschieden

Ausserdem sollten stets namen mit semantischer Bedeutung gewählt werden, damit menschliche Leser bereits Informationen über die Bedeutung des Inhalts erhalten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Was sind Elemente im XML-Dokument, wie sind sie aufgebaut, welche Typen werden unterschieden?

A

Elemente sind die Grundbausteine eines XML-Dokuments. Sie beschreiben die Struktur des XML-Dokuments und enthalten andere Elemente, Text, beides oder sind leer.
Elemente haben einen Namen, für diesen gelten die Regeln der XML-Namen
Elemente bestehen aus:
* einem start tag
* dem dazugehörigen end tag
* dem content

Unterschieden werden
* einfache Elemente
* strukturierte Elemente
* Elemente mit gemischtem Inhalt
* leere Elemente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Was ist ein einfaches Element?

A

Bei einem einfachen Element besteht der Inhalt aus einer Zeichenkette:
<name>Maier</name>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Was ist ein Strukturiertes Element?

A

Strukturierte Elemente enthalten selbst wieder Elemente, dies können sowohl einfache als auch strukturierte Elemente sein. Diese Elemente müssen korrekt ineinander verschachtelt sein.
<dozent>
<name>Maier</name>
<vorname>Fritz</vorname>
</dozent>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Was ist ein Wurzelelement?

A

Jedes XML-Dokument bestitz ein Wurzelelement (root element). Es ist das erste Element im Dokument und enthält alle anderen Elemente. Ein XML-Dokument bildet so eine Baumstruktur von Elementen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Was versteht man unter gemischtem Inhalt in Elementen?

A

Elemente mit gemischtem Inhalt sind Elemente, die andere Elemente und auch text gleichzeiting enthalten.
<beschreibung>Bei dieser Veranstaltung gilt
<em>Anwesenheitspflicht</em>.
</beschreibung>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Was sind leere Elemente?

A

Leere Elemente haben keinen eigenen Inhalt in Form von Daten oder Kindelementen.
Leere Elemente können gekürzt geschreiben werden: <Elementname/>
Beispiele sind <br/> und <hr/>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Wie werden Attribute angegeben und worauf muss geachtet werden?

A

Attribute werden im Start-Tag durch Name-Wert-paare angegeben. Jedes Element kann beliebig viele Attribute enthalten, innerhalb eines Elements muss jedoch jeder Attributname eindeutig sein. Für Attributnamen gelten die gleichen Regeln wie für XML-Namen.
Attributwerte müssen in einfachen oder doppelten Hochkommata angegeben werden. Mehrere Attribute müssen durch mindestens ein Leerzeichen getrennt werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Wofür werden Elemente verwendet?

A
  • Elemente sollen den eigentlichen darzustellenden Inhalt enthalten
  • Für Informationen, die weiter Strukturiert werden sollen oder mehrfach auftreten können
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Wofür werden Attribute verwendet?

A
  • Für Zusatzinformationen oder Metadaten über den Inhalt
  • Für alternative Bedingungen (z.B. verschiedene Sprachen)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Wie werden Kommentare in XML eingefügt und was muss beachtet werden?

A

In XML stehen Kommentare zwischen <!-- und --> (wie html)
Zu beachten:
* Kommentare dürfen nicht vor der XML-Deklaration stehen
* Kommentare dürfen nicht in Tags eingefügt werden
* Die Zeichenfolge --> darf nicht innerhalb eines Kommentars vorkommen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Welche Zeichen dürfen nicht im Inhalt vorkommen und wieso?

A

Da die Zeichen <, >, ", ' und & in XML eine besondere Bedeutung haben (Begrenzungszeichen für Tags, Attributwerde und Entities) dürfen sie nicht innerhalb vom Inhalt oder von Attributwerten verwendet werden, da der Parser sonst einen Fehler anzeigt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Was sind CDATA-Abschnitte, wie werden sie ausgewiesen und wofür werden sie verwendet?

A

CDATA-Abschnitte können innerhalb der getaggten Textes eingefügt werden. Innerhalb dieser Abschnitte werden zeichendaten nicht geparst, wessahlb auch die Zeichen <, >, ", und & nicht als Begrenzungszeichen erkannt werden.

CDATA-Abschnitte beginnen mit <![CDATA[ und enden mit ]]>.

CDATA-Abschnitte werden sinnvollerweise verwendet, wenn die Zeichen <, >, ", und & oft verwendet werden, z.B. beim Einbetten von JavaScript-Programmen oder wenn XML-Code als einfacher Text ausgespielt werden soll.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Was ist die Mindestvoraussetzung, damit XML-Dokumente weiterverarbeitet werden könnnen?

A

XML-Dokumente müssen zur weiterverarbeitung Wohlgeformt sein. Damit ein XML-Dokument wohlgeformt ist, müssen Syntaxtregeln erfüllt sein, welche in der XML-Spezifikation festgelegt sind.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Was geschieht, wenn ein XML-Dokument nicht wohlgeformt ist?

A

Anders als bei HTML werden Fehler nicht vom Parser korrigiert. Fehler werden stattdessen gemeldet und der Parsingvorgang abgebrochen.

38
Q

Wie viele Regeln müssen befolgt werden, damit ein XML-Dokument wohlgeformt ist? Nenne 8 Beispiele

A

Es müssen mehr als 100 Regeln befolgt werden, damit ein XML-Dokument wohlgeformt ist.
* Jeder Start-Tag muss einen entsprechenden Ende-Tag haben
* XML unterscheidet zwischen Gross- und Kleinschreibung
* Auch leere Elemente müssen explizit geschlossen werden. Die Kurzform ist vorzuziehen
* Elemente dürfen verschachteltn sein, dürfen sich ber nicht überlappen
* Ein XML-Dokument muss genau ein Wurzelelement besitzen, das alle anderen Elemente vollständig enthält.
* Attributwerte müssen immer in Anführungszeichen stehen
* Ein Element darf nicht zwei Attribute mit dem gleichen Namen besitzen
* Kommentare und Verarbeitungsanweisungen dürfen nicht in Tags auftreten

39
Q

Was sind die Vorteile von CSS in XML-Dokumenten?

A

CSS ist eine Formatierungssprache für die Gestaltung von strukturierten Dokumenten. Mit CSS können die Gestaltungsregeln für ein oder mehrere Dokumente zentral definiert werden. So wird eine Trennung von Struktur, Inhalt und Layout umgesetzt.
Stylesheets können ausserdem für verschiedene Medien (Print, Bildschirmdarstellung oder Sprachausgabe) definiert werden und ermöglichen so eine einfache Form des Single-Source-Publishings.

40
Q

Wie wird ein CSS in ein XML-Dokument eingebunden?

A

Zur Verknüpfung eines XML-Dokuments mit einem CSS wird im Prolog eine Verarbeitungsanweisung eingefügt:
<?xml-stylesheet type="text/css" href="URI"?>
Dem Attribut type wird der MIME-Type des Stylesheets zugewiesen. Im Attribut href wird der Pfad zur Datei gespeichert.

41
Q

Was bewirkt die CSS Regel display in XML?

A

Mit der CSS Regel display kann die Absatzformatierung definiert werden (vgl. HTML z.B. display: block;)
Wird auch für Listen (display: list-item;) oder Tabellen (display: table, table-row, table-cell) verwendet.

42
Q

Welche Inhalte können für Psuedoelemente definiert werden?

A

In der Eigenschaft content sind fogende Inhalte erlaubt:
* “Text": Anzuzeigender Text in Anführungszeichen
* attr(Attributname): Wert des angegebenen Attributes
* url("URI"): entsprechende Grafik

Ausserdem ist eine automatische Nummerierung von Elementen möglich:
* counter(Zählvariable): Der Wert der Zählvariable wird eingefügt
* counter-increment: Zählvariable: Zählvariable wird um 1 erhöht
* counter-reset: Zählvariable: Zählvariable wird auf Anfangswert 1 zurückgesetzt

43
Q

Wie können CSS Regeln nur auf Elemente mit bestimmten Attributen angewendet werden?

A

Mit Attributselektoren können CSS Regeln nur auf Elemente mit entsprechenden Attribute angewendet werden:
* element[attribut]: Regel wird angewendet, wenn Element über angegebenes Attribut verfügt
* element[attribut = wert]: Wenn Attribut genau den angegebenen Wert besitzt
* element[attribut^=wert]: Wenn das Attribut mit dem angegebenen Wert beginnt.
* element[attribut~=wert]: Wenn das Attribut den angegebenen Wert enghält

44
Q

Welches sind die Schwächen von CSS?

A
  • Die Referenz auf das CSS ist im XML-Dokument hart codiert. Die Verwendung eines anderen CSS erfordert ein Editieren des XML-Dokumentes
  • Es ist nicht möglich mit CSS Elemente zu sortieren. Diese können nur in der Reihenfolge angezeigt werden, in der sie im Dokument auftrete.
  • Die Verarbeitung ist rein clientseitig. Die Darstellung ist daher von den Fähigkeiten des Jeweiligen Browsers abhängig.
45
Q

Was wird in der Document Type Definition (DTD) festgelegt?

A

In einer DTD wird festgelegt, welche elemente erlaubt sind, wie diese verschachtelt sein dürfen und welche Attribute ein Element haben darf oder muss.
Für wiederkehrende Textabschnitte können Kürzel festgelegt werden. Indem für DTD-Teile Kürzel definiert werden, kann eine DTD selbst modular aufgebaut werden.

46
Q

Wie wird auf eine DTD im XML-Dokument verwiesen?

A

Mit einer DOCTYPE-Deklaration kann auf die DTD verwiesen werden, bezüglich der das XML-Dokument valide sein soll.
Die DTD kann dabei innerhalb der DOCTYPE-Deklaration notiert werden oder es wird auf eine externe Datei referenziert.
die DOCTYPE-Deklaration muss nach der XML-Deklarartion und vor dem ersten Element stehen.

46
Q

Was ist eine Interne DTD und wie wird auf sie verwiesen?

A

Von einer internen DTD wird gesprochen, wenn die DTD innerhalb der DOCTYPE-Deklaration angegeben wird.
Mit der optionalen Angabe standalone="yes" kann dem XML-Parser mitgeteilt werden, dass sich die DTD innerhalb des XML-Dokuments befindet.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Nach der XML-Deklaration folgt die DOCTYPE-Deklaration:
~~~
<?xml version=”1.0” standalone=”yes”?>
<!DOCTYPE dozent [
<!ELEMENT dozent (name, vorname)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT vorname (#PCDATA)>
]>

<dozent>
<name>Maier</name>
<vorname>Fritz</vorname>
</dozent>

~~~
Der Name muss dabei dem Namen des Wurzelelements entsprechen. Innerhalb der Eckigen Klammern werden Element-, Attribut-, Entity- und Notation-Deklaration notiert.

47
Q

Was ist eine öffentliche DTD?

A

Eine öffentliche DTD ist für eine allgemeine Verwendung zugänglich. Es wird das Schlüsselwort PUBLIC, ein öffentlicher Bezeichner sowie eine URI angegeben:
<!DOCTYPE name PUBLIC "FPI" "URI">
Mit dem öffentlichen Bezeichner versucht der XML-Parser eine bekannte DTD, über die er bereits verfügt, zu verwenden. Gelingt dies nicht, kann die nachfolgende URI den Zugriff ermöglichen.

47
Q

Was ist eine private DTD?

A

eine private DTD ist eine DTD, die von nur einem einzelnen Autor oder einer geschlossenen Benutzergruppe verwendet wird. Bei einer privaten DTD wird das Schlüsselwort SYSTEM und der Pfad zur Datei angegeben.
<!DOCTYPE name SYSTEM "URI">

47
Q

Was ist eine externe DTD und wie wird auf sie verwiesen?

A

In den meisten Fällen macht es Sinn eine DTD nicht intern zu speichern, da sie für verschiedene Dokumente verwendet werden. Sie werden daher in einer eigenen Datei gespeichert und diese Datei referenziert.
In der XML-Deklaration kann die Angabe standalone="no"gemacht werden um dem XML-Parser mitzuteilen, dass eine externe Datei geladen werden muss.
~~~
<!DOCTYPE dozent SYSTEM “dozent.dtd”>

<dozent>
<name>Maier</name>
<vorname>Fritz</vorname>
</dozent>

In der Datei dozent.dtd sind die Elementdeklarationen gespeichert:

<!ELEMENT dozent (name,vorname)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT vorname (#PCDATA)>
~~~

48
Q

Können interne und externe DTD auch kombiniert werden?

A

Interne und externe DTDs können kobiniert werden. Dies ist sinnvoll, wenn eine vorhandene DTD in einem konkreten Anwendungsfall erewitert oder eingeschränkt werden soll.
Die Deklaration beginnt mit der Referenz auf die externe DTD. Innerhalb von eckigen Klammern folgen die Deklarationen der internen DTD:
~~~
<?xml version=”1.0” encoding=”UTF-8”?>
<!DOCTYPE dozent SYSTEM “dozent.dtd”[
<!ENTITY ma “Maier”>
]>

<dozent>
<name>&ma;</name>
<vorname>Fritz</vorname>
</dozent>

~~~

49
Q

Was ist zu beachten bei der Deklaration von Elementen und Attributen

A
  • Mehrfach deklarierte Elemente oder Attribute erzeugen einen Fehler
  • Bei Entity-Deklarationen haben die Deklarationen der internene DTD Vorrang vor denen der externen DTD
50
Q

Was ist eine Elementtyp-Deklaration und wie sieht sie aus?

A

In der Elementtyp-Deklaration werden alle in einem XML-Dokument vorkommenden Elemente deklariert.
Die Syntax sieht wie folgt aus:
<!ELEMENT Elementname Inhaltsmodell>
Im Inhaltsmodell wird der erlaubte Inhalt eines Elements festgelegt.

51
Q

Welche fünf Inhaltsmodelle sind in der XML-Spezifikation vorgesehen?

A
  1. Elemente die nur Zeichendaten enthalten (einfache Elemente) (#PCDATA)
  2. Elemente, die nur Elemente enthalten (Elementgruppierung)
  3. Elemente mit gemischtem Inhalt, d.h. Elemente die weitere Unterelemente und Zeichendaten beinhalten (mixed content)
  4. leere elemente (EMPTY)
  5. Elemente ohne Inhaltsbeschränkung (ANY)
52
Q

Was bedeutet das Inhaltsmodell #PCDATA

A

Sollen in einem Element nur zeichendaten und kein weiteres Markup erlaubt sein wird #PCDATA verwendet.
Syntax: <!ELEMENT name (#PCDATA)>
XML: <name>Maier</name>
PCDATA steht für parsed character data -> vom Parser analysierte Zeichendaten. Der Parser untersucht den Inhalt auf Markup-Zeichen (<, &, …), diese müssen durch die jeweilige Zeichenreferenz ersetzt werden.

53
Q

Wie können Häufigkeitsangaben für Gruppierungen gemacht werden?

A

Durch die Operatoren *, ? und + kann angegeben werden, wie oft ein Element oder eine Gruppierung auftreten darf oder muss. Ein Operator bezieht sich jeweils auf das vor ihm stehende Element / die Gruppierung.
Bedeutung der Operatoren:
keine Angabe: genau einmal
*: 0 bis beliebig oft
?: 0 oder 1 Mal
+: 1 bis beliebig oft
<!ELEMENT test (a, b, c?)>

54
Q

Wie verhält sich das Inhaltsmodell mixed content?

A

Mit dem Inhaltsmodell mixed content ist in einem Element eine Kombination von Kindelementen und Zeichendaten möglich. In den Instanzen dürfen alle aufgeführten Elemente in beliebiger Reihenfolge und beliebig oft vorkommen.
Syntax:
<!ELEMENT name (#PCDATA|Kindelement1|Kindelement2|...)*>
#PCDATA muss dabei an erster Stelle stehen, Kindelemente müssen durch | getrennt werden und der Operator * ist Pflicht.

55
Q

Wofür steht das Inhaltselemente EMPTY?

A

Mit dem Schlüsselwort EMPTY wird gekennzeichnet, dass ein Element keinen Inhalt enthalten darf:
<!ELEMENT Elementname EMPTY>
Es darf dabei kein Zeichen, auch kein Leerzeichen oder Zeilenumbruch, stehen. Oft wird die Kurzform verwendet:
<Elementname/>
Leere Elemente haben meist eine funktionale Bedeutung wie z.B. <br/> oder <hr/>. Auch <img/> ist ein leeres Element, dabei werden die erforderlichen Informationen in Attributen gespeichert.

56
Q

Wofür steht das Inhaltselemente ANY?

A

Mit dem Schlüsselwort ANY wird angegeben, das als Elementinhalt jede Angabe erlaubt ist, also Kindelemente, das Element selbst oder auch Zeichendaten.
~~~
<!ELEMENT test ANY>
<!ELEMENT name (#PCDATA)>
<!ELEMENT vorname (#PCDATA)>
~~~
ANY wird nicht oft verwendet, da es eine klare Strukturdefinition und Überprüfung davon, verhindert, was genau mit einder dTD erreicht werden möchte.

57
Q

Was wird in der Attributlisten-Deklaration definiert?

A

In der Attributlisten-Deklaration wird festgelegt, welche Attribute für das Element existieren können oder müssen und welchen typ diese haben. Weiter kann ein Default-Wert oder ein fester Wert vergegeben werden.

58
Q

Was sind Attributtypen und welche 10 gibt es?

A

Der Attributtyp legt fest, welche Werte als Attributwerte erlaubt sind.
Es gibt folgende 10 Attributtypen:
1. CDATA
2. NMTOKEN
3. NMTOKENS
4. Aufzählungstyp
5. ID
6. IDREF
7. IDREFS
8. NOTATION
9. NDATA
10. PCDATA

59
Q

Welche Attributwerte sind beim Typ CDATA erlaubt?

A

Beim Attributtyp CDATA können beliebige Zeichenketten eingefügt werden.

60
Q

Welche Attributwerte sind bei den Typen NMTOKEN und NMTOKENS erlaubt?

A

NMTOKEN enthalten XML-Namenstoken. Dies sind Zeichenketten, welche aus Buchstaben, Ziffern, Unterstrich, Bindestrich, Doppelpunkt und Punkt bestehen dürfen. Leerzeichen sind nicht erlaubt.
NMTOKEN ist also restriktiver als CDATA
NMTOKENS kann ein oder mehrere XML-Namenstoken enthalten, die jeweils mit einem Leerzeichen getrennt sind.

61
Q

Welche Attributwerte sind beim Typ Aufzählung erlaubt?

A

Beim Typ Aufzählung wird eine Liste mit erlaubten Attributwerten in Klammern angegeben. Jeder Wert muss ein XML-Namenstoken sein. Die Werte werden durch einen senkrechten Strich getrennt.
~~~
<!ELEMENT dozent (name, vorname)>
<!ATTLIST dozent anrede (Herr|Frau) #REQUIRED>
~~~

62
Q

Welche Attributwerte sind beim Typ ID erlaubt und wie wird es verwendet?

A

Attribute mit dem Typ ID müssen einen Wert besitzen, der im ganzen XML-Dokument einzigartig ist. Kein anderes Attribut darf den selben Wert besitzen, unabhängig vom Elementtyp.
Als Attributwerte sind nur gültige XML-Namen erlaubt.
Ein Element darf weiter nur ein Attribut vom Typ ID haben, ausserdem muss bei der Deklaration entweder #REQUIRED oder #IMPLIED angegeben werden.
Der Attributtyp ID entspricht einem Schlüsselwert und kann so zur Identifizierung von Elementen verwendet werden

63
Q

Welche Attributwerte sind beim Typ IDREF erlaubt und wie wird es verwendet?

A

Der Wert eines Attributs mit dem Typ IDREF muss mit dem Wert eines anderen Attributs vom Typ ID eines anderen Elements übereinstimmen.
Mit IDREF können so innerhalb eines Dokuments Verweise erstellt werden

64
Q

Welche Attributwerte sind beim Typ IDREFS erlaubt?

A

Attribute mit dem Typ IDREFS erlauben eine durch Leerzeichen getrennt Liste von XML-Namen, die jeweils dem Wert eines Attributs vom Typ ID entsprechen müssen.
Ein Element kann so auf mehrere andere Elemente verweisen.

65
Q

Wo liegt das Problem mit den definierten Attributtypen?

A

Mit den definierten Datentypen gibt es z.B. keine Möglichkeit festzulegen, dass ein Attributwert nur aus Ziffern bestehen darf oder einem Datumsformat entsprechen muss.

66
Q

Welche Vorgabedeklarationen können für Attributtypen definiert werden?

A
  • #REQUIRED: Das Attribut ist ein Pflichtattribut. Fehlt es bei einem Element, ist das XML-Dokument nicht valide.
  • #IMPLIED: Das Attribut ist optional.
  • 'Attributwert': Es kann ein Default-Wert definiert werden, der den Wertvorgaben des Attributtyps entspricht. Wird in einer XML-Instanz das Attribut bei einem Element nicht angegeben, wird der Default-Wert eingesetzt. #Implied und #REQUIRED müssen daher entfallen
  • #FIXED: Das Attribut hat stets den nach #FIXED angegebenen Wert
67
Q

Was sind Entities und in welche zwei Klassen lassen sie sich einteilen?

A

Mit Entities werden Kürzel für wiederverwendbare Einheiten definiert.
Je nachdem, ob der Ersetzungstext in der Entity-Deklaration angegeben wird oder sich in einer externen Datei befindet, wird zwischen internen und externen Entities unterschieden.
Entities lasse sich in folgende zwei Klassen einteilen:
* Allgemeine Entities: Definieren Kürzel für wiederkehrende Textabschnitte. Die Entity-Referenzen werden innerhalb der Dokumentinstanz eingesetzt.
* Parameter-Entities: Definieren Kürzel für DTD-Bausteine. Referenzen auf Parameter-Entities können daher nur in der DTD eingesetzt werden.

68
Q

In welche Typen lassen sich die Allgemeinen Entities unterteilen?

A
  • Zeichen-Entities: Represäntieren ein einzelnes zeichen. Es muss verwendet werden, wenn das gewünschte zeichen auf der Tastatur nicht verfügbar ist, oder wenn es in XML eine besondere Bedeutung hat, wie z.B. <
  • Entities mit gemishtem Inhalt: Der Ersetzungstext darf hier auch aus Zeichenketten bestehen, die auch Markup enthalten dürfen. Der erstezte Text wird dann ebenfalls geparsed.
  • Ungeparste Entities: Können ebenfalls Zeichenketten enthalten, werden jedoch nicht geparsed. Sie dinenen dem Einbinden von Fremdformaten wie Bild und Ton.
69
Q

Wie werden Zeichen-Entities verwendet?

A

Durch verwenden der Positionsnummer eines Zeichens im Unicode-Zeichensatz, können Zeichen-Entities verwendet werden. Die Nummer kann im dezimalen oder hexadezimalen Format angegeben werden.
Im dezimalen Format wird die Nummer eingeschlossen in &# und ; z.B.: &#228;
Im hexadezimalen Format wird die Nummer eingeschlossen in &#x und ; z.B.: &#xE4;
Um sie besser merkbar zu machen, können Zeichen-Entities auch benannt werden. Für verschiedene Zeichen existieren in XML bereits vordefinierte Entities:
< : &lt;
> : &gt;
" : &quot;
' : &apos;
& : &amp;

70
Q

Wie werden Allgemeine-Entities verwendet?

A

Für häufig wiederkehrende Textabschnitte wird ein Kürzel definiert, welches an den gewünschten Positionen an Stelle des Textabschnittes eingesetzt wird.
Die Kürzel werden in der DTD defniert und können im Inhalt von Elementen sowie innerhalb von Attributwerten referenziert werden. der XML-Parser ersetzt bei der Verarbeitung das Kürzel durch den Ersetzungstext und parst das dadurch entstandene Dokument.

71
Q

Wie werden interne allgemeine-Entities gebildet?

A

Bei Internen Allgeminen-Entities wird der Ersetzungstext direkt in der Deklaration des Entities als Zeichenkette angegeben.
Die Deklaration beginnt mit dem Schlüsselwort <!ENTITY getrennt durche in Leerzeichen folgt der Name sowie der Ersetzungstext in Anführungszeichen.
<!ENTITY name "Ersetzungstext">
Referenziert wird das Entity durch &, Name des Entities und ;
&name;

72
Q

Wie werden externe allgemeine-Entities gebildet?

A

Bei externen Entities liegt der Ersetzungstext ausserhalb der DTD in einer separaten Datei.
Handelt es sich um eine private Datei wird das Schlüsselwort SYSTEM un der Pfad zur Datei angegeben: <!ENTITY name SYSTEM "URI">
Bei öffentlichen Dateien wird das Schlüsselwort PUBLIC, der öffentliche Bezeichner sowie ein URI angegeben: <!ENTITY name PUBLIC "FPI" "URI">
Referenziert wird auf die externe Entity gleich wie auf die interne Entity: &name;

73
Q

Welche Nachteile haben externe Entities?(5)

A
  • Da die Deklaration enes Entities in der DTD-Syntax vorzunehmen ist, kann das Konzept bei anderen Strukturbeschreibungssprachen nicht verwendet werden
  • Da die einzelnen Module keine DOCTYPE-Deklaration besitzen dürfen, ist eine validierung nicht möglich
  • Referenzierte Dokumente müssen nicht wohlgeformt sein, sie können z.B. mehrere Wurzelelemente haben.
  • Da auch der Ersetzungstext geparst wird, können Entity-Referenzen nicht auf eine reine Textdatei zeigen.
  • Wenn die externe Datei nicht vorhanden ist oder nicht geladen werden kann, gibt es eine Fehlermeldung
74
Q

Wozu werden Parameter-Entities verwendet?

A

Mit Parameter-Entities können Kürzel für wiederkehrende DTD-Bestandteile definiert werden.

75
Q

Wie werden interne Parameter-Entities gebildet?

A

Der Ersetzungstext wird in der Deklaration des Entities angegeben: Die Deklaration beginnt mit dem Schlüsselwort <!ENTITY, es folgen durch Leerzeichen getrennt: %, Name, Ersetzungstext in Anführungszeichen:
<!ENTITY % name "Ersetzungstext">
Referenziert wird eine Parameter-Entity mit %, dem Namen und ;: %name; Die Referenzierung eines Parameter-Entities ist nur in einer DTD sinnvoll.

76
Q

Wie werden externe Parameter-Entities gebildet?

A

Der ersetzungstext steht in einer separaten Datei.
Handelt es sich um eine private Datei wird das Schlüsselwort SYSTEM un der Pfad zur Datei angegeben: <!ENTITY % name SYSTEM "URI">
Bei öffentlichen Dateien wird das Schlüsselwort PUBLIC, der öffentliche Bezeichner sowie ein URI angegeben: <!ENTITY % name PUBLIC "FPI" "URI">
Referenziert wird auf die externe Entity gleich wie auf die interne Entity: &name;

77
Q

Was ist eine modulare DTD und was sind die Vorteile?(4)

A

Bei einer modularen DTD wird eine grosse DTD in kleinere Module aufgeteilt und iner einer sogenannten Shell-DTD auf die einzelnen Module referenziert.
Vorteile:
* Übersichtlicher
* leichter zu warten
* besser an eigene Bedürfnisse anpasspar
* Module können in verschiedenen DTDs verwendet werden

78
Q

Wo liegen die Unterschiede zwischen Parameter-Entities und allgemeinen Entities?(3)

A
  • In der Deklaration von Parameter-Entities muss das %-Zeichen notiert werden
  • Parameter-Entity-Referenzen beginnen mit einem %-Zeichen, allgemeine Entity-Referenzen mit einem &-Zeichen
  • Parameter-Entity-Referenzen werden nur in einer DTD als soche erkannt
78
Q

Was ist eine Notation, wie wird sie definiert?

A

Eine Notation definiert ein Kürzel für die Verarbeitungsinformation:
<!NOTATION Abkürzung Identifier>
Notationen lassen sich mit öffentlichen Identifikatoren definieren. In diesem Fall wird das Schlüsselwort PUBLIC notiert und ein öffentlicher Bezeichner angegeben.
<!NOTATION EPS PUBLIC "+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
Alternativ kann das Schlüsselwort SYSTEM, dem der URI einer Softwareanwendung oder eines MIME-Typs folgt, verwendet werden.
<!NOTATION JPG SYSTEM "JPG">

79
Q

Wie wird eine Notation verwendet?

A

Eine Notationskennung kann als Attributwert angegeben werden. Dazu muss ein Attribut vom Typ NOTATION deklariert werden. Nach dem Schlüsselwort NOTATION folgt in Klammern die Angabe der erlaubten Werte, jeweils durch | getrennt und anschliessend die Vorgabedeklaration

<!NOTATION EPS PUBLIC "+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
<!ELEMENT image (#PCDATA)>
<!ATTLIST image typ NOTATION (EPS) #IMPLIED>
<image typ="EPS">bild1.eps</image>

Dabei darf für keinen Elementtyp mehr als ein NOTATION-Attribut spezifiziert werden
Ein Attribut vom Typ NOTATION darf nicht für ein Element mit dem Inhaltsmodell EMPTY deklariert werden.

80
Q

Was sind ungeparste Entities und wozu werden sie verwendet?

A

Ungeparste Entities werden nicht geparsed.
Dadurch können mit ihnen Fremdformate wie Bilder oder Ton eingebunden werden. Ungeparste Entities sind immer externe Entities.
Syntax: <!ENTITY name SYSTEM "URI" NDATA Kennung>
Nach SYSTEM und URI folgt das Schlüsselwort NDATA und eine Notationskennung.
Die Entsprechende Notation muss vorab in der DTD definiert sein.
Referenzen auf ungeparste Entities dürfen nur als Wert von Attributen des Typs EMPTY oder ENTITIES verwendet werden.
Als Attributwert wird der Name der Entities verwendet, nicht wie für allgemeine Entity-Referenzen &name;

81
Q

Wo liegen die Schwächen einer DTD (7)?

A
  • Für viele Anwendungen reichen die Validierungsmöglichkeiten einer DTD nicht aus.
  • Für DTDs wir keine XML-Syntax verwendet, daher müssen für deren Erstellung eigene Editoren, Parser und APIs verwendet werden
  • Fehlende Datentypisierung (Kein Datentyp auser #PCDATA)
  • Nicht möglich präzise Angaben über die Auftretungshäufigkeit von Elementen zu notieren
  • Es können keine beschränkungen formuliert werden, die die Existenz oder Werte mehrere Elemente und/oder Attribute einbeziehen
  • DTDs sind nur unzureichend mit Namensräumen kompatibel
  • Schlechte Erweiterbarkeit
82
Q

Wozu werden XML-Namensräume verwendet und wie werden sie definiert?

A

Mit Namensräumen kann die universelle Eindeutigkeit von Element- und Attributnamen gewährleistet werden. Konflikte mit Namen, die bei der Kombination mehrere XML-Anwendungen vorkommen können, können so vermieden werden.
Namensräume werden über das xmlns-Attribut definiert. Es gibt dazu zwei Möglichkeiten:
* Die Angabe eines Default-Namensraumes
* Die Verwendung von Namensraum-Präfixen

Der Namensraum wird meistens mit einer URL benannt. Die dazugehörige Internetadresse muss dabei nicht existieren, da es sich nur um einen Namen handelt.

83
Q

Wie wird ein Default-Namensraum deklariert?

A

Ein Default-Namensraum wird in einem Element als Wert des Attributs xmlns deklariert: <element xmlns="namespace">
Dieses Element und all seine Unterelemente gehören diesem Namensraum an, ausser es wurde für Elemente spezifisch ein anderer Namensraum deklariert.

84
Q

Wie werden Namensraum-Präfixe deklariert und verwendet?

A

Bei der Verwendung von Namensraum-Präfixen wird zuerst ein Präfix an einen Namensraum gebunden. Dieses Namensraum-Präfix dient dann als Abkürzung.
Die Deklaration des Namensraums beginnt mit dem Schlüsselwort xmlns, nach einem Doppelpunkt folgt das Präfix, danach ein Gleichheitszeichen und in Anführungszeichen der Name des Namensraums: <element xmlns:präfixname="namespace">
Allen Elementen und Attributen die zu diesem Namensraum gehören sollen, wird nun das Namensraum-Präfix vorangestellt: <präfixname:elementname>
Bei verwendung mehrere Namensräume kann auch ein Namensraum als Default festgelegt werden und die übrigen als Präfixe vergeben werden.

85
Q

Was sind die Vorteile der Verwendung von Namensraum-Präfixen?

A

Die Verwendung von Namensraum-Präfixen hat den Vorteil, dass das Dokument bei Verwendung von mehreren Namensräumen übersichtlicher und besser lesbar ist. Ausserdem ist eine flexiblere Zuordnung von Elementen und Attributen zu einem Namensraum möglich.

86
Q

Wie müssen Namensräume in der DTD deklariert werden?

A

Da DTDs keine Namensräume kennen, müssen die Elemente und Attribute in der DTD vollständig, also einschliesslich Präfix deklariert werden.
Namensraum-Präfixe werden dabei als “normale” Attribute angesehen und nicht als Namensraumdeklaration.
<!ELEMENT fh:fb (fh:vorlesungsliste, verlag:literatur)>
<!ELEMENT verlag:buch (verlag:autor, verlag:titel)>
<!ELEMENT verlag:titel (#PCDATA)>