3.14

Sezione 3: Autori

Q 3.14: Continuo a sentir parlare di alternative ai DTD. Cos’è uno Schema?

Come un DTD per validare il contenuto e la struttura.

 

Le raccomandazioni di Schema XML W3C XML forniscono un significato all’inserimento di dati specifico e la convalida di contenuti di elemento in termini di tipi di dati, in modo che il designer del tipo di documento possa fornire criteri per controllare il contenuto dei dati degli elementi nonché ilo stesso markup. Gli Schemi sono scritti in Sintassi di Documento XML, come i documenti XML, evitando la necessità di software di elaborazione per essere in grado di leggere la Sintassi di Dichiarazione XML (usate per DTD).

Esiste un FAQ su Schema su http://schema.org/docs/faq.html Il termine ‘vocabolario’ a volte si usa per fare riferimento sia a DTD e Schemi. Gli schemi sono mirati all’e-commerce, controllo di dati, e applicazioni in stile database dove i contenuti di dati carattere richiedono convalida e dove è necessario un controllo di dati più preciso rispetto a quanto è possibile con DTD; o dove è necessario un inserimento di dati più robusto. Non sono solitamente necessari per applicazioni di pubblicazione di documenti di testo tradizionali, dove i DTD continuano ad essere utilizzati.

Diversamente da DTD, gli Schemi non possono essere specificati in una Dichiarazione del Tipo di Documento XML. Possono essere specificati in un Namespace, dove i software capaci di usare Schemi dovrebbero capire, ma questo è opzionale:

<?xml version="1.0"?>
<invoice xml:id="abc123"
         xmlns="http://example.org/ns/books/"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://acme.wilycoyote.org/xsd/invoice.xsd">
...
</invoice>

 

Più comunemente, specifichi lo Schema nel tuo software di elaborazione, che dovrebbe registrare separatamente quale Schema viene usato da quali istanze di documento XML.

In contrasto alla complessità del modello di Schema W3C , Relax NG è un linguaggio di schema XML leggero e facile da usare ideato da( vedi http://relaxng.org/) con sviluppo ospitato da OASIS. Permette una ricchezza di espressione simile e l’uso di XML come sintassi, ma fornisce una sintassi semplificata addizionale che è più facile da usare per le persone abituate a DTD.

Gli autori e gli editori dovrebbero prendere nota del fatto che il plurale inglese di ‘Schema’ è ‘Schemas’: l’utilizzo del singolare per creare il plurale è un debole caro all’analfabeta; l’utilizzo del vecchio plurale (greco) ‘schemata’ è un didattismo inutile.

Gli scrittori dovrebbero anche prendere nota del fatto che il plurale di DTD è DTDs: senza apostrofo — vedi (Truss (2003)).

Bob DuCharme scrive:

Molti sviluppatori di XML sono stati delusi dalla sintassi della dichiarazione del markup descritto nelle specifiche XML per due ragioni. Prima di tutto, sentivano che i documenti XML non fossero esattamente adatti a descrivere informazioni strutturate, dunque la descrizione della struttura di un tipo di documento (il suo schema) dovrebbe essere in un documento XML anziché scritta nella sua sintassi speciale. Oltre al fatto di essere più consistente, questo renderebbe più semplice editare e manipolare lo schema con strumenti di manipolazione di documenti regolari. Secondo, sentivano che la notazione DTD tradizionale non desse ai designer di tipi di documenti il potere di imporre abbastanza limitazioni sui dati – per esempio, l’abilità di dire che un certo tipo di elemento debba sempre avere un valore intero positivo, che non sia vuoto, o che debba essere uno di una possibile scelta in una lista. Questo facilità lo sviluppo di software usando quei dati in quanto lo sviluppatore ha meno codice di controllo dell’errore da scrivere.

Peter Flynn scrive:

Un DTD ha solo la funzione di specificare la struttura dell’elemento di un file XML, con pochissimo controllo sui valori di attributo. Da i nomi degli elementi, attributi, ed entità che possono essere usati, e come vengono sistemati. I DTD sono progettati per l’uso con documenti di testo tradizionale, non dati rettangolari o tabulari, quindi il concetto di tipi di dati non è importante: il testo è sempre testo. Se hai bisogno di una gamma numerica specifica o di definire limitazioni o controllare il contenuto di dati carattere (testo), un DTD è lo strumento sbagliato.

Leave a Comment

Your email address will not be published. Required fields are marked *