WWW XBase, XPath e XPointer Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XBase, XPath e XPointer.

Slides:



Advertisements
Presentazioni simili
I Namespace Mario Arrigoni Neri.
Advertisements

WWW XML-Namespace Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u Lesigenza e il funzionamento dei Namespace in XML.
Introduzione al DTD Mario Arrigoni Neri.
Introduzione ad XML Mario Arrigoni Neri.
Estendere i linguaggi: i tipi di dato astratti
A. FERRARI Alberto Ferrari. L'HyperText Markup Language (HTML) (traduzione letterale: linguaggio di marcatura per ipertesti) è un linguaggio usato per.
1 Introduzione ad XML. 2 Problemi con SGML Complesso da comprendere ed utilizzare Non è pensato per la rete: mancano link ipertestuali e specifiche grafiche.
Sintassi (prima parte)
XPath (XML Path Language)
DTD Laurea Magistrale in Informatica Chapter 03 Modulo del corso Thecnologies for Innovation.
XSLT (eXtensible Stylesheet Language Transformation) Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis
XPATH UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico
XSLT UNIVERSITA DI CAMERINO Corso di laurea in Informatica Barbara Re Anno Accademico
XPath (XML Path Language) Laurea Magistrale in Informatica Reti 2 (2005/06) dott. Francesco De Angelis
Gli schema W3C Estensione di tipi semplici, scelte fra più elementi, application profiles.
Query OQL e XQUERY a confronto
Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, La rappresentazione dellinformazione testuale e i linguaggi di codifica.
XML Prof. Alfredo Pulvirenti. XML XML (eXtensible Markup Language) è un meta linguaggio. Può essere definito come un insieme di regole e convenzioni che.
RB-alberi (Red-Black trees)
TW Analisi dei documenti n Classificazione dei componenti n Selezione dei componenti, costruzione della gerarchia, dei blocchi informativi e degli elementi.
WWW Link in XML Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XLink.
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
JAVASCRIPT DIFFERENZA TRA JAVASCRIPT E JAVA TAG LO SCRIPT OGGETTI LE CLASSI FUNZIONE GESTORE DI EVENTI ELEMENTI DEL LINGUAGGI è un vero e proprio linguaggio.
TECNOLOGIE PER DOCUMENTI DIGITALI
XML e DTD. –il "PROLOG contiene: dichiarazione della versione di XML; commenti (facoltativi); dichiarazione del DOCUMENT TYPE. –il "DOCUMENT INSTANCE.
Corso di basi di dati II Prof. Francesco Cutugno Dott. Sara Romano
Basi di Dati II Sara Romano
Fogli stile a cascata Danilo Deana.
Lezione 5 Attributi, Entità, Parametri e Namespaces.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Introduzione e nozioni fondamentali di sintassi
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net View State e controlli Elaborazione di Franco Grivet Chin.
Esercizio 1 Convertire il seguente DTD (esercizio 1 sui DTD) in XML Schema:
XSLT Trasformazioni XSL Ing. Luca Sabatucci. XSLT Uno dei vantaggi principali nell'utilizzo dell'Extensible Markup Language è la facilità con cui si possono.
1 XPath. 2 What is XPath? XPath is a syntax for defining parts of an XML document XPath uses paths to define XML elements XPath defines a library of standard.
Namespace Spazio dei nomi Ing. Luca Sabatucci. Scopo I Namespace servono a: I Namespace servono a: distinguere tra elementi e attributi con lo stesso.
Informatica Umanistica A.A. 2009/2010 eXtensible Markup Language (XML)
Importanza DTD La DTD (Document Type Definition) consente di dichiarare in maniera univoca la struttura di markup mediante la definizione dello schema.
I fogli di stile XSL – 2 –. Selezioni multiple : serve per applicare una regola in modo ricorsivo a nodi figli dellelemento contestuale. Attributo select.
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
HTML Lezione 5 Immagini. URL Un Uniform Resource Locator o URL (Localizzatore di risorsa uniforme) è una sequenza di caratteri che identifica univocamente.
Creare pagine web Xhtlm. Struttura di una pagina.
BIOINFO3 - Lezione 211 INPUT La lettura di un input dallo standard input (tastiera) si effettua utilizzando lespressione. Quando il programma incontra.
XPATH.
Informatica Umanistica A.A. 2007/2008 LEZIONE 4 eXtensible Markup Language (XML) INTRODUZIONE.
JavaScript Generalità Cos'è JavaScript?
XHTML Corso linguaggi per il web a.s. 2011/2012 ITIS A. Righi – Corsico Relatore – Aldo Guastafierro.
WWW Link in XML Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XLink.
Introduzione a Javascript
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
WWW XSLT Ing. Michele Vindigni. WWW 2 Introduzione Oggi esaminiamo in breve: u XSLT, ovvero il linguaggio trasformazione per documenti XML con sintassi.
A.a. 2004/05Tecnologie Web1 Introduzione a XML: Document Type Definition; parser XML; XML-schema; eXtensible Stylesheet Language.
Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
WWW XML Schema Fabio Vitali. WWW Fabio Vitali2 Sommario Oggi esaminiamo in breve XML Schema u Perché non bastano i DTD u Tipi ed elementi u Definizione.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi.
WWW XBase, XPath e XPointer Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XBase, XPath e XPointer.
I fogli di stile XSL.
WWW XSLT Fabio Vitali. WWW Fabio Vitali2 Introduzione Oggi esaminiamo in breve: u XSLT, ovvero il linguaggio di stile di XML.
EXtensible Stylesheet Language Transformations (XSLT) Giuseppe Della Penna Università degli Studi di L’Aquila
WWW La sintassi di SGML  XML Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo in breve tutti gli aspetti di SGML che sono in comune con XML:
WWW XSLT Fabio Vitali. WWW Fabio Vitali2 Introduzione Oggi esaminiamo in breve: u XSLT, ovvero il linguaggio di stile di XML.
1 XSL:Rappresentare i documenti XML Marco Mesiti XSL, XSLT, XPath.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Transcript della presentazione:

WWW XBase, XPath e XPointer Fabio Vitali

WWW Fabio Vitali2 Introduzione Qui esaminiamo: u XBase, XPath e XPointer

WWW Fabio Vitali3 XML Base, XPath, XPointer e XLink XBase, XPath, XPointer e XLink sono quattro documenti di W3C per la specifica di link ipertestuali sui documenti XML. Erano un’unica proposta chiamata XLL (da cui la terna XML, XLL e XSL), poi divisa in quattro per semplicità. u XML Base specifica un meccanismo per esprimere URI di base per parti di documenti XML. E’ simile all’elemento BASE di HTML. u XPath specifica i meccanismi per indicare percorsi all’interno di un documento XML. E’ usato anche da XSLT. E’ una raccomandazione W3Cdel 16/11/99 u XPointer specifica i meccanismi per riferirsi a parti del documento XML (SGML permette di riferirsi solo ad elementi con l’attributo “ID”, HTML solo ad elementi con l’attributo “NAME”). E’ una candidate recommendation u XLink usa i meccanismi di indirizzamento di XPointer per descrivere link anche sofisticati tra documenti XML. E’ una Recommendation

WWW Fabio Vitali4 XML Base In molti casi è interessante specificare URI relativi all'interno di documenti. Alcune rirose XML hanno naturalmente un URI associato, che possa fare da base per gli URI relativi posti al suo interno. Altre volte non li hanno (es.: documenti generati programmaticamente),a volte li hanno indesiderabili (documenti soggetti a trasformazioni intermedie). In tutti i casi,può essere necessario suggerire una base esplicita per gli URI relativi presenti. XML Base è una raccomandazione W3C (27 giugno 2001) a questo scopo. Sostanzialmente prevede di specificare la base usando da qualche parte (prima dell'uso) l'attributo riservato xml:base e come valore l'URI assoluto di base …

WWW Fabio Vitali5 XPath Gli XPath sono una sintassi comune per XSL e XPointer per esprimere locazioni all’interno di documenti XML. XPath opera sulla struttura logica del documento, non su quella sintattica, usando una sintassi non XML accettabile all’interno di URI e attributi. Un XPath è un espressione che restituisce un oggetto di uno di questi quattro tipi: u Un booleano u Una stringa u Un numero u Un insieme di nodi (nodi elemento, nodi attributi, nodi testo)

WWW Fabio Vitali6 XPointer Gli XPointer sono indirizzi di locazioni interne a documenti XML. Possono essere usati per indicare link da o a specifiche parti di documenti XML. Gli XPointer sono una elaborazione dell’identificativo di frammento in un URL: Gli XPointer sono dunque usati in un locatore, tipicamente un URI o URL, per indicare un frammento di quella risorsa. Gli XPointer sono un’estensione degli XPath, di cui estendono leggermente la sintassi.

WWW Fabio Vitali7 Location Path Il tipo più importante di XPath è il Location Path. Questo può essere o assoluto o relativo. Un Location Path assoluto inizia con ‘/’. Un Location Path è composto di una sequenza di passi di locazione (Location Steps) separati da ‘/’, e letti da sinistra a destra. Ogni termine individua più precisamente un frammento della risorsa individuata in precedenza. Es.: /child::doc/child::chapter/descendant::para identifica gli elementi “para” che discenda da un elemento “chapter” che sia figlio diretto della radice “doc” del documento XML.

WWW Fabio Vitali8 Location Step Un location step ha tre parti: u Un asse, che individua la direzione di specifica del location step nell’albero e rispetto al contesto. u Un test di nodo, che individua il tipo e il nome completo del nodo identificato dal location step u Zero o più predicati che raffinano ulteriormente l’insieme di nodi selezionati dal location step La sintassi è: axis::test[pred1][pred2]…[pred N]

WWW Fabio Vitali9 Assi Gli assi identificano la direzione rispetto alla struttura del documento in cui andare a cercare l’oggetto da restituire rispetto al nodo contesto (NC). Tra gli assi possibili troviamo:  child, descendant : figlio diretto e a quelaunque livello del NC  parent, ancestor : il genitore immediato / qualunque livello del NC  self, namespace : il NC; il nodo namespace del NC  attribute : gli attributi del NC  preceding-sibling, following-sibling : i nodi allo stesso livello ma precedenti o seguenti il NC.  preceding, following : i nodi a qualunque livello (ma fuori al NC) che precedono o seguono il NC.  descendant-or-self, ancestor-or-self : come descendant e ancestor, ma considerando anche il NC.

WWW Fabio Vitali10 / R S P IB I SS PPP B P P P PP P S P I P Asse self:: Asse parent:: Asse preceding-sibling:: Asse following-sibling:: Asse child:: Asse ancestor:: Asse preceding:: Asse following:: Asse descendant:: Un esempio di alcuni assi

WWW Fabio Vitali11 Test di nodo (node test) Il test di un nodo identifica attraverso il nome o il tipo l’oggetto da restituire. Se un asse contiene un nodo, questo può essere verificato attraverso un test sul nome (se è un elemento) o attraverso altri meccanismi:  Se l’asse è attribute, il nodo è un attributo  Se l’asse è namespace, il nodo è il namespace u Altrimenti, il nodo è un elemento. Il test può essere: u Un nome: vero se il nodo (elemento o attributo) ha quel nome  text(), processing-instruction(), comment() : vero se il nodo è di tipo testo, processing instruction o commento.  node() : vero sempre u * : vero per tutti i nodi del tipo definito dall’asse

WWW Fabio Vitali12 Predicati Un predicato filtra l’insieme dei nodi rispetto alla direzione indicata dall’asse per produrre un nuovo insieme di nodi. Il filtro può essere attuato sulla posizione, o valutando un’espressione booleana. In questo secondo caso il risultato è quel sottoinsieme di nodi, tra quelli individuati finora, per cui l’espressione booleana è vera. L’espressione booleana può essere (ovviamente complicata da operatori booleani come or, and e not), un’espressione relazionale (a=b, a!=b, a<b, ecc.), e/o un Location Path, e/o una funzione pre-definita. u Predicato: [a] con a EspressioneBooleana u EspressioneBooleana: a or b, a and b, c, con a e b espressioni booleane e c espressione relazionale u EspressioneRelazionale: a = b, a != b, a b, a = b, c, dove c espressione aritmetica u EspressioniAritmetiche: a + b, a - b, a * b, a div b, a mod b, c, -c, con c espressione di disgiunzione u EspressioniDisgiunzione: a | b, c, con c espressione di path u Espressione di Path: LocationPath o Espressione primaria u Espressione Primaria: numero, lettera o chiamata funzione

WWW Fabio Vitali13 Funzioni predefinite XPath non definisce un elenco completo di funzioni, ma un elenco fondamentale.  Funzioni sull’insieme di nodi: last(), position(), count(), id(), local-name(), namespace-uri(), name()  child::para[position()=3] individua il terzo nodo di nome “para” dentro al NC.  child::para[last()] individua l’ultimo nodo “para” nel NC.  N.B.: child::para[3] è equivalente a child::para[position()=3]  Funzioni stringa: string(), concat(), starts-with(), contains(), substring-before(), substring-after(), substring(), string-length(), normalize-space(), translate(), u Funzioni booleane e numeriche

WWW Fabio Vitali14 Sintassi abbreviata In alcuni casi esistono delle forme abbreviate usabili invece della sintassi completa: u Child::x si può abbreviare con x u Attribute::x si può abbreviare u Descendant si può abbreviare con ‘//’, self con ‘.’, parent con ‘..’ Esempi:  /doc/chapter[5]/section[2] : la seconda sezione del quinto capitolo dell documento.  chapter//para : tutti i para discendenti a qualunque livello del nodo chapter figlio del NC  //para : tutti i para discendenti a qualunque livello della radice del documento.

WWW Fabio Vitali15 Altri esempi di XPath tutti i para figli del NC che abbiano l’attributo “warning”. il quinto para figlio di NC ad avere l’attributo typeuguale a “warning”. il quinto para figlio di NC, ma solo se ha l’attributo type uguale a “warning”. chapter[title]: il “chapter” figlio del NC che contenga uno o più elementi “title”

WWW Fabio Vitali16 Punti sottili (1) Root node e document node u Gli XPath assoluti iniziano sempre con /root (dove root è il nome dell'elemento radice), a parte /. u Sono la stessa cosa? NO! Il nodo radice è più generale, e contiene l'elemento radice (corrispondente al tag radice), ma non coincide con lui. u Il nodo radice contiene la dichiarazione XML, la dichiarazione di tipo di documento, eventuali altre processing instruction (es. per indicare il foglio di stile XSLT), oltre al nodo dell'elemento radice, chiamato, per evitare confusioni, document element. Assi in ordine rovesciato u La maggior parte degli assi idntifica la posizione seguendo l'ordine degli elementi nel documento. Gli assi che indicano elementi precedenti al nodo (e.g., ancestor, preceding e preceding-sibling) vanno in ordine rovesciato, dunque F preceding[1] viene dopo di preceding[2] F ancestor[1] è il padre, non la radice

WWW Fabio Vitali17 Punti sottili (2) Caratteri proibiti u XPath viene usato in contesti con sintassi particolari (es. attributi XML o URI). In questi casi i caratteri leciti in XPath ma proibiti nel contesto vanno adeguatamente escapati. F Es. … u Da notare che - è sia un carattere lecito nei nomi XML sia un operatore matematico in XPath. Quindi è necessario precedere l'operatore matematico con uno spazio F è diverso da - bar] ID in XPath u La funzione id(foobar) richiede di identificare quell'elemento che abbia un attributo di tipo ID il cui valore sia foobar. u E' necessario avere il DTD per riconoscere che un attributo è di tipo ID. Poiché i DTD non sono necessari nei documenti XML, questa funzione può essere verificata solo da un parser validante, e quindi non è universale.

WWW Fabio Vitali18 XPath e Explorer 5.0 Microsoft ha messo a disposizione tre versioni (ad oggi) di librerie XML, leggermente diverse le une dalle altre: u MSXML 2.0: supporto pieno di XML, parziale di Namespace, versione draft, non definitiva, di XSL e XPath, niente Schema. Internet Explorer 5.0 u MSXML 3.0: supporto pieno di XML, pieno di Namespace, versione definitiva di XSL e XPath, versione draft, non definitiva, di Schema. Internet Explorer 5.5 u MSXML 4.0: supporto pieno di XML, Namespace, XSLT, XPath, versione quasi definitiva di Schema. Internet Explorer 6.0 In particolare, MSXML 2.0, per quel che riguarda XPath: u Solo sintassi abbreviata, pochi assi u Mancano completamente gli operatori aritmetici, e molti altri sono carenti u Alcune funzioni hanno nomi diversi: end() invece di last(), index() invece di position(). Altre funzioni non esistono.

WWW Fabio Vitali19 XPointer XPointer è una delle attività più intricate e disgraziate del W3C (anche se HTTP-NG lo supera) Dopo lunghe e intricate vicissitudini, una versione limitata e parziale è diventata Recommendation W3C nel marzo Il documento iniziale è stato frammentato in 4, tre dei quali sono stati approvati, ed il quarto ancora no. Gli XPointer sono meccanismi per indicare all'interno di un URI la parte fragment, ovvero la specifica sezione del documento a cui faccio riferimento. Questa parte può essere specificata o sulla base di un attributo id esistente (analogo a NAME di HTML), oppure indicando il nodo sulla base di un percorso di qualche tipo.

WWW Fabio Vitali20 XPointer (2) n XPointer framework (W3C recommendation) stabilisce l'organizzazione generale degli XPointer e la forma degli schemi da usare per indicare i frammenti interessanti. n XPointer xmlns() (W3C recommendation) stabilisce come specificare nomi qualificati all'interno degli schemi XPointer n XPointer element() (W3C recommendation) identifica due specifici schemi di indicazione di elementi all'interno di un XPointer: bare names (attributi di tipo id) e child sequences (sequenze di elementi figlio in un albero). n XPointer xpointer() (W3C working draft) individua uno schema di XPointer che permette l'uso di XPath, e introduce due nuovi concetti, il punto ed il range, per indicare frammenti che non sono sottoalberi di un documento XML.

WWW Fabio Vitali21 XPointer (3) XPointer element() u un bare name identifica l’elemento il cui ID è il nome dato  diventa #element(intro) u Una child sequence è una sequenza di attraversamento di un albero nei suoi figli F u Le cose possono mescolarsi: una sequenza di attraversamento può partire da un bare name F #xpointer(intro/1/2) XPointer xpointer() u Uno o più forme generali di frammento (General Fragment part). Può essere o un XPath, o un XPath con punti e range. F

WWW Fabio Vitali22 Estensioni a XPath (1) XPointer xpointer() estende il concetto di node in quello di locazione. Una locazione è un nodo, o un punto, o un range di un documento XML. Quindi XPointer definisce due nuovi location types: u Point: è definito da un nodo ed un indice, e rappresenta una posizione descritto dall’indice al’interno del nodo. Se il nodo non ha nodi figli, allora l’indice si riferisce alla stringa contenuta nel nodo. u Range: è definito come due punti, il primo precedente al secondo.

WWW Fabio Vitali23 Estensioni a XPath (2) Inoltre XPointer definisce alcune funzioni aggiuntive, tra cui: u range-to(nodo): dall’inizio di NC al nodo parametro  xpointer(id("chap1")/range-to(id("chap2"))) u string-range(): una sottostringa del NC  string-range(//title,"Thomas Pynchon")[17] u range(node-set): tutti i range espressi dai parametri u start-point(), end-point(): l’inizio e la fine del NC u here(), origin(): il punto contesto, e l’origine del link.

WWW Fabio Vitali24 Conclusioni Qui abbiamo parlato di u Xbase, XPath e XPointer

WWW Fabio Vitali25 Riferimenti n J. Clark, S. DeRose, XML Path Language (XPath), Version 1.0, W3C Recommendation 16 November 1999, n Paul Grosso, Eve Maler, Jonathan Marsh, and Norman Walsh, eds.. XPointer Framework, W3C Recommendation 25 march 2003, n Paul Grosso, Eve Maler, Jonathan Marsh, and Norman Walsh, eds.. XPointer element() Scheme, W3C Recommendation 25 march 2003, n P. Grosso, E. Maler, J. Marsh, and N. Walsh, editors. XPointer xmlns() Scheme. World Wide Web Consortium, W3C Recommendation 25 march 2003, xmlns/. n S. DeRose, E. Maler, and R. Daniel Jr., editors. XPointer xpointer() Scheme. World Wide Web Consortium, W3C Working Draft 19 December 2002,