Εκμάθηση DTD

Η οριστική περιγραφή τύπου έγγραφου (DTD) μπορεί να ορίσει τα νόμιμα στοιχεία που μπορούν να χρησιμοποιηθούν για τη δομή ενός έγγραφου XML.

Το DTD μπορεί να δηλώνεται γραμμικά στο έγγραφο XML ή ως εξωτερική αναφορά.

Η εσωτερική δήλωση DOCTYPE

Εάν το DTD περιλαμβάνεται στον κώδικα της αρχείου XML σας, θα πρέπει να το περιλαμβάνετε μέσα σε μια δήλωση DOCTYPE με την παρακάτω γραμματική:

!DOCTYPE ρίζα [στοιχεία δήλωση]>

Παράδειγμα αρχείου XML με DTD (ανοίξτε με IE5 και παρακάτω εκδόσεις, και επιλέξτε "Εμφάνιση κώδικα πηγής"):

<?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>George</to>
  <from>John</from>
  <heading>Μνεία</heading>
  <body>Μη ξεχνάτε τη συνάντηση!</body>
</note>

Άνοιξτε το αρχείο XML στο πρόγραμμα περιήγησής σας και επιλέξτε την εντολή "Εμφάνιση κώδικα πηγής".

Η εξήγηση του παραπάνω DTD είναι η εξής:

!DOCTYPE note (πέμπτη γραμμή) ορισμός note δокумент τύπου

!ELEMENT note (πέμπτη γραμμή) ορισμός note Το στοιχείο έχει τέσσερα στοιχεία: "to,from,heading,body"

!ELEMENT to (πέμπτη γραμμή) ορισμός to Ο στοιχείο είναι τύπου "#PCDATA"

!ELEMENT from (πέμπτη γραμμή) ορισμός from Ο στοιχείο είναι τύπου "#PCDATA"

!ELEMENT heading (πέμπτη γραμμή) ορισμός heading Ο στοιχείο είναι τύπου "#PCDATA"

!ELEMENT body (πέμπτη γραμμή) ορισμός body Ο στοιχείο είναι τύπου "#PCDATA"

Δήλωση εξωτερικού αρχείου

Αν το DTD βρίσκεται στο εξωτερικό του αρχείου πηγής XML, τότε πρέπει να περιλαμβάνεται σε μια δήλωση DOCTYPE με την παρακάτω γραμματική:

!DOCTYPE ρίζα ΕΛΕΓΧΟΣ "ονομασμός αρχείου">

Αυτό το αρχείο XML είναι το ίδιο με το παραπάνω αρχείο XML, αλλά έχει μια εξωτερική DTD: (Άνοιξτε στο IE5και επιλέξτε την εντολή "Εμφάνιση κώδικα πηγής".)

<?xml version="1.0"?>
!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Μνεία</heading>
<body>Μη ξεχνάτε τη συνάντηση!</body>
</note>

Αυτό είναι αρχείο "note.dtd" που περιέχει DTD:

!ELEMENT note (to,from,heading,body)>
!ELEMENT to (#PCDATA)>
!ELEMENT from (#PCDATA)>
!ELEMENT heading (#PCDATA)>
!ELEMENT body (#PCDATA)>

为什么使用 DTD?

通过 DTD,您的每一个 XML 文件均可携带一个有关其自身格式的描述。

通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据。

而您的应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据。

您还可以使用 DTD 来验证您自身的数据。