Documenti XML ben formati Altre componenti di un documento XML – Struttura dei documenti XML
Sezioni condizionali IGNORE/INCLUDE A volte può essere utile marcare porzioni di DTD in modo da processarle solo in determinate circostanze Nel caso di DTD molto complesse può essere utile limitare la possibilità di modificare la DTD da parte dei singoli utilizzatori
Sintassi Simili alle sezioni CDATA :
Esempio Poesie con solo stanze: <![INCLUDE[ ]]>
Per rendere inattiva la regola: <![IGNORE[ ]]>
Istruzioni di elaborazione (processing instruction) Iniziano con Es: fogli di stile
Namespace Serve per inserire una parte di una DTD o di uno schema quando se ne sta usando un altro Si dichiara nel documento XML grazie a un attributo standard xmlns:[prefisso_namespace]
Esempio: analisi grammaticale del sonetto Supposizione: esiste già una DTD grammaticale Ipotesi uno: combinare le due DTD Problema 1: complessità delle DTD Problema 2: elementi con stesso nome ma significato diverso Ipotesi due: namespace
Esempio: analisi grammaticale Voi ch' ascoltate in rime sparse il suono
Struttura dei documenti XML 1. Prologo 2. Istanza di documento (il documento vero e proprio)
Prologo Può contenere: Dichiarazione XML Istruzioni di elaborazione Doctype Declaration Document Type Definition (DTD)
Esempio di dichiarazione XML
Dichiarazione XML Ha la forma di un’istruzione di elaborazione Ha tre attributi: version. Corrisponde alla versione XML correntemente in uso (al momento 1.0). L’attributo è obbligatorio. encoding. Corrisponde alla codifica di linguaggio usato per il documento. Il tipo predefinito è UTF-8, ma si possono usare altri set di caratteri. L’attributo è opzionale standalone. Impostare l’attributo a “yes” se il documento non fa riferimento ad altre entità esterne; in caso contrario, usare “no”. L’attributo è opzionale
Istruzioni di elaborazione Es:
DocType Declaration (DTD ?) ≠ Document Type Definition (DTD) DocType Declaration: KEYWORD DOCTYPE + elemento root + definizioni (DTD) Definizioni interne o Definizioni esterne SYSTEM o PUBLIC Document Type Definition (DTD): Una lista di definizioni per elementi, attributi, entità, notations
DTD interne e esterne e miste. 1. DTD interna <!DOCTYPE antologia [ ]> I Voi ch'ascoltate in rime sparse il suono di quei sospiri ond'io nudriva 'l core in sul mio primo giovenile errore quand'era in parte altr'uom da quel ch'i' sono,
2. DTD esterna I Voi ch'ascoltate in rime sparse il suono di quei sospiri ond'io nudriva 'l core in sul mio primo giovenile errore quand'era in parte altr'uom da quel ch'i' sono,
3. DTD mista <!DOCTYPE antologia SYSTEM "antologia.dtd" [ ]> I Voi ch'ascoltate in rime sparse il suono di quei sospiri ond'io nudriva 'l core in sul mio primo giovenile errore quand'era in parte altr'uom da quel ch'i' sono, &SecondaPoesia;
DTD pubblica <!DOCTYPE TEI.2 PUBLIC "-//TEI//DTD TEI Lite XML ver. 1//EN" "/tei-emacs/xml/dtds/tei/teixlite.dtd">
FPI: Formal Public Identifier "-//TEI//DTD TEI Lite XML ver. 1//EN" 1. Standard formale 1. DTD personalizzate – 2. Standard formale + 2. Nome di chi fa la manutenzione della DTD 3. Descrive il tipo di DTD 4. Lingua della DTD