Markeringsspråk og XML <?xml version ="1.0" encoding= utf-8"?> 8? <eventyr> Det var en gang og snipp, snapp, snute, så var det eventyret e et ute. </eventyr> Læringsmål XML Forstå prinsippene bak XML og XHTML. Forstå hva XML kan brukes til og hvordan. Forstå hva XML er og hva det ikke er. Kunne lage XML-dokumenter. Kunne bruke dokumenttypedefinisjoner d i (DTDer) og XML-skjemaer. Kjenne prinsippene i id de nyeste standardene d for lagring av bl.a. tekster, regneark og presentasjoner Kapittel 3 INF1040-XML- 1 INF1040-XML- 2 Rå tekst vs. formatert tekst Standarder som ASCII, ISO 8859-x og Unicode gjelder rå tekst ( plain text ) t ) og omfatter derfor svært lite om hvordan teksten skal vises fram I tillegg til råteksten trengs formateringsdirektiver for å påvirke Valg av glyfer (skrifttype, skriftstørrelse, se, skriftfarge,) Bruk av white space (avsnitts- og linjeavstand, innrykk, ) Integrasjon med andre visuelle elementer (bilder,) INF1040-XML- 3 Markeringsprinsipper ( markup principles ) Spesifikk markering (eksempel fra WordStar).PL 66 page length 66 linjer.mt 6 margin top = 6 linjer.mb 9 margin bottom = 9 linjer ^B Innhold INF1040^B switch bold on and off I ^BINF1040^B skal vi blant annet lære Generalisert markering (eksempel fra XHTML) <h1>innhold INF1040</h1> <p>i <strong>inf1040</strong> skal vi blant annet lære</p> Generisk markering (eksempel fra XML) <chapter> <chapter name>innhold INF1040</chapter name> <paragraph>i <topic>inf1040</topic> skal vi blant annet lære </paragraph> </chapter> INF1040-XML- 4
Redigeringsprogrammer (editorer) To hovedtyper ( se eksempler på de følgende lysark) WYSYWYG What you see is what you get Direkte redigering av markeringer De to trinn i moderne tekstbehandling Trinn 1 Generalisert eller generisk markering: Hver enkelt del av teksten deklareres til å være av en bestemt type (eksempelvis overskrift, brødtekst, sitat, opplisting,...) Trinn 2 Formatering: Hver av teksttypene tilordnes en kombinasjon av formater (ofte kalt en stil) Dette prinsippet gjør at dersom man ønsker å endre utseende f.eks. på alle overskrifter, er det tilstrekkelig å endre stilen Skill mellom innhold (hva er teksten) og visualisering (hvordan vise fram teksten) Eksempel: WYSIWYG i MS-Word I Produserer en fil testeksempel.docx iooxml XML-format (se senere) INF1040-XML- 5 INF1040-XML- 6 Direkte redigering LaTeX teksteksempel.tex \documentclass[a4paper,12pt]{article} \usepackage[latin1]{inputenc} \begin{document} teksteksempel.dvi teksteksempel.ps \section{innhold INF1040} I \textbf{inf1040} skal vi blant annet lære om hvordan vi i en LaTeX dvips datamaskin representerer \begin{itemize} \item tekst \item tall \item lyd \item bilder \end{itemize} og hva dette innebærer for \textit{lagring, overføring} og \textit{fremvisning} \end{document} INF1040-XML- 7 <?xml version="1.0" encoding="windows-1252"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> <html> <head> <title>beskrivelse INF1040</title> </head> <body> <h1> Innhold INF1040</h1> <p>i <b>inf1040</b> skal vi blant annet lære om hvordan vi i en datamaskin nettleser representerer</p> p (browser) <ul> <li>tekst</li> <li>tall</li> <li>lyd</li> <li>bilder</li> </ul> <p>og hva dette innebærer for <i>lagring, overføring</i> og <i>fremvisning</i> </p> </body> </html> Direkte redigering XHTML INF1040-XML- 8
SGML-familien SGML Standard General Markup Language ISO 8879:1985 HTML Hypertext Markup Language XML Extensible Markup Language Et standardisert format for data + beskrivelse av data Standardisert av World Wide Web Consortium se www.w3.org Eksempel se neste lysark XML Extensible Markup Language XHTML Extensible Hypertext Markup Language Other XML-based Languages ODF, OO XML ISO/IEC 26300 Office document standards d ISO/IEC 29500 INF1040-XML- 9 INF1040-XML- 10 Alle XML-filer begynner slik! Startmarkering (starttag) Sluttmarkering (endtag) Et meget enkelt XML-eksempel Hvilken XMLversjon som er benyttet <?xml version = "1.0" encoding= utf-8"?> 8?> <eventyr> Tegnsettet brukt i XML-filen Det var en gang og snipp, snapp, snute, så var det eventyret ute. </eventyr> Element XML er ikke ment for direkte fremvisning XML-teksten kan oversettes til egnet XHTML (eller et hvilket som helst annet tekstformat) ved hjelp av en XSLT-prosessor, et program som styres av instrukser på en XSLT-fil. (XSLT = Extensible Style Sheet Language Translator) Enkelte moderne nettlesere har en XSLT-prosessor innebygd XML-fil XSLT-fil XHTML-fil andre formater CSS-fil XSLTprosessor Nett- leser INF1040-XML- 11 INF1040-XML- 12
Et litt mer avansert XML-eksempel <?xml version = "1.0" encoding= utf-8"?> <emne id="inf1040"> <emnekode>inf1040</emnekode> <emnenavn>digital representasjon</emnenavn> <emnebeskrivelse>i INF1040 skal vi blant annet lære om hvordan vi i en datamaskin representerer <temaliste> <tema>tekst</tema> <tema>tall</tema> <tema>lyd</tema> Vi snakker gjerne om et XMLdokument, selv om det ikke er <tema>bilder</tema> </temaliste> meningen å skrive det ut på og hva dette innebærer for papir. <stikkord>lagring</stikkord> g Terminologien understreker <stikkord>overføring</stikkord> imidlertid at XML er et <stikkord>fremvisning</stikkord> tekstbasert format. </emnebeskrivelse> </emne> INF1040-XML- 13 Velstrukturerte XML-dokumenter Et XML-dokument er sammensatt av elementer, avgrenset med markeringer ( tags ) Et XML-dokument skal ha ett eneste rotelement Elementer må være perfekt nøstet (danne en hierarkisk struktur) <m1><m2></m2></m1>, ikke <m1><m2></m1></m2> Sjekk av struktur kan gjøres med http://www.w3schools.com/dom/dom_validate.asp http://www.xml.com/pub/a/tools/ruwf/check.html Er XML-dokumentet på lysark 13 velstrukturert? INF1040-XML- 14 Elementene danner en hierarkisk struktur emne emne- emne- emne- kode navn beskrivelse INF1040 Digital representasjon I INF1040 skal vi blant annet lære om hvordan vi i en datamaskin representerer temaliste Grunnlaget for Document Object Model DOM og hva dette innebærer for stikkord* tema* lagring overføring fremvisning Oppbyggingen av et element Hvert element starter med en startmarkering og avsluttes med en tilsvarende sluttmarkering: <elementnavn>elementinnhold</elementnavn> Eksempel fra XHTML: <h1>inf1040 Digital representasjon</h1> Hvis elementet er tomt kan start- og sluttmarkeringen slås sammen: <elementnavn /> <br /> Startmarkeringen kan inneholde ett eller flere attributter med tilhørende verdier: <elementnavn attributt= verdi >elementinnhold</elementnavn> <a href= http://www.uio.no/ >UiO</a> <img src= uiologo.gif g alt= UiO-logo width= 75 height= 75 /> tekst tall lyd bilder INF1040-XML- 15 INF1040-XML- 16
Regler for elementnavn i XML Kan inneholde bokstaver, tall og andre tegn. Ikke-engelske bokstaver er tillatt, men det er ikke sikkert all programvare forstår dem. Kan ikke inneholde mellomrom (space). Kan ikke starte te med tall, skilletegn eller e xml, XML, Xml Kan starte med _ (underscore) Unngå tegnene. : De kan lett misforstås Spesielle tegn Tegnene < > & har en spesiell betydning i XML de brukes som escape -tegn Hvis slike tegn inngår i teksten, må de kodes på en spesiell måte: &tegnnavn; eller &#kodepunkt; altså: < < < > > > & & & # betyr at tegnet er angitt som et kodepunkt (dvs. numerisk) x betyr at kodepunktet er angitt i heksadesimal INF1040-XML- 17 INF1040-XML- 18 Gyldige XML-dokumenter I utgangspunktet kan markeringer, attributter og verdier velges fritt. Strengere regler kan pålegges ved hjelp av en Dokumenttypedefinisjon Document Type Definition (DTD) eller et XML-Schema Disse reglene kan blant annet spesifisere lovlige markeringer Et XML-dokument kan da være gyldig i henholdt til en gitt DTD eller et gitt XML Schema Sjekk av gyldighet (validering) kan gjøres for eksempel med http://www.stg.brown.edu/service/xmlvalid/ Det finnes en mengde standardiserte DTDer for ulike formål elektronisk handel, geografiske informasjonssystemer, elektroniske valg, undervisning, varslingssystemer, INF1040-XML- 19 Eksempel på en Dokumenttypedefinisjon - DTD Dokumenttypedefinisjon på filen emne.dtd: <!ELEMENT emne (emnekode, emnenavn, emnebeskrivelse)> <!ELEMENT emnekode (#PCDATA)> <!ELEMENT emnenavn (#PCDATA)> <!ELEMENT emnebeskrivelse (#PCDATA temaliste stikkord)*> t tikk <!ELEMENT temaliste (tema*)> <!ELEMENT tema (#PCDATA)> <!ELEMENT stikkord (#PCDATA)> På filen emne.xml <?xml version = "1.0" encoding= utf-8"?> <!DOCTYPE emne SYSTEM "emne.dtd"> <emne> <emnekode>inf1040</emnekode> Dokumenttypedeklarasjon #PCDATA = Parced Character Data, dvs vanlig tekst INF1040-XML- 20
Eksempel på et XML skjema XML-skjema for emnebeskrivelser på filen emne.xsd: <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:complextype> <xs:sequence> <xs:element name = "emnekode" type="xs:string"/> <xs:element name = "emnenavn" type="xs:string"/> <xs:element name = "emnebeskrivelse"> <xs:complextype mixed= true > <xs:element name = "tema" type="xs:string" minoccurs= 2 maxoccurs= 10 /> <xs:element name = "stikkord" type="xs:string" ti " minoccurs= 0 maxoccurs= unbounded /> </xs:complextype> </xs:sequence> </xs:complextype> </xs:schema> På filen emne.xml: Henvisning til et XML-skjema <?xml version = "1.0" encoding="utf-8"?> xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" instance <emne xsi:schemalocation="emne.xsd"> <emnekode>inf1040</emnekode> </emne> INF1040-XML- 21 INF1040-XML- 22 Nye standarder for lagring av formatert tekst, regneark, presentasjoner etc. ISO/IEC 26300: Open Document Format for Office Applications (OpenDocument) ISO/IEC 29500: Office Open XML (OO XML) Hvorfor to standarder? Felles trekk Bygger på XML Ikke omtalt i læreboka! Skiller selve teksten fra bekrivelsen av hvordan den skal se ut:» Hvilken stil har denne teksten?» Hvordan skal denne stilen se ut? Et tekstdokument består av en rekke filer som pakkes i en zip-fil Dokumentpakken i OpenDocument filnavn.odt meta-inf/manifest.xml meta.xml styles.xml content.xml settings.xml Liste over de øvrige filene i pakken Metadata: Forfatter, datoer, nøkkelord, Beskrivelse av navngitte stiler Selve teksten, med XML-markeringer For eksempel på innholdet i content.xml, se neste lysark INF1040-XML- 23 INF1040-XML- 24
Eksempel på content.xml <office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0 " > <office:font-face-decls> <style:font-face style:name="calibri" svg:font-family="calibri" style:font-family- y generic="swiss" style:font-pitch="variable" svg:panose-1="2 15 5 2 2 2 4 3 2 4"/> <style:font-face style:name="times New Roman" svg:font-family="times New Roman" style:font-family-generic="roman" style:font-pitch="variable" svg:panose- 1="2 2 6 3 5 4 5 2 3 4"/> <style:font-face f style:name="cambria" svg:font-family="cambria" f style:font-family- f generic="roman" style:font-pitch="variable" svg:panose-1="2 4 5 3 5 4 6 3 2 4"/> </office:font-face-decls> <office:automatic-styles> <style:style t l style:name="p1" style:parent-style-name="normal" t t l l" style:master-page- t name="mp0" style:family="paragraph"> <style:paragraph-properties fo:break-before="page"/> </style:style> </office:automatic-styles> <office:body> <office:text text:use-soft-page-breaks="true"> <text:p text:style-name="p1">inf1040 Digital representasjon</text:p> </office:text> </office:body> </office:document-content> INF1040-XML- 25 XHTML XML for nettsider Kapittel 4 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd w3 dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>inf1040</title> </head> <body> <h1>inf1040 Digital representasjon</h1> <p> I INF1040 skal vi blant annet lære om hvordan vi en datamaskin representerer </p> <ul> </ul> </body> </html> <li>tekst</li> <li>tall</li> <li>lyd</li> <li>bilder</li> INF1040-XML- 26 Strukturen i XHTML-eksemplet html Anvendelser av XML Som fundament for et lingua franca mellom systemer Endelig en standard! head body Emneorienterte markeringer må defineres (begge systemer må ha samme oppfatning av <eventyr>) Er tekstiig format alltid hensiktsmessig? title h1 p ul Stor datamessig overhead Men: Store muligheter for komprimering INF1040 INF1040 Digital representasjon I INF1040 skal vi blant annet lære om hvordan vi i en datamaskin representerer li* Som fundament for åpne standarder for lagring av dokumenter (bl.a. tekster, regneark, presentasjonsgrafikk, tabeller) tall tekst lyd bilder INF1040-XML- 27 INF1040-XML- 28
Oppsummering XML er blitt en helt sentral standard for markering av tekst Regler for markeringene kan spesifiseres i en Document Type Definition (DTD) eller et XML-skjema Det er utviklet en lang rekke DTDer og XML-skjema for ulike anvendelser En slik anvendelse er XHTML for oppsett av nettsider Document Object Model DOM: Oppdelingen av teksten i elementer (objekter) gjør det mulig å manipulere teksten på en enkel måte XML ligger i bunnen av moderne standarder for representasjon av dokumenter, som eksempelvis formaterte tekster, regneark, presentasjoner og tabeller. INF1040-XML- 29