Die Aufgabe besteht darin, die Datensätze einer Bücher-Datenbank mit Hilfe von XML zu formulieren. Die Bücher-Tabelle soll pro Buch die folgenden Felder enthalten:
In die Tabelle sollen fünf Beispieldatensätze eingegeben und je nach DTD verändert werden, um beim Validieren deren Funktionsfähigkeit zu beweisen.
Es gelten die weiteren Anforderungen:
Jedes Buch darf nur einmal vorkommen.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="buch.css" type="text/css"?>
<Literaturverzeichnis>
</Literaturverzeichnis>
<buch>
<titel>Grundlagen der Astronomie</titel>
<autor>Arthur Dent</autor>
<isbn>978-3-86680-192-9</isbn>
<seiten>466</seiten>
<sprache>DE</sprache>
</buch>
<!DOCTYPE Literaturverzeichnis [
<!ELEMENT Literaturverzeichnis (buch+)>
<!ELEMENT buch (titel, autor, isbn, seiten, sprache)>
<!ELEMENT titel (#PCDATA)>
<!ELEMENT autor (#PCDATA)>
<!ELEMENT isbn (#PCDATA)>
<!ELEMENT seiten (#PCDATA)>
<!ELEMENT sprache (#PCDATA)> ]>
<!ELEMENT buch (titel, (autor | herausgeber), isbn, seiten, sprache)> <!ELEMENT herausgeber (#PCDATA)>
<!ELEMENT buch (titel, (autor | herausgeber), isbn, seiten?, sprache*)>
Literaturverzeichnis { font-family: Verdana, Arial, sans-serif; margin: 16px; }
buch, titel, autor, herausgeber, isbn, seiten, sprache {display:block; }
buch { margin: 1em 0 1em 0; } titel { font-weight:bold; }
seiten:after { content: " Seiten"; }
sprache:before { content: "Sprache: "; }
Wer CSS zusammen mit XML anwendet, sollte beachten, dass XML-Elemente von Hause aus Inline-Elemente sind. Sie werden in einer einzigen Zeile dargestellt. Um XML-Elemente in Absätzen dar-zustellen, müssen sie als Block-Element definiert werden.
buch, titel, autor, herausgeber, isbn, seiten, sprache { display:block; }