You are on page 1of 103

PROGRAMSKI

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

Fakultet organizacionih nauka, 2008.

Kljuni koncepti XML


XML eXtensible Markup Language
XML je danas postao de-facto standard
za opis sadraja i strukture (tekstualnih i
multimedijalnih) dokumenata i razmenu
dokumenata na Web-u

Fakultet organizacionih nauka, 2008.

Kljuni koncepti XML


XML eXtensible Markup Language
Markup
- dodavanje specijalnog znaenja podatku
- U XML koristi se tag za predstavljanje markup-a

Extensible
- proirljiv jezik, dozvoljava definisanje novih tagova
- meta jezik omoguava definisanje drugih markup
jezika
Fakultet organizacionih nauka, 2008.

Kljuni koncepti XML


XML dokument se sastoji iz
teksta
tagova
poetni
e
l
e
m
e
n
t

(otvoreni) tag

<osoba>
<ime >Petar</ime>
<prezime>Markovic</prezime>
</osoba>
krajnji
(zatvoreni) tag

Fakultet organizacionih nauka, 2008.

Kljuni koncepti XML-a


XML dokument: samoopisujua, platformski
nezavisna tekstualna datoteka
Razdvajanje
struktuiranog
sadraja
dokumenta od njegove prezentacije (Style
Sheet)

Fakultet organizacionih nauka, 2008.

Korienje XML-a
XML tehnologije:
Procesiranje XML dokumenata
- XML parseri
- transfromacija XML dokumenata (XSLT jezik)

Specifikacija
dokumenata

logike

strukture

- DTD = Document Type Definiton


- XML schema

Upitni XML jezici


- XPath
- XQuery
Fakultet organizacionih nauka, 2008.

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

Fakultet organizacionih nauka, 2008.

Korienje XML-a
Web servisi
nov standard za kreiranje interoperabilnih
distribuiranih aplikacija
Skup standarda zasnovani na XML-u
-

SOAP = Simple Object Access Protocol


WSDL = Web Service Definition Language
UDDI = Universal Description, Discovery and
Integration Protocol
Fakultet organizacionih nauka, 2008.

Korienje XML-a

Memorisanje XML podataka:


-

XML datoteke i XML baze

realcione baze
i.

Transformacija XML dokumenta u relacione


tabele
ii. XML dokumenta memoriu se u kolone (iji je
tip -XML type) relacionih tabela

Fakultet organizacionih nauka, 2008.

Istrorijski razvoj XML-a


W3C = World Wide Web Consortium
( organizacija za standardizaciju Web tehnologija )

1996. poela razvoj standarda za


motivacijom da XML treba da kombinuje
 Fleksibilnost SGML

XML

SGML = Standard Generalized Markup Language




jednostavnost HTML
HTML = Hypertext Markup Language

U februaru 1998. definisan je XML 1.0 standard


Fakultet organizacionih nauka, 2008.

sa

SGML
standard za definisanje i reprezentovanje
strukture
razliitih
tipova
elektronskih
dokumenta, (ISO standard 1985)
-

tagovi se koriste samo za oznaavanje strukture


dokumenta
proirljiv jezik, dozvoljava definisanje novih tagova
meta jezik standard za definisanje novih markup
jezika
Veoma sloen jezik

XML je podskup SGML (prilagodjen potrebama


Web-a)
Fakultet organizacionih nauka, 2008.

HTML

Poetkom 1990. HTML je definisan od


W3C kao standard
i.
ii.
iii.

definisan u SGML
koristi fiksni broj predefinisanih tagova
prvenstveno projektovan za formatiranje
prezentovanje dokumenta na Web-u

Primeri
Primer

Prikaz u browser-u

<b> bold </b>


<i> italic </i>
Fakultet organizacionih nauka, 2008.

bold
italic

XML dokumenta
XML dokumenta
su samoopisujue,
platformski nezavisne tekstualne datoteke
XML dokument sadri :
-

Tekst (sadraj dokumenta)


tag-ove

<pozdrav> Hello XML!</pozdrav>


Poetni
(otvoren) tag

tekst

Fakultet organizacionih nauka, 2008.

Krajnjii (zatvoren)
tag

XML elementi

Elementi su osnovni blokovi XML-a


Kontejner element par tag-ova (poetni i krajnji tag) sa
sadrajem

<pozdrav> Hello XML! </pozdrav>


Prazan element
skraenica />

obino se za krajnji tag koristi

<poruka/>
<pozdrav tekst = Hello XML />

Fakultet organizacionih nauka, 2008.

XML atributi
Elementima se mogu pridruiti atributi
- obezbeuju dodatne informacije o elementima
naziv atributa

vrednost atributa

<poruka datum = 12.5.08. sala = 201 >


<tekst>Sastanak Katedre sutra u 10</tekst>
</poruka>
Imena XML tagovi i imena atributa case sensitive
Fakultet organizacionih nauka, 2008.

Struktura XML dokumenta

hijerarhijska struktura (stablo) koja se sastoji


iz elemenata, atributa i znakovnih podataka

XML dokument ima jedan i samo jedan


koreni (root) element

Svi ostali elementi u strukturi su elementi


deca korenog element
- dozvoljeno viestruko ugnjedavanje elemenata

Fakultet organizacionih nauka, 2008.

Hijerarhijska struktura XML dokumenta

Fakultet organizacionih nauka, 2008.

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 version =1.0?>


- Opcioni oblik XML deklaracije:

<?xml version =1.0 encoding= UTF-8?>


Fakultet organizacionih nauka, 2008.

XML deklaracija
<?xml version =1.0 encoding= UTF-8?>
?

oznaka za instrukciju obrade


instrukcija obrade je poruka programima koji procesiraju
dokument

XML

atribut version specificira XML verziju


atribut encoding definie znakovni kod u kome
je XML dokument napisan
UTF-8 (kompresovana verzija Unicode-a)
UTF-16 (Unicode)

Fakultet organizacionih nauka, 2008.

Dobro-oformljen XML dokument


postoji XML deklaracija
dokument sadri jedan i samo jedan
koreni element u kome su ugnjedeni
svi ostali elementi i njihovi sadraji
svi elementi i atributi u dokumentu
moraju da budu sintaksno ispravni
Fakultet organizacionih nauka, 2008.

Provera sintaksne korektnosti XML


dokumenta

XML parser verifikuje da li je XML


dokument dobro-oformljen

XML parser ita dokument i konvertuje


ga u hijerahijsku strukturu

XML parser prenosi parsirani dokument

do krajnje aplikacije
Fakultet organizacionih nauka, 2008.

Obrada XML dokumenta

Kreiranje

Editor

Parsiranje

XML
dokument

XML
parser

Fakultet organizacionih nauka, 2008.

Aplikacija

Kreiranje XML dokumenta


- Tekst editori (na primer Notepad)
- VS.NET XML Desinger
- XML Spy razvojno okruenje za XML

Fakultet organizacionih nauka, 2008.

Pregled XML dokumenta (source)


Pomou web browser-a koji podravaju XML
( Internet Explorer 5.0 i vie verzije)

Fakultet organizacionih nauka, 2008.

Validacija XML dokumenata

Definisanje tipova XML dokumenata


XML Schema

Fakultet organizacionih nauka, 2008.

Validni XML dokument


Dobro-oformljen
Konzistentan sa strukturom definisanom
u opisu tipa dokumenta

Fakultet organizacionih nauka, 2008.

Definisanje tipova XML dokumenata


W3C je ponudio dva standarda naina za
definisanje tipova XML dokumenta, odnosno
opisivanje strukture XML dokumenta:
dokumenta
Document Type Definiton (DTD)

XML Schema Definition (XSD)

Fakultet organizacionih nauka, 2008.

Definisanje tipova dokumenata


DTD i XSD definiu:
strukturu XML dokumenta
ime i tip svakog XML elementa/atributa
(DTD- ograniene mogunosti za definisanje tipova)

Fakultet organizacionih nauka, 2008.

DTD
Nasledjen od SGML-a
Poseban jezik
Vrlo ograniene mogunosti za definisanje
tipova

Fakultet organizacionih nauka, 2008.

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)>

#PCDATA Parser Character Data, oznacava znakovni


sadraj
+ element se pojavljuje bar jednom

Fakultet organizacionih nauka, 2008.

XML Schema

preporuka W3C od maja 2001


data je preko XML sintakse (XML ema
je XML dokument)
podrava definicije prostih i sloenih
tipova i poseduje napredne mehanizme
za grupisanje XML elemenata u XML
dokumentu
Fakultet organizacionih nauka, 2008.

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

Fakultet organizacionih nauka, 2008.

Schema element
Schema element ukazuje na definiciju XML eme

u kojoj se nalaze svi potrebni elementi za kreiranje


XML eme
complexType
element
schema

simpleContent
string

boolean
seqence

Fakultet organizacionih nauka, 2008.

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.

Deklaracija elementa u XML emi


Za svaki element u XML emi definie se naziv i
tip (atributi name i type)
<xsd:element name =Autor type = xsd:string/>
Tip moe da bude:
- korisniki definisan tip (pr. ComplexType)
- ili je u opsegu imena XML eme (primer string)

Kardinalnost elementa moe se specificirati u


njegovom ocu-elementu; inae po difoltu, kardinalnost
elementa je:
minOccurs = 1
maxOccurs = 1
Fakultet organizacionih nauka, 2008.

Definisanje sloenih tipova


Sloeni tipovi se konstruiu od prostih i drugih sloenih tipova
korienjem konstruktora:

sequence def. ureenu grupu elemenata.


Po difoltu, svaki element je obavezan (minOccurs = 1)
i jednoznaan (minOccurs = 1 )

choice def. grupu iz kojih se mogu izvlaiti


pojedinani elementi

all def. grupu u kojoj se svi elementi mogu pojaviti


maksimalno jedanput.
Fakultet organizacionih nauka, 2008.

Primer XML eme za tip Knjiga

knjige.xsd
Fakultet organizacionih nauka, 2008.

Prikaz XML eme preko strukture stabla

knjige.xsd reprezentovana preko strukture stabla


Fakultet organizacionih nauka, 2008.

XML dokument

XML dokument formiran u skladu sa XML emom knjge.xsd


Fakultet organizacionih nauka, 2008.

XSLT transformacije

- XSLT transformacioni proces


- XSLT stylesheet dokument
- XPath
- XSLT procesori

Fakultet organizacionih nauka, 2008.

XSLT
XSLT eXtensible Stylesheet Language Transformation
W3C standard
XSLT verzije:
-

XSLT 1.0 (Novembar 1999)


XSLT 2.0 (Novembar 2002)

Fakultet organizacionih nauka, 2008.

XSLT
XSLT je deklarativni jezik koji se koristi za
opis
pravila
transformacija
XML
dokumenta u
- drugi XML dokument
- HTML dokument
- tekst

Fakultet organizacionih nauka, 2008.

XSLT transformacioni proces

XSLT
stylesheet

XML
dokument

XSLT
procesor

Fakultet organizacionih nauka, 2008.

-XML
-HTML
-tekst

XSLT stylesheet dokument


XSLT stylesheet dokument je XML dokument
-

XSLT instrukcije se izraavaju kao XML elementi

Elementi koji se koriste za konstruisanje


stylesheet dokumenta definisani su preko XSLT
namespace-a, lokacija se spec. preko URL-a:
http://www.w3.org/1999/XSL/Transform

stylesheet
for-each

choose

apply-templates
value-of
template

Fakultet organizacionih nauka, 2008.

Osnovne karakteristike XSLT stylesheet


dokumenta
stylesheet element je koreni element

<?xml version=1.0?>
<xsl:stylesheet version 1.0
xmlns:xsl=http://www.w3.org/1999/XSL/Transform>
............
............
</xsl:stylesheet>

Fakultet organizacionih nauka, 2008.

Osnovne karakteristike XSLT stylesheet


dokumenta
Stylesheet element sadri skup templejt pravila
koja
se
deklariu
sa
<xsl:template>
elementima
pravila opisuju kako se pojedini elementi u XML
dokumentu transformiu u rezultujue elemente
u izlaznom dokumentu

Fakultet organizacionih nauka, 2008.

Templejt pravila
Templejt pravilo sadri dva dela:

pattern - identifikuje i izdvaja elemente ulaznog


XML dokumenta na koje e biti primenjena
transformacija
akcija - opisuje transformaciju koja se
primenjuje
<xsl:template match=pattern>
[ akcija ]
</xsl:template>
Fakultet organizacionih nauka, 2008.

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

Fakultet organizacionih nauka, 2008.

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

Fakultet organizacionih nauka, 2008.

Model podataka za XPath


Koren
dokumenta

Knjige

Knjiga

Naslov

Baze
podataka

Autor

Branislav
Lazarevic

Koreni element

Knjiga

Godina

....

2003

Fakultet organizacionih nauka, 2008.

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
"/"

XPath pattern za koren dokumenta

<xsl:template match="/">
.
</xsl:template>
atribut match="/" povezuje templejt sa
korenom dokumenta
Fakultet organizacionih nauka, 2008.

Telo templejt pravila


Satoji se iz:
XSLT instrukcija
Elemenata koji specificiraju neki eljeni
izlazni tekst koji XSLT procesor treba da
ubaci u izlazni dokument

Fakultet organizacionih nauka, 2008.

Primer XSLT instrukcije value-of


<xsl:template match="/">
<xsl:value-of select = pozdrav"/>
</xsl:template>
sadraj elementa pozdrav prvo se dodeljuje
atributu select
zatim, sadraj elementa pozdrav XSLT
procesor kopira u izlazni dokument

Fakultet organizacionih nauka, 2008.

Primer elemenata za specifikaciju izlaznog


teksta
Pretpostavka: izlazni dokument je HTML dokument

<p> <font>
<xsl:attribute name="color">blue</xsl:attribute>
<xsl:attribute name="size">6</xsl:attribute>
pozdrav xml programera

</font>

</p>

Fakultet organizacionih nauka, 2008.

XSLT procesori
Standalone XSLT procesori
Java XSLT procesor, SAXON, Oracle XSLT, Xalan (Apache
projekat)
Korienje Web Browser-a za XSLT transformacije

- MS Internet Explorer 5.5 i vie verzije


- XSLT procesor u IE je deo MSXML parsera

- Netscape 6.0
- JavaScript
Korienje Web servera za XSLT transformacije


Tri naina za izvravanje XSLT transformacija


-

Java servleti
ASP (Active Server Pages)
JSP (Java Server Pages)
Fakultet organizacionih nauka, 2008.

Primer transformacije XML dokumenta u HTML


dokument
XML dokument (pozdrav.xml):
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl
href=pozdrav.xsl"?>
<Pozdrav>
Hello XML!
</Pozdrav>

eljeni izlaz- HTML dokument


<html>
<head>
<title>pozdrav</title>
</head>
<body>
<p>
<font color="red"
size="14">
pozdrav xml programera
</font>
</p>
<p>
<font color="blue"
size="16">
Hello XML! </font>
</p>
</body>
</html>

Fakultet organizacionih nauka, 2008.

XSLT Stylesheet dokument (pozdrav.xsl)

Fakultet organizacionih nauka, 2008.

Rezultat transformacije

Fakultet organizacionih nauka, 2008.

Obrada XML dokumenata

XML parseri

Fakultet organizacionih nauka, 2008.

XML parser

je softver koji ita XML dokument i ini


dostupnim njegov sadraj i strukturu
aplikaciji preko API-a

API = Application Programming Interfaces

Fakultet organizacionih nauka, 2008.

XML parseri
Postoje dve vrste parsera:

1) XML parseri koji verifikuju samo sintaksnu


ispravnost XML dokumenta (da li je XML
dokument dobro oformljen)
2) XML parseri vre validaciju XML dokumenta u

skladu sa XML emom ili DTD

Fakultet organizacionih nauka, 2008.

Modeli XML parsera

SAX model = Simple API for XML


DOM model = Document Object Model

Fakultet organizacionih nauka, 2008.

Koraci obrade XML dokumenta


1) Parsiranje XML dokumenta (korienjem XML
parsera)
-

Parser formira stablo vorova (DOM),


Parser, za vreme parsiranja, alje dogaaje aplikaciji
(SAX)

2) Obrada dokumenta



Aplikacija pristupa i menja vorove stabla korienjem


interfejsa DOM API
Aplikacija obrauje poslate SAX dogaaje

3) Interpretacija parsiranog XML dokumenta u


aplikaciji
Fakultet organizacionih nauka, 2008.

DOM model (Document Object Model)


Standardni objektno-orjentisani programski
interfejs za obradu XML dokumenata
W3C standard
W3C DOM specifikacija prua samo
definiciju interfejsa za DOM biblioteke, a
ne detalje njihove implementacije
Fakultet organizacionih nauka, 2008.

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

Fakultet organizacionih nauka, 2008.

DOM model
Tipovi vorova u W3C specifikaciji:
-

Document
Element
Attribute
Character data
- Text
- Comment

Metode za pristup i modifikaciju vorova


DOM stabla
Fakultet organizacionih nauka, 2008.

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

Fakultet organizacionih nauka, 2008.

Text
12005

Obrada XML dokumenta korienjem


DOM parsera

DOM parser
- ita XML dokument od poetka do kraja
- formira u memoriji strukturu stabla (DOM
stablo) koja reprezentuje strukturu i sadraj
takvog dokumenta

Fakultet organizacionih nauka, 2008.

Proces obrade XML dokumenata


korienjem DOM parsera
PARSIRANJE

APLIKACIJA
XML
dokument

XML PARSER

GRESKE
Pristup i
modifikacija

DOM stablo

Fakultet organizacionih nauka, 2008.

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.

Korienje DOM parsera

Kada se zahteva
obrada
elemenata u XML dokumentu

veine

Kada se zahteva dinamiki pristup i


manipulacija sa XML dokumentom i
njegovim elementima
XML dokumenta sa sloenom strukturom
Fakultet organizacionih nauka, 2008.

Implementacija DOM modela


DOM parseri u MS .NET-u:
- XmlDocument
- Microsoft XML Parser (za verziju 3.0 MSXML 3.0)
- Microsoft XML Core Services (za verziju 4.0
MSXML 4.0)
MSXML obezbeuje jo i sledee servise:

XSD
XSLT 1.0
SAX
XPath
Fakultet organizacionih nauka, 2008.

Implementacija DOM modela

Java
- JAXP Java API for XML Processing
obezbeuje sledee servise:

DOM
SAX
XSLT

Fakultet organizacionih nauka, 2008.

SAX model ( Simple API for XML )

Event-based
dogaajima)

Razvijen od strane XML-DEV grupe

Industrijski standard

model

(zasnovan

Verzija 1.0 1998


Verzija 2.0 2000

Fakultet organizacionih nauka, 2008.

na

Obrada XML dokumenta korienjem


SAX parsera
SAX parser ita XML dokument kao stream
-

Prilikom itanja XML dokumenta, SAX parser


generie
dogadjaje
kad
god
otkrije
element/atribut/tekst/instrukciju obrade i alje
aplikaciji

Aplikacija obrauje dogaaje generisane od


strane parsera
-

aplikacija implementira odgovarajue hendlere koji


sadre metode kojima se ti dogadjaji obrauju

Fakultet organizacionih nauka, 2008.

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 push model XML parsera

Push model XML parsera


Content Handler
XML
DOKUMENT

SAX parser

Aplikacija
Error Handler

Fakultet organizacionih nauka, 2008.

SAX parser
Prednosti
- Efikasan (veoma brz, uteda memorije)

Nedostaci
- ne kreira memorijsko stablo za reprezentovanje
XML dokumenta
- sekvenicjalni pristup komponentama dokumenta

Fakultet organizacionih nauka, 2008.

Korienje SAX parsera

Kada se ne zahteva dinamiki pristup i


izmena elemenata XML dokumenta
Obrada dokumenta sa prostom strukturom
koja sadre veliki obim podataka

Fakultet organizacionih nauka, 2008.

Primeri SAX parsera

Xerces
(http://xml.apache.org)
Oracle XML Parser
Project X ( Sun )
XML4J
( IBM )
MSXML 4.0 ( Microsoft )

Fakultet organizacionih nauka, 2008.

MS implementacija
W3C XML standarda

.NET XML klase

Fakultet organizacionih nauka, 2008.

MS implementacija W3C XML u


.NET Framework-u

W3C XML Standard


XML 1.0

.NET Framework namespace

.NET XML klase

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

Fakultet organizacionih nauka, 2008.

Obrada XML dokumenata u .NET Framework-u

Postoje dve opcije obrade XML dokumenata:


Preko DOM-a korienjem XmlDocument
klase
Preko Pull modela korienjem XmlReader
klase.
Pull model je nov pristup za rad sa XML
dokumentima

Fakultet organizacionih nauka, 2008.

Pull&Push modeli parsera


Pull model XML parsera

XML
DOKUMENT

XmlReader class

XmlTextReader
XmValidatingReader

Aplikacija

XmNodeReader

Push model XML parsera


Content Handler
XML
DOKUMENT

SAX

Aplikacija
Error Handler

Fakultet organizacionih nauka, 2008.

Pull&Push modeli parsera


Pull model ne formira za XML dokument memorijsko
stablo (slino kao i SAX)
SAX je push model dostavlja dogaaje aplikaciji koja
ih obrauje
Pull model omoguava da aplikacija zahteva
prolaenje kroz XML dokument i zatim selektovanje i
pristup samo zahtevanim vorovima
Prednost Pull modela
Poboljava performanse XmlReader-a

Fakultet organizacionih nauka, 2008.

.NET XML klase: XmlReader klasa

XmlReader je apstraktna klasa


Reprezentuje pull model XML parsera
Memorijski efikasan, forward-only, read-only pristup
XML podacima
XmlReader

XmlTextReader

XmlValidatingReader

Fakultet organizacionih nauka, 2008.

XmlNodeReader

.NET klase: XmlTextReader klasa


Provera da li je XML dokument
oformljen

dobro-

Ne proverava validnost

Konstruktori omoguavaju itanje XML iz


razliitih ulaznih izvora
- datoteka, stream objekat ili TextReader

Read() metoda omoguava navigaciju kroz


vorove XML dokumenta
- obezbeuje
naine
za
itanje
dokumenata, elemenata i atributa

Fakultet organizacionih nauka, 2008.

sadraja

.NET klase: XmlTextReader


Korienje XmlTextReader-a:

Istanciranje XmlTextReader objekta


itanje i obrada podataka
- Parsira XML dokument korienjem Read()
metode u While petlji

Fakultet organizacionih nauka, 2008.

.NET XML klase: xmlTextReader

Fakultet organizacionih nauka, 2008.

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

Fakultet organizacionih nauka, 2008.

.NET XML: klase: XmlWriter

Programsko
dokumenata
TextWriter

generisanje
u
datoteku,

Fakultet organizacionih nauka, 2008.

XML
stream,

.NET XML: klase: XmlWriter


XMLWriter je apstraktna klasa
Reprezentuje brzi, forward-only, memorijski
efikasan XML writer
XmlWriter

XmlTextWriter

XmlNodeWriter

Fakultet organizacionih nauka, 2008.

.NET klase: XmlTextWriter


Korienje XmlTextWriter-a:
1) Istanciranje XmlTextWriter-a (konstruktor)
2) Postavljanje

property-a (za formatiranje

itd.)
3) Izvravanje Write metode za generisanje
XML
4) Izvravanje close() metode
Fakultet organizacionih nauka, 2008.

Primer

Fakultet organizacionih nauka, 2008.

.NET XML klase: XmlDocument


XmlDocument obezbedjuje podrku
DOM modela

W3C

- Reprezentuje XML dokument kao memorijsku


strukturu stabla
- Metode:
Load()
Save()

Izvedena iz XmlNode klase

Fakultet organizacionih nauka, 2008.

.NET klase: XmlDocument


Korienje XmlDocument klase
// konstruktor
XmlDocument doc = new XmlDocument ();
// ucitavanje XML dokumenta
doc.Load ("Studenti.xml");
// ispis sadraj xml dokumenta
Console.WriteLine(doc.InnerXml.ToString ());

Fakultet organizacionih nauka, 2008.

.NET Klase: XslTransform klasa


System.Xml.Xsl namespace
transformie
ulazni
XML
korienjem XSLT stylesheet-a
Kljune metode
- Load
- Transform

Fakultet organizacionih nauka, 2008.

dokument

.NET Klase: XslTransform klasa


// kreiranje XslTransform objekta

XslTransfrom transformacija = new XslTransform;


// punjenje stylesheet doc

transformacija.Load(pozdrav.xsl);
// transformacija

transformacija.Transform(pozdrav.xml,
pozdrav.html);

Fakultet organizacionih nauka, 2008.

.NET Klase: XslTransform klasa

Fakultet organizacionih nauka, 2008.

You might also like