390 likes | 571 Views
Uvod v XML. ˝ For every complex problem there is a solution that is simple, neat and wrong . ” H. L. Mencken. <? xml version "1.0" ?> < CITAT > < TEKST >For every complex problem there is a solution that is simple, neat and wrong . </ TEKST > < AVTOR H . L. Mencken </ AVTOR >
E N D
Uvod v XML - 1 -
˝For every complex problem there is a solution that is simple, neat and wrong.” H. L. Mencken <?xml version "1.0" ?> <CITAT> <TEKST>For every complex problem there is a solution that is simple, neat and wrong. </TEKST> <AVTOR H. L. Mencken</AVTOR> </CITAT> - 2 -
Kaj je XML? • Razširljivi označevalni jezik (eXtensibleMarkupLanguage) • Podoben jeziku HTML • Ni namenjen prikazu ampak prenosupodatkov • Značke (tags) niso predpisane vnaprej • Je samopojasnjujoč • Priporočilo organizacije W3C (http://www.w3.org/) - 3 -
Dejavniki uspeha XML • Vsesplošno sprejet standard • Uporablja se za izmenjavo podatkov • Zagotavlja mehanizem interoperabilnosti • Tekstovni format, ki ga je moč prebrati povsod • Cena dodatnega procesiranja je zanemarljiva - 4 -
Ključne prednosti XML dokumentov • Aplikacijska neodvisnost dokumentov in podatkov • Podatki so razumljivi vsem in ne samo aplikacijam, ki so jih zapisale; • Iskanje po podatkih je relativno enostavno oziroma ekvivalentno iskanju po običajnih spletnih straneh; • Standardizirana sintaksa meta-podatkov (pomena podatkov) • Meta-podatki so podatki o podatkih; • Gre za podoben princip kot je kazalo v knjigi; - 5 -
Ključne prednosti XML dokumentov • Standardizirana struktura • Omogoča zapis semantičnih podatkov za dokumente in podatkovna polja • Zapis hierarhične strukture v obliki drevesa; • Drevesna struktura omogoča rekurzivno dekompozicijo konceptov na sestavne dele; • Uveljavljena tehnologija • XML je podmnožica standarda SGML (StandardizedGeneralizedMarkupLanguage), ki je bil definiran že leta 1969 - 6 -
Kaj je XML? • Nabor sintaktičnih pravil, ki omogočajo izdelavo semantično bogatih označevalnih jezikov za različne domene • Jezik za ustvarjanje jezikov, ki opisujejo podatke • Nov jezik ustvarimo oz. definiramo s pomočjo pravil XML • Ključno načelo:označevanje je ločeno od vsebine! Označevalni jeziki dokumentom dodajo semantične podatke o surovi vsebini. Z označevalnim jezikom opredelimo tiste tipe podatkov, ki jih smatramo za pravilne. - 7 -
Ravni skladnosti XML dokumentov • Dobro definiran (wellformed) dokument je dokument, ki zadošča vsem WC3 sintaktičnim pravilom za XML • Pravila za poimenovanje, gnezdenje, označevanje atributov… • Dobra definiranost je za XML dokumente obvezna • Formalen (valid) dokument je dokument, ki je skladen s shemo • Formalnost je za XML dokument opcijska; - 8 -
XML shema • Shema je ločen dokument, ki definira elemente, atribute in strukturo XML dokumenta • Shemo določimo tako, da • definiramo slovar in • določimo postavitev ter število elementov in atributov v označevalnem jeziku • Shema definira točno določen razred dokumentov - 9 -
XML Shema - Primer Author.xsd <?xmlversion="1.0" encoding="UTF-8"?> <xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:elementname="Author"> <xs:complexType> <xs:sequence> <xs:elementname="FirstName" type="xs:string" /> <xs:elementname="LastName" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Shema Author.XSDdefinira strukturo elementa Author MarkTwain.xml <?xmlversion="1.0"?> <Authorxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Author.xsd"> <FirstName>Mark</FirstName> <LastName>Twain</LastName> </Author> MarkTwain.XML je instanca oz. primerek zgoraj definirane sheme - 10 -
Kaj je XML? • XML je jezik, ki se uporablja za elektronsko predstavitev strukturiranih dokumentov in podatkov Primer: <Article> <Headline>Direct Marketer Offended by Term 'Junk Mail' </Headline> <authors> <author> Joe Garden</author> <author> Tim Harrod</author> </authors> <abstract>Dan Spengler, CEO of the direct-mail-marketing firm Mailbox of Savings, took umbrage Monday at the use of the term "junk mail." </abstract> <bodytype="url"> http://www.theonion.com/archive/3-11-01.html </body> </Article> • Vrstni red je pomemben, presledki niso! - 11 -
Primer… <?xml version="1.0" ?> <rooms> <room name="Red"> <capacity>10</capacity> <equipmentList> <equipment>Projector</equipment> </equipmentList> </room> <room name="Green"> <capacity>5</capacity> <equipmentList/> <features> <feature>No Roof</feature> </features> </room> </rooms> - 12 -
Kaj je XML? • Prilagodljiv format s katerim je mogoče opisati poljuben dokument • Samopojasnjujočformat • XML dokument vsebuje vse podatke o vrednostih polj, ki so z njim povezane • XML dokumente le opiše • XML ne definira pomena • XML ne opredeli načina prikaza - 13 -
Razlike med HTML in XML - 14 -
Prednosti jezika XML pred jezikom HTML • HTML stran vsebuje podatke, ki so kodirani v obliki, ki jo ljudje enostavno interpretirajo • Programska obdelava HTML strani je zahtevnaker manjkastrukturapodatkov • Novica v html formatu: • Kaj je naslovna vrstica zgodbe? • Kdo je avtor zgodbe? • V katero kategorijo je umeščena? • Kdaj je bila objavljena? • … - 15 -
Prednosti jezika XML pred jezikom HTML • Potrebujemo stran, ki ima eksplicitno definirano strukturo in omogoča enostavno obdelavo podatkov s programsko opremo <?xml version="1.0" ?> <novice> <novica naslov="Google ustavildigitalizacijostarihčasnikov"> <kategorija1>omrežja</kategorija1> <kategorija2>internet</kategorija2> <datum>20.5.2011</datum> <vir>Heise</vir> <avtor>Matej Huš</avtor> <besedilo>Google je končal digitalizacijo starih časnikov, ki predstavljajo odsev dogajanja po svetu v zadnjih 250 letih. Projekt se je začel leta 2006 z indeksiranjem starih izvodov The New York Timesa… </besedilo> </novica> </novice> - 16 -
Prednosti jezika XML pred jezikom HTML <EMPOLYEE> <NAME> <FIRST>John</FIRST> <MIDDLE>Q</MIDDLE> <LAST>Public</LAST> </NAME> <EMAIL>john.q.public.1@gsfc.nasa.gov</EMAIL> <PHONE>301-286-aaaa</PHONE> <FAX>301-286-bbbb</FAX> <LOCATION> <BUILDING>Bldg. 23</BUILDING> <ROOM>999</ROOM> </LOCATION> <ADDRESS> <ORG>NASA</ORG> <CENTER>GoddardSpaceFlight Center</CENTER> <MAILSTOP>588.0</MAILSTOP> <CITY>Greenbelt</CITY> <STATE>MD</STATE> <ZIP>20221</ZIP> </ADDRESSV> </EMPLOYEE> <B>John Q Public</B> <P> john.q.public.1@gsfc.nasa.gov<BR> phone: 301-286-aaaa<BR> fax: 301-286-bbbb<BR> Bldg. 23, Rm. 999<BR> NASA<BR> GoddardSpaceFlight Center<BR> 588.0<BR> Greenbelt, MD 20221<BR> - 17 -
Aplikacije, ki uporabljajo XML • Komunikacija med računalniki • EAI (Enterprise Application Integration) • CMS (Content Management Systems) • Sistemi namenjeni brezžični komunikaciji (Wireless Communication Systems) • Dlančniki in pametni telefoni • Sistemi za eUčenje • Spletne storitve • … - 18 -
Zakaj ravno sedaj? • Imamo splet • Enostavna množica protokolov za posredovanje dokumentov (HTTP/TCP/IP) • Velika množica gostiteljev, ki so pripravljeni za izmenjavo dokumentov • Kako uporabiti to infrastrukturo za reševanje večnih problemov: • avtomatizacija poslovanja, • izmenjava strokovnih člankov, • izmenjava recenzij, • … - 19 -
Zakaj ravno sedaj? • Rešitev naštetih problemov je v uporabi infrastrukture, ki omogoča, da strežniki generirajo strani, ki jih splošni odjemalci znajo interpretirati - 20 -
XML tehnologije • XML urejevalniki: • Orodja, ki omogočajo izdelavo, urejanje in validacijo XML dokumentov. • Orodja za obdelavo XML: • Orodja, ki omogočajo transformacijo XML podatkov (dokumentov) v nekaj kar lahko prikažemo v brskalniku. • Orodja, ki omogočajo obdelavo XML iz programskih jezikov: • Orodja (XML parsers), ki omogočajo pretvorbo XML podatkov v podatkovne tipe programskih jezikov (Xerces (Apache) in XT (James Clark)). • XML API-ji, ki omogočajo posodabljanje in branje XML podatkov potem, ko so ti že v podatkovnih strukturah nekega programskega jezika (DOM, SAX). - 21 -
XML tehnologije • Xpath– omogoča identifikacijo podsklopov dokumentov, ki se uporabljajo znotraj XSL, Xquery ali kakšnega drugega jezika, ki bazira na XML. • DTDsin XML Shema– omogoča opis različnih dialektov XML. • Xquery– omogoča poizvedovanju po XML dokumentih. • Xlink, Xpointer– omogoča povezovanje in referenciranje podatkov znotraj XML dokumenta. • XML-RPC, SOAP – omogoča oddaljene klice procedur (RPC) prek XML. - 22 -
Zgodovina XML • SGML - Structured Generalized Markup Language: • Zasnoval W. Goldfarb 1969-1986, • Predlog za opisovanje dokumentov, • Standardiziran s strani ISO 1986, • Osnovna ideja je prikaz strukture dokumenta <BOOK genre="essay"> <TITLE> The Anatomy of Melancholy </TITLE> <AUTHOR> Robert Burton </AUTHOR> <PREFACE> <TITLE> Democritus Junior to the Reader </TITLE> </PREFACE> </BOOK> - 23 -
Zgodovina XML • Sintaksa zelo podobna XML, ampak omogoča številne nepravilnosti, ki jih XML odpravi. • Orientiran proti velikim centraliziranim repozitorijem dokumentov, kot so založniške hiše, tehnični in pravni dokumenti itd. • Težavna implementacija. • eXtensible Markup Language (XML): • Zasnovan s strani W3C leta 1996. • Standardiziran v letu 1998. • Podeduje številne lastnosti SGML: • enostavnejši, • manj obsežne specifikacije, • striktnejši. - 24 -
XML in HTML • HTML zasnovan kot tip dokumenta znotraj SGML • V praksi malo HTML dokumentov ustreza standardom (konvencijam) SGML in XML • Skupaj z XML je bila sprejeta tudi nova verzija HTML-ja imenovana XHTML • XHTML je skladen z XML • HTML dokumenti, ki nastanejo iz drugih virov (XML, PPT) so načeloma skladni z XHTML • Isti javanski vmesniki (API), ki se uporabljajo za delo z XML, delujejo tudi na HTML (ne zgolj na XHTML, čez XSL) - 25 -
XML dokument Deklaracija <?xml version "1.0" ?> <CML> <MOL TITLE="Water"> <ATOMS> <ARRAYBUILTIN="ELSYM"> H O H</ARRAY> </ATOMS> <BONDS> <ARRAYBUILTIN="ATID1">1 2</ARRAY> <ARRAYBUILTIN="ATID2">2 3</ARRAY> <ARRAYBUILTIN="ORDER">1 1</ARRAY> </BONDS> </MOL> </CML> Značke (Tags) Začetna značka Zaključna značka Atributi Vrednost atributa dokument = besedilo + značke element = začetna značka + vsebina + končna značka element vsebuje besedilo ali elemente ali oboje (ali nič) - 26 -
XML dokumentin drevesna struktura Korenski element CML • Značke opredelijo strukturo dokumenta • Značke razčlenijo dokument na posamezne elemente • Najvišji element imenujemo korenski element • Vsebina se nahaja znotraj posameznih elementov • Element lahko vključuje besedilo (CDATA) ali elemente ali oboje (ali nič) MOL Elementi ATOMS BONDS ARRAY ARRAY ARRAY ARRAY CDATA sekcija 12 23 11 HOH - 27 -
XML in drevesna struktura Primer: <?xml version="1.0" ?> <rooms> <room name="Red"> <capacity>10</capacity> <equipmentList> <equipment>Projector</equipment> </equipmentList> </room> <room name="Green"> <capacity>5</capacity> <equipmentList/> <features> <feature>No Roof</feature> </features> </room> </rooms> - 28 -
<?xml version="1.0" ?> <rooms> <room name="Red"> <capacity>10</capacity> <equipmentList> <equipment>Projector</equipment> </equipmentList> </room> <room name="Green"> <capacity>5</capacity> <equipmentList/> <features> <feature>No Roof</feature> </features> </room> </rooms> XML in drevesna struktura • Značke opredelijo strukturo dokumenta • Značke razčlenijo dokument na posamezne elemente rooms room room capacity features capacity equipmentlist equipmentlist equipment 10 5 feature projector - 29 - No Roof
Deli XML dokumenta • ELEMENTI • Element = začetna značka + vsebino + končna značka • Element lahko vsebuje besedilo ali druge elemente ali oboje (ali nič) element z vsebino prazen element • ATRIBUTI • Elementom lahko pripišemo lastnosti oz. atribute • Lastnosti zapišemo v začetne značke kot pare atribut = "vrednost" • Vrednost mora biti v enakih enojnih ali dvojnih narekovajih <KNJIGA>…</KNJIGA> <VRSTICA/> <PRELOM stran="11"/> <RAZDELEK številka="11" zvrst="podpoglavje">…</RAZDELEK> - 30 -
Deli XML dokumenta • BESEDILO (CDATA sekcija): • Lahko se nahaja znotraj elementov • Lahko je podano eksplicitno kot • POSEBNI ZNAKI • dokument XML lahko vsebuje tudi posebne znake, ki se ob procesiranju nadomestijo z nečim drugim • sklic na poseben znak se začne z znakom & (ubežni znak) in konča s podpičjem &…; <![CDATA[To je CDATA sekcija, ki lahko vsebuje tudi <‘’> posebne znake]]> < = < > = >&= & ' = ' " = " 1 < 2 (formula) Procter & Gamble (podjetje) <formula>1 < 2</formula> <podjetje>Procter & Gamble</podjetje> - 31 -
Deli XML dokumenta • XML deklaracija • Označuje začetek dokumenta • Navodila za procesiranje (PIs): • <? …?> • Komentarji • <!-- … --> • Deklaracija tipa dokumenta <?xml version="1.0"?> <?xml-stylesheet type=“text/css” href=“mys.css”?> <!-- comment text --> <!DOCTYPE DOCUMENT[document info]> <!DOCTYPE POEM [<!ELEMENT STANZA (LINE*)>…]> Poimenovanje dokumenta, ki mu je pripet podatek o formatu - 32 -
Pravila dobro definiranih XML dokumentov • XML standard zahteva, da se v dokumentih upoštevajo naslednja pravila: • Obstajati mora en element, ki vsebuje vse ostale • Značke morajo biti uravnotežene • Gnezdenje značk mora biti izvedeno pravilno. • Tekst značk je občutljiv na velike in male črke <BOOK>...</BOOK> <BOOK /> <BOOK> <LINE> this is OK </LINE> </BOOK> <LINE> <BOOK> this is </LINE> definitely NOT </BOOK> OK <P> this is not ok, even though we do it all the time in HTML!</p> - 33 -
Pravila dobro definiranih XMLdokumentov • Atributi v značkah (tags) morajo biti znotraj narekovajev. • Komentiranje je dovoljeno. • Dokument se mora začeti z ustreznim nizom (XML deklaracija). • Posebni znaki se morajo pričeti z ubežnim znakom (&) < ITEM CATEGORY=“Home and Garden” Name=“hoe-matic t500”> <!-– They are done just as in HTML… --> <?xml version=‘1.0’ ?> < " ' > & <formula> x < y+2x </formula> <cd title=""music ""> - 34 -
Izdelava XML dokumentov • Primeri XML urejevalnikov: • XMLSpy – http://www.altova.com • Jedit - http://www.jedit.org/ • Oxygen - http://www.oxygenxml.com/ • XML Marker - http://symbolclick.com/ • Notepad - 35 -
XMLSpy - 36 -
Oxygen - 37 -
Oxygen - 38 -
Stylus Studio - 39 -