DTD - Sintassi
Un DTD XML può essere specificato all'interno del documento, oppure può essere conservato in un documento separato e quindi il documento può essere collegato al documento DTD per usarlo.
Sintassi
La sintassi di base di un DTD è la seguente:
<!DOCTYPE element DTD identifier
[
declaration1
declaration2
........
]>
Nella sintassi sopra -
DTD inizia con <! DOCTYPE delimitatore.
Un element dice al parser di analizzare il documento dall'elemento root specificato.
DTD identifierè un identificatore per la definizione del tipo di documento, che può essere il percorso di un file sul sistema o l'URL di un file su Internet. Se il DTD punta a un percorso esterno, viene chiamatoexternal subset.
Il square brackets [ ] racchiudere un elenco facoltativo di dichiarazioni di entità chiamate internal subset.
DTD interno
Una DTD viene definita DTD interna se gli elementi vengono dichiarati all'interno dei file XML. Per fare riferimento a esso come DTD interno, l' attributo autonomo nella dichiarazione XML deve essere impostato suyes. Ciò significa che la dichiarazione funziona indipendentemente dalla fonte esterna.
Sintassi
La sintassi del DTD interno è come mostrato:
<!DOCTYPE root-element [element-declarations]>
dove elemento-radice è il nome dell'elemento radice e dichiarazioni-elementi è dove dichiari gli elementi.
Esempio
Di seguito è riportato un semplice esempio di DTD interna:
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
<!DOCTYPE address [
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
]>
<address>
<name>Tanmay Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 123-4567</phone>
</address>
Esaminiamo il codice sopra -
Start Declaration - Inizia la dichiarazione XML con la seguente dichiarazione.
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
DTD- Subito dopo l'intestazione XML, segue la dichiarazione del tipo di documento , comunemente indicato come DOCTYPE -
<!DOCTYPE address [
La dichiarazione DOCTYPE ha un punto esclamativo (!) All'inizio del nome dell'elemento. Il DOCTYPE informa il parser che un DTD è associato a questo documento XML.
DTD Body - La dichiarazione DOCTYPE è seguita dal corpo del DTD, dove si dichiarano elementi, attributi, entità e notazioni -
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone_no (#PCDATA)>
Qui vengono dichiarati diversi elementi che compongono il vocabolario del documento <name>. <! ELEMENT name (#PCDATA)> definisce il nome dell'elemento di tipo "#PCDATA". Qui #PCDATA significa dati di testo analizzabili.
End Declaration- Infine, la sezione di dichiarazione della DTD viene chiusa utilizzando una parentesi di chiusura e una parentesi angolare di chiusura (]>). Ciò termina efficacemente la definizione e, successivamente, il documento XML segue immediatamente.
Regole
La dichiarazione del tipo di documento deve apparire all'inizio del documento (preceduta solo dall'intestazione XML) - non è consentita in nessun altro punto all'interno del documento.
Analogamente alla dichiarazione DOCTYPE, le dichiarazioni degli elementi devono iniziare con un punto esclamativo.
Il nome nella dichiarazione del tipo di documento deve corrispondere al tipo di elemento dell'elemento radice.
DTD esterno
Nella DTD esterna gli elementi sono dichiarati al di fuori del file XML. Vi si accede specificando gli attributi di sistema che possono essere il file .dtd legale o un URL valido. Per fare riferimento ad esso come DTD esterno, l' attributo autonomo nella dichiarazione XML deve essere impostato comeno. Ciò significa che la dichiarazione include informazioni dalla fonte esterna.
Sintassi
Di seguito è riportata la sintassi per DTD esterno:
<!DOCTYPE root-element SYSTEM "file-name">
dove nome-file è il file con estensione .dtd .
Esempio
L'esempio seguente mostra l'utilizzo di DTD esterno:
<?xml version = "1.0" encoding = "UTF-8" standalone = "no" ?>
<!DOCTYPE address SYSTEM "address.dtd">
<address>
<name>Tanmay Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 123-4567</phone>
</address>
Il contenuto del file DTD address.dtd sono come mostrato -
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
Tipi
È possibile fare riferimento a un DTD esterno utilizzando system identifiers o public identifiers.
System Identifiers
Un identificatore di sistema consente di specificare la posizione di un file esterno contenente le dichiarazioni DTD. La sintassi è la seguente:
<!DOCTYPE name SYSTEM "address.dtd" [...]>
Come puoi vedere, contiene la parola chiave SYSTEM e un riferimento URI che punta alla posizione del documento.
Public Identifiers
Gli identificatori pubblici forniscono un meccanismo per individuare le risorse DTD e sono scritti come di seguito:
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
Come puoi vedere, inizia con la parola chiave PUBLIC, seguita da un identificatore specializzato. Gli identificatori pubblici vengono utilizzati per identificare una voce in un catalogo. Gli identificatori pubblici possono seguire qualsiasi formato, tuttavia, un formato comunemente usato è chiamato identificatori pubblici formali o FPI.