Uvod v XML
description
Transcript of Uvod v XML
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
Uvod v XML
- 1 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
˝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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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/)
- 3 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 (Standardized
Generalized Markup Language), ki je bil definiran že leta 1969
- 6 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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
Formalen (valid) dokument je dokument, ki je skladen s shemo– Formalnost je za XML dokument opcijska;
- 8 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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
- 9 -
PODATKOVNE BAZEModul: 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>
XML Shema - Primer
Author.xsd
MarkTwain.xml
Shema Author.XSD definira strukturo elementa Author
MarkTwain.XML je instanca oz. primerek zgoraj definirane sheme
- 10 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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> <body type="url" > http://www.theonion.com/archive/3-11-01.html </body></Article>
Vrstni red je pomemben, presledki niso!- 11 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
Razlike med HTML in XML
HTML XMLvnaprej določen nabor značk značke definiramo sami
značke usmerjene v videz dokumenta
značke opisujejo pomen dokumenta
značke lahko izpuščamo vse značke morajo biti prisotne
strani dostikrat niso pravilno napisane
dokumenti morajo biti dobro napisani
- 14 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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
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?• …- 15 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 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>
- 16 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
<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>
<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>
Prednosti jezika XML pred jezikom HTML
- 17 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
XML tehnologije Xpath – omogoča identifikacijo podsklopov
dokumentov, ki se uporabljajo znotraj XSL, Xquery ali kakšnega drugega jezika, ki bazira na XML.
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.
- 22 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
<?xml version "1.0" ?>
<CML> <MOL TITLE="Water" > <ATOMS> <ARRAY BUILTIN="ELSYM" > H O H</ARRAY> </ATOMS> <BONDS> <ARRAY BUILTIN="ATID1" >1 2</ARRAY> <ARRAY BUILTIN="ATID2" >2 3</ARRAY> <ARRAY BUILTIN="ORDER" >1 1</ARRAY> </BONDS> </MOL></CML>
Začetna značkaZaključna značka
Značke (Tags)
Atributi
XML dokument
Deklaracija
Vrednost atributadokument = besedilo + značkeelement = začetna značka + vsebina + končna značkaelement vsebuje besedilo ali elemente ali oboje (ali nič) - 26 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
XML dokument in drevesna struktura 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č)
CML
MOL
ATOMS BONDS
ARRAY ARRAY ARRAY ARRAY
HOH 12 23 11
Korenski element
CDATA sekcija
Elementi
- 27 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
XML in drevesna strukturaPrimer:<?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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
XML in drevesna struktura Značke opredelijo strukturo
dokumenta Značke razčlenijo dokument na
posamezne elementerooms
room
capacity equipmentlistequipmentlist
equipment
capacity
room
features
feature10
projector
5
No Roof
<?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>
- 29 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 vsebinoprazen 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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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]]>
< = <> = >& = & ' = '" = "
<formula>1 < 2</formula><podjetje>Procter & Gamble</podjetje>
1 < 2 (formula) Procter & Gamble
(podjetje)
- 31 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
Pravila dobro definiranih XML dokumentov 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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
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 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
XMLSpy
- 36 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
Oxygen
- 37 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
Oxygen
- 38 -
PODATKOVNE BAZEModul: XML©Laboratorij za podatkovne tehnologije
Stylus Studio
- 39 -