Tiziana Mancinelli
Corso di Iformatica per gli studi umanistici 2018
Recupero dei dati in un file XML
Applicare un foglio di stile per la trasformazione di un file XML
Potremmo ipotizzare tre livelli, che corrispondono a tre macro aree di analisi e quindi a tre modelli o a tre punti di vista:
Non è obbligatorio scegliere uno dei tre modelli; tutti e tre possono essere rappresentati in fase di markup o meglio il modello elaborato può contemplare elementi che provengono dai tre diversi livelli della modellizzazione.
PROSA
I paragrafi che costituiscono una divisione testuale dovrebbero
essere marcati con <p>
<body>
...
<p>A seguitare, non ci saremmo mai intesi; perché se a me
stava a cuore la tigre, a lei il cacciatore. </p>
...
</body>
LIRICA
<l> contiene una singola linea, anche incompleta,
di un verso.
<lg> contiene un gruppo di versi che costituiscono un'unità formale, per esempio una stanza, una terzina, un refrain, un paragrafo in versi, etc.
<lg n=‘I’>
<l>Spesso il male di vivere ho incontrato:</l>
<l>era il rivo strozzato che gorgoglia,</l>
<l>era l'incartocciarsi della foglia</l>
<l>riarsa, era il cavallo stramazzato.</l>
</lg>
(da Ossi di seppia di Eugenio Montale)
Testi drammatici
<sp> contiene una singola battuta in un testo drammatico, o un brano presentato come tale (cioè per la recitazione) in un testo in prosa o in versi. Tra gli attributi: @who: identifica il soggetto parlante
<speaker> contiene una forma particolare di intestazione o etichetta, che fornisce i nomi di uno o più parlanti in un testo o frammento drammatico.
Testi drammatici
<stage> contiene qualsiasi tipo di didascalie e direttive di scena all'interno di un testo o di un frammento di testo drammatico. Tra gli attributi:
@type: indica il tipo di direttiva di scena. I valori consigliati includono ENTRATA, USCITA, MESSA IN SCENA, DIZIONE, etc.
<body>
<div1 type="act" n="1">
<head>Act One</head>
<div2 type="scene" n="1">
<stage>Pa Ubu, Ma Ubu</stage>
<sp>
<speaker>Pa Ubu</speaker>
<p>Pschitt!</p>
</sp>
</div2>
<div2 type="scene" n="2">
<stage>A room in Pa Ubu's house, where a magnificent
collation is set out</stage>
</div2>
</div1>
SCHEMA
XML
XQUERY
XSLT
Linguaggi relativi all'XML o altri linguaggi di visualizzazione
HTML
ePub
- Per poter trasformare un documento o recurare annotazioni, c'è bisogno di un linguaggio base per selezionare nodi in un documento XML
- Manipolare dati attraverso funzioni
XPath è l'acronimo di XML Path Language
XPath utilizza la sintassi "path like" per identificare e navigare i nodi in un documento XML
XPath contiene oltre 200 funzioni integrate
XPath è un elemento importante nello standard XSLT
XPath è una raccomandazione W3C
Le espressioni XPath permettono di ”navigare” l’albero del
documento XML usando assi di navigazione (expression axes).
.
nodename | Selects all nodes with the name "nodename" |
---|---|
/ | Selects from the root node |
// | Selects nodes in the document from the current node that match the selection no matter where they are |
. | Selects the current node |
.. | Selects the parent of the current node |
@ | Selects attributes |
XSLT (Extensible Stylesheet Language Transformations)è un linguaggio per trasformare documenti XML in altri documenti XML, o in altri formati come HTML per pagine Web, testo normale o oggetti di formattazione XSL, che possono successivamente essere convertiti in altri formati, come PDF, PostScript e PNG.
Provate a farlo con l'elemento <stage>
Quanti versi ci sono? <l>
/TEI/text/body/div/div/sp
//sp[@who='#Barnardo']
L'attributo si richiama con il simbolo @
count(//sp[@who='#Barnardo'])
Xpath ha delle funzioni
un particolare costrutto sintattico di un determinato linguaggio di programmazione che permette di raggruppare, all'interno di un programma
//div/div[string-length(.) > 20000]
Xpath ha delle funzioni
un particolare costrutto sintattico di un determinato linguaggio di programmazione che permette di raggruppare, all'interno di un programma
avg(//div/div/string-length(.))
Xpath ha delle funzioni
un particolare costrutto sintattico di un determinato linguaggio di programmazione che permette di raggruppare, all'interno di un programma
<xsl:text>Number of speeches:</xsl:text>
<xsl:value-of select="count(//sp)"/>
Aggiungiamo qualche istruzione
<xsl:text>Number of acts:</xsl:text>
<xsl:value-of select=""/>
Aggiungiamo - <xsl:value-of select="count(//body/div)"/>
By Tiziana Mancinelli