3.19

Sezione 3: Autori

Q 3.19: Cos’è il parsing e come lo applico su XML?

Il parsing è la divisione dell’informazione nelle parti che la compongono

 

Il parsing è l’atto di dividere le informazioni nelle parti che la compongono (le scuole erano solite integrarlo nelle classi di lingue fino a che la professione dell’insegnante non ha trovato il virus anti-grammatica).

‘Mary ciba Spot’ viene interpretato come

  1. Soggetto = Mary, nome proprio, caso nominativo;
  2. Verbo = ciba, transitivo, terza persona singolare, voce attiva, presente;
  3. Oggetto = Spot, nome proprio, caso accusativo.

Nell’elaboratore, un parser è un programma (o una parte di codice o API a cui puoi fare riferimento all’interno del tuo programma) che analizza file per identificare le parti che lo compongono. Tutte le applicazioni che leggono gli input hanno un parser di qualche tipo, altrimenti non sarebbero mai in grado di capire il significato delle informazioni. Microsoft Word contiene un parser che viene eseguito quando apri un file .doce verifica se può identificare tutti i codici nascosti; iCal e Google Calendar contengono un parser che legge un  allegato a nota .ical nelle tue mail, e capisce che informazioni ci sono all’interno. Dandogli un file corrotto otterrai un messaggio di errore.

Le applicazioni XML sono la stessa cosa: contengono un parser che legge XML e identifica la funzione di ogni pezzo dell’informazione, e poi rende disponibile in memoria l’informazione per il resto del programma.

Durante la lettura di un file XML, un parser verifica la sintassi (parentesi angolate, virgolette corrispondenti, ecc.) per accertare la buona forma, e segnala qualsiasi violazione (errori segnalabili). Le Specifiche XML  elencano cosa sono.

La convalida è un livello oltre il parsing. Mentre le parti che compongono il programma vengono identificate, un parser di validazione può confrontarle con i sistemi impostati dal DTD o Schema, per controllare se sono conformi. Nel processo, i valori e i tipi di dati di default (se specificati) possono essere aggiunti ai risultati in memoria della convalida che il parser di validazione da all’applicazione.

<person xml:id="abc123" birth="1960-02-31" gender="female"> 
  <name>
    <forename>Judy</forename> 
    <surname>O'Grady</surname> 
  </name>
</person> 

L’esempio qui sopra viene interpretato come:

  1. Elemento <person>identificato con Attributo xml:id (tipo predefinito ‘ID’) contenente “abc123” e Attributo birth contenente “1960-02-31” e Attributo gendercontenente “female” contenente …
  2. Elemento <name>contenente …
  3. Elemento <forename>contenente testo  ‘Judy’ seguito da…
  4. Elemento <surname>contenente testo ‘O’Grady’.

(e anche molte altre cose).  Questo risulta in una sorta di struttura ad albero genealogico nella memoria dell’applicazione (le strutture ad albero sono modi comuni che i programmi usano per memorizzare dati correlati).

Così come i parser incorporati, esistono anche parser convalidatori autonomi (vedi consigli di Bill Rayer), che legge un file XML e ti dice che ti dicono se trovano un errore (come parentesi angolate o virgolette mancanti, o markup posizionati male). Questo è essenziale per testare file in isolamento prima di farci qualcosa, specialmente se sono stati creati a mano senza un editor XML, o da un API che potrebbe essere incorporato troppo in profondità da qualche altra parte per permettere il testing giusto.

Bill Rayer scrive:

Per il parsing/convalida autonomi usa software come onsgmls di James Clark o rxp di Richard Tobin. Entrambi funzionano su Linux e Window/DOS. La differenza sta nel formato dell’elencazione degli errori (se presenti), e che alcune versioni di onsgmls non recuperano DTD o altri file nella rete, mentre rxp lo fa.

Assicurati che i tuoi file facciano riferimento correttamente il proprio DTD in una Dichiarazione del Tipo di Documento, e che il file DTD siano accessibili a livello locale(rxp li recupererà se hai una connessione a Internet; onsgmls potrebbe non farlo, dunque potrebbe avere bisogno di una copia locale).

Scarica e installa il software. Assicurati che sia installato in una posizione in cui il tuo sistema operativo possa trovarlo. Se non sai di cosa si stia parlando, avrai bisogno di aiuto da qualcuno che sa come scaricare e installare software sul tuo sistema operativo.

Per onsgmls, copia pubtext/xml.soc and pubtext/xml.dcl sul percorso adatto.

Per convalidare myfile.xml, apri una finestra shell (comando o terminale, Linux) o una finestra MS-DOS (comando, Microsoft Windows). In questi esempi supponiamo che il tuo file XML si chiami myfile.xml e si trovi in una cartella chiamata myfolder. Usa i nomi reali delle tue cartelle e file quando scrivi i comandi.

Per onsgmls:

$ onsgmls -wxml -wundefined -cxml.soc -s myfile.xml

Ci sono molte altre opzioni per onsgmls che sono descritte sulla  pagina Web. Quelli dati qui sono richiesti in quanto sono basati su un parser SGML e queste opzioni lo fanno passare in modalità XML e sopprimono il  normale output, lasciando solo gli errori (se presenti).

Su Microsoft Windows potresti dover usare un prefisso per il comando onsgmls equivalente al percorso completo di dove è stato installato, ad es. C:\Program Files\OpenSP\bin\onsgmls.

Per rxp:

$ rxp myfile.xml

Anche rxp ha alcune opzioni che sono descritte sulla sua  pagina Web.

Su Microsoft Windows potresti dover usare un prefisso per il comando rpx equivalente al percorso completo di dove è stato installato, ad es. C:\Program Files\ltxml2\bin\rxp

Leave a Comment

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