440 likes | 605 Views
XSL : XML med stil. Eksempler fra Ibsen-prosjektet og MALVINE. Tone Merete Bruvik HIT-seminar 3. desember 1999 Innføring i XSL. Oversikt. Litt om MALVINE -prosjektet Og litt om prosjektet Henrik Ibsens skrifter Bakgrunn og status for XSL Verktøy Eksempler på bruk Virkemåte Hvor er vi?.
E N D
XSL : XML med stil. Eksempler fra Ibsen-prosjektet og MALVINE. Tone Merete BruvikHIT-seminar 3. desember 1999Innføring i XSL
Oversikt • Litt om MALVINE-prosjektet • Og litt om prosjektet Henrik Ibsens skrifter • Bakgrunn og status for XSL • Verktøy • Eksempler på bruk • Virkemåte • Hvor er vi?
MALVINE prosjektet • Manuscripts and Letters Via Integrated Networks in Europe • Oppstart: juli 1998; Avsluttes: desember 2000 • Delfinansiert av EU, IV rammeprogram. • Http://www.malvine.org/
Mål • MALVINE-prosjektet vil bedre tilgangen til katalogene ved en del sentrale manuskriptsamlinger i Europa ved å utvikle et felles brukergrensesnitt over Internett mot de ulike katalogdatabasene. • Bruker multi-site søkemotorer, OPAC, Z39.50, konverteringsverktøy.
MALVINE konsortium • 18 partnere, fra 9 land i Europa: • Prosjektkoordinator: Staatsbibliothek zu Berlin. • Prosjektstyring: Crossnet Systems Ltd. • Utviklere: • HIT-senteret. • Joanneum Research, Østerrike. • Fraunhofer-Institut für Software- und Systemtechnik, Tyskland.
Dataleverandører: Biblioteca de Universidad Complutense Biblioteca Nacional de Portugal British Library Deutsches Literaturarchiv Forschungsstelle und Dokumentationszentrum für Österreichische Philosophie Goethe- und Schiller-Archiv
Institut für Wissenschaftstheorie und Wissenschaftsforschung der Universität Wien Institut Mémoires de l'Edition Contemporaine Nationalmuseet i Danmark Österreichische Nationalbibliothek Swiss National Library K.G. Saur Verlag Testbruker: Institut des Textes et Manuscrits Modernes
SGML brukbarhetsstudie • Mål: Lage konverteringsverktøy mellom ulike katalogformater og SGML/XML. Opparbeide og formidle erfaring med bruk av SGML/XML innen arkiv- og biblioteks-sektoren.
Valg av DTD • Bruker EAD - Encoded Archival Description - utviklet og vedlikehold av Society of American Archivists i samarbeid med Library of Congress. • EAD ble valgt fordi den er laget for arkivformål, godt dokumentert og i bruk. • Både i SGML- og XML-versjon • Http://www.loc.gov/ead/
Konvertering av kataloger til XML/SGML • http://helmer.hit.uib.no/malvine/EADpage.html Perl skript Lokal katalog Eksport XML Konv. tabell Konv. tabell Konv. tabell Konv. tabell Konv. tabell
Anvendelse i MALVINE Lokal katalog u/Z39.50 Søkemotor XSL Perl skript Fil Prosesserer EAD katalog Lokale kataloger m/Z39.50 Kopi av katalog m/Z39.50
Henrik Ibsens skrifter • En ny historisk-kritisk og kommentert utgave av alle Henrik Ibsens skrifter, trykte og utrykte: skuespill, dikt, artikler, foredrag, brev, utkast, notater. • Prosjektet blir finansiert av Norges forskningsråd i samarbeid med universitetene i Oslo, Bergen og Trondheim, samt Nasjonalbiblioteket. • Se http://ibsentexts.hit.uib.no/nor-1.htm
SGML i Ibsen-prosjektet • All tekst blir transskribert i SGML. • Bruker en TEI-DTD : • Text Encoding Initivative • Text Encoding and Interchange • http://www.tei-c.org/
MALVINE: Koding av kataloginformasjon (metadata). Automatisk konvertering av eksisterende elektroniske filer. Ibsens skrifter: Koding av kildemateriale. Transkribering av trykte og håndskrevne tekster. SGML i MALVINE og Ibsen-prosjektet
Hva er XSL? • Extensible Stylesheet Language • Utviklet innen W3C (World Wide Web Consortium). • XSL-dokumenter er skrevet i XML. • XSL er et transformeringsspråk for XML-dokumenter.
Hvorfor XSL? • XML beskriver struktur, ikke stil eller layout • For å pressentere XML-dokumenter i en eller annen form: WWW, på papir … • Kan omforme XML til en helt annen struktur. • Resultatet kan være XML, HTML eller en generell tekst i et hvilket som helst format.
Hvordan fungerer det? For eksempel: -IE5.0 -IBM alphaWorks XML enabler -XT XSL dokument Resultat dokument XSL prosesserer XML dokument http://www.w3.org/Style/XSL/#browsers
Internet Explorer 5.0 (IE5.0) • Støtter delvis XSL-versjonen fra desember 1998. • Oversetter til HTML. • Støtter ikke formateringsdelen i XSL (må bruke CSS til det). • Har ventet med å oppdatere til XSL var anbefalt av W3C.
XSL i Ibsen-prosjektet • Ved hjelp av to ulike XSL stilark kan man se samme XML tekst i to ulike versjoner. • Norma i hundreårsutgaven og førstetrykk: • http://ellida.uio.no/his/stilvelg.html
XML uten stilark i IE5.0 • Bruker standard-stilarket, som er å vise XML-koden med litt layout. • Prøv valget ”XML source code” for Norma: • http://ellida.uio.no/his/stilvelg.html
Koble XML-dokument til stilark • I andre linje i et XML dokument: • <?xml version="1.0" encoding="ISO-8859-1"?> • <?xml-stylesheet type="text/xsl" href="/his/ft.xsl" ?> • <!DOCTYPE TEI.2 SYSTEM "/his/mypizza.dtd">
XSL i MALVINE • Utdrag fra kataloger tilgjengelig i MALVINE-prosjektet: • http://helmer.hit.uib.no/malvine/EADpage.html
Det minste XSL-stilarket • <?xml version="1.0"?> • <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl”> <xsl:template match=“/”> <xsl:value-of /> </xsl:template> • </xsl:stylesheet>
Eksempel på XML-dokument • <?xml version="1.0" encoding="ISO-8859-1"?> • <?XML-STYLESHEET type="text/xsl" href="mini.xsl" ?> • <!DOCTYPE page [ • <!-- My DTD is a very simple DTD to demontrate how a DTD may look like --> • <!-- ELEMENTS CONTENT --> • <!ELEMENT page (title, body) > • <!ELEMENT title (#PCDATA) > • <!ELEMENT body (subhead, textline+)* > • <!ELEMENT subhead (#PCDATA) > • <!ELEMENT textline (#PCDATA) >]> • <page> • <title>Short introdution to SGML</title> • <body> • <subhead>There are several text markup languages, for example:</subhead> • <textline>HTML (HyperText Markup Language)</textline> • <textline>XML (eXtensible Markup Language)</textline> • <textline>SGML (Standard Generalized Markup Language)</textline> • </body> • </page>
Stilark 2 • Ett litt mer avansert stilark finnes her: • http://helmer.hit.uib.no/malvine/apage.xsl
Templates Mønster • <xsl:template match="title"> • <H1> • <xsl:apply-templates /> • </H1> • <HR /> • </xsl:template> Handling
Generell template • <xsl:template> • <xsl:value-of /> • </xsl:template>
Operatorer • / - child path operator • // - recursive descent • . - current context • @ - attribute path operator • * - wild char
Eksempel på mønster med operator • <xsl:template match="ead/eadheader/eadid"> • <H3> <xsl:apply-templates /> </H3> • </xsl:template>
Filtre • [ operator pathern ], f.eks.: • <xsl:template match="c01//*[not(@encodinganalog)]"> • <xsl:apply-templates /> • </xsl:template>
Noen XSL-elementer • xsl:stylesheet • xsl:template • xsl:apply-template • xsl:value-of • xsl:copy
Løkker og valg • xsl:for-each • xsl:if • xsl:choose • xsl:when • xsl:otherwise
Eksempel på bruk avif • <xsl:template match="eadheader//date"> • <xsl:apply-templates select="@encodinganalog" /> • <xsl:if test="@type"> • (Type : <xsl:apply-templates select="@type" /> ) • </xsl:if> • <xsl:apply-templates /> • </xsl:template>
Lage XML-element i resultattreet • xsl:attribute • xsl:cdata • xsl:comment • xsl:element • xsl:entity-ref • xsl:pi
Lage element med attributt • XML element: • <extref href="http://www.uib.no/">University of Bergen</extref> • XSL template: • <xsl:template match="frontmatter//extref"> • <a><xsl:attribute name="href"> • <xsl:value-of select="@href" /></xsl:attribute> • <xsl:value-of /></a></xsl:template> • Gir i resultattreet: • <a href = ‘http://www.uib.no’>Universitetet i Bergen</a>
Sortering • <xsl:for-each select=“//c01” order-by = “unitid”> • <xsl:apply-templates /> • </xsl:for-each>
Spesifisere element-rekkefølgen • <xsl:template match="c01"> • #008 • <xsl:apply-templates select="@langmaterial" /> • <xsl:apply-templates select="did/unitid" /> • <xsl:apply-templates select="did/repository" /> • ... • </xsl:template>
Skript i XSL • function newLabel(e) { var result = e.getAttribute("encodinganalog"); • result = result.replace('malvine_meta1.',' '); • return result; } • <xsl:template match="c01//*[@encodinganalog]"> • <xsl:eval>newLabel(this);</xsl:eval> • : <xsl:apply-templates />
Hvor er vi? • XSLT og XPath er W3C anbefalinger. • Mye testprogramvare tilgjengelig, få ferdige produkter: • http://www.w3.org/Style/XSL/#browsers • Bruk CSS hvis du kan, bruk XSL hvis du må.
Referanser • MALVINE-prosjektet: • http://www.malvine.org • Ibsen-prosjektet: • http://ibsentexts.hit.uib.no/nor-1.htm • XML i MALVINE-prosjektet: • http://helmer.hit.uib.no/malvine/EADpage.html • XSL: • http://www.w3.org/Style/XSL/
Litteratur • Alex Homer: XML in IE5.0 Programmer’s Reference, Wrox Press ltd. • Chapter 14 of the XML Bible : XSL Transformations, se http://metalab.edu/xml/books/bible/updates/14.html • XSL Transformations (XSLT) Version 1.0 W3C Recommendation 16 November 1999 • http://www.w3.org/TR/xslt