Originariamente inviato da kkriminale
la spiegazione è molto chiara, ma come si fa a linkare una dtd esterna ad un documento xml?
Allora... kkriminale scusami se ti rispondo solo ora... ma la vita sotto Natale è piena di impegni!

Le DTD si includono nei documenti XML per mezzo della Document Type Declaration.
La Document Type Declaration è compresa tra <!DOCTYPE e >.

Le DTD possono essere interne o esterne.

Esempio di DTD interna è quella postata da mituzza. Tutto ciò che è compreso tra le parentesi quadre forma la dichiarazione di tipo interna.

Solitamente le DTD esterne sono dei file con estensione DTD (ma non è obbligatorio!).
Per includere una DTD di tipo esterna in un file XML basta specificare le parole chiavi SYSTEM e PUBLIC.

codice:
<!DOCTYPE messaggio SYSTEM "myDTD.dtd">
dove myDTD.dtd è il riferimento alla propria DTD (naturalmente il file espresso con path se non risiede nella stessa cartella del file XML)

PUBLIC è una parola chiave che serve per far riferimento a DTD di uso comune. Esempio più banale è quello che fariferimento alla DTD del linguaggio HTML.

codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html14/strict.dtd">
Esempio file welcome.dtd:

codice:
<!ELEMENT welcomeMsg (mess)>
      <!ELEMENT mess (#PCDATA)>

Ecco un esempio di file XML che fa riferimento alla DTD welcome.dtd:

codice:
<?xml version="1.0">
      <!DOCTYPE benvenuto SYSTEM "welcome.dtd">
      <benvenuto>
          <mess>Benvenuto... da dotty78</mess>
      </benvenuto>
Spero di esserti stata d'aiuto!

dotty78