UNIVERSITA FEDERICO II DI NAPOLI Dipartimento di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Strumenti per la gestione di DataBase XML nativi: estrazione automatica della base dei metadati e generazione di query complesse Relatori: Prof. Francesco Cutugno Dott. Leandro DAnna Laureando: Antonio Vuolo
2 Introduzione Xgate è un Software realizzato in collaborazione con il gruppo NLP del Dipartimento di Scienze Fisiche dellUniversità Federico II e con il DSLL dellUniversità di Salerno. Xgate è un software per la gestione ed interrogazione di database semistrutturati basati su XML e Xpath. Le tecnologie di base utilizzate sono DotNET 2.0 e C#, sfruttando in particolare le potenzialità offerte dalle DOM (Document Object Model).
3 Obiettivi Realizzazione di un modulo per lestrazione di una DTD (Document Type Definition) da un documento XML. Implementazione di metodi per la ricostruzione di un documento XML valido per una specifica DTD modificata. Sviluppo di metodi per la realizzazione di Query complesse su documenti XML.
4 Estrazione di una DTD da un documento XML Elementi Dipendenze Ricorsioni dirette Struttura tipica di in documento utilizzato nella rappresentazione AN.ANA.S
5 Estrazione di una DTD da un documento XML(2) DTD XML Una DTD può essere associata ad n documenti XML diversi Schema XML (XSD) Schema XML XSD XML Uno Schema XML rappresenta la struttura di un unico Documento XML Problematiche: Descrivere il documento XML in termini di vincoli. DTD Schema XML (XSD)
6 Estrazione di una DTD da un documento XML(3) Struttura tipica di uno Schema XML (XSD) ELEMENTI OCCORRENZE TIPI
7 Estrazione di una DTD da un documento XML(4) SCHEMI XMLDTD minOccurs=1 maxOccurs=unbounded Corrisponde al simbolo + minOccurs=0 maxOccurs=unbounded Corrisponde al simbolo * minOccurs=0 [maxOccurs=1] Corrisponde al simbolo ? minOccurs=10Nessuna espressione corrispondente maxOccurs=10Nessuna espressione corrispondente Principali differenze tra Schemi XML e DTD: Occorrenze SCHEMI XMLDTD String#PCDATA Date#PCDATA Boolean#PCDATA Decimal#PCDATA Integer#PCDATA Tipi
8 Estrazione di una DTD da un documento XML(5) Documento Xml Schema XML XSD DTD Analisi del Problema Passaggio da XML a Schema: 1.Inferenza Restricted sulle occorrenze dei nodi 2.Inferenza Relaxed sui tipi Passaggio da XSD a DTD 1.Decodifica degli elementi complessi 2.Decodifica degli elementi semplici 3.Decodifica degli attributi
9 Estrazione di una DTD da un documento XML(6) Struttura logica del programmaFunzione CreaSchema() InserisciDocumentoXML() InferenzaDocumentoXML(XML) Funzione CreaDTD(Schema) creaSchema(XML) decodificaComplex(schema) ricercaElemento(eleme nto) modificaOcc(nodo)inserisciElem(nodo) controllaOcc(nodo) ricercaAttributo(attrib uto) decodificaSimplex(schema) decodificaAttributi(schema) controllaImpost(attrib uto) inserisciAttr(attributo) si no Verifica se il nodo è già stato inserito nella DTD si no Verifica loccorrenza del nodo nella DTD no si modificaImp(attributo) no si Verifica lattributo è gia stato inserito Verifica limpostazione dellattributo Lettura dellalbero XSD
10 Estrazione di una DTD da un documento XML (7) La modalità Narrow prevede lestrazione di una DTD che si avvicini alla struttura del documento La modalità Broad prevede la definizione delle occorrenze in modo più libero
11 Estrazione di una DTD da un documento XML (8) Differenze tra le DTD estratte con le modalità Narrow e Broad e la DTD originaria <!ATTLIST text type (nz | dz | ie | ee | vi | prt | arg | prs | dg) #REQUIRED text_id CDATA #REQUIRED> <!ATTLIST paragraph paragraphid CDATA #REQUIRED> <!ATTLIST sentence uni (t | f) #REQUIRED n_of_clauses CDATA #REQUIRED> NARROW BROAD
12 Estrazione di una DTD da un documento XML (9) Differenze tra le DTD estratte con le modalità Narrow e Broad e la DTD originaria(2) DTD ORIGINARIANARROWBROAD <!ATTLIST text type (nz | dz | ie | ee | vi | prt | arg | prs | dg) #REQUIRED <!ATTLIST text type CDATA #REQUIRED
13 Ricostruzione di un documento XML valido per una specifica DTD modificata Documento XML DTD associata DOCUMENTO VALIDO MODIFICA DELLA DTD DOCUMENTO VALIDO Modulo di correzione assistita
14 Ricostruzione di un documento XML valido per una specifica DTD modificata (2) Le modifiche che vengono effettuate tramite il modulo di correzione assistita sono: Aggiunta di un attributo ad un nodo Aggiunta di un elemento semplice Aggiunta di un elemento complesso Cancellazione di un attributo Cancellazione di un elemento semplice Cancellazione di un elemento complesso Cambio ordine di attributi allinterno di un elemento Cancellazione di un valore da una lista di possibili scelte per un attributo
15 Ricostruzione di un documento XML valido per una specifica DTD modificata (3) validaDoc(XML) Struttura logica del programmaFunzione Valida(XML) inserisciDoc() parsingStringa(eccezione) gestioneEccezione(eccezione) correzioneDoc(XML) si no DOCUMENTO VALIDO Parsing della stringa della eccezione generata Verifica della eccezione generata Correzione del documento XML e proseguimento della validazione
16 Ricostruzione di un documento XML valido per una specifica DTD modificata (4)
17 Ricostruzione di un documento XML valido per una specifica DTD modificata (5) Cancellazione di un nodo complesso Nodo da cancellare Concatenazione di tutte le foglie del nodo complesso Punto dove concatenare la stringa ricavata
18 Ricostruzione di un documento XML valido per una specifica DTD modificata (6) concatenaFoglie(nodo) riposFratelloSinistro(XML) Struttura logica del programma Funzione cancellaNodoComplesso(XML) riposFratelloDestro(XML) riposPadre(XML) no validaDoc(XML) si Se il riposizionamento va a buon fine si continua con la validazione
19 Query Composte Possibilità di effettuare Query di Query su documenti XML Necessità di utilizzare il modulo di Querying di Xgate METODO Per ogni Query effettuata su un documento XML viene generata la DTD tramite il modulo di Estrazione di una DTD da un documento XML Il modulo di Querying preleva le informazioni sui nodi (e relativi attributi) dalla DTD associata al documento XML che si vuole interrogare. Grazie a queste informazioni che si creano, in cascata, delle finestre di supporto per la creazione della stringa Xpath
20 Query Composte (2) Docum. XML DTD associata Modulo di Querying Query result Generat. DTD generata Documento XML con DTD associata Query sul documento XML Estrazione DTD dal documento XML risultato
21 Query Composte (3)
22 Risultati ottenuti e sviluppi futuri Produzione di un modulo per lestrazione della DTD da un Documento XML Produzione di metodi per la ricostruzione di un Documento XML valido per una DTD modificata Produzione di un modulo per la composizione di Query composte su Documenti XML Gli sviluppi futuri riguardano la possibilità di utilizzare gli schemi XML per la definizione delle grammatiche da applicare ai documenti XML.
23 Conclusioni