You are on page 1of 74

XML – drugi dio

Što ćete naučiti


Internet općenito AJAX
HTML jQuery

CSS PHP
ASP.NET
XML
Ruby On Rails
XHTML
MS Silverlight
Javascript
FLASH, SMIL, SVG
DOM
...
DHTML
XML
XML znači EXtensible Markup Language
XML je markup language isto kao i HTML
XML dizajniran je za opisivanje podataka
XML tagovi nisu predefinirani. Korisnik definira vlastite
tagove
XML koristi Document Type Definition (DTD) ili XML
Schema za opis podataka
XML s DTD ili XML Schemom je samo-opisujući
Izgled XML-a
<?xml version="1.0" encoding="ISO-8859-1"?>
<predavanje>
<xml>
<definicija>
EXtensible Markup Language
</definicija>
<primjena> RSS</primjena>
<primjena>WAP</primjena>
<prikaz id=“1”> css </prikaz>
<prikaz id=“2”> Data islands </prikaz>
<prikaz id=“3”> xsl </prikaz>
<prikaz id=“4”> JavaScript DOM </prikaz>
</xml>
</predavanje>
Sintaksa XMLa
Pravila sintakse XMLa su vrlo jednostavna i vrlo
ij a
striktna nt r a c
e a
l em
e e kl
T D
OO encoding="ISO-8859-1"?>
<?xml version="1.0"
R
<note>
<to>Tove</to>
<from>Jani</from> Sadržaj root
<heading>Reminder</heading> elementa
<body>Don't forget me this weekend!</body>
</note>

5
atributi
XML <data>
<data>
<person
<personid=“o555”
id=“o555”>>
<name>
<name>Mary
Mary</name>
</name>
<address>
<address>
<street>
<street>Maple
Maple</street>
</street> name elementi
<no>
<no>345
345</no>
</no>
<city>
<city>Seattle
Seattle</city>
</city>
</address>
</address>
person elementi
</person>
</person>
<person>
<person>
<name>
<name>John
John</name>
</name>
<address>
<address>Thailand
Thailand </address>
</address>
<phone>
<phone>23456
23456 </phone>
</phone>
<married/>
<married/>
</person>
</person>
</data>
</data>
DTD
Document Type Definition
Svrha DTD-a je definiranje ispravnih sastavnih
blokova XML dokumenta
Definira strukturu dokumenta i dopuštene (legalne)
elemente
Može se napisati kao
Internal – unutar XML dokumenta
External – vanjski DTD dokument

7
DTD: Content Model
<!ELEMENT
<!ELEMENT tag
tag (CONTENT)>
(CONTENT)>
content
model
Content model (model sadržaja):
Složeni = regularni izraz o drugim elementima
Samo tekst = #PCDATA
Prazan sadržaj= EMPTY
Bilo koji sadržaj= ANY
Miješani sadržaj = (#PCDATA | A | B | C)*
DTD: Content Model
A
A se mora pojaviti, samo jednom.
A+
A se mora pojaviti jedan ili više puta.
A?
A se može pojaviti jednom, ili nula puta.
A*
A se može pojaviti bilo koliko puta (nula ili više).
DTD: Content Model
+(A)
A se može pojaviti.
-(A)
A se ne smije pojaviti.
A | B
Ili A ili B se mora pojaviti, ali ne oboje.
A , B
I A i B se moraju pojaviti, u tom redosljedu.
A & B
I A i B se moraju pojaviti, u bilo kojem redosljedu.
Primjer XML <firma>
<firma>
dokumenta: <osoba>
<osoba> <jmbg>
<jmbg>123456789
123456789</jmbg>
</jmbg>
<ime>
<ime>John
John</ime>
</ime>
<ured>
<ured>B432
B432</ured>
</ured>
<telefon>
<telefon>1234
1234</telefon>
</telefon>
</osoba>
</osoba>
<osoba>
<osoba> <jmbg>
<jmbg>987654321
987654321</jmbg>
</jmbg>
<ime>
<ime>Jim
Jim</ime>
</ime>
<ured>
<ured>B123
B123</ured>
</ured>
</osoba>
</osoba>
<osoba>
<osoba>...
... </osoba>
</osoba>
...
...
</firma>
</firma>
Root Element

<!DOCTYPE
<!DOCTYPE firma[
firma[
<!ELEMENT
<!ELEMENT firma
firma (osoba*)>
(osoba*)>
<!ELEMENT
<!ELEMENT osoba
osoba (jmbg,
(jmbg, ime,
ime, ured,
ured, telefon?)>
telefon?)>
<!ELEMENT
<!ELEMENT jmbg
jmbg (#PCDATA)>
(#PCDATA)>
<!ELEMENT
<!ELEMENT ime
ime (#PCDATA)>
(#PCDATA)>
<!ELEMENT
<!ELEMENT ured
ured (#PCDATA)>
(#PCDATA)>
<!ELEMENT
<!ELEMENT telefon
telefon (#PCDATA)>
(#PCDATA)>
]>
]>

Element Sadržaj elementa?


DTD XML
sekvenca
<!ELEMENT <name>
<!ELEMENTname
name <name>
<firstName>
(firstName, <firstName> . .. .. .. .. .</firstName>
(firstName,lastName))
lastName)) <lastName> . . . . .
</firstName>
</lastName>
<lastName> . . . . . </lastName>
</name>
</name>
opcionalno
<!ELEMENT
<!ELEMENTname
name (firstName?,
(firstName?,lastName))
lastName))
<person>
<person>
<name>
<name> . .. .. .. .. .</name>
ponavljanje <phone> . . . . .
<phone> . . . . . </phone>
</name>
</phone>
<phone>
<phone> . .. .. .. .. .</phone>
<!ELEMENT
<!ELEMENTperson
person (name,
(name,phone*))
phone*)) </phone>
<phone> . . . . .
<phone> . . . . . </phone> </phone>
. .. .. .. .. .. .
</person>
alternacija </person>

<!ELEMENT
<!ELEMENTperson
person (name,
(name,(phone|email)))
(phone|email)))

...
Internal DTD
Ima oblik
<!DOCTYPE root-element [element-declarations]>

<?xml version="1.0"?>
<!DOCTYPE note
[ <!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)> ]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
External DTD
 U XML dokumentu pišemo:
<!DOCTYPE root-element SYSTEM "filename">
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

15
Zašto koristiti DTD?
Korištenjem DTD-a svaki XML dokument nosi sa
sobom opis vlastitog formata
neovisne grupe ljudi mogu se dogovoriti o korištenju
zajedničkog DTD-a za razmjenu podataka
Vaša aplikacija može koristiti standardni DTD
prilikom provjere da li su podaci koje je primila
ispravno formulirani
Možete koristiti DTD za provjeru vlastitih podataka

16
Građevni blokovi DTD dokumenta
Gledano sa točke gledišta DTD-a XML dokumenti i
HTML dokumenti sastoje se od sljedećih građevnih
blokova:
Elementi – glavni građevni blokovi
Tagovi – markup oznake elemenata
Atributi – pružaju dodatne informacije o elementima
Entiteti – definiraju tekst
PCDATA – tekst kojeg će koristiti parser
CDATA – tekst kojeg NEĆE parsirati parser

17
Atributi
<!ATTLIST element-name attribute-name attribute-type default-
value>

DTD primjer:

<!ATTLIST payment type CDATA "check">

XML primjer:

<payment type="check" />


attribute-type
 CDATA - Vrijednost je tipa “character data”
 (en1|en2|..) – Vrijednost mora biti jedinka iz enum liste
 ID – Vrijednost je jedinstveni ID
 IDREF – Vrijednost je ID drugog elementa
 IDREFS – Vrijednost je lista drugi ID-ova
 NMTOKEN – Vrijednost je ispravno XML ime
 NMTOKENS – Vrijednost je lista ispravnih XML imena
 ENTITY – Vrijednost je entitet
 ENTITIES – Vrijednost je lista entiteta
 ...
default-value
#REQUIRED
Atribut se zahtijeva
#IMPLIED
Atribut se ne zahtijeva
#FIXED value
Vrijednost atributa je fiksirana
DTD dokument
<!DOCTYPE NEWSPAPER

<!ELEMENT NEWSPAPER (ARTICLE+)>
<!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
<!ELEMENT HEADLINE (#PCDATA)>
<!ELEMENT BYLINE (#PCDATA)>
<!ELEMENT LEAD (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>
<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
<!ATTLIST ARTICLE DATE CDATA #IMPLIED>
<!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press">
]>
XML Schema
Definira elemente koji se mogu pojaviti u dokumentu
Definira atribute koji se mogu pojaviti u dokumentu
Definira koji elementi su djeca
Definira redosljed djece
Definira broj djece
Definira je li element prazan ili sadrži text
Definira tipove podataka za elemente i atribute
Definira default i fiksne vrijednosti za elemente i atribute
XML Schema
XML Schema prilagodljiva nadogradnjama
XML Schema bogatije od DTD
XML Schemas napisane u XML-u
XML Schemas podržavaju tipove podataka
XML Schemas podržavaju namespace
Podrška za tipove podataka
Lakši opis dopuštenog sadržaja
Jednostavnija validacija sadržaja
Jednostavniji rad sa podacima iz baze podataka
Restrikcije na podacima
Formati prikaza podataka
Konverzija tipova podataka
XML primjer
<?xml version="1.0"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
DTD vs. XML Schema
 <?xml version="1.0"?>
 <!ELEMENT note (to, from, <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
heading, body)> targetNamespace="http://www.w3schools.com"
<!ELEMENT to (#PCDATA)> xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)> <xs:element name="note">
<!ELEMENT body (#PCDATA)>   <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>

</xs:schema>
Uključivanje XML Schema u XML
 <?xml version="1.0"?>

<note
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
<schema> Element
 <?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
...
...
</xs:schema>
Jednostavan element
<xs:element name="xxx" type="yyy"/>
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
<xs:element name="color" type="xs:string" default="red"/>
<xs:element name="color" type="xs:string" fixed="red"/>
Atributi
<xs:attribute name="xxx" type="yyy"/>
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
Atributi
Default
<xs:attribute name="lang" type="xs:string" default="EN"/>
Fixed
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
Required
<xs:attribute name="lang" type="xs:string" use="required"/>
Restrikcije
<xs:element name="age">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="120"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Ovo je samo jedna vrsta restrikcije, postoji ih mnogo!


Restrikcije
Složeni elementi
 <xs:element name="employee"> <employee>
  <xs:complexType>   <firstname>John</firstname>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
  <lastname>Smith</lastname>
      <xs:element name="lastname" type="xs:string"/> </employee>
    </xs:sequence>
  </xs:complexType>
</xs:element>

 <xs:element name="employee" type="personinfo"/>

<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
XML Schema
http://w3schools.com/schema/default.asp
Za sve koji žele znati više
Što je XSL?
XSL (eXtensible Stylesheet Language) je jezik za
izrađivanje i zapisivanje stilskih predložaka.
dodatak XML-u koji točno opisuje kako
određeni dokument treba biti prikazan
XSL se sastoji od tri dijela:
XSLT (jezik za transformaciju XML dokumenata)
XPath (jezik za definiranje djelova XML dokumenata)
XSL Formating Objects (vokabular za
formatiranje XML dokumenata)

36
XSL
XSL - eXtensible Stylesheet Language
može:
 Transformirati XML u XHTML
 Filtrirati i sortirati XML podatke

 Definirati djelove XML dokumenta

 Formatirati XML podatke temeljene na vrijednostima

 Prikazivati XML podatke na različitim uređajima, ekranu,

printeru...
Dio je w3c standarda

37
XPath
XPath je sintaksa za definiranje dijelova XML
dokumenata
XPath sadrži biblioteku standardnih funkcija
XPath je jedan od glavnih elemenata XSLT-a
XPath je W3C preporuka
Xpath – XML dokument
<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>
  <book>
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
</bookstore>
Xpath
Čvorovi – element, atribut, text, namespace,...
Atomi - elementi bez “djece” ili roditelja
Odnosi:
Roditelj
Dijete
Braća
Potomci
Preci
Dohvat čvorova
Predikati
Nepoznati čvorovi
Set čvorova (relativno određeni)
Primjer korištenja
<bib>
<bib>
<book>
<book> <publisher>
<publisher>Addison-Wesley
Addison-Wesley</publisher>
</publisher>
<author>
<author>Serge
SergeAbiteboul
Abiteboul</author>
</author>
<author>
<author> <first-name> Rick</first-name>
<first-name> Rick </first-name>
<last-name> Hull </last-name>
<last-name> Hull </last-name>
</author>
</author>
<author>
<author>Victor
VictorVianu
Vianu</author>
</author>
<title>
<title> Foundations of Databases</title>
Foundations of Databases </title>
<year> 1995 </year>
<year> 1995 </year>
</book>
</book>
<book
<bookprice=“55”>
price=“55”>
<publisher>
<publisher>Freeman
Freeman</publisher>
</publisher>
<author>
<author> Jeffrey D. Ullman</author>
Jeffrey D. Ullman </author>
<title>
<title> Principles of Databaseand
Principles of Database andKnowledge
KnowledgeBase
BaseSystems
Systems</title>
</title>
<year> 1998 </year>
<year> 1998 </year>
</book>
</book>
</bib>
</bib>
XPath: Jednostavni izrazi
/bib/book/year
/bib/book/year
Rezultat:
<year> 1995 </year>
<year> 1998 </year>

/bib/paper/year
/bib/paper/year
Rezultat : prazno
XPath
//author
//author
Rezultat:<author> Serge Abiteboul </author>
<author> <first-name> Rick </first-name>
<last-name> Hull </last-name>
</author>
<author> Victor Vianu </author>
<author> Jeffrey D. Ullman </author>

/bib//first-name
/bib//first-name
Rezultat : <first-name> Rick </first-name>
Xpath: Tekst čvorovi
/bib/book/author/text()
/bib/book/author/text()
Rezultat: Serge Abiteboul
Jeffrey D. Ullman

Rick Hull se ne pojavljuje. Zašto?


Xpath: Atribut čvorovi
/bib/book/@price
/bib/book/@price
Rezultat: “55”
Xpath: Predikati
/bib/book/author[firstname]
/bib/book/author[firstname]
Result: <author> <first-name> Rick </first-name>
<last-name> Hull </last-name>
</author>
Općenito
bib bib element
* Bilo koji element
/ root element
/bib bib element koji je u root
bib/paper paper u bib
bib//paper paper u bib, bez obzira na
dubinu
//paper paper na bilo kojoj dubini
paper|book paper ili book
@price price atribut
bib/book/@price price atribut u book, u bib
XSL je W3C Standard
XSL je standard preporučen od strane World Wide Web
Consortiuma.
 Prva dva dijela jezika (XSLT i XPath) su postala W3C
preporuke u studenom 1999.
 Cijeli XSL je postao W3C preporuka u listopadu 2001.
XSLT je najvažniji dio XSL standarda . To je dio XSL-a koji
se koristi za transformaciju XML dokumenata u drugi XML
dokument.
Proces transformiranja : XSL koristi XSLT da transformira
XML izvorni kod (source tree) u XML konačni kod (result
tree).

52
XSL
W3C propisuje root element XSL dokumenta:

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

ILI

<xsl:transform version="1.0“
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

53
XSL - Jednostavan primjer
 data.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="render.xsl"?>
<message>Howdy!</message>

 render.xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0”
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- one rule, to transform the input root (/) -->
<xsl:template match="/">
<html><body>
<h1><xsl:value-of select="message"/></h1>
</body></html>
</xsl:template>
</xsl:stylesheet>

54
.xsl datoteka
SLT dokument ima .xsl ekstenziju
Započinje sa:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/
XSL/Transform">
Sadrži jedan ili više predložaka(template), kao npr.:
<xsl:template match="/"> ... </xsl:template>
Završava sa:
</xsl:stylesheet>

55
Pronalazak teksta iz “message”
Predložak <xsl:template match="/"> znači – odaberi
cijeli file
U biti znači dohvat root elementa sa cijelim sadržajem
Unutar ovog predloška,
 <xsl:value-of select="message"/> dohvaća dijete od
message
Alternativni Xpath izrazi koji bi također napravili istu
stvar:
 ./message
 /message/text()

 ./message/text()

56
Sve zajedno
 XSL:
<xsl:template match="/">
<html><body>
<h1><xsl:value-of select="message"/></h1>
</body></html>
</xsl:template>

 <xsl:template match="/"> dohvaća root


 <html><body><h1> se zapisuje u izlaznu datoteku
 Sadržaj message elementa se zapisuje u izlaznu datoteku
 </h1></body></html> se zapisuje u izlaznu datoteku

 Rezultat:
<html><body>
<h1>Howdy!</h1>
</body></html>

57
xsl:value-of
<xsl:value-of select="XPath izraz"/>

dohvaća sadržaj bilo kojeg elementa i dodaje ga u


izlaznu datoteku
select atribut je obavezan

58
xsl:for-each
 xsl:for-each

 Vrsta petlje
 Sintaksa
<xsl:for-each select="XPath izraz">
Tekst i pravila
</xsl:for-each>
 Primjer:
 <ul>
<xsl:for-each select="//book">
<li> <xsl:value-of select="title"/> </li>
</xsl:for-each>
</ul>
59
Filtriranje izlaza
Dodavanjem kriterija
<ul>
<xsl:for-each select="//book">
<li>
<xsl:value-of
select="title[../author='Terry Pratchett']"/>
</li>
</xsl:for-each>
</ul>

Je li ovo u redu?

60
Filter details
Filter:
<xsl:value-of
select="title[../author='Terry Pratchett']"/>
author je brat od title, stoga od title se vratimo na
roditelja, book, onda odaberemo author
Obratiti pozornost na navodnike
Legalni operatori su:
= != &lt; &gt;

61
Ali ne funkcionira dobro
Zašto:
<xsl:for-each select="//book">
<li>
<xsl:value-of
select="title[../author='Terry Pratchett']"/>
</li>
</xsl:for-each>
Ovo na izlaz daje <li> i </li> za svaku knjigu, stoga u
nekoliko slučajeva dobijemo prazne elemente liste

62
xsl:if
xsl:if uključivanje sadržaja ako je test istinit
Primjer:
<xsl:for-each select="//book">
<xsl:if test="author='Terry Pratchett'">
<li>
<xsl:value-of select="title"/>
</li>
</xsl:if>
</xsl:for-each>

63
xsl:choose
xsl:choose ... xsl:when ... xsl:otherwise slično kao
switch ... case ... default
Sintaksa:
<xsl:choose>
<xsl:when test=“neki uvjet">
... Neki kod...
</xsl:when>
<xsl:otherwise>
... Neki kod...
</xsl:otherwise>
</xsl:choose>
64
xsl:sort
xsl:sort se može ubaciti unutar xsl:for-each
Atribut od sort definira po ćemu će se sortirati
Primjer:
<ul>
<xsl:for-each select="//book">
<xsl:sort select="author"/>
<li> <xsl:value-of select="title"/> by
<xsl:value-of select="author"/> </li>
</xsl:for-each>
</ul>
65
Xquery - općenito
XQuery je jezik kojim se vrše upiti za XML podatke
XQuery za XML je kao SQL za baze podataka
XQuery se oslanja na Xpath izraze
XQuery podržavaju osnovne baze podataka
XQuery je W3C preporuka
XHTML
EXtensible HyperText Markup Language
Cilj – zamijeniti HTML
Sličan HTML-u ali čišći i stroži
HTML ali u skladu sa XML-om
Od siječnja 2000 dio je w3 standarda

67
Razlike HTML i XHTML
Glavne razlike:
XHTML elementi moraju biti properly nested
<b><i> fesb </i></b>
XHTML dokument mora biti well-formed
<html>
<head> ... </head>
<body> ... </body>
</html>
Imena tagova moraju biti napisana malim slovima
<html> ne <HTML>
Svi XHTML elementi moraju biti zatvoreni
<ul><li> stavka 1 </li><li>stavka 2</li></ul>
68
Razlike HTML i XHTML
Imena atributa moraju biti napisana malim
slovima
Vrijednosti atributa moraju doći u navodnim
znakovima
Zabranjeno je minimiziranje atributa
Umjesto name atributa koristi se id
Lang atribut koje se može primijeniti na bilo koji
elemnt koristi se na sljedeći način
<div lang="no" xml:lang="no">Heia Norge!</div>
XHTML DTD propisuje obavezne elemente
69
Obavezni elementi XHTML-a
<!DOCTYPE Doctype goes here>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Title goes here</title>
</head>
<body>
Body text goes here
</body>
</html>

70
Struktura XHTML dokumenta
 Prva linija dokumenta XHTML 1.0 trebala bi biti document type definition:
the DTD.

 Strict
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN“
"http://www.w3.org/TR/xhtml1/DTD/ xhtml1-strict.dtd">

 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN“
"http://www.w3.org/TR/xhtml1/DTD/
xhtml1-transitional.dtd">

 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN“
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

71
HTML to XHTML
Samozatvarajući tagovi
<br>, <hr>, <link> i <img> pišiu se na
dogovoren način:
 <br> => <br />
 <img src="..."> => <img src="..." />
Svi tagovi pišu se malim slovima jer je XML case
sensitive:
 <BODY> mora se zamjeniti sa <body>

72
HTML to XHTML
Vrijednosti atributa moraju se uvijek pisati u
navodnim znakovima
<table rows=3> => <table rows="3">
Minimizacija atributa nije dozvoljena
<dl compact> =><dl compact="compact">
Validacija:
http://validator.w3.org/check?uri=...

73
Gradivo
Internet općenito AJAX
HTML jQuery

CSS PHP
ASP.NET
XML
Ruby On Rails
XHTML
MS Silverlight
Javascript
FLASH, SMIL, SVG
DOM
...
DHTML

You might also like