XML DTD Moduli

DTD moduli sono meglio definiti rispetto ai moduli astratti, anche se non è così flessibile. Perché utilizzare la sintassi formale di XML 1.0 DTD (di cui all'articolo 6), moduli DTD hanno tutte le capacità e tutte le limitazioni di qualsiasi DTD XML. XHTML 1.1 DTD moduli sono anche più complesso rispetto alla media XML DTD, utilizzando una serie di convenzioni di denominazione che trae pieno vantaggio degli enti parametri personalizzabili per creare le descrizioni delle strutture documento. Parametrizzazione è estremamente potente, ma ci vuole tempo per abituarcisi.

SuggerimentoXHTML 1.1 DTD moduli sono molto più difficile da leggere rispetto a molti XML DTD. Se non è possibile penetrare la descrizione formale di un dato modulo, il modulo abstractdovere aiutarvi. Se scrivete i vostri moduli, è fondamentale che si includono i moduli astratti.

XREF Se non avete fatto molto, con entità parametro, si consiglia di tornare all'articolo 6, e rivedere la loro sintassi e il loro utilizzo. Le regole per la creazione di XHTML 1.1 's XML DTD moduli sono presentati nella sezione 5 del BuildingXHTML Moduli progetto e ha dimostrato nella sezione 6. Ci sono alcune convenzioni aggiuntive utilizzate inModularizzazione di XHTML quello Costruzione di moduli XHTML non descrive, che coprono anche qui. Appaiono utili e aiutare a spiegare alcune delle scorciatoie sintattiche (come ad esempio gli attributi comuni) utilizzati nei moduli astratti.

Parametrizzazione significa semplicemente mettere tutto il contenuto delle dichiarazioni in param-entità eter. Questo rende le dichiarazioni più facile da gestire, e allo stesso tempo rende molto più facile per modificarli. Mentre è possibile modificare le dichiarazioni di attributo e le entità parametro che fa la dichiarazione di nuovo, XML vieta dichiarazioni multiple per i tipi di elemento. Mettendo il contenuto di queste dichiarazioni in entità parametro, i creatori di moduli XHTML in grado di fornire la flessibilità molto di più. Vediamo esempi di ciascuno di questi suffissi tratte dal progetto di W3C DTD, edificio dai pezzi più piccolo al più grande atomica.

  

. datatypeI tipi di dati in XHTML 1.1 sono i diretti discendenti di quelli in XHTML 1.0, e sono dichiarati nella sezione B.2.1. La maggior parte dei tipi di dati sono semplicemente più precisi nomi per CDATA, il contenuto testuale:

 Questi tipi di dati vengono poi utilizzati per le dichiarazioni di attributo: 

Tutte queste dichiarazioni di tipo di dati effettivamente a risolvere CDATA quando un processore XML legge il DTD, ma rendono i contenuti che devono essere conservati in questi attributi molto più identificabili.

SuggerimentoMentre i processori XML 1.0 non può fare molto per far scrivere i dati di oggi, i processori schema dovrebbe essere in grado di realizzare di più con queste informazioni in futuro. Pensate a questo approccio, come l'aggiunta di informazioni alla DTD in modo che sia pronto per la prossima versione. Questi nomi tipo di dati vengono utilizzati nei moduli astratto per XHTML 1.1, come pure, che integra il nucleo XML 1.0 insieme di tipi.

. attribIl suffisso. Attrib viene utilizzato il parametro di entità che rappresentano uno o più attributo specifiche - La parte di una dichiarazione di lista di attributi che definisce gli attributi individuali, la loro forma, le impostazioni predefinite, e valori possibili. Queste entità a volte descrivono solo un attributo, come questo per l'attributo id:

 Essi possono specificare più attributi, come questo per xml: lang e dir: 

Queste entità possono essere inclusi anche altri soggetti, con il suffisso. Attrib, come l'entità Common.attrib onnipresente:

 

Questo comprende solo tutte le specifiche di attributo dichiarato nel Core.attrib, I18n.attrib, ed entità Events.attrib, costruire una grande lista di componenti comuni. Le quotazioni devono essere utilizzati, anche se tutto il contenuto della società sono contenute in entità parametro.

. ATTLISTL'. Suffisso ATTLIST (non documentata in Costruzione di moduli XHTML) È utilizzato nella DTD XHTML 1.1 dichiarazioni ATTLIST per attivare e disattivare. Entità parametro che hanno il suffisso. ATTLIST prendere uno dei due valori: CONTENERE o ignorare. Funzionano con una caratteristica di XML 1.0 DTD non utilizzati in XHTML 1.0: condizionale sezioni.

SuggerimentoPer una spiegazione molto più dettagliata di sezioni condizionale e il loro uso in altri contesti XML, si veda l'articolo 16 della Elementi XML di Stile da Simon St. Laurent (McGraw-Hill, 2000). sezioni condizionali possono essere visualizzati nel DTD solo; DTD permettono ai progettisti di turno serie di dichiarazioni e fuori. Utilizzando entità parametro per decidere se includere o ignorare una parte, gli sviluppatori di rendere possibile l'uso di porzioni di una DTD o anche di scegliere tra diverse variazioni su un unico DTD. Ad esempio, questo frammento di DTD include gli attributi per il tipo di elemento title:

 ]]>

La prima riga crea un'entità parametro denominato Title.attlist il cui valore è INCLUDE. Nella riga successiva, l'entità viene sostituita con% Title.attlist; per la produzione di tali dichiarazioni risultanti:

 ]]> Un strisce parser XML la sezione INCLUDE e il commento, lasciando un nucleo di:  Che diventa quindi:  e infine: 

Se, d'altro canto, un altro modulo ridichiara l'entità Title.attlist da ignorare:

 allora il risultato è il seguente:  ]]>
che vieta il parser dal trattamento delle dichiarazioni a tutti, lasciando titolo senza attributi. entità con il suffisso. ATTLIST circondano le dichiarazioni lista di attributi per ogni tipo di elemento nelModularizzazione di XHTML bozza.
  

. tenoreL'. Tenore di funzioni suffisso per i soggetti di parametri che descrivono modelli di contenuto per i tipi di elemento particolare. L'esempio più semplice, per un modello vuoto di contenuti, come questo:

 Una volta trasformato, questo decide di: 
e definisce l'elemento di input come aventi un modello vuoto di contenuti. Da redeclaring entità,. Tenore suffisso, altri moduli possono facilmente modificare il modello di contenuto di un elemento. 

. classe (e. extra)Le funzioni. Suffisso classe per entità parametro che può essere utilizzato più volte in modelli di contenuto per più elementi, ma solo quando i contenuti sono nomi tipo di elemento che tutti qualcosa in comune. In XHTML, questo tende a dire che gli elementi di blocco sono una classe, mentre gli elementi in linea sono un'altra classe. Tali enti non sono definiti (con una sola eccezione, rilevare poi) in Modularizzazione delXHTML bozza. Essi sono definiti nel file di personalizzazione, un altro modulo, in Appendice C del XHTML 1.1 --Module-based XHTML. Ad esempio:

Attraverso le abbreviazioni, si può vedere che questi sono i tipi di elementi strutturali che possono apparire come elementi inline. br viene utilizzato per le interruzioni di linea all'interno di elementi di blocco, mentre la durata è un elemento astratto per lo più utile per la marcatura off contenuti in linea in modi che non trovano riscontro da parte di altri contenuti in linea. Questa entità e diversi suoi fratelli ottenere combinati in un soggetto più ampio Inline.class:

 

Una stranezza: ecco Inline.extra -- Costruzione di moduli XHTML descrive "ufficiale" per la convention. extra. Inline.extra è questa dichiarazione:

I commenti DTD descrive come utilizzare questo. Suffisso extra: Mentre in alcuni casi, questo modulo può essere necessario essere riscritti per adattarsi ai cambiamenti al modello di documento, la proroga del minore può essere compiuta da redeclaring una qualsiasi delle tre *. extra; entità parametro per contenere tipi di elemento di estensione come segue:% Misc.extra, la cui casa madre può essere un blocco o un elemento inline. Inline.extra%, il cui genitore può essere qualsiasi elemento inline. Block.extra%, il cui genitore può essere qualsiasi elemento di blocco. Se utilizzato, queste entità parametro deve essere un elenco separato da O cominciando con un esempio O ("|"), separatore. "| a | b | c" While. extra è documentato (finora) in Costruzione di moduli XHTML, È un elemento fondamentale per gli sviluppatori che vogliono aggiungere le proprie estensioni di XHTML 1.1. Classe. Suffisso anche funzioni in almeno un posto per gli attributi. L'entità seguenti include tutti i tipi di input:

 

Questa anomalia deriva probabilmente da un uso insolito l'elemento di input di un attributo per indicare il suo contenuto "reale".

. mixIl suffisso. Mix crea liste di elementi per l'uso in modelli di contenuti in cui le varie classi di oggetti get combinato. L'entità Flow.mix (anche dal file di personalizzazione XHTML 1.1 - Modulo baseXHTML) È un buon esempio:

 
Qualsiasi elemento che utilizza Flow.mix nel suo modello di contenuto può includere quasi ogni elemento del linguaggio XHTML. E 'sicuramente una combinazione.
  

. modEntità parametro che terminano in. Mod assemblare DTD completa di tutte queste piccole parti che compongono XHTML. XHTML 1.1 's file del driver (incluso come appendice B XHTML 1.1 - Modulo baseXHTML) Contiene molte di queste entità.

 xhtml% form.mod;

In questo caso, l'entità viene dichiarata utilizzando un identificatore pubblico e una parte del sistema. Se l'applicazione o il parser lavorazione di questo comprende l'identificatore pubblico, si può utilizzare queste informazioni per includere la DTD. In caso contrario, si può utilizzare il relativo URL che segue per recuperare il file. Dopo la dichiarazione, il contenuto del file vengono immediatamente inseriti nella DTD.

. moduleEntità parametro che terminano in. Modulo volta i soggetti che terminano in. Mod dentro e fuori con le stesse dichiarazioni condizionali (INCLUDE e ignorare) che. Entità ATTLIST uso. Ad esempio, il modulo di maschera XHTML normalmente viene caricato a causa di questo codice:

 xhtml% form.mod;]]>

Se si desidera conservare il modulo di maschera da carico, tutto quello che devi fare è definire un nuovo xhtmlform. Entità modulo prima di quella, prevalente con un valore di ignorare:

 ...  xhtml% form.mod;]]> Il risultato è questo:  xhtml% form.mod;]]>

Il modulo non viene caricato. Nota: la convenzione di denominazione qui - entrambe le entità (. E mod. Module) hanno lo stesso nome tranne che per il suffisso. Questo rende il DTD molto più gestibile.

Schema ModuliXHTML 1.1 utilizzerà schemi XML quando sono pronti. Il Modularizzazione di XHTML Appendice progetto di stati A, "Questa appendice contiene le implementazioni dei moduli definiti in XHTML Abstract moduli tramite XML Schema [XMLSCHEMA] quando lo schema XML diventa un W3C ha approvato la raccomandazione." Il Costruzione di moduli XHTML progetto non specifica come costruire moduli Schema. Gli attuali progetti di schema non utilizzare i meccanismi che corrispondono direttamente alle entità parametro, ma approcci simili possono essere possibile utilizzare le entità generali (perché gli schemi sono documenti XML stessi) e l'estensione dei meccanismi di restrizione e di schemi XML.

un articolo presentato da Albert Lichtblau


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo "XML DTD Modules" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 336 users browsing the articles directory