540 likes | 709 Views
XML - Teori og praktisk bruk. Astrid Jenssen astrid.jenssen@usit.uio.no Universitetets senter for informasjonsteknologi Universitetet i Oslo. Tema. XML-standarden Introduksjon Syntaks Bruk av XML i praksis Editere dokumenter Presentere og konvertere XML Relaterte standarder
E N D
XML - Teori og praktisk bruk Astrid Jenssen astrid.jenssen@usit.uio.no Universitetets senter for informasjonsteknologi Universitetet i Oslo
Tema • XML-standarden • Introduksjon • Syntaks • Bruk av XML i praksis • Editere dokumenter • Presentere og konvertere XML • Relaterte standarder • Organisatoriske aspekter • Eksempler fra UiO • StudInfo
Historikk • En standard vedtatt av W3C 10. februar 1998 • Utviket for bruk på web • Subsett av SGML • (Standard Generalized Markup Language) • Enklere å lage programvare for prosessering av XML
Fordeler med XML • Uavhengig av programvare og maskinvare • Uavhengig av presentasjonsmedium • En kilde – mange applikasjoner • Effektiv for søk og gjenfinning • Automatisk prosessere informasjon • Gjenbruk av informasjon
Når og hvorfor XML? • Meningsfulle søk • Utvikling av fleksible web-applikasjoner • Utveksling av data (på web) • Publisering på flere medier
Eksempler på bruk • Digitalt bibliotek • Alexandria Digital Library • DUO – Digitale utgivelser ved UiO • Medisin • Strukturerer og utveksler bibliografisk informasjon og assosierte metadata for over 9 mill medisinske artikler (PubMed, MEDLINE) • Dokumenthåndtering • Artikler, tidsskrifter, bøker • Ordliste • Teknisk dokumentasjon • EDI (Electronic Data Interchange) • Eks: lånesøknad, faktura, prosjektstatus • LMS (e-læring) • MathML - matematiske formler på web
SGML/XML • XML er et subsett av SGML (ISO-standard i 1986) • XML er SGML • Mange som før brukte SGML benytter nå XML • Har ikke bruk for alle SGMLs muligheter • Vanskelig å benytte SGML på Web • Tegnsett • SGML krever en DTD • Komplisert linking SGML XML HTML
XML/HTML/XHTML • XML skiller innhold fra presentasjon • HTML markerer utseende og ikke struktur • HTML er dessuten tilpasset ulike nettlesere • XML gir bedre søkemuligheter • H1 vs KAPITTEL • P vs FORFATTER • XML kan uttrykke komplekse strukturer • HTML har en flat struktur • XML har mer avansert linking • Linker til mer enn en ressurs m.m. • HTML har bare A-elementet • XHTML: ”XMLifisert HTML”
Layout vs. Innhold Teksbehandler XML Tittel NOTAT Til: De ansatte Fra: Adm. dir. Dato: 06/11-2003 God nyhet til alle! Lønnsøkningen blir ekstra stor i år. Times 24 pt Times 20 pt Avsender Mottaker Dato Times 20 pt, havlfet Avsnitt
Dokumentstruktur for artikkel Artikkel Tittel Seksjon+ tekst Tittel Avsnitt+ tekst tekst
XML grunnleggene prinsipper • Dokumentinstanser av samme dokumenttype er underlagt en felles struktur • Reglene for hvilke elementer som kan forekomme i dokumentinstansene kan beskrives i en DTD eller i XML skjema • Innhold (tekstelementer) • Struktur (kombinasjon av tekstelementer, rekkefølge, forekomster) • Parser (programvare) sjekker riktigheten • Programvare tolker kodingen og presenterer på ulike media, overfører data, transformere data • Eksempler her: DTD (Document Type Definition)
XML-systemet • Dokuminstanser • DTD • XML-prosessor Applikasjoner Bokk CD-ROM Database WWW
DTD for notat <!ELEMENT notat (header, avsnitt+) > <!ELEMENT header (mottaker,avsender,dato?)> <!ELEMENT mottaker (#PCDATA) > <!ELEMENT avsender (#PCDATA) > <!ELEMENT dato (#PCDATA) >
Elementdeklarasjon <!ELEMENT header (mottaker, avsender, dato?)> header avsender dato mottaker notat … header avsnitt mottaker avsender dato
Hovedkomponentene i en DTD • Elementer • Attributter • Entiteter • Elementer og tekst • Operatorer • Kombinasjon av koder • Påkrevd kode • Valgfri kode • …
Operatorer • Rekkefølgeindikatorer • (a, b, c) pålagt sekvens • (a | b | c) sekvens uviktig • Forekomstindikatorer • dato? Ingen eller en dato • avsnitt+ Et eller flere avsnitt • avsnitt* Ingen eller flere avsnitt
Elementer og tekst • Dokument: Det er svært viktig at alle husker på å låse dørene før dere går. • Elementer i XML-fil (dokumentinstansen):<avsnitt>Det er <uthev>svært</uthev> viktig at alle husker på å låse dørene før dere går.</avsnitt>
EMPTY-element • Elementet har ikke noe innhold • Eksempel: • Markere innsettingspunkt for automatisk generert innholdsfortegnelse • Bilde (bildereferansen ligger i attributtverdien)
EMPTY-deklarasjon DTD: <!ELEMENT bok (tittel, innhold, kapittel+)> <!ELEMENT innhold EMPTY > <!ELEMENT kapittel …. > XML-fil: <bok> <tittel>Haienes verden</tittel> <innhold/> <kapittel>…</kapittel> … <figur file=”tigerhai.jpg”/> … <kapittel>…</kapittel> </bok>
Attributter • Et element kan ha visse egenskaper • Språk; engelsk eller norsk • Vi koder slike egenskaper i elementets attributter
Attributtdeklarasjon DTD: <!ATTLIST notat type (internt|offentlig) #REQUIRED > XML-fil:<notat type=”internt”> <header> <mottaker>De ansatte</mottaker > <avsender>Adm. dir.</avsender> <dato>06/11-2003</dato> </header> <avsnitt>God nyhet til alle!</avsnitt> <avsnitt>Lønnsøkningen … </avsnitt></notat>
Attributtverdier • Forhåndsdefinerte verdier • ”internt|offentlig” • ”bullet|number|simple” • Vilkårlig tekststreng • tall, tekststreng,… • Filnavn • m.m. • Dette defineres i DTDen • Attributtdeklarasjonen
Default-verdier til attributt • #REQUIRED • Attributtet må settes inn DTD:<!ATTLIST notat type (internt|offentlig) #REQUIRED> XML-fil:<notat type=”internt”> <header> … </notat>
Forhåndsdefinert verdi • Forhåndsdefinert attributtverdi: DTD:<!ATTLIST notat type (internt|offentlig) internt> XML-fil: <notat> … </notat> Attributtverdi fylles ut av parseren i output: <notat type=”internt”> … </notat>
Entitet-deklarasjon • XML-fil:<AVSNITT>Her skal vi lære mer om &XML; og andre standarder</AVSNITT> • DTD: <!-- entitetsnavn entitet --> <!ENTITY XML “eXtensible Markup Language” >
Well-formed og Valid • XML-dokumenter kan være av to typer • Well-formed • Dokumentet starter med XML-deklarasjon<?xml version=”1.0”?> • Rotelementet må inneholde alle de andre elementene • Alle elementene må være nestet • Valid • Well-formed • Parses i henhold til en DTD
Eks Valid <?xml version=“1.0” ?> <!DOCTYPE winelist SYSTEM “winelist.dtd”> <winelist> <title>Winelist</title> <wine>Santa Carolina</wine> </winelist> <!ELEMENT winelist (title, wine+)> <!ELEMENT wine (#PCDATA)> <!ELEMENT title (#PCDATA)> winelist.dtd mywine.xml
XML i praksis • XML liten verdi i seg selv • … må presenteres, overføres, behandles… • Mange aktører og roller • Modellere (utviklere, brukere m.fl) • Editere XML-dokumenter • Konvertere • Administrere og lagre dokumenter • Presentere på ulike media • Kvalitetssikring • Opplæring • Brukerstøtte • …
Editering • Direkte i XML • Emacs • Notepad • XML-editor (eks XMetaL) • I Word/annen tekstbehandler • Krevende å konvertere fra ikke-strukturert materiale til XML • Konvertere til XML (neppe uten manuelle innslag) • Database
XML- editor Word o.l. XML-systemet Presentasjon/ utveksling XML-generering Editering DB XML- assamblering XML www Konvertering
XML på web • Publisere XML direkte på web eller konvertere XML til HTML • Flere relaterte standarder gjør dette mulig: CSS XML XSL FO XSLT
Stylesheet - stilark • En enkel måte å formatere dokumenter på • Formatering av de ulike elementene i XML-dokumentet uttrykkes i form av regler • CSS – W3C standard for HTML/XML • XSL – W3C standard for XML • XSLT – W3C standard for å transformere XML til XML (del av XSL)
Hvordan lage et CSS stilark • Bruk en teksteditor/stylesheet editor • Anbefaler å lagre stilarket i en egen fil • Legg til følgende i XML-dokumentet: <?xml-stylesheet href=”style.css” type=”text/css”?> • Eksempel på formateringsregel for tittel-element: tittel { font-family: Helvetica; font-size: 24pt; font-weight: bold }
XSL- eXtensible Stylesheet Language • eXtensible Stylesheet Language (XSL) • Språk for å utrykke stilark og transformere XML-dokumenter • XSL består av tre deler • XSL Transformation (XSLT) • For å transformere XML-dokumenter • XML Path Language (Xpath) • For å adressere deler av et XML-dokument, • XSL Formatting Object (XSL-FO) • Vokabular for å spesifisere formattering
eXtensible Style Language Transformation (XSLT) • Benytter XML-syntaks • Kan foreta komplekse transformasjoner av kildedokumentet • endring i dokumentstruktur, sortering, filtrering, duplisering av info. m.m. • Brukes også for å konvertere XML til HTML
XPath – XML Path Language • For å referere til deler av et XML-dokument • Via trestrukturen • Går hånd-i-hånd med XSLT 2.0
XSL Formatting Objects (XSL-FO) • Benytter XML-syntaks • Brukes bl.a. for å konvertere til PDF,TeX og PostScript • Kan uttrykke marginer, header, footer, sidenummerering, tabell mm
XSLT engine • Prosessor som foretar transformering av et XML-dokument i hht spesifikasjoner i et XSLT-dokument • Implementasjoner, eks: • Java: XT, SAXON, Xalan-J, Oracle, Sun,… • C++: Transformiix, Xalan-C, Unicorn,… • Win32: Unicorn, Microsoft, Xport • Python: 4XSLT • Mer oppdatert liste: • Se oversikt på www.perfectxml.com
Web browser DB HTML OS XSLT XSLT og CSS i kombinasjon Server Klient XML XSLT engine Transfor- mering CSS
Kvalitetsreformen og USIT • USIT (Universitetets senter for IT) har vært og er tungt inne i flere prosjekter/aktiviteter med ulike roller og oppgaver • Felles Studentsystem (FS), studentportal, StudInfo, timeplanlegging, ClassFronter m.fl. • Krever mye samarbeid på tvers av USIT/UiO og integrasjon mellom mange systemer
KOST-prosjektet • Prosjekt for omstrukturering og KOordinering av UiOs skriftlige STudieinformasjon • Revurderte all trykket og web-basert studieinformasjon mht struktur, hva som ble publisert i hvilke kanaler med mer • Skulle bl.a oppnå mindre duplisering av informasjon og mer skreddersydde informasjonsløsninger for den enkelte student/studentgruppe • Alle enheter ved UiO var involvert • 2-årig, avsluttet 31. desember 2003
StudInfo ble gradvis utviklet • Publiseringsfase 1 • Presentasjon av bachelorprogram og –emner mm for potensielle studenter • Publisert 6. jan 2003 • Publiseringsfase 2 • Presentasjon av masterprogram og –emner mm • Publisert 15. mars 2003 • Publiseringsfase 3 • Semesterspesifikk informasjon (undervisning, faglige krav, forelesere, pensum, beskjeder...) • Primærmålgruppe: studenter på studiet • Publisering medio juni 2003 og framover
StudInfo • Løsninger for innskrivere • XMetaL • Web-redigering • Bruker- og filadministrasjon • Støtte for arbeidsflyt • ”Kvern” som prosesserer XML-filer, info fra andre kilder og presenterer i Web • Kobling Felles studentsystem • Presentasjon i web • Vortex leverer funksjonalitet • administrasjon, redigering og visning (publisering) av strukturerte dokumenter
Organisatoriske aspekter – den store flaskehalsen! • Overgang til XML et paradigmeskifte! • Mange brukere bruker lang tid på å snu tankegangen • Vær forberedt på motstand • Involver brukerne i beslutningsprosessene • Eierskap og medinnflytelse viktig • Bruk nok tid og ressurser på opplæring og riktig verktøy!
Involverte i prosessen • Mange aktører • De som kjenner informasjonen og prosesser godt • De som redigerer informasjonen som skal over i XML • Økonomiske beslutningstakere • Driftspersonell • Personer som representerer andre berørte systemer • Utviklere
Mange brukerhensyn • Mange innskrivere • StudInfo, FS, superbrukere, administrativt ansatte, forelesere, studenter • Struktur vs fleksibilitet • Valg av verktøy • Rutiner, arbeidsflyt • Gjenbruk og prosessering • Aksesskontroll • Presentasjon; Papir, Web, CD.rom, blindeskrift… • Søk og navigering • Index, stikkord, fulltekstsøk, hyperlinker • Opplæring, brukeroppfølging • Ikke undervurder behovet!