Professional Documents
Culture Documents
Uvod U XML I XML Tehnologije
Uvod U XML I XML Tehnologije
JEZICI
Uvod u XML
i
XML tehnologije
Dr Milica Vukovi
Fakultet organizacionih nauka, 2008.
Sadraj
Osnove XML-a
Validacija XML dokumenata
XSLT transformacije
Modeli XML parsera
MS implementacija W3C XML standarda
Extensible
- proirljiv jezik, dozvoljava definisanje novih tagova
- meta jezik omoguava definisanje drugih markup
jezika
Fakultet organizacionih nauka, 2008.
(otvoreni) tag
<osoba>
<ime >Petar</ime>
<prezime>Markovic</prezime>
</osoba>
krajnji
(zatvoreni) tag
Korienje XML-a
XML tehnologije:
Procesiranje XML dokumenata
- XML parseri
- transfromacija XML dokumenata (XSLT jezik)
Specifikacija
dokumenata
logike
strukture
XML
Korienje XML-a
XML je projektovan za distribuirano
okruenje
XML je veoma pogodan kao format za
razmenu podataka izmeu heterogenih
aplikacija na Web-u
XML kao format je dovoljno formalan za
mainsko procesiranje i dovoljno razumljiv
za korisnike
Fakultet organizacionih nauka, 2008.
Korienje XML-a
Program
XSLT
procesor
Data.XML
XSLT
transformacija
Aplikacija A
Aplikacija B
Program
Parser
To Validate
XML schema
Korienje XML-a
Web servisi
nov standard za kreiranje interoperabilnih
distribuiranih aplikacija
Skup standarda zasnovani na XML-u
-
Korienje XML-a
realcione baze
i.
XML
jednostavnost HTML
HTML = Hypertext Markup Language
sa
SGML
standard za definisanje i reprezentovanje
strukture
razliitih
tipova
elektronskih
dokumenta, (ISO standard 1985)
-
HTML
definisan u SGML
koristi fiksni broj predefinisanih tagova
prvenstveno projektovan za formatiranje
prezentovanje dokumenta na Web-u
Primeri
Primer
Prikaz u browser-u
bold
italic
XML dokumenta
XML dokumenta
su samoopisujue,
platformski nezavisne tekstualne datoteke
XML dokument sadri :
-
tekst
Krajnjii (zatvoren)
tag
XML elementi
<poruka/>
<pozdrav tekst = Hello XML />
XML atributi
Elementima se mogu pridruiti atributi
- obezbeuju dodatne informacije o elementima
naziv atributa
vrednost atributa
XML deklaracija
Svaki XML dokument mora da sadri XML
deklaraciju, tj. instrukciju obrade kojom se
dokument identifikuje kao XML dokument.
dokument
- Osnovni oblik XML deklaracije:
XML deklaracija
<?xml version =1.0 encoding= UTF-8?>
?
XML
do krajnje aplikacije
Fakultet organizacionih nauka, 2008.
Kreiranje
Editor
Parsiranje
XML
dokument
XML
parser
Aplikacija
DTD
Nasledjen od SGML-a
Poseban jezik
Vrlo ograniene mogunosti za definisanje
tipova
Primer DTD
<!ELEMENT Knjige (Knjiga+)>
<!ELEMENT Knjiga (Naslov, Autor, Godina, ISBN, Izdavac)>
<!ELEMENT Naslov (#PCDATA)>
<!ELEMENT Autor (#PCDATA)>
<!ELEMENT Godina (#PCDATA)>
<!ELEMENT ISBN (#PCDATA)>
<!ELEMENT Izdavac (#PCDATA)>
XML Schema
XML Schema
Za konstrukciju svake XML eme koriste
se:
Schema element (koreni element svake
XML eme )
Deklaracije elemenata
Deklaracije atributa
Definicije prostih i sloenih tipova
Schema element
Schema element ukazuje na definiciju XML eme
simpleContent
string
boolean
seqence
Schema element
Deklaracija XML namespace:
xmlns:prefix=namespace name
- prefix se koristi kao skraeno ime za namespace
name u XML emi
- namespace name je lokacija XSD i specificira se preko
URL
Primer
<?xml version="1.0"?>
<xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema>
</xsd:schema>
Fakultet organizacionih nauka, 2008.
knjige.xsd
Fakultet organizacionih nauka, 2008.
XML dokument
XSLT transformacije
XSLT
XSLT eXtensible Stylesheet Language Transformation
W3C standard
XSLT verzije:
-
XSLT
XSLT je deklarativni jezik koji se koristi za
opis
pravila
transformacija
XML
dokumenta u
- drugi XML dokument
- HTML dokument
- tekst
XSLT
stylesheet
XML
dokument
XSLT
procesor
-XML
-HTML
-tekst
stylesheet
for-each
choose
apply-templates
value-of
template
<?xml version=1.0?>
<xsl:stylesheet version 1.0
xmlns:xsl=http://www.w3.org/1999/XSL/Transform>
............
............
</xsl:stylesheet>
Templejt pravila
Templejt pravilo sadri dva dela:
Templejt pravila
<xsl:template match=pattern>
[ akcija ]
</xsl:template>
match atribit koristi se za povezivanje
templejta sa nekim delom ulaznog XML
dokumenta
Vrednost match atributa je XPath pattern
XPath
XPath (XML Path Language) je jezik koji
omoguava navigaciju do delova(vorova)
XML dokumenta (kao to su elementi, atributi,
njihove vrednosti)
XPath je W3C standard
U XSLT dokumentu XPath se koristi za
izdvajanje delova XML dokumenta na koje e
biti primenjena transformacija
Fakultet organizacionih nauka, 2008.
XPath
XML dokument se ovde posmatra kao
stablo vorova sa definisanim vorom
koji se naziva koren dokumenta
koren dokumenta je bezimeni vor ije je
dete koreni element XML dokumenta
Knjige
Knjiga
Naslov
Baze
podataka
Autor
Branislav
Lazarevic
Koreni element
Knjiga
Godina
....
2003
XPath
vor se adresira preko tzv. izraza putanje niz
od jednog ili vie koraka razdvojenih sa /
Primer
/Knjige/Knjiga/Godina
Rezultat: <Godina>2003</Godina>
<Godina>1998</Godina>
Izraz putanje koji pocinje sa / reprezentuje apsolutnu
putanju
Fakultet organizacionih nauka, 2008.
XPath
"/"
<xsl:template match="/">
.
</xsl:template>
atribut match="/" povezuje templejt sa
korenom dokumenta
Fakultet organizacionih nauka, 2008.
<p> <font>
<xsl:attribute name="color">blue</xsl:attribute>
<xsl:attribute name="size">6</xsl:attribute>
pozdrav xml programera
</font>
</p>
XSLT procesori
Standalone XSLT procesori
Java XSLT procesor, SAXON, Oracle XSLT, Xalan (Apache
projekat)
Korienje Web Browser-a za XSLT transformacije
- Netscape 6.0
- JavaScript
Korienje Web servera za XSLT transformacije
Java servleti
ASP (Active Server Pages)
JSP (Java Server Pages)
Fakultet organizacionih nauka, 2008.
Rezultat transformacije
XML parseri
XML parser
XML parseri
Postoje dve vrste parsera:
2) Obrada dokumenta
DOM model
DOM model reprezentuje XML dokument kao
memorijsko stablo vorova (DOM stablo) i
omoguava, (preko skupa svojih interfejsa),
navigaciju i izmene dokumenta
Preko ovog modela se iz softverskih aplikacija
moe manipulisati sa XML dokumentima i
njihovim elementima kao sa objektima
DOM model
Tipovi vorova u W3C specifikaciji:
-
Document
Element
Attribute
Character data
- Text
- Comment
DOM model
Document
Comment
XML dok
<!XML dok -->
<studenti>
<student id=12005">
<ime>Petrovic Vuk</ime>
<status>redovan</status>
</student>
</studenti>
Element
studenti
Attr
id
Element
student
Element
Element
ime
status
Text
Text
Petrovic Vuk
redovan
Text
12005
DOM parser
- ita XML dokument od poetka do kraja
- formira u memoriji strukturu stabla (DOM
stablo) koja reprezentuje strukturu i sadraj
takvog dokumenta
APLIKACIJA
XML
dokument
XML PARSER
GRESKE
Pristup i
modifikacija
DOM stablo
Prednosti i nedostaci
Prednosti
Dinamiki pristup i modifikacija vorova
DOM stabla
Efikasno pretraivnje koje se zasniva na
strukturi stabla
Isti interfejs za razlite programske jezike
(C++, Java, C#, ...)
Nedostaci
Moe da bude spor i zahteva dosta
memorijskih resursa
Fakultet organizacionih nauka, 2008.
Kada se zahteva
obrada
elemenata u XML dokumentu
veine
XSD
XSLT 1.0
SAX
XPath
Fakultet organizacionih nauka, 2008.
Java
- JAXP Java API for XML Processing
obezbeuje sledee servise:
DOM
SAX
XSLT
Event-based
dogaajima)
Industrijski standard
model
(zasnovan
na
Primer
<?xml version=1.0>
<poruka>
<pozdrav>Dobar dan!</pozdrav>
</pozdrav>
Generisani SAX dogaaji:
start document
start element: poruka
start element: pozdrav
characters: Dobar dan!
end element: pozdrav
end element: poruka
- sekvencijalan i
- forward only pristup
( svaki element se parsira nanie sve
do listova pre nego to se pree na
sledei element istog nivoa )
end document
Fakultet organizacionih nauka, 2008.
SAX parser
Aplikacija
Error Handler
SAX parser
Prednosti
- Efikasan (veoma brz, uteda memorije)
Nedostaci
- ne kreira memorijsko stablo za reprezentovanje
XML dokumenta
- sekvenicjalni pristup komponentama dokumenta
Xerces
(http://xml.apache.org)
Oracle XML Parser
Project X ( Sun )
XML4J
( IBM )
MSXML 4.0 ( Microsoft )
MS implementacija
W3C XML standarda
System.Xml
XML Schema
System.Xml
System.Xml.Schema
XmlSchema
XSLT
System.Xml.Xsl
XslTransform
XPath
DOM
System.Xml
System.Xml.Path
Path
System.Xml
XmlDocument
XML
DOKUMENT
XmlReader class
XmlTextReader
XmValidatingReader
Aplikacija
XmNodeReader
SAX
Aplikacija
Error Handler
XmlTextReader
XmlValidatingReader
XmlNodeReader
dobro-
Ne proverava validnost
sadraja
XmlValidatingReader& XmlNodeReader
XmlValidatingReader obezbeuje podrku za
validaciju XML dokumenta u skladu sa DTD ili
XSD
XmlNodeReader omoguava itanje podstabla
XML DOM stabla
- Ne podrava validaciju
Programsko
dokumenata
TextWriter
generisanje
u
datoteku,
XML
stream,
XmlTextWriter
XmlNodeWriter
itd.)
3) Izvravanje Write metode za generisanje
XML
4) Izvravanje close() metode
Fakultet organizacionih nauka, 2008.
Primer
W3C
dokument
transformacija.Load(pozdrav.xsl);
// transformacija
transformacija.Transform(pozdrav.xml,
pozdrav.html);