XML 1
XML 1. Hvad er XML. XML er et sprog. Navnet er et akronym for eXtensible Markup Language. Et sprog til markering af indhold med mulighed for at udvide markeringerne.
XML 1
E N D
Presentation Transcript
Hvad er XML • XML er et sprog. Navnet er et akronym for eXtensible Markup Language. • Et sprog til markering af indhold med mulighed for at udvide markeringerne. • Både XML og HTML er udviklet på baggrund af SGML (Standard Generalized Markup Language) XML og HTML er begge veldefinerede delmængder af SGML. • XML bygger på velkendt teknologi og er velfunderet.
HTML og XML • HTML : dokumentoverførsel og præsentation på Internettet • XML : udveksling og præsentation af data og struktureret information af enhver art. • Præcis som HTML anvendes i mange andre sammenhænge end Internettet har XML også fundet anvendelse utallige steder.
HTML og XML • XML blev en international standard i januar 1998. • XML kaldes af nogle det ny "ASCII" format og ses som supplement til eller erstatning af HTML. • XML er læsbart for både menneske og maskine. Det er mere fyldigt end komma-separerede filer, men bygger til gengæld på et veldefineret regelsæt.
HTML og XML • Sproget gør det muligt at definere data på en strukturet • XML tags er ikke predefineret som HTML. • XML lader dig kreere dine egne unike tags som er meningsfulde for dine data, derfor brugen af ordet "extensible.“ • Et XML dokument gør ikke noget selv. Det er bare ren information placeret i tags. • Der er behov for et stykke software til at sende, modtage eller vise det. • XML anbefales af the World Wide Web Consortium (W3C).
XML til udveksling af data • Ved at anvende XML, kan data udveksles mellem inkompatible systemer. • En af de største fordele for udviklere har været at udveksle data mellem forskellige systemer over Internettet. • Ved at konvertere dataene til XML, kan udviklere reducere denne kompleksitet og danne data som kan forstås af forskellige typer af applikationer.
XML is a meta-language. • A meta-language is a language that's used to define other languages. • You can use XML, for instance, to define a language like WML. • XML is also used in SOAP and WSDL. • XML er blevet populær at bruge med web services.
XML eksempel Den første linie er processing instruktion som indikerer det er et XML dokument samt XML versionen. • <?xml version="1.0" ?><bogliste> <bog> <titel id="1">XPath Tutorial</titel> <forfatter>Maman</forfatter> <aar>2007</aar> <pris>00.99</pris> </bog> <bog> <titel id="2">AJAX Tutorial</titel> <forfatter>Charles</forfatter> <aar>2007</aar> <pris>03.45</pris> </bog></bogliste> Et XML dokument skal have et rod element. Her <bogliste> <book> er et tag og har 4 child elements – titel, forfatter, aar og pris. <titel> tag har en attribut kaldet "id." Attributter er navn-værdi par.
XML tags og regler • Tag navne må ikke: • indeholde blank tegn • starte med et nummer eller punktum tegn • starte med bogstaverne "xml" , hverken med stort eller med småt. • Tag navne kan indeholde bogstaver, numre, og andre tegn.
Well-formed XML • Et XML dokument siges at være well-formed hvis det følger reglerne i XML specificationen. • Eksempler på regler: • Alle XML elementer skal have et lukke tag. Hvis et element ikke har nogen data man kan bruge et tomt tag. For eksempel, • <data> : ikke well-formed • <data>data 1</data> : well-formed • <data/> : well-formed • <data></data> : well-formed
Well-formed XML • Matching Start og End tag: • <b><i>dette er bold og italic</i></b> : well-formed • <b><i>dette er bold og italic</b></i> : ikke well-formed • Sikre at et rod element lukker hele dokumentets body. Dette rod element gør traversering i XML documentets træstruktur lettere. • I XML attribut værdier skal altid være quotet. Brug dobbel quote tegn hvis værdien indeholder enkel quote tegn og vice versa. • <forfatter navn='Frank "Riddler" Gorshin'> • <forfatter navn="Frank 'Riddler' Gorshin"> • Tag og attribut navne er case-sensitive. Så, <fornavn>, <Fornavn> og <ForNavn> er forskellige tags
Document Type DeclarationDTD • To be of practical use, an XML document needs to be valid. • XML specifikationen definerer et XML dokument som valid hvis det har en associeret DTD, altså hvis dokumentet stemmer overens med reglersæt defineret i DTD-en. • Et DTD er vokabular og syntaks regler for dit XML dokument. • Et DTD definerer data strukturen til et XML dokument • Orden hvilken tags skal komme i. • Hvilke tags og hvor mange tags der skal være specifieret. • Firmaer der udveksler XML dokumenter dan checke dem med det samme DTD.
DTD beskriver elementerne • Der bruges følgende syntaks: • <!ELEMENT navn-på-elementet beskrivelse-af-elementet> • Til Bog XML eksemplet vi kan definere <bog> elementet som : <!ELEMENT bog(titel, forfatter, aar, pris)> • Til titel DTD definitionen er: • <!ELEMENT titel (#PCDATA)> • #PCDATA og CDATA er pre-defineret element typer. • #PCDATA er også kaldet parse karakter data og er parset med XML parsere. Disse karakter data bliver analysert. • CDATA repræsenterer karakter data som ikke analyseres og er ikke parset med XML parsere.
DTD - Attribut definition • Attributer kan erklæres med flg. syntaks: • <!ATTLIST element-navn attribut-navn attribut-type default-værdi> • id attributen i XML eksemplet kan være erklæret som: • <!ATTLIST titel id CDATA "0"> • Her, Element-navn er titel, Attribut-navn er id, Attribut-type er CDATA (karakter data) og default værdien er "0."
DTD - multiplicity kan defineres Nogle elementer forekommer flere gange og nogen slet ikke + definerer en eller flere gange* definerer nul eller flere gange? definerer et valgfrit element, som er engang eller slet ikke.l • Eksempler på multiplicity : • <!ELEMENT Kunde (Navn, KortInfo+) > • En kunde kan have et Name sub-element og en eller flere KortInfo sub-elementer. • <!ELEMENT Navn (ForNavn, MellmNavn?, EfterNavn) > ForNavn og EfterNavn vil forekomme 1 gang og MellemNavn vil måske forekomme. • <!ELEMENT Vare (VareNr, Titel, Pris)* > Et Vare element kan have flere sub-elementer som inkluderer VareNr, Titel og Pris eller ingenl.
Komplet DTD deklaration til bog eksempel • <!DOCTYPE bogliste [ <!ELEMENT bogliste (bog)*> • <!ELEMENT bog (titel, forfatter, aar, pris)> <!ELEMENT titel (#PCDATA)> <!ATTLIST titel id CDATA "0"> <!ELEMENT forfatter (#PCDATA)> <!ELEMENT aar (#PCDATA)> <!ELEMENT pris (#PCDATA)>]> • DTD kan være intern eller extern • Internal DTD means the definition, like the one above, would be specified after the XML processing instruction -- <?xml version="1.0" ?>. External DTD is a reference to an external definition like the one below. • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
DTD kan være intern eller externerklæret • Intern DTD betyder at definitionen, vil være specifiseret efter XML instruktionen • -- <?xml version="1.0" ?>. • Extern DTD er en reference til en extern definition. • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XML Schema alternativ til DTD • XML Schema er en XML-baseret alternativ til DTD. • Et XML Schema beskriver strukturen på et XML dokument. • XML Schema sprog kaldes også XML Schema Definition (XSD). • An XML Schema defines the following: • Elementer og attributer der kan forekomme I et dokument. • Child elementer. • Orden og antal af child elementer. • Data typer for elementer og attributer. • Default og konstante værdier for elementer og attributer. • schema element er det første element i en XML schema fil. • prefix xsd: bruges til XML schema navnerum/namespace: • <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> …</xsd:schema>
Hoved elementerne i et XML schema • Hoved elementerne i et XML schema dokument er: • element – erklærer et element. • attribute – erklærer en attribut. • complexType – definerer elementer som kan indeholde andre elementer og attributer. • simpleType – definerer elementer som ikke kan indeholde andre elementer eller attributer. Disse elementer er af basis typer.
Beskrivelse af dokumentet • xsd:annotation og xsd:documentation tags bruges til beskrivelse af dokumentet. Her et eksempel: • <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation> <xsd:documentation xml:lang="en"> Bogliste skema for bog.xml </xsd:documentation> </xsd:annotation></xsd:schema>
Bogliste er en complexType • I XML eksemplet er element bogliste en complexType fordi det indeholder bog sub-elementer. • <xsd:element name="bogliste" type="boglisteinfo"/> • <xsd:complexType name="boglisteinfo"> <xsd:sequence> <xsd:element name="bog" type="boginfo"/> </xsd:sequence></xsd:complexType>
Bog element er et complexType element • <xsd:compleType name="boginfo"> <xsd:sequence> <xsd:element name="titel" type="titleinfo"> <xsd:element name=“forfatter" type="xsd:string"/> <xsd:element name=“aar" type=" xsd:string"/> <xsd:element name="pris" type=" xsd:string"/> </xsd:sequence></xsd:complexType>
Titel er af complexType • Sub-elementerne forfatter, aar og pris er af type xsd:string. • Sub-element titel er af complexType fordi den har en attribut kaldet id. • Definere en attribut : • <xsd:attribute name="id" type="xsd:string" use="required"/>
XML parser • Til at manipulere et XML dokument, skal der bruges en XML parser. • The parser henter dokumentet ind i en computer's memory og kan blive manipuleret ved brug af DOM. • DOM behandler XML dokumentet som et træ. • XML is basically about defining data. XML is also used for storing data and sharing data between applications. • Med XML kan vi definere documenter som kan udveksles mellem forskellige applicationer. • For at gøre disse dokumenter læsbare for mennesker, vi må præsentere dem. • XML data kan præsenteres ved brug af Cascading Style Sheets. • Men XSL er den foretrukne løsning til at konvertere XML dokumenter til HTML. • Det kan blive gjort på client side men den bedste løsning er at bruge XSL på server side og sende til clientens browser.