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 &…;
&lt;
&gt;
&amp;
&apos;
&quot;
=
=
=
=
=
<
>
&
'
"
PODATKOVNE BAZE
Modul: XML
©Laboratorij za podatkovne tehnologije
1 < 2 (formula)
Procter & Gamble (podjetje)
<formula>1 &lt; 2</formula>
<podjetje>Procter &amp; 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 &lt; y+2x </formula>
<cd title="&quot; music &quot;">
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 -