Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoGerardo Mascia Modificato 10 anni fa
1
Introduzione a XML applicazioni in open archives Azalea III Incontro di Formazione, Roma 2-3 febbraio 2004
2
2
3
3 Perché parliamo di XML Xml sta diventando lo standard de-facto per lo scambio di dati sul web e non solo. Sta alla base di quello che viene definito il semantic- web. E’ un linguaggio facile da imparare ed utilizzare, e nello stesso tempo è anche incredibilmente potente, permettendo di creare documenti della complessità desiderata. Non da ultimo, le più grandi società software, stanno investendo molto in XML, che, ad esempio, è una delle parti integranti dell’architettura.NET di Microsoft.
4
4 Introduzione a Xml: cos’è? Xml: eXtensible Markup Language Linguaggio di markup: permette di evidenziare il contenuto di un documento, all’interno di marcatori descrittivi, che ne definiscono gli attributi, ad es. linguaggio html. Estensibilità: in realtà Xml è un metalinguaggio di markup, cioè viene utilizzato per creare linguaggi di markup personalizzati. NON è un linguaggio di programmazione. Non esistono documenti scritti in XML, ma documenti scritti in un linguaggio di markup basato su XML
5
5 Alcune caratteristiche di XML Permette di organizzare a proprio piacimento le informazioni, consentendo di inviarle a chiunque in modo libero e gratuito. Standard aperto, no royalty, no brevetti, no copyright o segreti industriali. Salvataggio dei dati: se avete dei file in un formato proprietario quale Visicalc, Lotus Jazz, magari su floppy da 5”¼, la possibilità di recuperarli è piuttosto bassa. Il formato di solo testo resiste abbastanza bene alle alterazioni magnetiche. Permette di condividere sul Web documenti con strutture anche molto complicate che contengono dati particolarmente complessi.
6
6
7
7 Alcune caratteristiche di XML L’importanza di uno standard di comunicazione tra applicazioni, per evitare che i dati possano essere letti e “capiti” solo da pochissimi programmi. La gran parte dei flussi di informazioni viaggia attraverso sistemi proprietari e costosi, ad es. Oracle, SQL, DB2. Ciò che invece, possiamo ottenere con XML è questo:
8
8 XML Documento XML Cellulare Dispositivo Palmare PC Linux, Unix, MAC CD-Rom
9
9 Le “breve storia” non manca mai… Creato dal W3C si veda http://www.w3.org/XML, la prima edizione della specifica XML 1.0 risale al febbraio 1998, la seconda edizione è di ottobre 2000, mentre ad oggi è in fase “candiate recommendation” la versione 1.1 di XML.http://www.w3.org/XML XML, deriva da SGML, che è un linguaggio di markup molto potente ma molto complicato. Anche HTML deriva da SGML, semplificandolo all’estremo, ma l’html nella sua semplicità si limita a formattare i dati. XML nasce dall’idea di creare un linguaggio che unisca potenza di SGML e semplicità di HTML.
10
10 Alcuni punti chiave considerati nella progettazione dal W3C. Supporto di una vastissima gamma di applicazioni (non solo Web). I documenti XML devono rimanere leggibili da parte dell’uomo, e ragionevolmente chiari. Minimizzare le caratteristiche opzionali. Facile da redarre, ossia creabile anche con semplici editor di testo. Formale e conciso: piccoli insiemi di regole ma assolutamente precise.
11
11 Struttura XML Glory and consequence Ben Harper The wheel to live Bigmouth strikes again The Smiths Meat is murder Caves bird Ted Hughes I tag XML vengono chiamati nodi o elementi. Il tag che contiene tutti gli altri viene detto elemento radice. Annidamento, nodi figli. Nodo di testo, Attributi I tag XML vengono chiamati nodi o elementi. Il tag che contiene tutti gli altri viene detto elemento radice. Annidamento, nodi figli. Nodo di testo, Attributi
12
12 Regole di sintassi e strutturazione Quando un documento XML rispetta le regole strutturali definite dal W3C, si dice che è un documento “ben formato”. Gli interpreti XML rifiutano e ignorano i documenti mal formati. Ciò invece non accade in Html. Tutti i documenti XML devono avere una tag radice. Tutti i tag devono necessariamente essere chiusi. L’ annidamento dei tag deve rispettare la gerarchia di apertura. Getafix NON e’ consentito in XML (in Html si!) Il valore degli attributi DEVE sempre essere racchiuso tra virgolette. I nomi degli elementi e degli attributi devono iniziare con una lettera, un underscore _ o un segno di due punti (:), poi possono seguire un numero qualsiasi di lettere, numeri, due punti, punti singoli, trattini e underscore. Attenzione perché XML è “case sensitive”.
13
13 Dtd: Document Type Definition Poiché abbiamo detto che XML ci permette di creare linguaggi di markup personalizzati, dobbiamo anche definire un dizionario per la leggibilità del documento. DTD è uno dei modi per farlo. E’ un documento di testo che definisce tutte le parti di un documento XML: elementi, attributi, elenchi, entità, proprietà e relazioni. Le DTD possono far parte del documento XML stesso, oppure essere esterne, cioè trovarsi in un file separato. E’ preferibile utilizzare DTD esterne, perché possono essere riutilizzate e soprattutto condivise. Chiamata ad una DTD esterna: Direttiva che inizia la riga in cui si specifica la dtd Specifica che si tratta di una dtd scritta da noi e che si trova in un file esterno Nome del file di testo che contiene la dtd Nome dell’elemento radice
14
14 Dtd: Document Type Definition Nella maggior parte dei casi si utilizzano DTD pubbliche, ossia dtd già create e messe a disposizione da qualcuno. Chiamata ad una DTD esterna pubblica: Specifica che si tratta di una dtd pubblica Nome pubblico della dtd URL della DTD -//Microsoft//DTD Web_Service//EN// Il meno indica una DTD non approvata da un ente di standardizzazione(es. ISO). Microsoft è il nome del proprietario, DTD è fisso seguito da una etichetta della DTD (una breve descrizione), EN è la lingua.
15
15 Dtd: definizione degli elementi La parola chiave piu’ importante all’interno di una DTD è “ELEMENT”, essa ci permette di definire gli elementi (tag) del nostro linguaggio di markup.. Questa istruzione della DTD definisce l’elemento “media” e determina il tipo di testo che puo’ contenere (#PCDATA significa che puo’ contenere lettere, numeri o qualsiasi altra cosa che non siano altri tag). L’annidamento degli elementi avviene invece in questo modo: Oltre definire la struttura degli elementi, è possibile indicare anche alcuni comportamenti quali: - Numero di volte che un elemento può comparire: N. volte, da 0 a 1, da 1 a qualsiasi, da 0 a qualsiasi - Indicare se la presenza di un elemento ne esclude un’altra Oltre definire la struttura degli elementi, è possibile indicare anche alcuni comportamenti quali: - Numero di volte che un elemento può comparire: N. volte, da 0 a 1, da 1 a qualsiasi, da 0 a qualsiasi - Indicare se la presenza di un elemento ne esclude un’altra
16
16 Dtd: definizione degli attributi La definizione degli attributi avviene in questo modo: Type indica il tipo di attributo, può essere: CDATA= qualunque cosa sia digitabile da tastiera Enumerazione = un insieme di possibili valori dell’attributo ID= valore univoco all’interno del documento xml IDREF= si riferisce al codice contenuto in ID NMTOKEN = specifica che il valore dell’attributo segue le regole dei nomi XML ENTITY= permette di includere come attributo oggetti esterni Default permette di inserire un valore predefinito, oppure può essere: - #REQUIRED (obbligatorio) - #IMPLIED (facoltativo) - #FIXED (fisso)
17
17 Dtd: entità e notazioni Le entità servono per contenere dati: può trattarsi di testo, immagini o qualunque altra forma di dati binari non testuali. L’esempio più semplice: Nel documento XML si richiama così: &azalea; L’esempio “meno” semplice, entità non interpretata esterna <!ENTITY foto SYSTEM “immagine.gif” NDATA gif” A questo punto per includere l’entità nel documento XML è necessario utilizzare il tipo di attributo ENTITY: <!ATTLIST utente fotografia ENTITITY #REQUIRED” Il documento XML avrà quindi una riga di questo genere:
18
18 XML SCHEMA XML Schema è un linguaggio creato dal W3C, per ovviare ad alcune limitazioni delle DTD. E’ quindi un modo alternativo per definire la struttura dei documenti XML. Gli schemi di XML Schema sono scritti in XML, ma vengono letti dagli interpreti in modo diverso dai semplici documenti XML, grazie al meccanismo dei cosiddetti namespace (spazi dei nomi). In XML è possibile raggruppare assieme elementi come,, associandoli ad un nome univoco ad es. Azalea. A questo punto per referenziare il tag1 del gruppo Azalea si utilizza la notazione. Si dice che gli elementi del gruppo Azalea sono appartenenti al namespace Azalea. I namespace risultano molto utili quando si vogliono utilizzare elementi provenienti da documenti XML diversi e che quindi potrebbero avere lo stesso nome. I namespace permettono di trattare gli elementi in essi contenuti, in modo diverso rispetto a quelli che non lo sono. XML Schema non è altro che un namespace i cui elementi sono trattati in modo particolare.
19
19 Nome reale, unico al mondo. Anche se ha l’aspetto di un Url, non lo è affatto! Diciamo che si tratta più di un URI, un identificatore univoco che non necessariamente punta a qualcosa. XML SCHEMA: namespace Sintassi per la creazione di un namespace: http://www.azalea.it/namespace/Azalea Con questa dichiarazione, l’elemento tag1 e tutti gli elementi in esso contenuti diventano parte del namespace. http://www.azalea.it/namespace/Azalea alfa beta E’ possibile ora riferirsi ai tag1-3 con la notazione Azalea:tag1-3 E’ possibile omettere il soprannome, in tal caso non comparirà nessun prefisso di nome, ed il namespace viene detto di default. Soprannome, si utilizza per referenziare tutti gli elementi che appartengono al namespace
20
20 XML Schema: chiamata Per collegare un documento XML ad uno schema XML, si utilizza una notazione differente rispetto a DOCTYPE che si usava con le DTD. Il collegamento viene fatto utilizzando l’elemento radice del documento XML, in questo modo: <Azalea xmlns:xsi=“http://www.w3.org/2000/10/XMLSchema-instance” xsi:noNamespaceSchemaLocation=“listatoXmlSchema.xsd”>http://www.w3.org/2000/10/XMLSchema-instance Il file listatoXmlSchema.xsd conterrà qualcosa del tipo: <xsd:schema xmlns:xsd= “http://www.w3.org/2000/10/XMLSchema”>http://www.w3.org/2000/10/XMLSchema Type definisce il tipo di contenuto dell’elemento. Come detto, le tipologie definite e definibili sono molto più ampie rispetto alle DTD. E possibile definire: - solo testo - solo numeri interi positivi - solo numeri interi negativi - solo numeri in virgola mobile - combinazione di caratteri e/o numeri in pattern - date in diversi formati - orari in diversi formati - valore true o false - sigla lingua secondo ISO639 - URL
21
21 XML e OPEN ARCHIVES Alcune definizioni in Open Archives: OAI-PMH: Open Archives Initiative Protocol for Metadata Harvesting. Harvester: applicazione client che esegue una richiesta OAI-PMH, finalizzata alla raccolta di metadati (service provider). Repository: server in grado di soddisfare le diverse tipologie di richieste OAI-PMH, provenienti dagli harvester (data provider).
22
22 XML e OPEN ARCHIVES Resource: oggetto identificato dall’insieme dei metadata che vi si riferiscono, e che sono contenuti nel repository. Item: l’insieme dei metadata che si riferiscono ad una Resource. Record: sottoinsieme di metadata estratto da Item, e rappresentato in uno specifico formato.
23
23 XML e OPEN ARCHIVES Una richiesta OAI-PMH, viene inoltrata utilizzando il protocollo http con i metodi Get o Post, quest’ultimo ha il vantaggio di non porre limiti alla lunghezza degli argomenti. Per tutte le richieste al repository esiste un’unica base-url, che specifica l’internet host, la porta e opzionalmente una path. In aggiunta alla base-url, tutte le richieste contengono uno o più argomenti separati da & che prendono la forma key=value. Key è il testo ‘verb’, mentre value è una delle sei richieste a cui il repository deve essere in grado di rispondere. Ad es. http://an.oa.org/OAI-script? verb=GetRecord&identifier=oai:arXiv.org:hep- th/9901001&metadataPrefix=oai_dc
24
24 XML e OPEN ARCHIVES Tipologie di richieste che il repository-server deve essere in grado di soddisfare: GetRecord: utilizzato per recuperare il singolo record, richiede come argomenti obbligatori, l’identificatore di item e di metadata. Identify: restituisce informazioni sul repository server, ad es. il repositoryName, baseURL, protocolVersion etc. Non richiede argomenti. ListRecords: restituisce un gruppo di record, da-a o selezionati in base ai criteri definiti in set, ossia costrutti che permettono il raggruppamento degli item. ListIdentifiers: uguale a ListRecords, ma restituisce solo l’intestazione, (identifier, datestamp, setspec). ListMetadataFormats: restituisce i formati di metadata disponibile. ListSets: restituisce i set definiti nel repository. Utile per l’estrazione selettiva dei record.
25
25 XML e OPEN ARCHIVES Per definizione tutte le risposte alle richieste OAI-PMH DEVONO essere documenti XML ben-formati. 2002-05-01T19:20:30Z http://an.oa.org/OAI-script... La prima riga definisce il documento come xml, il contenuto rimanente è incluso nell’elemento radice di nome OAI-PMH, il quale presenta tre attributi che definiscono il namespace.
26
26 XML e OPEN ARCHIVES Per tutte le risposte i primi due figli dell’elemento root sono: responseDate: la data e l’ora in formato UTC relativa all’invio della risposta. request: la stringa di richiesta di cui è stata fornita la risposta. Il terzo elemento figlio dell’elemento root ha lo stesso nome dell’attributo verb della stringa di richiesta, nell’esempio precedente. Seguono poi i metadati nel formato richiesto, nell’esempio precedente, il formato richiesto era Dublin Core, che è anche l’unico formato che obbligatoriamente ogni item all’interno del repository deve supportare.
27
27 FINITO !
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.