to je XML XML Extensible Markup Language Svrha
Što je XML? • XML – Extensible Markup Language • Svrha: – Razmjena podataka – Pohrana podataka • EDI - XML
Obilježja XML-a • • Osnovni element: znak (character) Sveopća namjena Kompatibilnost s IP Korištenje od različitih aplikacija/platformi
Prednosti i nedostaci Prednosti • • Nedostaci Čitljiv format • Hijerarhijski model Prikaz najčešćih ima ograničenja s struktura obzirom na relacijski Internacionalni • Teško preslikavanje standardi za format u relacijski ili OO zapisa model Hijerarhijska struktura prikladna za većinu vrsta dokumenata • Neovisnost o platformi
Sintaksa i primjeri XML dokumenata <? xml version="1. 0" encoding="ISO-8859 -1"? > <poruka> <za>Marko</za> <od>Ana</od> <naslov>Podsjetnik</naslov> <tekst>Nemoj zaboraviti ovaj vikend!</tekst> </poruka> Svi XML tagovi moraju imati tag za zatvaranje te su osjetljivi su na velika/mala slova. <Poruka>Ovo je neispravno</poruka> <poruka>Ovo je ispravno</poruka>
Sintaksa i primjeri XML dokumenata Vrijednosti atributa moraju se pisati unutar navodnih znakova. <? xml version="1. 0" encoding="ISO-8859 -1"? > <poruka datum=“ 12/11/2002“> <za>Marko</za> <od>Ana</od> </poruka> Imena ne smiju sadržavati razmake između 2 riječi <cd katalog> - krivo napisani tag <cd_katalog> - ispravno napisani tag Komentari <!--Ovo je komentar -->
Ispravnost XML dokumenta Dokument mora biti: – Dobro formiran (Well-formed) • Sukladan pravilima sintakse • npr. tagovi zatvoreni – Valjan (Valid) • Odgovara pravilima definiranim od strane korisnika, ili XML Schemi • npr. na mjestu predviđenom za broj ne smije biti tekst
Dobro formirani XML dokumenti Pravila: – Samo jedan root element – Neprazni elementi moraju biti delimitirani • Za svaki početni postoji završni tag – Prazni elementi mogu biti označeni samozatvarajućim tagom • <prazan></prazan> <prazan /> – Vrijednosti atributa moraju biti unutar navodnika – Tagovi mogu biti ugniježđeni, no ne smiju se preklapati – Sadržaj mora biti sukladan definiciji character seta
Valjanost XML dokumenta • Po strukturi je sukladan zadanoj shemi • Danas postoji više standarda XML shema – Najstariji je DTD (Document Type Definition) • Mnogo nedostataka – XML Schema • Nasljednik DTD-a • Kompliciran i opširan – RELAX NG, ISO DSDL
DTD • Document Type Definition • Definira “građevne” blokove XML dokumenta. • DTD možemo deklarirati: – Unutar XML dokumenta – Kao eksternu referencu (. dtd dokument)
Zašto koristiti DTD? • Sa DTD-om, svaki XML dokument nosi opis vlastitog formata • Sa DTD-om moguće je koristiti jedinstven DTD za razmjenu podataka • Aplikacija može koristiti standardni DTD za provjeru ispravnosti podataka
Primjer DTD <!ELEMENT people_list (person*)> <!ELEMENT person (name, birthdate? , gender? , socialsecuritynumber? )> <!ELEMENT name (#PCDATA)> <!ELEMENT birthdate (#PCDATA)> <!ELEMENT gender (#PCDATA)> <!ELEMENT socialsecuritynumber (#PCDATA)>
XMLSchema • XMLSchema je XML bazirana alternativa za DTD • XMLSchema opisuje strukturu XML dokumenta • XMLSchema jezik također nazivomo i XML Schema Definition (XSD)
Zašto koristiti XMLSchemu? • XMLSchema podržava tip podataka (datatype) • XMLSchema koristi XML sintaksu • XMLSchemas osigurava komunikaciju između podataka • XMLSchema je proširiva
Primjer <xs: schema xmlns: xs="http: //www. w 3. org/2001/XMLSchema"> <xs: element name="country" type="Country"/> <xs: complex. Type name="Country"> <xs: sequence> <xs: element name="name" type="xs: string"/> <xs: element name="population“ type="xs: decimal"/> </xs: sequence> </xs: complex. Type></xs: schema>
<!ELEMENT Tecajna. Lista (Zaglavlje, Tecajevi*)> <!ELEMENT Zaglavlje (Broj. TL, Datum. Utvrdjenja, Datum. Vrijedi. Od)> <!ELEMENT Broj. TL (#PCDATA)> <!ELEMENT Datum. Utvrdjenja (#PCDATA)> <!ELEMENT Datum. Vrijedi. Od (#PCDATA)> <!ELEMENT Tecajevi (Tecaj)> <!ELEMENT Tecaj (Sifra. Valute, Valuta, Jedinica, Kupovni. Za. Devize, Srednji, Prodajni. Za. Devize)> <!ELEMENT Sifra. Valute (#PCDATA)> <!ELEMENT Valuta (#PCDATA)> <!ELEMENT Jedinica (#PCDATA)> <!ELEMENT Prodajni. Za. Devize (#PCDATA)> <!ELEMENT Srednji (#PCDATA)> <!ELEMENT Kupovni. Za. Devize (#PCDATA)>
<? xml version="1. 0" encoding="ISO-8859 -2" ? > <Tecajna. Lista> <Zaglavlje> <Broj. TL>67</Broj. TL> <Datum. Utvrdjena>04. 2007</Datum. Utvrdjena> <Datum. Vrijedi. Od>05. 04. 2007</Datum. Vrijedi. Od> </Zaglavlje> <Tecajevi> <Tecaj> <Sifra. Valute>036</Sifra. Valute> <Valuta>AUD</Valuta> <Jedinica>1</Jedinica> <Kupovni. Za. Devize>4. 469885</Kupovni. Za. Devize> <Srednji>4. 515035</Srednji> <Prodajni. Za. Devize>4. 564700</Prodajni. Za. Devize> </Tecaj> <Tecaj> <Sifra. Valute>124</Sifra. Valute> <Valuta>CAD</Valuta> <Jedinica>1</Jedinica> <Kupovni. Za. Devize>4. 756874</Kupovni. Za. Devize> <Srednji>4. 800075</Srednji> <Prodajni. Za. Devize>4. 852876</Prodajni. Za. Devize> </Tecaj> </Tecajevi>
eb. XML • Electronic Business using e. Xtensible Markup Language ili e-business XML • Cilj: osigurati interoperabilan, siguran i nepromjenjiv način korištenja poslovnih informacija
c. XML • Commerce XML • Omogućuje komunikaciju putem poslovnih dokumenata – Npr. distribucijski centri, dobavljači, e-business općenito • Posebne sheme za standardne poslovne transakcije – Lakša povezanost aplikacija • Prednosti: – – Laka implementacija Najrašireniji B 2 B protokol Lako proširiv Besplatan
fin. XML • Jedinstven standard za razmjenu podataka na tržištu kapitala • Omogućuje elektroničku razmjenu kompliciranih i strukturiranih financijskih dokumenata i transakcija • Važan i za financijske procese općenito u e-poslovanju
XSL • e. Xtensible Stylesheet Language • Sastoji od 3 djela: – XSLT – jezik za transformaciju XML dokumenta – XPath – jezik za navigaciju unutar XML dokumenta – XSL-FO – jezik za formatiranje XML dokumenta
XSLT • XSL Transformations • Najvažniji dio XSL
XPath • XPath se koristi za navigaciju kroz elemente, atribute u XML dokumentu. • Primjer: A/B/C
XSL-FO • XSL Formatting Object • Za formatiranje XML podataka za izlaz
XML alati • • Altova XMLSpy® 2007 Stylus Studio® XML Professional 2007 <o. Xygen/> XML Editor 8. 0 XMLwriter
Altova XMLSpy® 2007 • XMLSpy je IDE za razvoj XML projekata • Može se koristiti: – uređivanje i procesiranje XML-a – importiranje i eksportiranje iz XML dokumenata – konverziju između određenih tipova XML dokumenata – povezivanje različitih vrsta XML dokumenata – obradu dokumenata s ugrađenim XSLT 1. 0/2. 0 procesorom
XMLSpy - mogućnosti • • • Kreiranje i uređivanje XML dokumenata Razvoj vizualne XML sheme Uređivanje DTD-a Razvoj i debugiranje XSLT 1. 0/2. 0 Razvoj i debugiranje XQuery-a Razvoj i analiza XPath 1. 0/2. 0 Razvoj Web servisa Kreiranje i uređivanje grafičkog WSDL-a Razvoj i debugiranje SOAP-a Java, C++, C# generiranje koda
XMLSpy - pogledi • XMLSpy® 2007 ima pet sinkroniziranih pogleda za omogućavanje rada s bilo XML dokumentom – Advanced Text View – Enhanced Grid View – XML Schema / WSDL Design View – Authentic View – Browser View
XMLSpy - Advanced Text View
XMLSpy - Enhanced Grid View
XMLSpy - XML Schema / WSDL Design View
XMLSpy - Authentic View
XMLSpy - Browser View
XML shema editor • U XML shema editoru možemo dobiti opis vrste XML dokumenta, izražen terminologijom ograničenja nad strukturom i sadržajem tih vrasta dokumenata • XML shema pruža pogled na vrstu dokumenta s relativno visokog stupnja apstrakcije
XML shema editor • Primjer XSD-a za opis države <xs: schema xmlns: xs="http: //www. w 3. org/2001/XMLSchema"> <xs: element name="country" type="Country"/> <xs: complex. Type name="Country"> <xs: sequence> <xs: element name="name" type="xs: string"/> <xs: element name="population" type="xs: decimal"/> </xs: sequence> </xs: complex. Type> </xs: schema>
Document Type Definition (DTD) editor • U DTD-u je opisana struktura klase unutar dokumenta kao deklaracija elemenata odnosno lista atributa • DTD je stariji način određivanja pravila strukture XML dokumenta • Deklaracija svakog DTD elementa započinje oznakom <!ELEMENT i završava znakom >
Document Type Definition (DTD) editor • Primjer XML DTD-a koji opisuje listu ljudi <!ELEMENT people_list (person*)> <!ELEMENT person (name, birthdate? , gender? , socialsecuritynumber? )> <!ELEMENT name (#PCDATA)> <!ELEMENT birthdate (#PCDATA)> <!ELEMENT gender (#PCDATA)> <!ELEMENT socialsecuritynumber (#PCDATA)>
XSL/XSLT • XMLSpy pruža mogućnost potpunog XSLT uređivanja, vizualne transformacije i debugginga za XSLT 1. 0 i XSLT 2. 0 • XMLSpy XSLT debugger uključuje trodjelno sučelje za prikaz XML dokumenta, podržanog XSLT 1. 0 ili 2. 0 stilskim stranicama, i izlazni dokument koji se kompajlira u realnom vremenu
XMLSpy XSLT debugger
Generator koda • • • XMLSpy ima ugrađen generator koda za automatsko genriranje Java, C++ ili C# klasa iz definicije XML sheme Elementi modela podataka u XML shemi prikazani koristeći XMLSpy Schema Editor XMLSpy automatki generira datoteke klasa koja odgovara definiranim elemntima u modelu podataka
Generator koda
Stylus Studio® XML Professional 2007 • Stylus Studio je programski paket odjela Data. Direct Technologies koji djeluje sklopu Progress Software Corporation • Stylus Studio predstavlja sveobuhvatni alat koji pomaže programerima XML-a i stručnjacima za integraciju podataka prilikom upravljanja XML podacima
Stylus Studio® XML Professional 2007 • Stylus Studio se sastoji od nekoliko editora koji korisnicima omogućuju mnoštvo različitih pogleda uključujući tekstualni pogled, pogled pomoću stabla ili mreže • Složeni XML kodovi kao što su XQuery, XSLT, XML Schema ili SQL/XML upiti mogu se intuitivno riješiti korištenjem odgovarajućih editora koji omogućuju drag -and-drop ili vizualni dizajn
Stylus Studio® XML Professional 2007 • Stylus Studio posjeduje različite mogućnosti: – – – – – XML editori XSL/XSLT alati XQuery (XML Query) alati XML Schema editor Document Type Definition (DTD) editor XPath alati Alati za web servise XML alati za mapiranje Import/Export uslužni programi za sve XML datoteke i relacijske podatke
Stylus Studio® XML Professional 2007 • • • Alati za povezivanje s relacijskim bazama podataka Java i XML alati HTML/XHTML i alati za web dizajn Microsoft i XML alati Podrška za Data. Direct XQuery 2. 0 Novi XPath Query editor Novi Java APIs Podrška za Saxon 8. 7. 1 XSLT i XQuery Processor Podrška za Data. Direct konekciju JDBC 3. 6 Poboljšani pristup relacijskim bazama podataka u XQuery editoru i XQuery jeziku
Stylus Studio® XML Professional 2007
<o. Xygen/> XML Editor 8. 0 • Jednostavan i elegantan izgled Oxygen editora u kombinaciji s mnogostrukim mogućnostima za editiranje XML-a su učinili ovaj programski popularnim u korporacijiskim i akademskim krugovima • Oxygen osigurava potrebne alate za kreiranje dokumenata i njihovo objavljivanje
<o. Xygen/> XML Editor 8. 0 • Mogućnosti Oxygen XML Editora su: – XML Grid Editor – XML Database Perspective – Podrška za spremanje/učitavanje izgleda editora – Precizno izvještavanje o XML pogreškama – Učinkovito dovršavanje sadržaja koje može pratiti DTD, Relax NG ili XML sheme – XML i XSL dokumenti se mogu lako povezivati jedni s drugima i rezultati preoblikovanja se mogu lako vidjeti kao tekst ili HTML. – Omogućuje vizualni editor za W 3 C XML sheme i Relax NG sheme
<o. Xygen/> XML Editor 8. 0 – Validira XML, XSLT, XQuery, XSL-FO, XSD, RNG, RNC, NRL, DTD, Schematron, WSDL i CSS sadržaj – Oxygen olakšava dijeljenje dokumenata između autora sadržaja uz pomoć Subversion Clienta – Uključujući Apache FO Processor u mogućnosti je kreirati PDF i Post. Script – Traženje pogrešaka i profiliranje se mogu napraviti korištenjem najnovijih verzija Xalan-a, Saxon-a 6 ili Saxon 8 – Dolazi s najnovijim Docbook DTD-om i stilovima. – Više dokumenata se može logički oraganizirati unutar jednog projekta
<o. Xygen/> XML Editor 8. 0 – Omogućava posebno sučelje za traženje pogršaka – Omogućava podršku za uvođenje sadržaja baza podataka, Microsoft Excel proračunskih tablica i tekstualnih datoteka u XML dokumente – Uključujući Apache FO Processor u mogućnosti je kreirati PDF i Post. Script – Traženje pogrešaka i profiliranje se mogu napraviti korištenjem najnovijih verzija Xalan-a, Saxon-a 6 ili Saxon 8 – Dolazi s najnovijim Docbook DTD-om i stilovima – Više dokumenata se može logički oraganizirati unutar jednog projekta
<o. Xygen/> XML Editor 8. 0 • Podržani standardi: – – – – – XML 1. 0 (Third Edition) XSLT 1. 0 XSLT 2. 0 XML Schema Part 1 XML Schema Part 2 XML Inclusions (XInclude) Version 1. 0 XPath 2. 0 XQuery 1. 0 Namespaces in XML Unicode 3. 2 TEI XSL Formatting Objects Web Services Description Language (WSDL) 1. 1 Relax NG Scalable Vector Graphics (SVG) 1. 1 CSS 2. 1 Schematron Doc. Book
<o. Xygen/> XML Editor 8. 0
XMLwriter • XMLwriter je XML editor na Windows platformi dizajniran kako bi pomogao web-editorima i programerima da steknu znanja o XML-u i posljednjim tehnologijama vezanim za XML kao što su XSLT i XSD shema • Povećanju fleksibilnosti XMLwriter-a doprinosi User Tools koji može bitii konfiguriran na taj način da pokreće vanjske aplikacije
XMLwriter • Mogućnosti XML writera: – – – Validacija XML dokumenta nad DTD/XML shemom Transformacija XSL-a Odgovara posljednjim W 3 C propisima Mogućnosti plug-ina za različite parsere i alate Intelligent Entry Helpers za pomoć u editoru Vizualni i interaktivni prikaz DTD-a i XML shema dokumenata u Tag. Bar Code Snippets za brz unos teksta koji se ponavlja Generiranje uzoraka XML-a iz DTD/XSD sheme Konverzija DTD-a u XML shemu i obrnuto Upravljanje projektom Naglašavanje različitih elemenata sintakse različitim bojama
Validacija XML dokumenta nad DTD/XML shemom • XMLwriter koristi Microsoft MSXML parser kao default parser za validaciju XML dokumenata nad DTD i XSD shemom. Validacija je također podržana i za XDR sheme • MSXML parser se regularno nadopunjava od strane Microsofta kako bi bili u tijeku s posljednjim W 3 C specifikacijama • Ako preferirate koristiti različite parsere za validaciju, možete korigirati posebne parsere unutar XMLwriter-a plug-in and User Tools. Plug-inovi i User Tools podupiru parser kao što je Apache Xerces • XMLwriter može validirati slijedeće tipove datoteka: XML, DTD, XSD Schema, and XSLT
Transformacija XSL-a • XMLwriter koristi Microsoft MSXML parser za izvođenje XSL transformcija • MSXML parser se regularno nadopunjava od strane Microsofta kako bi bili u tijeku s posljednjim XSL W 3 C specifikacijama • XMLwriter ima vlastiti XSL engine za transformacije, ali ukoliko želite korititi neki drugi parser, potrebno je korigirati posebne parsere unutar XMLwriter-a plug-in and User Tools. Plug -inovi i User Tools podupiru parser kao što je Apache Xalan
Entry Helper • XMLwriter uključuje inteligentne popup prozore (Entry Helper) koji pomažu pri procesu unosa. Popup prozori se prikazuju kod XML-a, XSLT-a, XML shem, DTD-a, XHTML-a i HTML dokumenata. On se prikazuje kada se utipka znak za lijevu zagradu (<) u aktivni prozor dokumenta. XMLwriter također sadrži Auto-complete mogućnost koja završava tag set pri unosu taga koji nije unutar Entry Helper-a. • XML Entry Helper automatski umeće REQUIRED i FIXED atribute, i prikazuje Attribute Entry Helper za IMPLIED i ENUMERATED atribute. • XML Entry Helper prikazuje dostupne entitete definirane unutar DTD-a i W 3 C XML specifikacija
Tag. Bar in Tree Layout Mode • Tag. Bar je alat koji omogućava kreiranje XML dokumenata baziranim na DTD ili XML shemama • U Tree layout modu, Tag. Bar prikazuje DTD/XML shemu kao priširivu stablo elemenata • Flat layout mod prikazuje abecedni popis svih elemenata definiranih unutar DTD/XML sheme ukljulujući njihove elemente na nižioj hijerarhiji i njihove atribute.
Code Snippets • Pomoću Code Snippet-a imamo mogućnost za drag and drop koda direktno u prozor dokumenta • XMLwriter uključuje šest Snippet datoteka: – – – XML-DTD reference XSD shema reference XSLT reference XHTML reference HTML entiteti
XMLwriter
<!ELEMENT Tecajna. Lista (Zaglavlje, Tecajevi*)> <!ELEMENT Zaglavlje (Broj. TL, Datum. Utvrdjenja, Datum. Vrijedi. Od)> <!ELEMENT Broj. TL (#PCDATA)> <!ELEMENT Datum. Utvrdjenja (#PCDATA)> <!ELEMENT Datum. Vrijedi. Od (#PCDATA)> <!ELEMENT Tecajevi (Tecaj)> <!ELEMENT Tecaj (Sifra. Valute, Valuta, Jedinica, Kupovni. Za. Devize, Srednji, Prodajni. Za. Devize)> <!ELEMENT Sifra. Valute (#PCDATA)> <!ELEMENT Valuta (#PCDATA)> <!ELEMENT Jedinica (#PCDATA)> <!ELEMENT Prodajni. Za. Devize (#PCDATA)> <!ELEMENT Srednji (#PCDATA)> <!ELEMENT Kupovni. Za. Devize (#PCDATA)>
<? xml version="1. 0" encoding="ISO-8859 -2" ? > <Tecajna. Lista> <Zaglavlje> <Broj. TL>67</Broj. TL> <Datum. Utvrdjena>04. 2007</Datum. Utvrdjena> <Datum. Vrijedi. Od>05. 04. 2007</Datum. Vrijedi. Od> </Zaglavlje> <Tecajevi> <Tecaj> <Sifra. Valute>036</Sifra. Valute> <Valuta>AUD</Valuta> <Jedinica>1</Jedinica> <Kupovni. Za. Devize>4. 469885</Kupovni. Za. Devize> <Srednji>4. 515035</Srednji> <Prodajni. Za. Devize>4. 564700</Prodajni. Za. Devize> </Tecaj> <Tecaj> <Sifra. Valute>124</Sifra. Valute> <Valuta>CAD</Valuta> <Jedinica>1</Jedinica> <Kupovni. Za. Devize>4. 756874</Kupovni. Za. Devize> <Srednji>4. 800075</Srednji> <Prodajni. Za. Devize>4. 852876</Prodajni. Za. Devize> </Tecaj> </Tecajevi>
- Slides: 65