Ho fatto alcune ricerche sulla gestione dei dati XML (Extensible Markup Language) su VOS e OpenVOS, e ho pensato che sarebbe stato utile condividere ciò che ho imparato con un pubblico più ampio.
CHE COS'È XML?
La seguente descrizione di XML è tratta da "XML: A Beginner's Guide", di Dave Mercer. (Osborne/McGraw Hill, 2001).
"SGML (Standard Generalized Markup Language) è uno standard internazionale (ISO 8879) per la definizione di metodi di rappresentazione dell'informazione, sia umana che meccanica, indipendenti dal dispositivo e dal sistema. I linguaggi conformi alle regole di SGML sono chiamati applicazioni, e l'HTML è un'applicazione SGML. [...] L'HTML non ha disposizioni per estendersi in modo standard a nuovi tag, attributi, strutture dati o tipi di contenuto... L'XML, piuttosto che essere un linguaggio predefinito come l'HTML, è un modo predefinito di definire nuovi linguaggi evitando la natura troppo complessa dell'SGML. Tecnicamente, XML include un sottoinsieme delle capacità che si trovano in SGML".
Un XML Schema è un metodo per definire uno specifico documento XML (o classe di documenti). Descrive la struttura di un documento, compresi gli elementi, gli attributi, i tipi di dati e i vincoli che possono essere utilizzati, così come si definirebbe un database.
Una definizione del tipo di documento XML (DTD) svolge uno scopo simile a quello di uno schema.
XML esiste da oltre 10 anni, e ci sono una serie di prodotti e metodi concorrenti, e ci sono una serie di standard correlati. Ci sono anche molti libri commerciali su XML. O'Reilly pubblica un libro chiamato "Learning XML" che può essere di aiuto. Vedi www.oreilly.com. Il sito web http://xml.com/, gestito da O'Reilly, ha una serie di articoli e link utili.
Gli standard XML sono pubblicati dal World Wide Web Consortium, che si trova all'indirizzo http://www.w3.org. Gli standard sono piuttosto aridi, quindi non consiglio di provare a leggerli.
XML assomiglia all'HTML, e ha un patrimonio simile all'HTML, ma è una codifica molto più generica. L'HTML descrive come dovrebbero apparire i dati quando vengono visualizzati su una pagina web. L'HTML, da solo, non registra se un numero rappresenta una quantità, un prezzo o un numero di azioni. L'XML, d'altra parte, è tipicamente indifferente all'aspetto dei dati; descrive il significato dei dati. Un'applicazione comune dell'XML è quella di creare una codifica testuale di un database specifico. XML ha la capacità di dire che questo campo è un prezzo numerico, e che quel campo è un numero di stock alfanumerico, e così via. Tutti i dati in un documento XML sono codificati come testo, il che significa che i problemi appiccicosi come l'endianness o la rappresentazione binaria dei numeri a virgola mobile spariscono. Così, l'XML sta guadagnando l'accettazione come un buon linguaggio per la comunicazione di dati da computer a computer.
STRUMENTI PER LAVORARE XML
Sono a conoscenza di due pacchetti open-source di uso comune che elaborano XML. Il primo è Expat e il secondo è Xerces. Entrambi questi pacchetti sono stati creati nel 1999. Expat è stato il lavoro di un solo individuo; Xerces è uscito da IBM.
Ci sono due modelli concorrenti per trattare con l'XML. Uno è il Document Object Model (DOM) e l'altro è l'API semplice per XML (SAX). Il metodo SAX (usato da Expat) legge attraverso un documento XML in modo lineare, chiamando una funzione handler ogni volta che si verifica un elemento di markup. Il metodo DOM legge l'intero documento XML e crea una gerarchia ad albero. Si può pensare a SAX come metodo di accesso sequenziale e a DOM come metodo di accesso casuale. Xerces supporta sia SAX che DOM API. Ci sono pacchetti di terze parti che forniscono una API DOM da espatriare (vedi "simkin").
Mentre noi usiamo il termine "documento XML", in pratica il testo codificato XML potrebbe essere un file o un flusso di dati. In genere, si forniscono le funzioni che raccolgono il testo e lo consegnano al parser, in modo che possa provenire da qualsiasi fonte.
EXPAT
Expat è progettato per la lettura di XML e per compiere qualche azione ogni volta che appare un elemento XML. Non ho visto alcuna documentazione che suggerisca che possa creare flussi di dati basati su XML. Expat è scritto in C. C'è anche una versione di Xerces per Perl e Java.
Un porto di espatrio per VOS è disponibile all'indirizzo:
Il sito web principale per gli espatriati è:
e
Una bella introduzione all'espatrio si trova sulla pagina sourceforge home ; qui il link:
Potete trovare i link ad altri pacchetti open-source che utilizzano expat su http://www.libexpat.org/.
XERCES
Gli Xerces possono sia leggere che scrivere flussi di dati XML. Xerces è scritto in C++ ed è progettato per essere chiamato da programmi C++.
Tom Mallory ed io abbiamo portato la versione 2.8.0 di Xerces per un cliente di Stratus a metà del 2008. Il nostro obiettivo era una piattaforma della serie V. La versione attuale di Xerces è la 3.0.1. Se siete interessati ad ottenere una copia di questa porta, contattate il vostro account team.
Il sito principale per le xerce è:
QUALE UTILIZZARE?
Se volete solo analizzare un documento codificato in XML e la vostra elaborazione è compatibile con la lettura sequenziale del flusso di dati, allora vi consiglio di utilizzare expat. Mentre è scritto in C, grazie al fatto che tutti i linguaggi di programmazione VOS possono chiamare funzioni e subroutine scritte in qualsiasi altro linguaggio di programmazione, è possibile chiamare expat da qualsiasi linguaggio VOS.
Se le vostre esigenze includono la possibilità di eseguire operazioni di accesso casuale su un documento XML, o volete creare XML, e siete a vostro agio nella programmazione in C+++, allora vi consiglio di usare Xerces.
Se avete bisogno di assistenza per aggiungere la possibilità di gestire documenti XML alla vostra domanda, contattate il vostro account team locale Stratus .