Infrastruktura za elektronsko poslovanje (SI3IEP) Nemanja Kojić XML. extensible Markup Language. Copyright (C) 2010 by Nemanja Kojić

Similar documents
11. EXTENSIBLE MARKUP LANGUAGE (XML)

XML. Miroslav Trajanović. Šta je XML

XML (Extensible Markup Language)

Data formats. { "firstname": "John", "lastname" : "Smith", "age" : 25, "address" : { "streetaddress": "21 2nd Street",

COMP9321 Web Application Engineering

markup language carry data define your own tags self-descriptive W3C Recommendation

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

XML extensible Markup Language

Software Engineering Methods, XML extensible Markup Language. Tutorial Outline. An Example File: Note.xml XML 1

XML. Presented by : Guerreiro João Thanh Truong Cong

Bioinforma)cs Resources XML / Web Access

Extensible Markup Language (XML) Hamid Zarrabi-Zadeh Web Programming Fall 2013

COMP9321 Web Application Engineering

EXtensible Markup Language XML

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Programiranje III razred

VRIJEDNOSTI ATRIBUTA

EXtensible Markup Language XML

Web Programming Paper Solution (Chapter wise)

2. XML jezik za označavanje

Web services CSCI 470: Web Science Keith Vertanen Copyright 2011

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

CS6501 IP Unit IV Page 1

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

but XML goes far beyond HTML: it describes data

COMP9321 Web Application Engineering. Extensible Markup Language (XML)

EXtensible Markup Language (XML) a W3C standard to complement HTML A markup language much like HTML

Web Computing. Revision Notes

Uputstvo za korišćenje logrotate funkcije

Uvod u relacione baze podataka

HTML5. Web Hypertext Application Technology Working Group (WHATWG) grupa koja odžava i poboljšava HTML od 2004 godine

RDF, RDFS i JSON-LD. NIKOLA MILIKIĆ URL: nikola.milikic.info

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

XML for Android Developers. partially adapted from XML Tutorial by W3Schools

Extensible Markup Language (XML) What is XML? Structure of an XML document. CSE 190 M (Web Programming), Spring 2007 University of Washington

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

E-Applications. XML and DOM in Javascript. Michail Lampis

VHDLPrimeri Poglavlje5.doc

XML. Uvod. Šta je XML

Vežbe - XII nedelja PHP Doc

Programiranje Internet aplikacija

INTERNET & WEB APPLICATION DEVELOPMENT SWE 444. Fall Semester (081) Module 4 (VII): XML DOM

User Interaction: XML and JSON

Introduction to XML. M2 MIA, Grenoble Université. François Faure

The <schema> Element. <?xml version="1.0"?> <xs:schema>... </xs:schema>

XML: a "skeleton" for creating markup languages you already know it! <element attribute="value">content</element> languages written in XML specify:

extensible Markup Language

XML CSC 443: Web Programming

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

Internet Technologies 11-XML. F. Ricci 2010/2011

Tema 8: Koncepti i teorije relevantne za donošenje odluka (VEŽBE)

Extensible Markup Language (XML) What is XML? An example XML file. CSE 190 M (Web Programming), Spring 2008 University of Washington

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Aplikativni softver. XML Schema

Introduction to XML. XML: basic elements

APLIKATIVNI SOFTVER Front End: HTML, CSS, JavaScript

NIZOVI.

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

extensible Markup Language

The main problem of DTD s...

A) XML Separates Data from HTML

Session 23 XML. XML Reading and Reference. Reading. Reference: Session 23 XML. Robert Kelly, 2018

XML (Extensible Markup Language

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Web Technologies Present and Future of XML

XML Primer Plus By Nicholas Chase

What is XML? XML is designed to transport and store data.

Introduction to XML DTD

Programiranje Internet aplikacija (IR4PIA)

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

7.1 Introduction. extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 7 XML

CSI 3140 WWW Structures, Techniques and Standards. Representing Web Data: XML

Izrada VI laboratorijske vježbe

Web Programming Step by Step

1/42 SQL DDL. CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2)

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

XML: and related technologies

Cjenovnik usluga informacionog društva

Some more XML applications and XML-related standards (XLink, XPointer, XForms)

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Introduction Syntax and Usage XML Databases Java Tutorial XML. November 5, 2008 XML

x y = z Zadaci - procedure

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

RDF, RDFS i JSON-LD. NIKOLA MILIKIĆ URL: nikola.milikic.info

Vežba 3 Mrežni protokoli

Object Oriented Programming and Internet Application Development. Unit 8 XML and the Semantic Web. What is XML?

Internet programiranje

Računarske osnove Interneta (SI3ROI, IR4ROI)

Semantic Web. XML and XML Schema. Morteza Amini. Sharif University of Technology Fall 94-95

Shankersinh Vaghela Bapu Institue of Technology

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Jezik Baze Podataka SQL. Jennifer Widom

EAE-2037 Loading transactions into your EAE/ABSuite system. Unite 2012 Mike Bardell

Osnovne strukture podataka

Z1. Dati RDF graf predstavljen u JSON-LD sintaksi potrebno je grafički predstaviti u skladu sa RDF notacijom. (5 poena)

Transcription:

Infrastruktura za elektronsko poslovanje (SI3IEP) Nemanja Kojić XML extensible Markup Language 1

Uvod XML je skradenica od tri reči: extensible Markup Language. XML je dizajnirana za potrebe: opisa, prenosa i čuvanja podataka Veoma je važno znati XML Lako se uči <?xml version="1.0"?> <note> <to>john</to> <from>marry</from> <heading>reminder</heading> <body>let s talk tomorrow.</body> </note> 2/26

Uvod Šta je XML? XML označava EXtensible Markup Language XML je jezik za označavanje (veoma sličan jeziku HTML) XML je dizajniran za potrebe prenosa podataka (ne za njihovo prikazivanje) XML tagovi nisu predefinisani (korisnik treba da definiše sopstvene) XML je dizajniran tako da bude samoopisiv XML omogudava prenos podataka koji je nezavisan od hardverske i softverske platforme 3/26

Uvod (razlika između XML-a i HTML-a) XML nije zamena za HTML. XML i HTML su stvoreni na osnovu različitih ciljeva: XML je dizajniran za prenos i čuvanje podataka (akcenat je na vrsti i značenju podataka) HTML je dizajniran za prikazivanje podataka (akcenat je na tome kako podaci izgledaju) HTML se odnosi na prikazivanje informacija, a XML se odnosti na prenos informacija. 4/26

Uvod XML omogudava: Strukturiranje podataka Prenos podataka Čuvanje podataka Dati XML dokument predstavlja čiste informacije koje su uokvirene u tagove Dokument sam sebe opisuje Poseban softver se može napisati za potrebe slanja, prijema i prikazivanja poruka. Format poruka je zapisan u XML dokumentu Imena tagova impliciraju značenje podataka <?xml version="1.0"?> <note> <to>john</to> <from>marry</from> <heading>reminder</heading> <body>let s talk tomorrow.</body> </note> 5/26

Uvod XML dokument je tekstualni dokument (kao i svaki drugi tekstualni dokument) Aplikacije koje procesiraju XML dokumente tagove tretiraju na specijalan način Značenje tagova zavisi od prirode aplikacije i domena problema Tagovi nisu propisani XML standardom Korisnik kreira sopstvene tagove (koji odgovaraju elementima domena problema) XML nema predefinisane tagove XML nema ni predefinisanu strukturu (korisnik može da dizajnira proizvoljnu strukturu XML dokumenta prema sopstvenim potrebama) 6/26

Primeri korišdenja XML razdvaja podatke od HTML-a Prikazivanje dinamičkih podataka bez promena HTML-a Promenljive informacije su u XML fajlovima JavaScript omogudava jednostavno čitanje ovih podataka i njivovo prikazivanje XML pojednostavljuje deljenje podataka Rešava problem nekompatibilnih formata podataka koje koriste različiti sistemi i baze podataka Informacije se čuvaju u formatu koji ne zavisi od platforme ili baza podataka XML pojednostavljuje razmenu podataka Rešava problem razmene podataka između različitih nekompatibilnih sistema na jednostavan način 7/26

Primeri korišdenja XML pojednostavljuje promene platforme Migracija podataka, konverzija u drugi format (može dovesti do gubitka nekomatibilnih podataka) XML se podaci čuvaju u tekstualnom formatu (lako ih je prilagoditi potrebama nove platforme ili nove verzije platforme) XML se koristi na pravljenje novih Internet jezika: Primeri nekih jezika: XHTML poslednja verzija HTML-a WSDL za opis veb servisa WAP i WML za prvljenje sadržaja koji se mogu pregledati mobilnim uređajima RSS za dobijanje vesti RDF i OWL za opis resursa i ontologije (koncepata iz stvarnog sveta) SMIL za opis multimedije na vebu 8/26

Struktura XML dokumenta XML dokument ima strukturu stabla Jedan koreni čvor i njegovi podčvorovi XML dokument mora da ima koreni element Deklaracija XML-a. Defniniše: Verziju XML-a (1.0) i Enkodovanje ( ISO-8859-1 = Latin-1/West European character set) Koreni element dokumenta Deca korenog čvora Kraj koreni elementa <?xml version="1.0"? encoding= ISO-8859-1 > <note> <to>john</to> <from>marry</from> <heading>reminder</heading> <body>let s talk tomorrow.</body> </note> 9/26

XML primer (1) <bookstore> <book category="cooking"> <title lang="en">everyday Italian</title> <author>giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="children"> <title lang="en">harry Potter</title> <author>j K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="web"> <title lang="en">learning XML</title> <author>erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> 10/26

XML sintaksna pravila Svi elementi XML-a moraju imati tagove zatvaranja XML tagovi su case sensitive XML elementi moraju biti pravilno ugneždeni XML dokumenti moraju imati koreni element Vrednosti atributa XML elemenata moraju biti napisane pod znacima navoda (... ) Komentari: <!-- Ovo je komentar --> Beli znakovi su deo sadržaja XML dokumenta (ne zanemaruju se) 11/26

Reference na entitete (Entity References) Neki XML znakovi imaju specijalno značenje (specijalni karakteri) To su: < > & Kako predstaviti slededi sadržaj? <message>if salary < 1000 then</message> Karakter < se zamenjuje referencom na odgovarajudi entitet: <message>if salary < 1000 then</message> XML ima 5 predefinisanih entiteta: < < > > & & &apos; " 12

Elementi i atributi Element čini sadržaj između početnog i zatvarajudeg taga (uključujudi i njih) Element može sadržati: Samo Običan tekst Samo Druge elemente (deca) I tekst i elemente Preporuke imenovanja elemenata (tagova) Koristitit deskriptivne nazive (<first_name>) Nazivi treba da budu jednostavni (i kratki) Izbegavati sledede karaktere za formiranje naziva tagova dvotačku (:), tačku (.) minus/crtica (-) 13/26

Atributi elemenata Elementi mogu imati atribute Atributi se specificiraju u okviru startnog taga odgovarajudeg elementa Atributi najčešde nose dodatne informacije o samom elementu koje nisu konkretni podaci Primer: tip fajla je irelevantan za same podatke, ali je važan za softver koji procesira element <file type="gif">computer.gif</file> 14/26

Preporuke za korišdenje atributa elementi ili atributi? I atributi i (pod)elementi nose istovetne informacije o elementima Izbegavati preterano korišdenje atributa Atributi ne mogu sadržati više od jedne vrednosti (elementi mogu) Atributi ne mogu da sadrže informacije u obliku stabla (elementi mogu) Atributi nisu lako proširivi (za budude promene) Atribute koristiti za metapodatke (npr. Uvesti identifikator XML elemenata za njihovo jedinstveno identifikovanje u dokumentu) Metapodaci su podaci o podacima <?xml version="1.0"?> <note id= 100 > <to>john</to> <from>marry</from> <heading>reminder</heading> <body>let s talk tomorrow.</body> </note> 15/26

Validacija XML dokumenta XML fajlovi moraju biti pravilno fromirani (well-formed) Dobro forimirani XML fajlovi moraju biti sintaksno ispravni Mogu se definisati pravila formata (strukture) XML dokumenta Ako postoje ova pravila, sadržaj dobro formiranog XML dokumenta treba da bude u skladu sa tim pravilima 16/26

Opis strukture XML dokumenta XML DTD (Document Type Def.) Definiše strukturu XML dokumenta Definiše i skup legalnih elemenata Primer: <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> 17/26

XML Schema (alternativa DTD-u) <xs:element name="note"> <xs:complextype> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> 18/26

XML Napredni pojmovi 19

Prostori imena (Namespaces) Metod izbegavanja kolizije imena Do kolizije dolazi kada se mešaju XML dokumenti iz različitih aplikacija (koriste iste elemente, ali sa različitih značenjem i strukturom) Kolizije se rešavaju prefiksima <h:table> <h:tr> <h:td>apples</h:td> <h:td>bananas</h:td> </h:tr> </h:table> <f:table> <f:name>african Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> 20/26

XML Namespaces (xmlns) Da bi se koristili prefiksi, za njih treba da postoje definicije tzv. prostora imena Prostor imena se definiše vrednošdu taga xmlns u okviru startnog taga proizvoljnog elementa Sintaksa za deklaraciju prostora imena: xmlns:prefix="uri" <root> <h:table xmlns:h="http://www.w3.org/tr/html4/"> <h:tr> <h:td>apples</h:td> <h:td>bananas</h:td> </h:tr> </h:table> <f:table xmlns:f="http://www.w3schools.com/furniture"> <f:name>african Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root> 21/26

Enkodovanje (encoding) XML dokumenti mogu sadržati i karaktere koji ne pripadaju skupu ASCII znakova Da bi se izbegle greške pri čitanju, specificira se enkodovanje dokumenta Dve vrsta grešaka: Nevalidni karakter u XML dokumentu (neascii znak u dokumentu koji je sačuvan kao jednobajtni ASCII bez atributa encoding) Prelazak sa jednog tipa enkodovanja na drugi nije podržan (npr. XML fajl je sačuvan sa enkodovanje UTF-16, a u XML dokumentu je specificiran 1- bajtno enkodovanje UTF-8) Preporuka je da se uvek specificira enkodovanje i da se koriste editori XML-a koji podržavaju različita enkodovanja <?xml version="1.0 encoding= UTF-8?> <note> <to>john</to>... </note> 22/26

XML DOM XML DOM (Document Object Model) Definiše standard za pristup i manipulisanje XML dokumentima Vidi XML dokumente kao stablo elemenata Elementi, atributi i tekst se označavaju kao čvorovi Najdešde korišdene XML DOM metode za manipulisanje XML dokumentima: Dohvatanje vrednosti elementa Dohvatanje vrednosti atributa Promena vrednosti elementa Promena vrednosti atributa Pravljenje novog elementa Uklanjanje datog elementa 23/26

XML tehnologije XHTML (Extensible HTML) A stricter and cleaner XML based version of HTML. XML DOM (XML Document Object Model) A standard document model for accessing and manipulating XML. XSL (Extensible Style Sheet Language) XSL consists of three parts: XSLT (XSL Transform) - transforms XML into other formats, like HTML XSL-FO (XSL Formatting Objects)- for formatting XML to screen, paper, etc XPath - a language for navigating XML documents XQuery (XML Query Language) An XML based language for querying XML data. DTD (Document Type Definition) A standard for defining the legal elements in an XML document. XSD (XML Schema) An XML-based alternative to DTD. XLink (XML Linking Language) A language for creating hyperlinks in XML documents. XPointer (XML Pointer Language) Allows the XLink hyperlinks to point to more specific parts in the XML document. XForms (XML Forms) Uses XML to define form data. SOAP (Simple Object Access Protocol) An XML-based protocol to let applications exchange information over HTTP. WSDL (Web Services Description Language) An XML-based language for describing web services. RDF (Resource Description Framework) An XML-based language for describing web resources. RSS (Really Simple Syndication) A format for syndicating news and the content of news-like sites. WAP (Wireless Application Protocol) A XML based language for displaying content on wireless clients, like mobile phones. SMIL (Synchronized Multimedia Integration Language) A language for describing audiovisual presentations. SVG (Scalable Vector Graphics) Defines graphics in XML format. 24/26

XML zaključak XML se koristi za deljenje, razmenu i čuvanje podataka XML je nezavisan od platforme XML dokumenti imaju strukturu stabla Postoji obavezno koreni čvor XML se odlikuje veoma jednostavnim sintaksnim pravilima. XML sa korektno sintaksom je dobro formiran. Validacija strukture XML fajla može da se sprovede i na osnovu DTD šeme XSLT se koristi za transformaciju XML-a u druge formate (HTML). Svi moderni pretraživači imaju ugređene parsere za XML koji omogudavaju čitanje i manipulisanje XML dokumentima XML Namespace je način izbegavanja kolizije imena u XML dokumentima Parser XML-a ignoriše tekst unutar CDATA sekcije. 25/26

Parsiranje XML-a Postoje dve vrste parsera za XML DOM parseri SAX parseri DOM parseri učitavaju celu strukturu XML u memoriju pogodni su za manje XML fajlove omogudavaju pristup svim elementima u bilo kom trenutku laki za upotrebu SAX parseri ne rade nad celim XML fajlom parsiraju liniju po liniju implementiranje obrade pojedinačnih događaja prepoznavanja elemenata pogodniji su za vede XML fajlove ne zauzimaju puno memorije brzi su malo su teži za upotrebu 26/26