Was sind die Vorteile von XML im Gegensatz zu HTML?
HTML besitzt vordefinierte und fixe Anzahl von "Tags"; mit XML kann man beliebig viele Tags kreieren.
Auch kann man dadurch in HTML das Web nicht durchsuchen, da dieser hauptsächlich Layout-Tags besitzt.
Was sind die Features von XML?

Ist HTML kompatibel mit XML (kann man HTML trivial zu XML konvertieren)?
Ja
Ist XML kompatibel mit HTML (wird ein HTML-Parser ein XML Dokument als valides HTML ansehen)?
Nein, da HTML eine viel "schwächere" Version von XML ist (in html lassen sich keine Tags erschaffen, in XML schon)
Beispiel:
Man kann in HTML nicht so etwas machen:
<myTag>...</myTag>
Wann ist ein XML-Dokument "WELL-FORMED"?
Unterschied zwischen HTML und XHTML
XHTML wurde als eine XML-Applikation geschrieben (wurde mit einer XML-DocumentTypeDefinition (DTD) beschrieben)
Wo wird XML hauptsächlich verwendet?

Existieren bereits vordefinierte Document Type Definitions, die frei zugänglich sind?
Ja, für sehr viele Verwendungen: Literatur, Werbung, Marketing, etc.
Welche Technologien gehören zur XML-Standardisierungsfamilie?

Welcher Tag ist der Root Tag?
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>
Light Belgian waffles covered with strawberries and whipped cream
</description>
<calories>900</calories>
</food>
</breakfast_menu>
breakfast_menu
Wo befindet sich hier der Fehler?
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>
Light Belgian waffles covered with strawberries and whipped cream
</description>
<calories>900<calories>
</food>
</breakfast_menu>
Im unteren Food-Element: calories besitzt kein XML-Ende sondern einen Anfang
Wo befindet sich der Fehler?
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
<food>
</food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>
Light Belgian waffles covered with strawberries and whipped cream
</description>
<calories>900</calories>
</food>
</breakfast_menu>
Überlappende food-Tags
Wo befindet sich der Fehler?
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<PRICE>$7.95</price>
<description>
Light Belgian waffles covered with strawberries and whipped cream
</description>
<calories>900</calories>
</food>
</breakfast_menu>
XML ist CASE SENSITIVE! PRICE oder price müssen den selben case haben, sonst kann das Dokument nicht richtig geparset werden
Was für ein Charakter Set unterstützt XML?
wichtigster Set: Unicode
Was ist ein DTD und welche Aufgaben hat es?
DTD bedeutet Document Type Definition und definiert ein Vokabular und Grammatik für ein Set von XML Dokumenten (die es einbinden)
Kann ein XML Dokument mehrere DTDs einbinden?
Nein, höchstens 1!
Welcher von diesen Elementen im DTD wird zur Root-Element in allen XML Dokus?
Der DTD definiert kein Root-Element für ein XML Dokument, sondern ein XML Doku kann ein beliebiges Element vom DTD als Root Element wählen

Welcher von diesen bezeichnet eine UND bzw. ODER Relation?
',' -> UND
'|' -> ODER
Welche Kardinialitäten stehen für folgende Zeichen in einem DTD:
?
+
*
? -> einmal oder keinmal
+ -> mindestens einmal
* -> mehrmals oder keinmal (beliebig viele)
Was ist die Bedeutung der folgenden DTD Zeile?
<!ENTITY % Battery "(type, capacity)">
Dies ist die Deklaration der Entity "Battery" mit den Subelementen type UND capacity
Kann eine Parameter-Entität überschrieben werden? Wenn ja, wo? Wenn nein, wieso bzw. mit welchem Mechanismus könnte man eine Überschreibung simulieren?
"A Parameter Entity defined within an external DTD can be
arbitrarily overriden within the internal DTD of a XML
document"
Was macht die folgende DTD-Zeile?
<!ELEMENT handyBatt %Battery;>
Setzt das Element handyBatt auf die bereits definierte Entität Battery
Wieso ist das Überschreiben / Overriding von Parameter Entitäten in interne DTDs vorteilhaft?
Dadurch muss der externe DTD nicht neu definiert werden, sondern kann gleichbelassen werden, und eine Veränderung tritt nur LOKAL im XML Dokument vor.
Wozu wird ein XML Namespace verwendet?
Ein ns erlaubt eine einzigartige, globale Identifikation von Elmenten und Attributen. Auch wenn die Elems/Attrs die gleichen Namen besitzen, können sie in unterschiedlichen Namespaces registriert und dadurch gleichzeitig verwendet werden
Wie kann man auf einem Namespace zugreifen?
Via URI
Was ist hier das Problem?
<'http://ecommerce.org/schema':MyElement>here is some text</'http://ecommerce.org/schema':MyElement>
Gehe davon aus, dass im DTD MyElement auch einfach nur Text beinhalten darf
URIs können nicht direkt verwendet werden, da sie nicht-erlaubte Zeichen wie '/' besitzen.
Wie müsste eine korrekte Referenzierung der URIs vom Beispiel
<'http://ecommerce.org/schema':MyElement>here is some text</'http://ecommerce.org/schema':MyElement>
aussehen?
<myNS:MyElement xmlns:myNS='http://ecommerce.org/schema'>
here is some text
</myNS:MyElement>
Muss für die Benutzung von Namespaces ein DTD gegeben sein?
Nein, namespaces sind unabhängig von DTDs
Man kann in einem DTD einen Default Namespace definieren, die für alle XML Dokumente gültig wird, die ihn einbinden. Wie sieht so etwas aus?
Beispiel für einen nicht-überschreibbaren Default-NS:
<!ATTLIST edi:HC xmlns
CDATA #FIXED 'http://www.mobildev.com/schema'>
Was sind die Vorteile von XML Schemata im Gegensatz zu DTDs?

Ein XML-Schema ist eigentlich selbst XML. Wenn das so ist, wie schaut dessen Root Element aus?
<?xml version="1.0"?>
<schema ...>
...
</schema>
Wie kann man einen Default Namespace im XML Schema angeben?
<?xml version="1.0"?>
<schema targetNamespace="http://www.ifs.uni-linz.ac.at/hc">
Wie kann man in einem XML Dokument ein XML Schema einbinden?
xsi:schemaLocation="http://www.ifs.uni-linz.ac.at/hc Catalog.xsd"
Wie definiert man Elemente / Attribute in einem Schema global und wie kann man sie lokal definieren?
Globale Definition: Elems/Attrs als direktes Subelement der Root-Element machen. Der Root-Elem muss immer global sein!!!
Lokale Definitionen macht man, indem man Elemente / Attribute als Subelement einer globalen/lokalen festlegt (NICHT ALS SUBELEMENT VOM ROOT!)
<element name="name" type="type" minOccurs="int" maxOccurs="int|unbounded"... />
<attribute name="name" type="type" use="how-its-used" default/fixed="value"... />
Wer kann simple/komplexe Typen verwenden? Wer nur simpel? Wer nur komplex? Wer kann beide?
element: simpel und komplex
attribute: nur simpel
Wie kann man Referenzen auf einem existierenden Attribut oder Element im Schema (nicht im XML Doku sondern im Schema selbst) setzen?
<element ref="name" minOccurs="int" maxOccurs="int|unbounded".../>
Welche Möglichkeiten gibt es bei der Überladung von simplen Datentypen?

Welche Restriktionen existieren für das Überladen von simplen Datentypen und was machen die?

Welche Überladungen von simplen Datentypen existieren bereits?

Wozu ist das sog. Pattern nützlich?
Mit pattern lassen sich weitere Restriktionen einbauen, und zwar die auf einer Regular Expression basieren. Z.B. darf eine Überladung von String, nänlich die Zeit nur eine bestimmte Form besitzen, wie
dd.mm.yyyy
Was können komplexe Datentypen (Elemente) in XML Schemata besitzen, die simple nicht?
Zudem können noch Sequenzen definieren (mit denen man Wiederholungen simulieren kann mit minOccurs und maxOccurs;
Choices kann man machen (wie in Compilerbau), etc.

Bei der Überladung von komplexen Elementen kann man im Gegesatz zu Simplen Elementen neben "<restriction>" auch "<extension>" verwenden. Was macht dieses Schlüsselwort?
Damit kann man zu einem überladenen, komplexen Element zusätzlich noch Attributen und Subelemente hinzufügen.