Dichiarazione DOCTYPE
La dichiarazione DOCTYPE fornisce uno spazio in cui è possibile identificare l'elemento radice di un documento e la relativa DTD (Document Type Definition) utilizzando riferimenti a un file esterno, dichiarazioni dirette o entrambi i metodi.
Una dichiarazione DOCTYPE può contenere:
Il nome del documento o dell'elemento radice.
Queste informazioni sono necessarie se si utilizza una dichiarazione DOCTYPE.
Gli identificatori di sistema e pubblici della DTD da utilizzare per convalidare la struttura del documento.
Se viene utilizzato un identificatore pubblico, è necessario che sia presente anche un identificatore di sistema.
Un sottoinsieme interno di dichiarazioni DTD.
Il sottoinsieme interno viene visualizzato tra parentesi quadre ([ ]).
Una dichiarazioni DOCTYPE è obbligatoria se il documento deve essere elaborato in un ambiente di convalida. Per risultare valida, la dichiarazione DOCTYPE deve identificare una DTD corrispondente alla struttura del documento. Nei parser di non convalida verranno accettati, invece, i documenti privi di dichiarazioni DOCTYPE.
La dichiarazione DOCTYPE più semplice identifica solo l'elemento radice del documento.
<!DOCTYPE rootElement>
Più frequentemente, i documenti con dichiarazione DOCTYPE fanno riferimento a un documento esterno contenente le dichiarazioni della DTD. Per identificare una DTD esterna, è possibile utilizzare la seguente sintassi.
<!DOCTYPE rootElement SYSTEM "URIreference">
URIreference
punta a un file contenente le dichiarazioni.
<!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference">
PublicIdentifier
fornisce un identificatore separato utilizzabile da alcuni parser XML per fare riferimento alla DTD al posto di URIreference
. Questo identificatore è utile quando si utilizza il parser su un sistema privo di connessione di rete oppure nel caso in cui tale connessione rallenterebbe notevolmente l'elaborazione.
Le dichiarazioni DOCTYPE possono includere dichiarazioni anche direttamente, in quello che viene chiamato sottoinsieme interno. Se in una dichiarazione DOCTYPE è inclusa direttamente l'intera DTD, senza riferimento a file esterni, verrà adottata la seguente sintassi.
<!DOCTYPE rootElement [
declarations
]>
Se nella dichiarazione DOCTYPE sono incluse dichiarazioni che devono essere combinate a file esterni o al sottoinsieme esterno, verrà adottata la seguente sintassi.
<!DOCTYPE rootElement SYSTEM "URIreference"[
declarations
]>
or
<!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference"[
declarations
]>