Transcript Uvod v XML
Uvod v XML PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije -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> PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije -2- Kaj je XML? Razširljivi označevalni jezik (eXtensible Markup Language) Podoben jeziku HTML Ni namenjen prikazu, ampak prenosu podatkov Značke (tags) niso predpisane vnaprej Je samopojasnjujoč Priporočilo organizacije W3C (http://www.w3.org/) PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije -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 PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije -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 – podobno iskanju po običajnih spletnih straneh; Standardizirana sintaksa meta-podatkov (pomena podatkov) PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije -5- Ključne prednosti XML dokumentov Standardizirana struktura – Zapis semantičnih podatkov za dokumente in podatkovna polja – Hierarhična struktura v obliki drevesa – omogoča rekurzivno razgradnjo konceptov na sestavne dele; Uveljavljena tehnologija – XML je podmnožica standarda SGML (Standardized Generalized Markup Language), ki je bil definiran že leta 1969 PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije -6- Torej, kaj je XML – povzetek Nabor sintaktičnih pravil, ki omogočajo izdelavo semantično bogatih označevalnih jezikov za različne domene Označevalni jeziki dokumentom dodajo semantične podatke o surovi vsebini. Z označevalnim jezikom opredelimo tiste tipe podatkov, ki jih jemljemo za pravilne. 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! PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije -7- Ravni skladnosti XML dokumentov Dobro definiran (well formed) 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 Formalno pravilen (valid) dokument je dokument, ki je skladen s shemo – Formalnost je za XML dokument opcijska; PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije -8- XML shema Shema je ločen dokument, ki definira elemente, atribute in strukturo XML dokumenta Shemo določimo tako, da 1. definiramo slovar in 2. določimo postavitev ter število elementov in atributov v označevalnem jeziku Shema definira točno določen razred dokumentov PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije -9- XML Shema - Primer Author.xsd Shema Author.XSD definira strukturo elementa Author MarkTwain.xml MarkTwain.XML je instanca oz. primerek zgoraj definirane sheme PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Author"> <xs:complexType> <xs:sequence> <xs:element name="FirstName" type="xs:string" /> <xs:element name="LastName" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> <?xml version="1.0"?> <Author xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Author.xsd"> <FirstName>Mark</FirstName> <LastName>Twain</LastName> </Author> - 10 - Primeri XML zapisov… <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> <body type="url" > http://www.theonion.com/archive/3-11-01.html </body> </Article> Pazi: vrstni red je pomemben, presledki niso! PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 11 - Primeri XML zapisov <?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> PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 12 - Razlike med HTML in XML… HTML XML vnaprej določen nabor značk značke definiramo sami značke namenjene določanju videza dokumenta značke opisujejo pomen dokumenta značke lahko izpuščamo vse značke morajo biti prisotne strani pogosto nepravilno zapisane – npr. napačne značke dokumenti morajo biti „ustrezni“ – dobra definiranost PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 13 - Prednosti XML pred HTML… HTML stran vsebuje podatke, ki so zapisani tako, da so razumljivi predvsem HTML prikazovalnikom (brskalniki). HTML zapis enostavno interpretira tudi človek. Programska obdelava HTML strani je zahtevna ker manjka struktura podatkov. Novica v html formatu: • Kaj je naslovna vrstica zgodbe? • Kdo je avtor zgodbe? • V katero kategorijo je umeščena? • Kdaj je bila objavljena? • … PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 14 - Prednosti XML pred HTML <B>John Q Public</B> <P> [email protected]<BR> phone: 301-286-aaaa<BR> fax: 301-286-bbbb<BR> Bldg. 23, Rm. 999<BR> NASA<BR> Goddard Space Flight Center<BR> 588.0<BR> Greenbelt, MD 20221<BR> PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije <EMPOLYEE> <NAME> <FIRST>John</FIRST> <MIDDLE>Q</MIDDLE> <LAST>Public</LAST> </NAME> <EMAIL>[email protected]</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>Goddard Space Flight Center</CENTER> <MAILSTOP>588.0</MAILSTOP> <CITY>Greenbelt</CITY> <STATE>MD</STATE> <ZIP>20221</ZIP> </ADDRESSV> </EMPLOYEE> - 15 - Elektronska obdelava dokumentov Za elektronsko obdelavo mora imeti dokument eksplicitno definirano strukturo – to ponuja XML. <?xml version="1.0" ?> <novice> <novica naslov="Google ustavil digitalizacijo starih č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> PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 16 - Uporaba 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 … PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 17 - Pomen XML danes… Splet (WWW) – Enostavna množica protokolov za posredovanje dokumentov (HTTP/TCP/IP) – Velika množica gostiteljev, pripravljenih za izmenjavo dokumentov Elektronska izmenjava dokumentov pomaga reševati „večne“ probleme: – – – – avtomatizacija poslovanja, Integracija aplikacij, Elektronsko poslovanje, … PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 18 - Primer uporabe XML PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 19 - 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 druge standardizirane oblike… npr HTML. Orodja/standardi, ki omogočajo obdelavo XML iz programskih jezikov: – XML razčlenjevalci, ki omogočajo razčlenjevanje, validacijo, serializacijo in manipulacijo XML. Npr. Apcache Xerces. – XML API-ji, ki omogočajo posodabljanje in branje XML podatkov potem, ko so ti že v podatkovnih strukturah nekega programskega jezika (DOM, SAX). PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 20 - DOM… DOM je W3C standard (jezik, neodvisen od platforme) za delo z dokumenti, kot so XML, HTML ipd. S pomočjo DOM lahko jeziki dostopajo do in spreminjajo vsebino, strukturo in stil dokumentov. DOM sestavljajo trije deli: – Core DOM - standard model for any structured document – XML DOM - standard model for XML documents – HTML DOM - standard model for HTML documents PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 21 - Primer DOM drevesne strukture PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 22 - XML tehnologije Xpath – omogoča identifikacijo podsklopov XML dokumentov. DTDs in 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. PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 23 - 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> PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 24 - 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, vendar: enostavnejši, manj obsežne specifikacije, natančnejši. PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 25 - XML dokument Deklaracija Značke (Tags) Začetna značka Zaključna značka Atributi <?xml version "1.0" ?> <CML> <MOL TITLE="Water" > <ATOMS> <ARRAY BUILTIN="ELSYM" </ATOMS> <BONDS> <ARRAY BUILTIN="ATID1" <ARRAY BUILTIN="ATID2" <ARRAY BUILTIN="ORDER" </BONDS> </MOL> </CML> dokument = besedilo + značke element = začetna značka + vsebina + končna značka element vsebuje besedilo ali elemente ali oboje (ali nič) PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 26 - > H O H</ARRAY> >1 2</ARRAY> >2 3</ARRAY> >1 1</ARRAY> Vrednost atributa XML dokument in drevesna struktura Korenski element Značke opredelijo strukturo dokumenta Značke razčlenijo dokument na posamezne elemente CML MOL – Najvišji element imenujemo korenski element Elementi Vsebina se nahaja znotraj posameznih elementov ATOMS ARRAY CDATA sekcija HOH PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije BONDS ARRAY 12 – Element lahko vključuje besedilo (CDATA) ali elemente ali oboje (ali nič) ARRAY ARRAY 23 11 - 27 - XML in drevesna struktura <equipment>Projector</equipment> </equipmentList> </room> <room name="Green"> <capacity>5</capacity> <equipmentList /> <features> <feature>No Roof</feature> </features> </room> </rooms> rooms room capacity equipmentlist 10 equipment PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije projector <?xml version="1.0" ?> <rooms> <room name="Red"> <capacity>10</capacity> <equipmentList> room equipmentlist - 28 - capacity features 5 feature No Roof Deli XML dokumenta ELEMENTI – Element = začetna značka + vsebina + končna značka – Element lahko vsebuje besedilo ali druge elemente ali oboje (ali nič) element z vsebino prazen element <KNJIGA>…</KNJIGA> <VRSTICA/> 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 <PRELOM stran="11"/> <RAZDELEK številka="11" zvrst="podpoglavje">…</RAZDELEK> PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 29 - Deli XML dokumenta BESEDILO (CDATA sekcija): – Lahko se nahaja znotraj elementov – Lahko je podano eksplicitno kot <![CDATA[To je CDATA sekcija, ki lahko vsebuje tudi <‘’> posebne znake]]> 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 &…; < > & ' " = = = = = < > & ' " PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije 1 < 2 (formula) Procter & Gamble (podjetje) <formula>1 < 2</formula> <podjetje>Procter & Gamble</podjetje> - 30 - Deli XML dokumenta XML deklaracija – Označuje začetek dokumenta <?xml version="1.0"?> Navodila za procesiranje (PIs): – <? …?> <?xml-stylesheet type=“text/css” href=“mys.css”?> Komentarji – <!-- … --> <!-- comment text --> Deklaracija tipa dokumenta <!DOCTYPE DOCUMENT[document info]> <!DOCTYPE POEM [<!ELEMENT STANZA (LINE*)>…]> PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 31 - Poimenovanje dokumenta, ki mu je pripet podatek o formatu 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 <BOOK>...</BOOK> <BOOK /> – Gnezdenje značk mora biti izvedeno pravilno. <BOOK> <LINE> this is OK </LINE> </BOOK> <LINE> <BOOK> this is </LINE> definitely NOT </BOOK> OK – Tekst značk je občutljiv na velike in male črke <P> this is not ok, even though we do it all the time in HTML!</p> PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 32 - Pravila dobro definiranih XML dokumentov Atributi v značkah (tags) morajo biti znotraj narekovajev. < ITEM CATEGORY=“Home and Garden” Name=“hoe-matic t500”> Komentiranje je dovoljeno. <!-– They are done just as in HTML… --> Dokument se mora začeti z ustreznim nizom (XML deklaracija). <?xml version=‘1.0’ ?> Posebni znaki se morajo pričeti z ubežnim znakom (&) < " ' > & <formula> x < y+2x </formula> <cd title="" music ""> PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 33 - Izdelava XML dokumentov Primeri XML urejevalnikov: – – – – – – EditiX – http://www.editix.com XMLSpy – http://www.altova.com Jedit - http://www.jedit.org/ Oxygen - http://www.oxygenxml.com/ XML Marker - http://symbolclick.com/ Notepad PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 34 - XMLSpy PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 35 - Oxygen PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 36 - Oxygen PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 37 - Stylus Studio PODATKOVNE BAZE Modul: XML ©Laboratorij za podatkovne tehnologije - 38 -