Markeringsspråk og XML Læringsmål XML Forstå prinsippene bak XML og XHTML. Forstå hva XML kan brukes til og hvordan. <?xml version = "1.0" encoding= utf-8"?> 8?> <eventyr> Det var en gang Forstå hva XML er og hva det ikke er. Kunne lage XML-dokumenter. Kunne bruke dokumenttypedefinisjoner (DTDer) og XML skjemaer. og snipp, snapp, snute, så var det eventyret ute. </eventyr> Kapittel 3 3. september 2008 INF1040-XML-1 INF1040-XML-2 SGML-familien Markering av tekst SGML Standard General Markup Language HTML Hypertext Markup Language XHTML Extensible Hypertext Markup Language ISO 8879:1985 XML Extensible Markup Language Other XML-based Languages 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 INF1040 skal vi blant annet lære Generalisert markering (eksempel fra XHTML) <h1>innhold INF1040</h1> <p>i INF1040 skal vi blant annet lære</p> Generisk markering (eksempel fra XML) <kapittel> <kapittelnavn>innhold INF1040</kapittelnavn> <avsnitt>i INF1040 skal vi blant annet lære </avsnitt> </kapittel> INF1040-XML-3 INF1040-XML-4
Et meget enkelt XML-eksempel Fremvisning av XML-dokumenter Alle XML-filer begynner slik! Hvilken XML-versjon som er benyttet Tegnsettet brukt i XML-filen Startmarkering (starttag) <?xml version = "1.0" encoding= utf-8"?> utf8?> <eventyr> XSLT-fil CSS-fil Det var en gang og snipp, snapp, snute, så var det eventyret ute. XML-fil XHTML-fil XSLTprosessor Nett- leser Sluttmarkering (endtag) </eventyr> Element andre formater INF1040-XML-5 INF1040-XML-6 Et litt mer avansert XML-eksempel <?xml version = "1.0" encoding="iso-8859-1"?> <emne> <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> <tema>bilder</tema> </temaliste> og hva dette innebærer for <stikkord>lagring</stikkord> g <stikkord>overføring</stikkord> <stikkord>fremvisning</stikkord> </emnebeskrivelse> INF1040-XML-7 Elementene danner en hierarkisk struktur emne kode navn beskrivelse INF1040 - Digital representasjon I INF1040 skal vi blant annet lære om hvordan vi i en datamaskin representerer temaliste 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 og hva dette innebærer for stikkord* tema* lagring overføring fremvisning tekst tall lyd bilder INF1040-XML-8
XHTML en spesialisering av XML Strukturen i XHTML-eksempelet <?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"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>inf1040</title> </head> head html body <body> <h1>inf1040 Digital representasjon</h1> <p> I INF1040 skal vi blant annet lære om hvordan vi en datamaskin representerer </p> title h1 p ul <ul> </ul> </body> </html> <li>tekst</li> <li>tall</li> <li>lyd</li> <li>bilder</li> INF1040 INF1040 Digital representasjon I INF1040 skal vi blant annet lære om hvordan vi i en datamaskin representerer tall li* tekst lyd bilder INF1040-XML-9 INF1040-XML-10 Oppbyggingen av et element Regler for elementnavn i XML Hvert element starter med en startmarkering og avsluttes med en tilsvarende sluttmarkering: <elementnavn>elementinnhold</elementnavn> Eksempel fra XHTML: <h1>inf1040 Digital it 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 alt= UiO-logo width= 75 height= 75 /> Kan inneholde bokstaver, tall og andre tegn. Ikke-engelske k bokstaver er tillatt, tt men det er ikke sikkert all programvare forstår dem. Kan ikke inneholde mellomrom (space). Kan ikke starte med tall, skilletegn eller xml, XML, Xml Kan starte med _ (underscore) Unngå tegnene.: De kan lett misforstås INF1040-XML-11 INF1040-XML-12
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; Hva kan XML brukes til? XML brukes i dag hovedsaklig til overføringsformat f mellom systemer lagringsformat for semistrukturerte dater altså: < < < > > > & & & x betyr at kodepunktet er angitt i heksadesimal! Kategorisering g av XML-dokumenter dokumentsentrerte XML-dokumenter datasentrerte t t XML-dokumenter INF1040-XML-13 INF1040-XML-14 Eksempel dokumenttypedefinisjon (DTD) Bruk av DTD Dokumenttypedefinisjon for emnebeskrivelser (emne.dtd): På filen emne.xml: <!ELEMENT emne (emnekode, emnenavn, emnebeskrivelse)> <!ELEMENT emnekode (#PCDATA)> <!ELEMENT emnenavn (#PCDATA)> <!ELEMENT emnebeskrivelse (#PCDATA temaliste stikkord)*> <!ELEMENT temaliste (tema*)> <!ELEMENT tema (#PCDATA)> <!ELEMENT stikkord (#PCDATA)> <?xml version = "1.0" encoding="utf-8"?> <!DOCTYPE emne SYSTEM "emne.dtd"> <emne> c DTD-en til XHTML strict t finnes på http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd INF1040-XML-15 INF1040-XML-16
Eksempel XML skjema XML-skjema for emnebeskrivelser (emne.xsd): <?xml version="1 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" minoccurs= 0 maxoccurs= unbounded /> </xs:complextype> </xs:sequence> </xs:complextype> </xs:schema> På filen emne.xml: Bruk av XML-skjema <?xml version = "1.0" encoding="utf-8"?> xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" <emne xsi:schemalocation="emne.xsd"> INF1040-XML-17 INF1040-XML-18 Planen videre I dag har vi gjort oss ferdige med tegn og tekst. t sett på XML. Neste onsdag ser vi spesielt på overføring av data. Plenumsgruppene går nå over til å først og fremst være gjennomgang av eksempler og oppgaver. INF1040-XML-19