Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

XML EXtensible Markup Language

Liknende presentasjoner


Presentasjon om: "XML EXtensible Markup Language"— Utskrift av presentasjonen:

1 XML EXtensible Markup Language
DTD

2 Hva er XML XML står for EXtensible Markup Language
XML er et tag språk lik HTML XML beskriver data XML definerer egne tagger i XML XML bruker Document Type Definition (DTD) eller et XML Schema for å beskrive data XML med DTD eller XML Schema er designet for å være selv - deskriptiv.

3 Hva er XML Et rammeverk for å definere nye tag - språk.
Ingen ferdig definerte tagger Hvert xml språk er en applikasjon. MathML, VoiceXML,CML(Chemical Markup L..) XHTML... Skiller data fra hvordan data vises. Benytter XSL for å rendre inhold ut til nettleseren.

4 XML vs. HTML XML beskriver data og fokuserer på hva data er.
HTML viser data og fokuserer på. hvordan data ser ut. HTML viser informasjonen. XML beskriver informasjonen.

5 XML vs. HTML <h1>Rabarbra grøt</h1>
<h3>Ons, 14 Jun 2002</h3> Rabarbragrøt med bananer <table> <tr><td> 2 1/2 kopp <td> Opphakket rabarbra <tr><td> 2 sp <td> sukker <tr><td> 2 <td> modne bananer <tr><td> 1/4 teskje <td> kanel <tr><td> krm <td> muskat </table> Bland alt sammen og bruk som grøt eller pai. Andre desserter: <a href="#PlommeKompott">PlommeKompott</a>

6 XML vs. HTML <oppskrift id="117" kategori="dessert">
<tittel>Rabarbra grøt</tittel> <dato>Ons, 14 Jun 95</dato> <beskrivelse> Rabarbragrøt med bananer </beskrivelse> <ingredienser> <ingred><maal>2 1/2 kopp</maal> <type>opphakket rabarbra</type></ ingred > <ingred ><maal>2 sp</maal><type>sukker</type></ ingred > < ingred >< maal >2</maal><type>modne bananer</type> </ ingred > <ingred >< maal >1/4 ts</ maal >< type >kanel</ type ></ ingred > < ingred >< maal >1 krm</ maal >< type >muskat</ type ></ ingred > </ ingredienser > <hvordan> bland alt sammen og kok grøt eller lag pai av blandingen </hvordan> <andre url ="#plommeKompott">PlommeKompott</andre> </oppskrift>

7 XML vs. HTML Med XML kan vi lage vårt eget oppskriftsspråk basert på XML. Eksempelet viser: at taggene er valgt for deres logiske struktur. at dette er kun en av mange strukturer av av en oppskrift. at vi trenger å definere hvilke XML dokumenter vi regner som oppskrifter. at vi trenger et stylesheet for å definere hvordan nettleseren skal vise denne informasjonen

8 En konseptuell modell Et XML dokument kan forstås som et ordnet hierarkisk tre. Element noder, som er merket med: Navn (ofte kalt element type) Et sett med attributter som består av navn - verdi par. Bladnoder, som innehoder den aktuelle data (tekst strenger).

9 En konseptuell modell IE oppskrift tittel forfatter dato ingredienser
id kategori dessert tittel forfatter dato ingredienser Rabarbra grøt epost ingred maal type IE

10 XML syntaks 1. linje viser xml deklarasjonen med versjon og tegn standard. 1.<?xml version="1.0" encoding="ISO "?> 2.<notat> 3.<til>Tove</til> 4.<fra>Janni</fra> 5.<tittel>Huskelapp</tittel> 6.<melding>Ikke glem avtalen til helgen</melding> 7.</notat> 2. linje viser rot elementet Linje 3 – 6 viser fire barn av rot elementet 7. Linje viser slutt taggen til rot elementet.

11 XML syntaks Noen regler som gjelder for XML dokumenter.
Alle XML elementer må lukkes: </notat> Skiller mellom små og store bokstaver: <NOTAT> != <notat> Må være nestet riktig... Må ha et rotelement par. Alle andre elementer må være innenfor disse. Alle attributt verdier må stå inne i anførselstegn. <!– Kommentarer i XML > XML tar vare på mellomrom: <melding> Hei hvordan går det</melding>

12 Elementer Elementer er utvidbare:
XML dokumenter kan bli utvidet til å inneholde mer informasjon. Ved å legge til en element tagg: 1.<?xml version="1.0" encoding="ISO "?> 2.<notat> 3.<dato> </dato> 4.<til>Tove</til> 5.<fra>Janni</fra> 6.<tittel>Huskelapp</tittel> 7.<melding>Ikke glem avtalen til helgen</melding> 8.</notat>

13 Elementer Elementer har relasjoner. Tre typer: Foreldre Barn Søsken

14 Elementer og relasjoner
<bok> <tittel>Mitt første XML dokument</tittel> <prod id="33-657" type=”papir"></prod> <kappittel>Intro til XML <para>Hva er HTML</para> <para>Hva er XML</para> </kappittel > < kappittel >XML Syntaks <para>Elementer må lukkes med /</para> <para>Elementer må være riktig nestet</para> </bok> bok er rot – element. tittel, prod, og kapittel er barn av bok. bok er foreldre til tittel, prod og kapittel. tittel, prod og kapittel er søsken fordi de har samme forelder.

15 Elementer og innhold Elementer har innhold. 4 typer:
Element innhold. Div innhold (mixed). Enkelt innhold (simpel). Tomt innhold (empty). Elementer kan også ha attributter.

16 Elementer og innhold I bok eksempelet ovenfor ser vi følgende:
bok har element innhold fordi den inneholder andre elementer. kapittel har div (mixed) innhold fordi den inneholder både tekst og andre elementer. para har enkelt innhold (tekstlig) fordi den inneholder bare tekst. prod har tomt innhold fordi den ikke bærer informasjon Prod elementet har attributter...

17 Attributter Attributter el ikke? Her gir kjonn attributtet
ekstra informasjon om person elementet. <person kjonn=”mann"> <fornavn>Anna</fornavn> <etternavn>Smith</etternavn> </person> <person> <kjonn>mann</kjonn> <fornavn>Anna</fornavn> <etternavn>Smith</etternavn> </person> Her er kjonn lagt inn som et barn av person. Begge eksempler gir samme type informasjon

18 Attributter Hvorfor unngå bruk av attrib.
Attributter kan ikke beskrive struktur Attributter er vanskelig å manipulere med programkode. Attributter er tyngre å validere via DTD. Bruk elementer til å beskrive data Bruk attributter for å gi informasjon som ikke er relevant til dataene. For ekesmpel:

19 Attributter Et unntak... Bruk av en ”id” referanse, til å referere de ulike notatene. <?xml version="1.0" encoding="ISO "?> <notat id=”n001”> <dato> </dato> <til>Tove</til> <fra>Janni</fra> <tittel>Huskelapp</tittel> <melding>Ikke glem avtalen til helgen</melding> </notat> <notat id=”n003”> <dato> </dato> <til>Janni</til> <fra>Tove</fra> <tittel>Re: Huskelapp</tittel> <melding>Mottat!</melding>

20 XML deklarasjon Alle xml dokumenter må ha følgende linje:
<?xml version=”1.0” ?> Kan også angi character encoding <?xml version=”1.0” encoding=”UTF-8”?> Hjelper applikasjoner å dekode innholdet av dokumentet. Spesielt nyttig på flerplattform / flerspråklige miljøer.

21 Nettlesere Hvilke? I.E 5.0 og høyere har best støtte for XML
Har en grafisk framstilling av kildekoden ved lasting av en xml fil. Netscape 6 Tekstlig framstilling av innhold (dvs. tekst noder). Må velge å se på kildekoden. Netscape 7.01 Grafisk fremstilling Opera 7

22 URI, URN, URL( sidesprang )
Begrepene: URI - Uniform Resource Identifier URN - Uniform Resource Name URL - Uniform Resource Locator Internettet består av eller inneholder et (stort) sett med punkter med innhold. Filer av en eller annen sort. Punktene identifiserer vi ved hjelp av stringer som vi generelt kaller URI'er.

23 URI, URN, URL( sidesprang )
Videre identifiserer vi disse punktene ved å angi enten navn (URN) , eller nøyaktig adresse (URL) Med URN forutsettes det at det finnes en mekanisme som oversetter navn til adresse Dette er en fordel framfor URL Kan flytte eller duplisere ressursen uten at navnet må endres.

24 URI, URN, URL( sidesprang )

25 Namespaces Gir en måte å forhindre element - navn konflikter.
I et XML dokument kan vi definere et navnerom innenfor en start tagg. Navnerommet gjelder da for hele innholdet av det elementet. Hvert navnerom krever en URI (Uniform Resource Identifier) som identidiserer den. Hvilket som helst ord kan brukes, men vanligst er å bruke en URL( Uniform Resource Locator). For å definere et navnerom bruker man xmlns attributtet. <mittxmld xmlns=” .... </mittxmld>

26 Namespaces Foregående så vi eksempel på et standard navnerom.
En kan også opprette lokale identifikatorer for å plassere dem i utvalgte elementer med et prefix. <mittxmld mlns:eks=” <eks:eksempel eks:id=”1”> <dato> </dato> NB! Er ikke med i eks navnerommet <eks:tittel>Navnerom</eks:tittel> <eks:eksempel> En kan selvsagt definere både standard og et lokalt navnerom: <mittxmld xmlns=” xmlns:eks=” Nå vil <dato> være innenfor standard navnerom.

27 Namespaces Sett at begge disse dokumentene
<?xml version="1.0"?> <notat> <til>Tove</til> <fra>Janni</fra> <tittel>Huskelapp</tittel> <melding>Ikke glem avtalen til helgen</melding> </notat> Sett at begge disse dokumentene Skal behandles samtidig. Kan Oppstå en navnekonflikt. <?xml version="1.0"?> <notat> <arbeid>3ip802 prosjekt</arbeid> <dato> </dato> <gjoremaal>Ferdigstilling av database</gjoremaal> <innhold>Ble ferdig med databasen etter en del arbeid med ordrelinje problem...</innhold> </notat>

28 Validering Et gyldig XML dokument er i samsvar med en Document Type Definition eller et XMLSchema En DTD definerer de lovlige elementene til et XML dok. Følgende kommer en innføring i DTD og XMLSchema

29 DTD En DTD definerer dokumentstrukturen og en liste med lovlige elementer. En DTD kan defineres inline eller eksternt. Inline med følgende syntaks: <!DOCTYPE rot-element [element-deklarasjoner]>

30 DTD - eks IE <?xml version="1.0"?> <!DOCTYPE notat [
<!ELEMENT notat (til,fra,tittel,melding)> <!ELEMENT til (#PCDATA)> <!ELEMENT fra (#PCDATA)> <!ELEMENT tittel (#PCDATA)> <!ELEMENT melding (#PCDATA)> ]> <notat> <til>Tove</til> <fra>Janni</fra> <tittel>Huskelapp</tittel> <melding>Ikke glem avtalen til helgen</melding> </notat> Linje 2: definerer at dokumentet er av type notat. Linje 3: definerer at ”notat” Elementet har fire elementer (til,fra,tittel og melding). Linje 4: definerer ”til” Elementet til typen #PCDATA. Osv...

31 DTD Ekstern DOCTYPE deklarasjon:
<!DOCTYPE rot-element SYSTEM "filnavn"> <?xml version="1.0"?> <!DOCTYPE notat SYSTEM "notat.dtd"> <note> ... <!ELEMENT notat (til,fra,tittel,melding)> <!ELEMENT til (#PCDATA)> <!ELEMENT fra (#PCDATA)> <!ELEMENT tittel (#PCDATA)> <!ELEMENT melding (#PCDATA)>

32 DTD For å kunne bygge komplekse strukturer i våre DTD som reflekterer strukturen i XML dok. må vi bruke noen deklarasjons elementer: DOCTYPE: Deklarerer dokument entiteten som er rot elementet og startpunktet til XML dokumentet. Definerer også roten til DTD deklarasjonene ELEMENT: Deklarerer en element type innenfor DTD. ATTLIST: Deklarerer attributter av elementtyper. Spesifiserer elementtypen, typen av attributter og evt. en standard verdi. IE

33 DTD Sett fra et DTD’s synspunkt består et XML dokument av følgende byggestener: Elementer Tagger (< > </ >) Attributter Entiteter #PCDATA Parset tekst, tegn som <,>,&; osv er ikke tillatt og blir kodet om: &lt. #CDATA Rå tekst, tegn som <>& blir tatt med.

34 DTD - Elementer Element deklarasjon med følgende synt.:
<!ELEMENT element-navn katagori> eller <!ELEMENT element-navn (element-innhold)> Elementer deklarert som ”EMPTY” <!ELEMENT element-navn EMPTY> <!ELEMENT br EMPTY> Elementer deklarert som ”ANY” <!ELEMENT element-navn ANY> <!ELEMENT notat ANY>

35 DTD - Elementer Elementer med bare tekstlig data (character data):
<!ELEMENT element-navn (#PCDATA)> eller <!ELEMENT til (#PCDATA)> Elementer med barn: <!ELEMENT element-navn (barn_element_navn,..)> <!ELEMENT notat (til,fra,tittel,melding)>

36 DTD - Elementer Vi kan angi ulike regler for hvordan elementer forekommer. Kun en forekomst <!ELEMENT element-navn (barn-navn)> Minst en forekomst <!ELEMENT element-navn (barn-navn+)> Null eller flere forekomster <!ELEMENT element-navn (barn-navn*)> Null eller en forekomst <!ELEMENT element-navn (barn-navn?)>

37 DTD - Elementer Forts. Enten/ eller
<!ELEMENT notat (til,fra,tittel,(melding|body))> Må inneholde til,fra,tittel og enten melding eller body elementer.

38 DTD - Attributter Attributter blir deklarert som følgende:
Eksempelet viser at attributtet ”itemtype” kan ha tre mulig verdier og at ”book” er standard type. <!ATTLIST element-navn attributt-navn attributt -type standard-verdi> Eks: <!ATTLIST ITEM ITEMTYPE (BOOK | ARTICLE | PERIODICAL) "BOOK">

39 DTD - Attributter Her kommer noen av de mulige verdiene til attributt type: CDATA verdien består av rå tekst. (v1,v2,...) verdien er en av en liste. ID verdien er en unik id ...

40 DTD - Attributter Standard verdier: 4 ulike verdier:
Verdi , standard verdien til attributtet #REQUIRED Attributtet må ha en verdi <!ATTLIST person nummer CDATA #REQUIRED> #IMPLIED Attributtet trenger ikke ha en initiell verdi #FIXED Atributt verdien er satt og kan ikke forandres i XML dokumentet. <!ATTLIST sender selskap CDATA #FIXED "Microsoft">

41 DTD - Entiteter Bruker entitets referanser for å legge til en tekstlig verdi fra en entitet eller et tegn inn i et dokument. Dette kjenner vi til i fra HTML: < , > Dette kan vi også gjøre i XML Syntaks intern: <!ENTITY entitet-navn ”entitet-verdi"> <!ENTITY copyright "Copyright Eirik Solend."> <forfatter>&copoyright</forfatter> Syntaks ekstern: <!ENTITY entitet-navn SYSTEM "URI/URL"> <!ENTITY copyright SYSTEM " Se eks...

42 XMLSchema Hvorfor ikke bare bruke DTD?
Fordi XMLSchema er enklere Spesifiserer element data typer Forenkler design Bedre støtte for navnerom Tillater gjenbruk av elementer via arv. De er utvidbare. DTD syntaks forholder seg til SGML syntaks XMLSchema er skrives i XML DTD er mer kompleks, menes det altså.

43 XMLSchema Hva er så et XMLSchema:
definerer elementer som kan forekomme i et dokument definerer attributter som kan forekomme i et dokument definerer hvilke elementer som er barn definerer rekkefølgen på elementene som er barn definerer antall barn definerer hvorvidt et element er tomt eller kan inneholde tekst. definerer data typer for elementer og attributter definerer standard og faste verdier for elementer and attributter.

44 XMLSchema XMLSchema er en W3C anbefaling og foreligger nå som en stabil spesifikasjon. XMLSchema var først et Microsoft forslag.

45 XMLSchema Innledende eksempler: Vi har sett DTD’en til dette xml dok.
1.<?xml version="1.0" encoding="ISO "?> 2.<notat> 3.<til>Tove</til> 4.<fra>Janni</fra> 5.<tittel>Huskelapp</tittel> 6.<melding>Ikke glem avtalen til helgen</melding> 7.</notat> Vi har sett DTD’en til dette xml dok. Her kommer XMLSchema til samme dokument:

46 XMLSchema <?xml version="1.0"?>
<xs:schema xmlns:xs= xmlns=" targetNamespace=" <xs:element name="notat"> <xs:complexType> <xs:sequence> <xs:element name="til" type="xs:string"/> <xs:element name=”fra" type="xs:string"/> <xs:element name=”tittel" type="xs:string"/> <xs:element name=”melding" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

47 XMLSchema I eksempelet ovenfor kan en se at notat er av kompleks type, fordi den inneholder flere elementer. De andre elementene er av simple typer fordi de ikke inneholder andre elementer. Referanse til et XMLSchema: <?xml version="1.0" encoding="ISO "?> <notat xmlns:xsi=" xsi:schemaLocation="notat.xsd"> <til>Tove</til> <fra>Janni</fra> <tittel>Huskelapp</tittel> <melding>Ikke glem avtalen til helgen</melding> </notat>

48 XMLSchema <schema> elementet er rot elementet i et XMLSchema.
En schema deklarasjon ser ofte slik ut: <xs:schema xmlns:xs= targetNamespace = xmlns=" Følgende linje: xs:schema xmlns:xs= Indikerer at elementer og datatyper (schema, element, complexType, sequence, string, boolean, etc.) kommer fra navnerom, og at elementene og datatypene som kommer fra navnerommet skal ha :xs som prefiks. (denne url har til hensikt å beskrive navnerommet.)

49 XMLSchema xmlns=http://www.osir.hihm.no/sfi/kurs/3ip80
Standard navnerom targetNamespace= Indikerer at et xml dokument hvor elementene er deklarert til å tilhøre navnerommet til schemaet, skal valideres mot XMLScema.

50 XMLSchema Referanse til et XMLSchema: Første og andre linje:
<notat xmlns:xsi=" xsi:schemaLocation="notat.xsd"> Første og andre linje: xmlns:xsi= xsi:schemaLocation="notat.xsd” For å assosiere Schema med xml dokumentet. Bruker schemaLocation for å spesifisere schema fila.


Laste ned ppt "XML EXtensible Markup Language"

Liknende presentasjoner


Annonser fra Google