4.14

Sezione 4: Sviluppatori

Q 4.14: Cos’è la mia informazione? DATO o DOCUMENTO?

Dipende dal motivo per cui la usi.

 

Esistono alcune importanti distinzioni fra classi importanti di applicazioni XML e il modo in cui vengono usate.

Due classi di applicazioni vengono solitamente chiamate applicazioni ‘documento’ o ‘dati’, e questo si riflette nel software, che è solitamente (ma non sempre) mirato a una classe o all’altra.

Applicazioni di stile di documento

Questi sono simili a lavori di editori tradizionali: testo e immagini in un ambiente strutturato, con font e formattazione. Nella maggior parte dei casi questo include pagine Web nonché materiale destinato a PDF o stampe come libri e riviste. La caratteristica di un applicazione documento è che utilizza tantissimo i Contenuti Misti (ad es. sotto-elementi nel testo).

Applicazione di stile di dati

Questi si trovano soprattutto nell’e-commerce, servizi web, e controllo di processi o applicazioni, con l’utilizzo di XML come contenitore di informazioni memorizzate o trasferite fra sistemi, solitamente non formattate e nascoste per gli umani. La loro caratteristica è l’assenza di Contenuti Misti, e la prevalenza di dati numerici o categorici.

Esiste una terza area importante, Sviluppo Web, dove i requisiti sono spesso ibridi, e vanno da caratteristi sia di applicazioni dati che documenti dato che contengono in parte testo descrittivo statico e in parte dati dinamici.

Seppure in teoria sarebbe possibile usare software di classe dari per scrivere un romanzo, o software di classe documento per creare fatture, sarebbe probabilmente non ottimale. Data la natura dell’informazione usata dalle due classi, le applicazioni di classe dati tendono ad usare Schemi,e le applicazioni di classe documento tendono ad usare DTDs, ma c’è una grande sovrapposizione fra i due.

Anche il modo in cui XML viene usato in queste due classi è diviso in due: XML può essere usato manualmente o sotto controllo del programma.

Utilizzo manuale

Questo significa modificare e gestire i file con un editor, dalla tastiera, vedendo le informazioni su schermo così come fai tu. Questo va bene per documenti individuali, specialmente nel campo dell’editoria, per pagine web, e per sviluppatori che lavorano su singole istanze come un file di esempio o modelli di siti web. L’elaborazione manuale implica anche eseguire programmi di produzione come formattatori, convertitori, e elementi database uno ad uno, usando normalmente la tastiera e il mouse. Molto del software per l’utilizzo manuale può essere eseguito tramite linea di comando, che rende più semplice usarlo per applicazioni a singolo uso e in applicazioni nascoste come script Web.

Utilizzo programmabile

Questo significa scrivere programmi che richiamano i servizi del software come API, librerie, o la rete per gestire file XML dall’interno del programma. I file XML in applicazioni dati non sono quasi mai editate a mano. Questo è un metodo normale di operare per applicazioni e-commerce, automazione web, servizi web, e altri controlli di processo o applicazione. Esistono librerie e API per molti linguaggi, fra cui Java, C, e C++ nonché i soliti linguaggi di scripting come Pyton, Perl, Tcl, Ruby, ecc.

Oltre a questi assi, ci sono attualmente due diversi modi di elaborare XML, mappato in memoria o attivato da evento, solitamente si fa riferimento ai nomi delle loro istanze originali, rispettivamente il  Document Object Model (DOM) e il Simple API for XML (SAX). Entrambi usano un modello di ingegneria di documento basato su una struttura ad albero di markup gerarchici conosciuto come Grove (una raccolta di alberi, in pratica una mappa in memoria del risultato del parsing del markup del documento). In questo modello, ogni ‘nodo’ (oggetto di informazione) dagli elementi più esterni fino a che ogni elemento e attributo di ogni parte di testo non marcato possa essere identificato. Per le applicazioni che usano Schemi, un Infoset di Convalida Post-Schema (PSVI, equivalente ad un grove) viene definito, che specifica che informazione un parser dovrebbe rendere disponibile all’applicazione.

Joe Fawcett scrive:

(nell’articolo <[email protected]>)

In breve, ‘nodi’ è un termine generico per qualsiasi dei tanti tipi di blocchi di costruzione XML, fra cui un elemento: <myElement/>; attributo: <myElement myAttribute=”myValue”/>; e nodo di testo: <my Text Node>

Ci sono anche commenti [Dichiarazione di Commenti], Istruzioni di Elaborazione e il Nodo di Documento invisibile, che rappresenta la radice del documento XML, così come altri.

Semplificando al massimo, un’applicazione basata su DOM legge un intero documento XML all’interno della memoria e poi fornisce un acceso programmabile ad ogni nodo in ogni albero del grove; al contrario, un’ applicazione basata su SAX legge il documento XML, e gli eventi vengono attivati dalla presenza di nodi quando vengono trovati, le quali regole e azioni devono essere pre-programmate. (In realtà è più complesso di così, ed entrambi i metodi condividono molti concetti in comune.)

Entrambi i modelli forniscono un API astratto per la costruzione, accesso, e manipolazione di documenti XML. Un legame dell’API astratto ad un particolare linguaggio di programmazione fornisce un API concreto. I fornitori danno API concreti che ti permettono di usare l’uno o l’altro metodo per richiedere e manipolare documenti XML. Entrambi i tipi di parser sono stati implementati in molti linguaggi e sotto molti sistemi operativi e interfacce. Esistono FAQ sia perDOM che per SAX.

Leave a Comment

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