Czym jest DTD?
DTD jest definicja typu dokumentu.
DTD definiuje strukturę i elementy prawne i atrybuty dokumentu XML.
Dlaczego warto skorzystać z DTD?
Z DTD, niezależne grupy osób mogą uzgodnić standardową DTD do zamiany danych.
Aplikacja może korzystać z DTD w celu sprawdzenia, że dane XML jest poprawny.
Deklaracja na wewnętrzny DTD
Jeżeli DTD jest zadeklarowana w pliku XML, to musi być owinięty wewnątrz <!DOCTYPE> definicji:
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>
Zobacz plik XML » W pliku XML, wybierz "view source" , aby zobaczyć DTD.
DTD powyżej jest interpretowana w następujący sposób:
- !DOCTYPE note określa, że głównym elementem tego dokumentu jest notatka
- !ELEMENT note określa, że element uwaga musi zawierać cztery elementy: "to,from,heading,body"
- !ELEMENT to definiuje się do elementu, który ma być typu "#PCDATA"
- !ELEMENT from definiuje się od elementu typu "#PCDATA"
- !ELEMENT heading definiuje element nagłówka być typu "#PCDATA"
- !ELEMENT body definiuje element ciała, aby być typu "#PCDATA"
Deklaracja na zewnętrzne DTD
Jeżeli DTD jest zadeklarowana w pliku zewnętrznego, <!DOCTYPE> definicja musi zawierać odniesienie 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>
Zobacz plik XML » I tu jest 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)>