Implementacija Modela XML Parsera
-
Upload
ddrraaggaa -
Category
Documents
-
view
44 -
download
6
Transcript of Implementacija Modela XML Parsera
12.1 Имплементација изабраних XML модела парсера
Implementacija izabranih XML modela parseramodela parsera
12.1 Имплементација изабраних XML модела парсера
W3C XML StandardW3C XML Standard .NET Framework namespace.NET Framework namespace .NET XML klase.NET XML klase
XML 1.0XML 1.0 System.XmSystem.Xmll
XML SchemaXML SchemaSystem.Xml System.Xml
System.Xml.SchemaSystem.Xml.SchemaXmlSchemaXmlSchemaXML SchemaXML Schema System.Xml.SchemaSystem.Xml.Schema
System.Xml.XslSystem.Xml.Xsl
XPathXPath
XSLTXSLT
DOMDOM System.XmlSystem.Xml
System.Xml System.Xml System.Xml.PathSystem.Xml.Path
XslTransform
PathPath
XmlDocumentXmlDocument
Implementacija W3C XML standarda u .NET Framework -u
12.1 Имплементација изабраних XML модела парсера
Obrada XML dokumenata u .NET Framework-u
DvaDva nanačinačina obradeobrade XMLXML dokumenatadokumenata::
•• PrekoPreko DOMDOM modelamodela korišćenjemkorišćenjem XmlDocumentXmlDocumentklaseklaseklaseklase
•• PrekoPreko PullPull modelamodela korišćenjemkorišćenjem XmlReaderXmlReader klaseklase..–– PullPull modelmodel jeje novnov pristuppristup zaza radrad sasa XMLXML
dokumentimadokumentima
12.1 Имплементација изабраних XML модела парсера
Pull model XML parseraPull model XML parsera
XmlReader classXmlReader class AplikacijaAplikacija
XmlTextReaderXmlTextReader
XmValidatingReaderXmValidatingReader
XmNodeReaderXmNodeReader
XMLXMLDOKUMENTDOKUMENT
SAX SAX AplikacijaAplikacija
Content HandlerContent Handler
Error HandlerError Handler
XMLXMLDOKUMENTDOKUMENT
Push model XML parsera
12.1 Имплементација изабраних XML модела парсера
Pull&Push modeli parsera
•• PullPull modelmodel nene formiraformira zaza XMLXML dokumentdokument memorijskomemorijsko stablostablo(slično(slično kaokao ii SAX)SAX)
•• SAXSAX jeje pushpush modelmodel –– dostavljadostavlja dogañajedogañaje aplikacijiaplikaciji kojakoja ihihobrañujeobrañuje
•• PullPull modelmodel omogućavaomogućava dada aplikacijaaplikacija zahtevazahteva prolaženjeprolaženjekrozkroz XMLXML dokumentdokument ii zatimzatim selektovanjeselektovanje ii pristuppristup samosamozahtevanimzahtevanim čvorovimačvorovima
•• PrednostPrednost PullPull modelamodela–– PoboljšavaPoboljšava performanseperformanse XmlReaderXmlReader--aa
12.1 Имплементација изабраних XML модела парсера
XmlReader klasa•• XmlReader XmlReader je aje apstraktna klasapstraktna klasa•• RReeprezentujeprezentuje pullpull modelmodel XMLXML parseraparsera•• MemorijskiMemorijski efikasan,efikasan, forwardforward--only,only, readread--onlyonly pristuppristup XMLXML
podacimapodacima
XmlReaderXmlReaderXmlReaderXmlReader
XmlTextReaderXmlTextReader XmlNodeReaderXmlNodeReaderXmlValidatingReaderXmlValidatingReader
12.1 Имплементација изабраних XML модела парсера
XmlTextReader klasa
•• ProveraProvera dada lili jeje XMLXML dokumentdokument dobrodobro--oformljenoformljen–– NeNe proveravaproverava validnostvalidnost
•• KonstruktoriKonstruktori omogućavajuomogućavaju čitanječitanje XMLXML iziz razlrazličičitihitih ulaznihulaznihizvoraizvora-- datotekdatotekaa,, streamstream objekatobjekat iliili TextReaderTextReader-- datotekdatotekaa,, streamstream objekatobjekat iliili TextReaderTextReader
• Read() metodametoda omoguomogućavaćava navigacijunavigaciju krozkroz čvorovečvorove XMLXMLdokumentadokumenta-- obeobezbezbeñujeñuje načinenačine zaza čitanječitanje sadržajasadržaja dokumenata,dokumenata,
elemenataelemenata ii atributaatributa
12.1 Имплементација изабраних XML модела парсера
XmlTextReader klasa
Korišćenje Korišćenje XmlTextReaderXmlTextReader--a:a:
•• IstanciranjeIstanciranje XmlTextReaderXmlTextReader objektaobjekta
•• ČitanjeČitanje ii obradaobrada podatakapodataka-- ParsiraParsira XMLXML dokumentdokument korikorišćenjemšćenjem Read()Read() metodemetode uu
WhileWhile petljipetlji
12.1 Имплементација изабраних XML модела парсера
XmlTextReader klasa
12.1 Имплементација изабраних XML модела парсера
XmlValidatingReader& XmlNodeReader klase
•• XmlValidatingReaderXmlValidatingReader obezbeñujeobezbeñuje podrškupodršku zaza validacijuvalidacijuXMLXML dokumentadokumenta uu skladuskladu sasa XSDXSD
•• XmlNodeReaderXmlNodeReader omogućavaomogućava čitanječitanje podstablapodstabla XMLXML DOMDOMstablastabla-- NeNe podržavapodržava validacijuvalidaciju
12.1 Имплементација изабраних XML модела парсера
xmlWriterxmlWriter klasaklasa•• ProgramskoProgramsko generisanjegenerisanje XMLXML dokumenatadokumenata uu datotekdatotekuu,, strstreaeam,m,
TextWriterTextWriter•• XMLWriterXMLWriter jeje aapstraktnapstraktna klasaklasa•• ReprezentujeReprezentuje brzi,brzi, forwardforward--only,only, memorijskimemorijski efikasanefikasan XMLXML writerwriter
XmlWriterXmlWriterXmlWriterXmlWriter
XmlTextWriterXmlTextWriter XmlNodeWriterXmlNodeWriter
12.1 Имплементација изабраних XML модела парсера
xmlTextWriterxmlTextWriter klasaklasa
KoriKorišćenješćenje XmlTextWriterXmlTextWriter--aa::
1)1) IstanciranjeIstanciranje XmlTextWriterXmlTextWriter--aa (konstruktor)(konstruktor)2)2) PostavljanjePostavljanje propertyproperty--aa (za(za formatiranjeformatiranje itditd..))2)2) PostavljanjePostavljanje propertyproperty--aa (za(za formatiranjeformatiranje itditd..))3)3) IzvršavanjeIzvršavanje WriteWrite metodemetode zaza generisanjegenerisanje XMLXML4)4) IzvršavanjeIzvršavanje CloseClose()() metodemetode
12.1 Имплементација изабраних XML модела парсера
12.1 Имплементација изабраних XML модела парсера
XMLDocumentXMLDocument klasaklasa
•• XmlDocumentXmlDocument obezbedjujeobezbedjuje podrškupodršku WW33CC DOMDOM modelamodela-- ReprezentujeReprezentuje XMLXML dokumentdokument kaokao memorijskumemorijsku strukturustrukturu
stablastabla
•• IzvedenaIzvedena iziz XmlNodeXmlNode klaseklase
12.1 Имплементација изабраних XML модела парсера
•• Korišćenje Korišćenje XmlDocumentXmlDocument klaseklase
// konstruktor// konstruktorXmlDocument doc = new XmlDocument ();XmlDocument doc = new XmlDocument ();// ucitava// ucitavanjenje XMLXML dokumentdokumentaadoc.Load ("Studenti.xml");doc.Load ("Studenti.xml");// ispis sadr// ispis sadržaj xml dokumentažaj xml dokumentaConsole.WriteLine(doc.InnerXml.ToString ());Console.WriteLine(doc.InnerXml.ToString ());
12.1 Имплементација изабраних XML модела парсера• DOM tretira XML podatke kao standardni skup objekata.
• System .Xml namespace pruža programsku reprezentaciju XMLdokumenata i čvorova.– zasnovan je na W3C DOM Level 1 Core i DOM Level 2 Core
preporukama.
• Koncepti koje pruža System.Xml namespace: • Koncepti koje pruža System.Xml namespace: – XmlDocument– XmlNode– XmlNodeList– XmlAttribute– XmlAttributeCollection– ChildNodes …
• Dakle, kao rezultat parsiranja dobija se XmlDocument klasa i klasekoje su sa njom povezane.
12.1 Имплементација изабраних XML модела парсера
• XmlNode objekat je osnovni objekat DOM stabla i predstavlja konkretan čvor(tag).
• Objekat klase XmlNode može predstavljati:
– ceo xml document – npr. dokument Univerzitet.xml
– samo jedan čvor – <naziv> FON</naziv>
– gde se čvor može sastojati i od drugih čvorova:
– a takoñe i XML atribut – <univerzitet tip=”državni”>gde je tip atribut čvora univerzitet.
12.1 Имплементација изабраних XML модела парсера• Izvedene klase:
– XmlDocument – XmlDocumentFragment – XmlAttribute – XmlEntity – XmlLinkedNode – XmlNotation – XmlNotation
• XmlNode klasa pruža skup metoda i svojstava pomoću kojihse može uzeti ceo čvor, kao i informacije koje taj čvor sadrži(npr. tekst).
12.1 Имплементација изабраних XML модела парсера•• Attributes {get;}Attributes {get;} vraća sve atribute koji pripadaju tekućem čvoru. Atributi
su smešteni u klasu - kolekciju: XmlAttributeCollection.
•• ChildNodesChildNodes {get;}{get;} vraća sve čvorove koji se nalaze unutar tekućeg čvora. Čvorovi su smešteni u klasu – kolekciju: XmlNodeList.
•• NodeTypeNodeType {get;}{get;} enumeracija tipa XmlNodeType koja ukazuje na to kogje tipa čvor u XML dokumentu.je tipa čvor u XML dokumentu.
– (Attribute , Document , Element, Text, XmlDeclaration .... )
•• InnerTextInnerText vraća string koji predstavlja tekst koji se nalazi unutar tekućegčvora.
•• InnerXmlInnerXml vraća string koji predstavlja XML čvorove koji se nalaze unutartekućeg čvora.
•• OuterXmlOuterXml vraća string koji predstavlja tekući čvor sa svim svojimpodčvorovima kao XML element.
12.1 Имплементација изабраних XML модела парсера•• AppendChildAppendChild (XmlNode node)
– u tekući čvor ubacuje novi kao poslednji.
•• PrependChildPrependChild (XmlNode node) – u tekući čvor ubacuje novi kao prvi.
•• InsertAfterInsertAfter (XmlNode newNode, XmlNode refNode)
•• InsertBeforeInsertBefore (XmlNode newNode, XmlNode refNode)
•• RemoveChildRemoveChild (XmlNode oldChild)
•• RemoveAllRemoveAll ()
INDEXER: INDEXER: •• [string name][string name] vraća čvor koji se nalazi unutar tekućeg čvora sa nazivom
“name” kao objekat klase XmlNode.
12.1 Имплементација изабраних XML модела парсера
• XmlDocument objekat predstavlja konkretan XML dokument isadrži sve informacije o njemu.
• Sam dokument se posmatra kao jedan čvor koji predstavljavrh stabla i sadrži sve ostale čvorove uključujući i čvor kojivrh stabla i sadrži sve ostale čvorove uključujući i čvor kojipredstavlja koreni element dokumenta, koji dalje sadrži svečvorove u dokumentu: elemente, atribute.
12.1 Имплементација изабраних XML модела парсераPOLJA (SVOJSTVA):POLJA (SVOJSTVA):•• DocumentElementDocumentElement {get;} {get;}
– vraća root element XML dokumenta.
•• XmlDocumentXmlDocument klasa obezbedjuje metode za manipulaciju dokumentom ucelini kao što su:– učitavanje postojećeg dokumenta u memoriju,– učitavanje postojećeg dokumenta u memoriju,– čuvanje XML-a u datoteku– pregled i manipulaciju svih čvorova u dokumentu.
• Nisu prikazana ona polja i metode koje se nasleñuju od klase XmlNode.
12.1 Имплементација изабраних XML модела парсера•• CreateAttributeCreateAttribute (string name)
– pravi objekat tipa XmlAttribute sa nazivom name.
•• CreateElementCreateElement (string name) – pravi objekat tipa XmlElement sa nazivom name.– Klasa XmlElement je izvedena iz klase XmlLinkedNode, koja je
izvedena iz klase XmlNode.
•• GetElementsByTagNameGetElementsByTagName (string name) – vraća sve tagove koji se zovu “name” a pripadaju tekućem čvoru.
•• LoadLoad (string filename) – učitava XML dokument sa lokacije filename.
•• SaveSave(string filename) – snima promene nastale u memoriji u XML dokument na lokaciji
filename.
12.1 Имплементација изабраних XML модела парсера
• Kada postoji referenca na dokument moguće je kretanje po hijerarhiji.
• Preko XmlDocumentXmlDocument objekta može se pristupiti ChildNodesChildNodessvojstvu, koji pruža mogućnost pristupa svim čvorovima usvojstvu, koji pruža mogućnost pristupa svim čvorovima udokumentu, sa vrha na dole.– Čvorovi se pojavljuju u istom redosledu u kome su se
nalazili u XML datoteci.
•• ChildNodesChildNodes svojstvo imaju i svi ostali čvorovi u hijerarhiji.
12.1 Имплементација изабраних XML модела парсера
• Predstavlja ureñenu listu objekata tipa XmlNode
POLJA (SVOJSTVA):POLJA (SVOJSTVA):•• CountCount
– broj članova liste.– broj članova liste.
METODE:METODE:•• ItemItem (int index)
– vraća objekat tipa XmlNode koji nalazi na rednom mestuindex u listi.
12.1 Имплементација изабраних XML модела парсера•• XmlAttributeXmlAttribute objekat predstavlja atribut.
– Jedna od karakteristika DOM-a je način na koji se tretirajuatributi.
– Atributi nisu čvorovi, deca elementa, već se smatraju svojstvomelementa i sastoje se od imena i vrednosti.
•• XmlAttributeCollectionXmlAttributeCollection klasa sadrži sve atribute odredjenog•• XmlAttributeCollectionXmlAttributeCollection klasa sadrži sve atribute odredjenogelementa. – Svaki član ove kolekcije predstavlja XmlAttribute objekat.
POLJA (SVOJSTVA):POLJA (SVOJSTVA):•• CountCount
– broj elemenata u listi.
12.1 Имплементација изабраних XML модела парсера•• AppendAppend (XmlAttribute node )
– ubacuje atribut u kolekciju kao poslednji poslednji.
•• PrependPrepend (XmlAttribute node )– ubacuje atribut u u kolekciju kao prvi.
•• InsertAfterInsertAfter (XmlAttribute newNode, XmlAttribute refNode)
•• InsertBeforeInsertBefore (XmlAttribute newNode, XmlAttribute refNode)•• InsertBeforeInsertBefore (XmlAttribute newNode, XmlAttribute refNode)
•• ItemItem (int index) – vraća XML atribut koji se nalazi na rednom mestu index u kolekciji.
•• RemoveRemove (XmlAttribute node)
•• RemoveAtRemoveAt (int i)
•• RemoveAllRemoveAll ()
•• GetNamedItemGetNamedItem (string name)
12.1 Имплементација изабраних XML модела парсера• .NET Framework omogućava i manipulisanje XML šemama pomoću SOM-
a.
• SOM radi sa XML šemama na sličan način kao što DOM radi sakonkretnim XML dokumentima.
• Sastoji se od velikog skupa klasa koje se nalaze u SystemSystem ..XmlXml..SchemaSchemanamespace-u.
• Ove klase korespondiraju osnovnim elementima XML šeme koji supropisani od strane W3C-a.– (schema, element, attribute, complexType, simpleType, attributeGroup,
sequence, choice...)
12.1 Имплементација изабраних XML модела парсера
Implementacija izabranih XML Implementacija izabranih XML transformacija
12.2 Имплементација XSLT трансформације
Implementacija XSLT transformacije
12.2 Имплементација XSLT трансформације
XslTransform klasa
•• SystemSystem..XmlXml..XslXsl namespacenamespace
•• transformitransformiššee ulazniulazni XMLXML dokumentdokument korikorišćšćenjemenjemXSLTXSLT stylesheetstylesheet--aaXSLTXSLT stylesheetstylesheet--aa
•• KljučneKljučne metodemetode-- LoadLoad-- TransformTransform
12.2 Имплементација XSLT трансформације
XslTransform klasa
// kreiranje XslTransform objekta
XslTransfrom transformacija = new XslTransform;// punjenje stylesheet doc// punjenje stylesheet doc
transformacija.Load(“pozdrav.xsl”);// transformacija
transformacija.Transform(“pozdrav.xml”, “pozdrav.html”);
12.2 Имплементација XSLT трансформације