1 / 40

TEI e Fogli di stile

TEI e Fogli di stile. Il teiHeader: elementi fondamentali (per l’esame). <fileDesc> Titolo del documento, autore, responsabile della codifica: <titleStmt> Responsabile della distribuzione del documento <publicationStmt> Descrizione della fonte <sourceDesc> <bibl> </fileDesc>

quang
Download Presentation

TEI e Fogli di stile

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TEI e Fogli di stile

  2. Il teiHeader: elementi fondamentali (per l’esame) <fileDesc> • Titolo del documento, autore, responsabile della codifica: <titleStmt> • Responsabile della distribuzione del documento <publicationStmt> • Descrizione della fonte <sourceDesc> <bibl> </fileDesc> <profileDesc> • Descrizione delle lingue del testo: <LangUsage> </profileDesc> <revisionDesc> • Storia del documento <change> </revisionDesc>

  3. Citazioni bibliografiche • <bibl>: Può contenere • <title>: Orlando Furioso • <author>: Ludovico Ariosto • <biblScope>: Canto II, vv. 1-16 • <editor>: Cesare Segre • <publisher>: Einaudi • <pubPlace>: Torino • <date>: 1986 • <extent>: 687 pp.

  4. Struttura testo unitario <TEI.2> <teiHeader> <!-- metadati --> </teiHeader> <text> <front> <!-- il materiale prefatorio va qui --> </front> <body> <!-- il corpo del testo va qui --> </body> <back> <!-- il materiale finale va qui --> </back> </text> </TEI.2>

  5. Attributi globali • id = identificativo • n = per numerazione e altro • rend = rappresentazione grafica • lang = codice lingua (IDREF)

  6. Elementi per la segmentazione del testo 1. Paragrafi <p> • Attributi • globali 2. Divisioni strutturali <div> <div0> <div1> <div2> <div3> <div4> <div5> <div6> <div7> • Attributi • type: tipologia • globali

  7. Titoli e chiusure • <head>: titolo • Attributi • type: tipologia • globali • <trailer>: chiusura (es.: Fine Atto Primo) • Attributi • globali

  8. Struttura dei testi in versi • <lg>: gruppo di versi (strofa) • Attributi: part indica se la strofa è incompleta • Valori legali: I | N | M | F |Y • <l>: singolo verso • Attributi: part indica se il verso è incompleto • Valori legali: I | N | M | F |Y

  9. Divisioni strutturali testi drammatici <sp>: contiene la battuta di un testo drammatico. Non può contenere testo. Può contenere un elemento <speaker> e poi o <p> o <lg> o <l>, ma anche <stage> • attributi: • globali • who di tipo IDREFS, deve puntare a un ID (lista dei personaggi, <teiHeader>

  10. <speaker>: contiene il nome dell’interlocutore (ma anche di più interlocutori) così come si trova nella fonte <stage>: contiene una didascalia di scena • attributi: • globali • type

  11. Altre caratteristiche testuali: Liste • <list> • <item> • <label> Es: <list> <item><label id=‘dnt’>Dante</label>: primo interlocutore</item> <item><label id=‘mcv’>Machiavelli</label>: secondo interlocutore</item> </list>

  12. Enfatizzazioni • <hi>: generica <l>di te portai sola quell’eco:</l> <l><hi rend='sc'>per sempre!</hi></l> • <emph>: enfatizzazione semantica <p>E cos&igrave; col bicchiere in mano, seguendo il ragionamento, venne in su uno parlare <emph>divino</emph>, dicendo a' compagni:</p> • <foreign>: parola straniera <p>...Nel diritto forense friulano l'astuzia degli amministrati faceva l'uffizio dell'<foreign lang='lat'>equitas</foreign> nel diritto romano....>

  13. Allegare un foglio di stile a un documento XML • XSL • <?xml-stylesheet type=”text/xsl” href=”mioxsl.xsl”?> • CSS • <?xml-stylesheet type=”text/css” href=”miocss.css”?>

  14. Elemento ROOT di un XSL <?xml version=”1.0”?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"?> <!-- qui il contenuto del foglio di stile --> </xsl:stylesheet>

  15. xsl:template <xsl:template match=“qui il nodo”> <!--Qui le regole per il nodo selezionato --> </xsl:template>

  16. Selezionare nodi per l’attributo match di <xsl:template> • Nodo radice <xsl:template match="/"> ... </xsl:template> • Elementi <xsl:template match=“verso"> ... </xsl:template>

  17. Selezionare nodi per l’attributo match di <xsl:template> -2- • Figli nipoti o discendenti 1. <xsl:template match=“strofa/verso"> ... </xsl:template>  operatore / 2. <xsl:template match=“poesia/*/verso"> ... </xsl:template>  operatore * (salta un elemento) 3. <xsl:template match=“poesia//verso"> ... </xsl:template>  //salta n elementi

  18. Selezionare nodi per l’attributo match di <xsl:template> -3- • Attributi 1. <xsl:template match=“verso[@rima]"> ... </xsl:template>  tutti i “verso” con attributo “rima” 2. <xsl:template match=“verso[@rima=‘A’]"> ... </xsl:template> tutti i “verso” con attributo “rima” e valore “A”

  19. Selezionare nodi per l’attributo match di <xsl:template> -4- • OR <xsl:template match="strofa | verso"> ... </xsl:template>  operatore |

  20. xsl:apply-templates • Serve per applicare le regole descritte al nodo selezionato e a tutti i suoi figli. • Se si vuole che i figli abbiano una visualizzazione diversa, bisogna dichiarare una nuova regola

  21. select • Attributo select • Selezionare un attributo • @nomeAttributo select=“@rima”

  22. Selezioni multiple • <xsl:for-each>: serve per applicare una regola in modo ricorsivo a nodi figli dell’elemento contestuale. Attributo select obbligatorio • <xsl:value-of>: serve per selezionare a quali fra gli elementi selezionati da <xsl:for-each> si deve applicare la regola. Attributo select obbligatorio

  23. Espressioni XPath: percorsi di locazione • Un percorso di locazione è costituito da passi di locazione separati da / o da // • Locazioni: • Assolute: cominciano con /  parte dal nodo radice • Es: “/verso”  tutti gli elementi <verso> figli diretti dell’elemento radice • Relative: cominciano senza /  parte dal nodo contestuale • Es: “verso”  tutti gli elementi <verso> figli del nodo contestuale

  24. Un passo di locazione è costituito da: • un asse: esprime la relazione di parentela del nodo da selezionare rispetto al nodo contestuale o all’elemento radice • un nodo test: il nodo di cui si vuole testare l’esistenza e a cui si vuole applicare una regola • zero o più predicati: una caratteristica del nodo selezionato

  25. Esempio child::verso[position() = 1] • child::  è l’asse (qui: figlio del nodo contestuale) • verso  è il nodo test (il nodo da selezionare) • [position() =1]  è il predicato (qui: il primo elemento) = “fra tutti gli elementi <verso> figli del nodo contestuale, selezionare il primo”

  26. Visualizzare il teiHeader <xsl:template match="fileDesc"> <h2> <xsl:apply-templates select="titleStmt/title" /> </h2> <h3> <xsl:apply-templates select="titleStmt/author" /> </h3> </xsl:template> <xsl:template match="profileDesc">  così non visualizza niente </xsl:template>

  27. <xsl:template match="revisionDesc"> <h4>Storia del documento:</h4> <ul> <xsl:for-each select="change"> <li><b> <xsl:value-of select="date" /></b>: <xsl:value-of select="respStmt/resp" /> <xsl:text> </xsl:text> <xsl:value-of select="respStmt/name" /> &#x2014; <xsl:value-of select="item" /> </li> </xsl:for-each> </ul> </xsl:template>

  28. <xsl:apply-templates> quando: • Quando si vuole processare tutti i nodi figlio allo stesso modo <xsl:template match="/"> <html> <head> </head> <body> <xsl:apply-templates /> </body> </html> </xsl:template>

  29. <xsl:apply-templates> quando: 2. Quando si vuole selezionare un particolare nodo figlio e si vuole ignorare gli altri <xsl:template match="fileDesc"> <h2> <xsl:apply-templates select="titleStmt/title" /> </h2> <h3> <xsl:apply-templates select="titleStmt/author" /> </h3> <!-- manca respStmt --> <p><b>Edizione pubblicata da:</b> <xsl:apply-templates select="publicationStmt/publisher" /></p> <xsl:apply-templates select="sourceDesc" /> </xsl:template>

  30. <xsl:apply-templates> quando: 3. Quando si vuole selezionare i figli di un nodo e disporli in ordine diverso rispetto a quello che hanno nel documento XML <xsl:template match="fileDesc"> <h3> <xsl:apply-templates select="titleStmt/author" /> </h3> <h2> <xsl:apply-templates select="titleStmt/title" /> </h2> <xsl:apply-templates select="sourceDesc" /> <p><b>Edizione pubblicata da:</b> <xsl:apply-templates select="publicationStmt/publisher" /></p> </xsl:template>

  31. <xsl:apply-templates> quando: 4. Quando si vuole richiamare un template definito dopo <xsl:template match="fileDesc"> <h2> <xsl:apply-templates select="titleStmt/title" /> </h2> <xsl:apply-templates select="sourceDesc" /> </xsl:template> <xsl:template match="sourceDesc"> <xsl:for-each select="bibl"> <b>Fonte:</b><br /> <xsl:value-of select="author" /> <br /> </xsl:for-each> </xsl:template>

  32. <xsl:for-each> quando: • Quando si vuole processare tutte le istanze di un figlio di un nodo separatamente e ricorsivamente <xsl:template match="revisionDesc"> <h4>Storia del documento:</h4> <ul> <xsl:for-each select="change"> <li><b> <xsl:value-of select="date" /></b>: <xsl:value-of select="respStmt/resp" /> <xsl:text> </xsl:text> <xsl:value-of select="respStmt/name" /> &#x2014; <xsl:value-of select="item" /> </li> </xsl:for-each> </ul> </xsl:template>

  33. Immagini <xsl:template match="figure"> <img> <xsl:attribute name="src"> <xsl:apply-templates select="@entity" /> </xsl:attribute> <xsl:attribute name="alt"> <xsl:apply-templates select="figDesc" /> </xsl:attribute> <xsl:attribute name="border">0</xsl:attribute> <xsl:attribute name="width">100%</xsl:attribute> <xsl:attribute name="heigth">100%</xsl:attribute> </img> </xsl:template>

  34. Note: il rimando… <xsl:template match="note"> <sup> <a> <xsl:attribute name="href"> # <xsl:apply-templates select="@n"/> </xsl:attribute> <xsl:apply-templates select="@n"/> </a> </sup> </xsl:template>

  35. …e il testo <xsl:template match="body"> <body> <xsl:apply-templates /> <div> <hr/> <xsl:for-each select="//note"> <p> <a> <xsl:attribute name="name"> <xsl:value-of select="@n" /> </xsl:attribute> </a> <b> <xsl:value-of select="@n" />. </b> <xsl:text> </xsl:text> <xsl:value-of select="." /> </p> </xsl:for-each> </div> </body> </xsl:template>  mummie2.xml

  36. Sezioni condizionali • IF: booleano, qualora si verifichi una condizione si esegue una istruzione; se la condizione non si verifica l’istruzione non si esegue.Attributo test (sintassi XPath) obbligatorio • CHOOSE : si danno più opzioni • WHEN: booleano, qualora si verifichi una condizione si esegue una istruzione; se la condizione non si verifica l’istruzione non si esegue; ripetibile all’interno di choose; equivale a tanti ifAttributo test (sintassi XPath) obbligatorio • OTHERWISE ( else): contempla tutti i casi non definiti dai vari when

  37. Visualizzare solo poesie con titolo test non definisce un nuovo nodo contestuale. Il nodo contestuale è sempre poesia <xsl:template match="//poesia"> <xsl:if test="titolo"> <xsl:for-each select="titolo"> <b><xsl:value-of select="." /></b><br/> </xsl:for-each> <xsl:for-each select="verso"> <xsl:value-of select="." /><br/> </xsl:for-each> <br/> </xsl:if> </xsl:template>

  38. Se il titolo non c’è lo inseriamo test non definisce un nuovo nodo contestuale. Il nodo contestuale è sempre poesia <xsl:template match="poesia"> <xsl:choose> <xsl:when test="titolo"> <xsl:for-each select="titolo"> <b><xsl:value-of select="." /></b><br/> </xsl:for-each> </xsl:when> <xsl:otherwise> [<b>Poesia</b>]<br/> </xsl:otherwise> </xsl:choose> <xsl:for-each select="verso"> <xsl:value-of select="." /><br/> </xsl:for-each> <br/> </xsl:template>

  39. CSS: un esempio di gestione INPUT Elementi XML poesia{ background-color: transparent;  proprietà di sfondo } titolo{ display: block;  proprietà di posizionamento e di blocco font-weight: bold;  proprietà di carattere text-align: center;  proprietà di testo font-size: large;  proprietà di carattere } stanza{ display: block;  proprietà di posizionamento e di blocco margin-left: 12px;  proprietà di riquadro margin-bottom: 10px;  proprietà di riquadro } verso{ display: block;  proprietà di posizionamento e di blocco }

  40. XSL <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999 XSL/Transform“ version="1.0"> <xsl:output method="html" /> <xsl:template match="/"> <html> <head> <link rel="stylesheet" type="text/css" href="antologia.css" /> </head> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:template match="titolo"> <h1><xsl:apply-templates /></h1> </xsl:template> </xsl:stylesheet> CSS body { font-family: Verdana, Helvetica, Arial; font-size: 10pt; } h1 { background-color: #D2D2D2; } CSS: gestione dell’OUTPUT

More Related