|
Il '''''logothetēs tou dromou''''' ({{lang-el|{{lang|grc|λογοθέτης τοῦ δρόμου}}}}), dal significato di '''Logoteta postale/''Dromos''''', era il capo del dipartimento delle [[cursus publicus|poste imperiali]] (in [[lingua latina]] cursus publicus, {{lang-el|δημόσιος δρόμος}}, ''dēmosios dromos'', o semplicemente {{lang|grc|ὁ δρόμος}}, ''ho dromos''), e uno dei più elevati ministri ([[logoteta]]) dell'[[impero bizantino]].
Lo scopo di un '''Document Type Definition''' (definizione del tipo di documento) è quello di definire
le componenti ammesse nella costruzione di un documento [[XML]].
Il termine non è utilizzato soltanto per i documenti XML ma anche per tutti i documenti derivati dall'[[SGML]] (di cui peraltro XML vuole essere una semplificazione che ne mantiene la potenza riducendone la complessità) tra cui famosissimo è l'[[HTML]].
==Storia e funzioni==
In SGML, un DTD è necessario per la validazione del
L'ufficio del ''logothetēs tou dromou'' è ufficialmente attestato, per la prima volta, nel 762, ma vi sono tracce della sua origine nel [[cursus publicus]] della [[tarda antichità]].<ref name="kazhdan">{{cita|Kazhdan, 1991 pp. 1247–1248}}.</ref> Fino alla fine del IV secolo, l'amministrazione postale dell'[[Impero romano]] era responsabilità delle [[prefetto del pretorio|prefettura del pretorio]]. A causa dell'abuso e dei suoi privilegi da parte dei funzionari delle prefetture del pretorio, alla fine del IV secolo la supervisione sopra il servizio postale passò al ''[[magister officiorum]]'', mentre l'amministrazione giornaliera rimase nelle mani della prefettura del pretorio.<ref>{{cita|Guilland, 1971 pp. 31–32}}.</ref> Di conseguenza, un funzionario noto come il ''cursus publici curiosus'', l'ispettore delle poste pubbliche, è attestato, alla fine del IV secolo, in ''[[Notitia Dignitatum]]'' (''Pars Orientalis'', XI.50) come uno dei principali collaboratori del ''magister officiorum''.<ref name="bury">{{cita|Bury, 1911 p. 91}}.</ref><ref name="guilland">{{cita|Guilland, 1971 p. 32}}.</ref> L'amministrazione gemella delle poste pubbliche dei prefetti del pretorio e il ''magister officiorum'' proseguirono nel VI secolo e soltanto intorno al 680 il servizio postale pubblico passò completamente sotto il controllo del ''magister officiorum''.<ref>{{cita|Guilland, 1971 pp. 32–33}}.</ref>
documento. Anche in XML, un documento è valido se
presenta un DTD ed è possibile validarlo usando il
DTD.
L'ufficio del ''logothetes tou dromou'' non compare nelle fonti superstiti fino all'anno 762, ma deve essere esistito ben da prima, a seguito che i compiti, un tempo ad ampio raggio del ''magister officiorum'', vennero progressivamente rimossi e l'ufficio in sé praticamente abolito nel corso dell'VIII secolo. Tra le varie funzioni del ''magister officiorum'', il ''logothetes tou dromou'' assunse il controllo non solo non solo del servizio postale pubblico, ma anche della sicurezza interna e della politica estera dell'Impero, la raccolta di informazioni (spionaggio) sui popoli stranieri, la corrispondenza con i principi stranieri e l'accoglienza degli ambasciatori.<ref name="bury" /><ref name="kazhdan" /><ref name="guilland2">{{cita|Guilland, 1971 pp. 33–34}}.</ref> Anche se in origine era semplicemente uno dei quattro uffici fiscali più importanti o ''[[logoteta]]'' — il ''[[Kletorologion|Klētorologion]]'' di 899 posti, ''logothetēs tou dromou'' al 35º posto nella gerarchia imperiale, dopo i ''[[logothetes tou genikou|logothetēs tou genikou]]'' (33°) e ''[[logothetes tou stratiotikou|logothetēs toū stratiōtikou]]'' (34°), ma prima del ''[[logothetes ton agelon|logothetēs tōn agelōn]]'' (40°)<ref>{{cita|Guilland, 1971 p. 9}}.</ref> — andò assumendi sempre maggiore importanza, secondo lo studioso francese [[Rodolphe Guilland]], combinando le funzioni di un moderno ministro degli interni, della sicurezza e degli esteri uniti in una sola persona, anche se per gli affari esteri era riservato solo ai meno importanti.<ref name="guilland2" /> Indicativo della sua preminenza è che nelle fonti bizantine del IX e X secolo, quando si parla di "logoteta" senza ulteriori specificazioni, ci si riferisce di solito al ''logothetes tou dromou''.<ref name="bury" />
Tuttavia XML permette anche documenti ben formati,
ovvero documenti che, pur essendo privi di DTD,
presentano una struttura sufficientemente regolare e
comprensibile da poter essere controllata.
Di conseguenza, l'operatore storico dell'ufficio spesso era il primo ministro dell'Impero, anche se questo in ultima analisi, dipendeva dal regnante imperatore - i bizantini non formalizzarono mai una tale posizione, né era collegata a un particolare ufficio, piuttosto veniva concessa ''ad hoc'' «sulla base del favore che ogni imperatore aveva verso un particolare cortigiano, a prescindere dal rango o dall'ufficio. Come sottolinea Guilland, gli alti funzionari della famiglia imperiale - '' [[praipositos |praipositoi]]'', '' [[parakoimomenos |parakoimōmenoi]]'' e '' [[protovestiario |prōtovestiarioi]]'' - avevano di gran lunga più possibilità di attrarre il favore imperiale e molto più spesso ricoprivano il ruolo di primo ministro.<ref>{{cita|Guilland, 1971 pp. 34–35}}.</ref> Importanti ''logothetai tou dromou'' che ebbero la funzione di primo ministro furono [[Stauracio (eunuco)|Stauracio]] sotto l'imperatrice [[Irene d'Atene]], [[Teoctisto]] durante le reggenza dell'imperatrice [[Teodora Armena|Teodora]], [[Stylianos Zaoutzes]] agli inizi del regno di [[Leone VI il Saggio]], [[Leone II Foca]] durante il regno di suo fratello [[Niceforo II Foca]], Giovanni sotto [[Costantino IX Monomaco]] e [[Nikephoritzes]] sotto [[Michele VII Ducas]].<ref>{{cita|Guilland, 1971 p. 35}}.</ref> I ''logothetēs tou dromou'' mantennero qwuesta preminenza tra i ministri anziani anche se nel XII secolo vennero superati dai ''[[logothetes ton sekreton|logothetēs tōn sekretōn]]''.<ref>{{cita|Kazhdan, 1991| pp. 1247–1248}}.</ref> Il ''[[De Ceremoniis]]'' di [[Costantino VII Porfirogenito]], del XII secolo, descrive i ruoli amministrativi e cerimoniali della funzione di ''logothetēs tou dromou'': veniva ricevuto in udienza dall'imperatore tutte le mattine nel [[Crisotriclinio]], presentava gli ufficiali superiori alle cerimonie di premiazione, ed aveva parte preminente nel ricevimento degli ambasciatori stranieri e nella presentazione dei prigionieri eccellenti.<ref name="bury2">{{cita|Bury, 1911 p. 92}}.</ref> Dopo la riforma dell'imperatore [[Alessio I Comneno]], intorno al 1108, i ''dromos'' cessarono di esistere come dipartimento, il ''logothetēs'' rimase, ora responsabile delle comunicazioni ufficiali e della supervisione degli stranieri residenti a Costantinopoli.<ref>{{cita|Magdalino, 2002 p. 229}}.</ref>
Si può dichiarare all'interno di uno stesso documento XML (dichiarazione ''inline'')
==Subordinati==
== Cosa fa un DTD ==
I subordinati del ''logothetēs tou dromou''erano:
*I ''[[protonotarios|prōtonotarios]] tou dromou'' ({{lang|grc|πρωτονοτάριος τοῦ δρόμου}}), i suoi vice anziani.<ref name="bury2" />
*Definisce gli elementi leciti all'interno del documento. Non si possono usare altri elementi se non quelli definiti. Una specie di "vocabolario" per i file che lo useranno.
*I ''[[chartoularios|chartoularioi]] tou [oxeos] dromou'' ({{lang|grc|χαρτουλάριοι τοῦ [ὀξέος] δρόμου}}), che erano impiegati con il rango di ''[[spatharios]]'', combinati la funzione dell'impero romano ''curiosi per omnes provincias'' trovata in ''Notitia Dignitatum'' e di ufficiale dello ''scrinium barbarorum''.<ref name="bury2" /><ref name="guilland" />
*Definisce la struttura di ogni elemento. La struttura indica cosa può contenere ciascun elemento, l'ordine, la quantità di elementi che possono comparire e se sono opzionali o obbligatori. Una specie di "grammatica".
*Un certo numero di ''episkeptētai'' ({{lang|grc|ἐπισκεπτῆται}}), ufficiali di diverse proprietà imperiali (''[[episkepsis|episkepseis]]'').<ref name="bury3">{{cita|Bury, 1911 p. 93}}.</ref>
*Dichiara una serie di attributi per ogni elemento e che valori possono o devono assumere questi attributi.
*Traduttori ({{lang|grc|ἑρμηνευταῖ}}, ''hermēneutai''), anche detti (''interpretes diversarum gentium'') in ''Notitia Dignitatum''.<ref name="bury3" /><ref name="guilland" />
*Fornisce infine alcuni meccanismi per semplificare la gestione del documento, come la possibilità di dichiarare [[entity]] e la possibilità di importare parti di altri DTD.
*I ''[[curator|kouratōr]] tou apokrisiareiou'' ({{lang|grc|κουράτωρ του ἀποκρισιαρείου}}), che gestivano gli ''apokrisiarieion'', palazzi di Costantinopoli che ospitavano diplomatici di secondo livello (non ambasciatori).<ref name="bury3" />
*Ispettori, ''diatrechontes'' (διατρέχοντες, gli antichi romani ''cursores'') e messaggeri (μανδάτορες, ''[[mandator]]es'').<ref name="bury3" />
==Note==
Inoltre il DTD serve ad un [[parser]] per controllare la correttezza di un documento (well formed).
<references/>
== Esempio Bibliografia==
* {{Cita libro|cognome=Bury |nome=John Bagnell |wkautore=J. B. Bury |titolo=The Imperial Administrative System of the Ninth Century - With a Revised Text of the Kletorologion of Philotheos |anno=1911 |città=London |editore=Oxford University Press |url=https://archive.org/details/imperialadminist00buryrich |cid=harv}}
Il seguente DTD:
* {{Cita libro|cognome=Guilland |nome=Rodolphe |wkautore=Rodolphe Guilland |titolo=Les Logothètes: Études sur l'histoire administrative de l'Empire byzantin |rivista=Revue des études byzantines |volume=29 |anno=1971 |pp=5–115 | doi=10.3406/rebyz.1971.1441 |url=http://www.persee.fr/web/revues/home/prescript/article/rebyz_0766-5598_1971_num_29_1_1441 |lingua=fr |cid=harv}}
* {{Cita libro|curatore-cognome=Kazhdan |curatore-nome=Alexander |wkcuratore=Alexander Kazhdan |titolo=[[Oxford Dictionary of Byzantium]] |città=New York and Oxford |editore=Oxford University Press |anno=1991 | isbn=978-0-19-504652-6 |cid=harv}}
<pre>
* {{Cita libro|cognome=Magdalino |nome=Paul |titolo=The Empire of Manuel I Komnenos, 1143–1180 |città=Cambridge |editore=Cambridge University Press |anno=2002 |annooriginale=1993 | isbn=0-521-52653-1 |url=https://books.google.com/books?id=0cWZvqp7q18C |cid=harv}}
<! ELEMENT persona (nome, cognome)>
* {{Cita pubblicazione|nome=Marie-Thérèse |cognome=Le Léannec-Bavavéas |url=http://www.persee.fr/web/revues/home/prescript/article/rebyz_0766-5598_2002_num_60_1_2264 |titolo=Jean, logothète du drome au 11e siècle |lingua=fr |rivista=Revue des études byzantines |volume=60 |anno=2002 |pp=215–220 |accesso=28 aprile 2013 | doi=10.3406/rebyz.2002.2264}}
<! ELEMENT nome (#PCDATA) >
* {{Cita pubblicazione|nome=D. A. |cognome=Miller |titolo=The Logothete of the Drome in the Middle Byzantine Period |rivista=Byzantion |volume=36 |anno=1966 |pp=438–470}}
<! ELEMENT cognome (#PCDATA) >
</pre>
{{Titoli, onorificenze e cariche dell'Impero Bizantino}}
definisce una struttura così composta:
<pre>
<persona>
<nome>Mario</nome>
<cognome>Rossi</cognome>
</persona>
</pre>
== Sintassi DTD ==
Un DTD è opzionale e può essere specificato all'inizio di un documento XML, inoltre può essere specificato se le definizioni sono interne od esterne al documento XML.
DTD interno:
<pre><!DOCTYPE Report [ ...
]>
</pre>
DTD esterno:
<pre>
<!DOCTYPE Report SYSTEM “Report.dtd”>
<!DOCTYPE Report PUBLIC “Report.dtd”>
</pre>
=== Elemento di DTD ===
Ciascun elemento deve essere dichiarato in una DTD con dichiarazioni di tipo di elemento. Tali dichiarazioni hanno la forma
<pre>
<!ELEMENT nome-elemento ( modello di contenuto )>
</pre>
Esempio:
<pre>
<?xml version = "1.0"?>
<!DOCTYPE nota [
<!ELEMENT nota (#PCDATA)>
]>
<nota>Ricordati di acquistare il latte tornando a casa</nota>
</pre>
==== #PCDATA ====
#PCDATA è una parola chiave riservata alla DTD per "Parsed Character Data", che indica del testo generico.
#PCDATA indica che l'elemento contiene dati di testo leggibili da un analizzatore XML ed elaborati opportunamente. Se ci sono marcatori nei PCDATA, possono influenzare l'analisi sintattica del documento.
==== Parola chiave ANY ====
Si può definire un certo elemento sapendolo certamente non vuoto
(cioè contiene elementi o testo o entrambi), ma senza conoscere
esattamente il modello di contenuto. Nella DTD si può usare allora la
parola chiave ANY per dichiarare che il contenuto di quell'elemento può
essere qualsiasi cosa.
'''Sintassi '''
<pre>
<!ELEMENT nome ANY></pre>
Esempio:
<pre>
<?xml version = "1.0"?>
<!DOCTYPE nota[
<!ELEMENT nota ANY>
<!ELEMENT numero EMPTY>
<!ELEMENT messaggio (#PCDATA)>
<!ELEMENT data EMPTY>
]>
<nota>
<numero />
<messaggio> Ricordati di comprare il latte tornando a
casa</messaggio>
<data />
</nota>
</pre>
==== Contenuto misto dell'elemento ====
Se si vuole definire una regola che consenta a un elemento di contenere
testo o altri elementi in qualche combinazione si usa un modello a
contenuto misto.
'''Sintassi '''
<pre>
<!ELEMENT nome (#PCDATA | figlio)*></pre>
'''Esempio:'''
<pre>
<?xml version = "1.0"?>
<!DOCTYPE nota[
<!ELEMENT nota (#PCDATA | numero | messaggio | data )*>
<!ELEMENT numero EMPTY>
<!ELEMENT messaggio ( #PCDATA )>
<!ELEMENT data EMPTY>
]>
<nota>Nota importante
<numero />
<messaggio>Ricordati di comprare il latte tornando a casa</messaggio>
<data />
</nota>
</pre>
=== Elementi annidati ===
Gli elementi possono essere contenitori per altri elementi (elementi annidati).
L'elemento radice di un documento XML normalmente è di
questo tipo.
Esempio:
<pre>
<?xml version = "1.0"?>
<!DOCTYPE nota [
<!ELEMENT nota ( messaggio )>
<!ELEMENT messaggio ( #PCDATA)>
]>
<nota>
<messaggio> Ricordati di comprare il latte tornando a
casa</messaggio>
</nota></pre>
La definizione DTD prevede dapprima la dichiarazione dell'elemento radice e tra parentesi tonde l'elenco degli elementi annidati, e dopo la dichiarazione per ogni elemento annidato.
=== Elemento vuoto ===
Gli elementi vuoti normalmente vengono usati come
segnaposto, o per fornire valori di attributi necessari che non
modificano propriamente altri elementi. La parola chiave
EMPTY nel modello di contenuto di un elemento dichiara che
è un elemento vuoto.
Esempio:
<pre>
<?xml version = "1.0"?>
<!DOCTYPE nota [
<!ELEMENT nota (numero, messaggio)>
<!ELEMENT numero EMPTY>
<!ELEMENT messaggio(#PCDATA)>
]>
<nota>
<numero />
<messaggio> Ricordati di comprare il latte tornando a casa</messaggio>
</nota>
</pre>
=== Attributo ===
Le dichiarazioni di attributo hanno la forma
<pre>
<!ATTLIST nome-elemento
nome-attributo1 (tipo) valori_predefiniti
nome-attributo2 (tipo) valori_predefiniti>
</pre>
In una DTD si dichiarano tre tipi fondamentali di attributi:
#Stringhe, indicate dalla parola chiave CDATA (CDATA è solo testo, ma testo che l'analizzatore sintattico non tenta di elaborare; i caratteri di marcatura, come le parentesi angolari, vengono ignorati nei segmenti CDATA, ma risolti nei segmenti PCDATA.)
#Attributi tokenizzati, indicati da token dichiarati
#Attributi enumerati, per i quali viene indicata una serie di valori validi
fra cui scegliere
==== Valori predefiniti degli attributi ====
# #REQUIRED Specifica che l'attributo è obbligatorio
# #FIXED Fornisce una dichiarazione di costante per il valore di un attributo. Se il valore è diverso da quello dichiarato, il documento non è valido
# #IMPLIED L'attributo è facoltativo. Cioè, se l'attributo non appare nell'elemento, l'applicazione di elaborazione può usare qualsiasi valore (se necessario).
Esempio
<pre>
<?xml version = "1.0"?>
<!DOCTYPE nota [
<!ELEMENT nota (messaggio)>
<!ELEMENT messaggio (#PCDATA)>
<!ATTLIST messaggio
numero CDATA #REQUIRED
data CDATA #REQUIRED>]>
<nota>
<messaggio numero="10" data="140305">
Ricordati di comprare il latte tornando a casa
</messaggio>
</nota></pre>
La parola chiave CDATA consente l'inclusione nella stringa di qualsiasi carattere, fuorché "<, >, &".
==== Attributi tokenizzati ====
Le opzioni tokenizzate danno il modo per limitare i valori permessi per gli attributi. Per esempio, possiamo volere che ciascun elemento abbia un identificativo unico, oppure permettere che un attributo possa avere solo uno o due valori diversi.
Tipi di attributi tokenizzati nelle DTD:
# ID Identifica in modo univoco un elemento
# IDREF Punta ad un elemento che hanno un attributo ID
# IDREFS Punta a più elementi che hanno un attributo ID. Gli attributi puntati sono elencati saparati da uno spazio
# ENTITIES Fa riferimento a una entità esterna non analizzata sintatticamente
# NMTOKEN definisce qualche limitazione ai caratteri accettabili nei contenuti XML;
in particolare, limita i dati alle stesse regole usate nelle convenzioni sui nomi di
elemento XML Il tipo di attributo name token, cioè NMTOKEN, restringe i valori validi a quelli
costituiti da lettere, cifre, punti, trattini, virgole e sottolineature.
Esempio
<pre>
<?xml version = "1.0"?>
<!DOCTYPE nota [
<!ELEMENT nota ( messaggio+, risultato+)>
<!ELEMENT messaggio (#PCDATA)>
<!ATTLIST messaggio
numero ID #REQUIRED
da CDATA #REQUIRED>
<!ELEMENT risultato (#PCDATA)>
<!ATTLIST risultato
msg IDREF #IMPLIED>
]>
<nota>
<messaggio numero="a1" da="Pippo">Ricordati di comprare il latte tornando a
casa</messaggio>
<messaggio numero="a2" da="Pluto">Ho bisogno di aiuto per i compiti a casa
</messaggio>
<risultato msg="a1">il latte era scaduto</risultato>
<risultato msg="a1">sono andato in un altro negozio</risultato>
<risultato msg="a2">ho finito presto i compiti</risultato>
</nota>
</pre>
==== Attributi enumerati ====
Gli attributi di tipo enumerato descrivono un elenco di valori possibili per l'attributo valutato. Perché sia soddisfatto il requisito della validità, l'attributo deve avere uno dei valori presenti nell'elenco; in ogni altro caso viene considerato non valido. I valori enumerati sono separati da un carattere "pipe" (|), che è interpretato come "or" logico dal processore XML.
Esempio:
<pre><!ATTLIST messaggio
Avviso ( basso | normale | urgente) “basso”></pre>
=== Indicatori di occorrenza ===
Nella DTD vengono utilizzati dei simboli che predispongono il parsing a contare le occorrenze di un oggetto.
# ''',''' (a, b, c) Questo operatore di sequenza separa i membri di una lista che richiede l'uso sequenziale di tutti i membri della lista (a seguito da b, seguito da c)
# '''|''' (a|b|c) Questo è un operatore di scelta, che separa membri di una lista quando è richiesto l'uso di uno e uno solo dei membri (''a'' o ''b'' o ''c'').
La mancanza di un simbolo indica una occorrenza necessaria (uno e uno solo di dati).
# '''?''' oggetto? Questo simbolo designa una occorrenza facoltativa (zero o un oggetto).
# '''+''' paragrafo+ Questo simbolo indica un'occorrenza obbligatoria e ripetibile (almeno un paragrafo, possibilmente più d'uno).
# '''*''' fratelli* Questo simbolo indica un'occorrenza facoltativa e ripetibile (zero, uno o più fratelli).
== Collegamenti esterni ==
*{{it}} [http://www.zvon.org/xxl/DTDTutorial/General_ita/contents.html Guida semplice] in 15 lezioni
*{{en}} [http://www.w3schools.com/dtd Approfondimento su w3school.com]
[[Categoria:Standard XML]]
[[Categoria:Cariche bizantine]]
[[ca:Document Type Definition]]
[[cs:Document Type Definition]]
[[de:Dokumenttypdefinition]]
[[en:Document Type Definition]]
[[eo:Dokumento-Speco-Difino]]
[[es:DTD]]
[[fa:تعریف انواع در سند]]
[[fi:DTD]]
[[fr:Document Type Definition]]
[[he:Document Type Definition]]
[[hr:Document Type Definition]]
[[ja:Document Type Definition]]
[[nl:Document Type Definition]]
[[nn:Dokumenttypedefinisjon]]
[[no:Document Type Definition]]
[[pl:DTD]]
[[pt:Document Type Definition]]
[[ru:DTD]]
[[sv:Document Type Definition]]
[[tr:DTD]]
[[uk:Document Type Definition]]
[[zh:文件类型描述]]
|