Samouczek DTD
Co to jest DTD?
DTD to definicja typu dokumentu.
DTD definiuje strukturę oraz prawne elementy i atrybuty dokumentu XML.
Dlaczego warto korzystać z DTD?
Dzięki DTD niezależne grupy ludzi mogą uzgodnić standardowe DTD do wymiany danych.
Aplikacja może używać DTD do weryfikacji poprawności danych XML.
Wewnętrzna deklaracja DTD
Jeśli DTD jest zadeklarowane w pliku XML, musi być opakowane w definicję <!DOCTYPE>:
Dokument XML z wewnętrznym DTD
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
Wyświetl plik XML »
W pliku XML wybierz „wyświetl źródło”, aby wyświetlić DTD.
Powyższe DTD jest interpretowane w następujący sposób:
- !DOCTYPE note definiuje, że głównym elementem tego dokumentu jest note
- !ELEMENT note definiuje, że element note musi zawierać cztery elementy: "do,od,nagłówek,treść"
- !ELEMENT to definiuje element to, który ma być typu "#PCDATA"
- !ELEMENT from definiuje element from, który ma być typu "#PCDATA"
- Nagłówek !ELEMENT definiuje element nagłówka, który ma być typu "#PCDATA"
- !ELEMENT body definiuje element body, który ma być typu "#PCDATA"
Zewnętrzna deklaracja DTD
Jeśli DTD jest zadeklarowane w zewnętrznym pliku, definicja <!DOCTYPE> musi zawierać odwołanie do pliku DTD:
Dokument XML z odniesieniem do zewnętrznego DTD
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Wyświetl plik XML »
A oto plik „note.dtd”, który zawiera DTD:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>