Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

Вовед во XML

Extensible Markup Language


Што е XML

• XML е кратенка за eXtensible Markup


Language.
• Означувачки јазик кој се употребува за
описни информации за документ.
• Таговите се додаваат во документот за да
овозможат дополнителни информации.
• HTML таговите му кажуваат на прелистувачот
како да прикаже документ.
• XML даваат идеја што значат некои од
податоците.
Предности на XML

• XML е текст (Unicode) базиран.


–Зазема малку простор.
–Ефикасно може да биде трансформиран.
• Еден XML документ може различно да се
прикажува на различни медиуми.
–Html, видео, CD, DVD,
• XML документите може да бидат модуларни.
Може да се реискористуваат делови.
Пример на HTML документ

<html>
<head><title>Example</title></head.
<body>
<h1>This is an example of a page.</h1>
<h2>Some information goes here.</h2>
</body>
</html>
Пример на XML документ

<?xml version=“1.0”/>
<address>
<name>Alice Lee</name>
<email>alee@aol.com</email>
<phone>212-346-1234</phone>
<birthday>1985-03-22</birthday>
</address>
Разлика меѓу HTML и XML

• HTML имаат фиксно значење кое


прелистувачите го знаат.
• XML таговите за различни за различни
примери, и корисниците знаат што
значат.
• HTML таговите се користат за приказ.
• XML таговите се користат да опишат
документи и податоци.
XML Правила

• Таговите се затвораат со аглести


загради.
• Таговите доаѓаат во парови: отворен и
затворен таг.
• Таговите мора соодветно да бидат
вгнездени.
–<name><email>…</name></email> не е дозволено.
–<name><email>…</email><name> е.
• Таговите кои немаат затворен таг
завршуваат со ‘/’.
–<br /> е html пример.
Уште XML правиле

• Таговите се case sensitive.


–<address> не е исто со <Address>
• XML не е дозволен како дел од таг.
• Таговите не смеат да содржат ‘<‘ или ‘&’.
• Таговите ги следат Java правилата за
именување. Мора да почнат со буква и не
смеат да содржат празно место.
• Документите мора да имаат еден корен таг
кој го започнува документот.
XML пример повторно
<?xml version=“1.0”/>
<address>
<name>Alice Lee</name>
<email>alee@aol.com</email>
<phone>212-346-1234</phone>
<birthday>1985-03-22</birthday>
</address>
• Ознаките за податоците ја прикажуваат намената.
• Обичен текстуален документ не е толку јасен.
Alice Lee
alee@aol.com
212-346-1234
1985-03-22
• Последната линија изгледа како датум, но за што?
Проширен пример
<?xml version = “1.0” ?>
<address>
<name>
<first>Alice</first>
<last>Lee</last>
</name>
<email>alee@aol.com</email>
<phone>123-45-6789</phone>
<birthday>
<year>1983</year>
<month>07</month>
<day>15</day>
</birthday>
</address>
XML документите се дрва

address

name email phone birthday

first last year month day


XML Дрва

• XML документ има еден јазол за корен.


• Генерално N-арно подреден дрво.
–Секој јазел родител може да има
произволен број деца.
–Децата се подредени и може да имаат
братчиња/сестричиња.
• Вообичаено се употребува preorder
изминување за добивање информации
од дрвото.
Валидност

• Добро формиран документ има дрво


структура и ги следи сите XML правила.
• При соодветна примена може да се додадат
повеќе правила или во DTD (document type
definition) или во шема.
• Многу специјализирани DTDа и шеми се
креирани за да опишат конкретни области.
• DTDа прво се развиени, па не се толку
опширни како шемите.
Document Type Definitions

• DTD ја опишува дрво структурата на


документот и нешто за податоците.
• Постојат два податочни типови, PCDATA
иCDATA.
–PCDATA е парсирани податоци од
карактери.
–CDATA е податоци од карактери, не се
парсира .
• DTD одредува колку пати може да се
појави даден јазол, и како се
подредуваат децата.
DTD пример за адреса

<!ELEMENT address (name, email, phone, birthday)>


<!ELEMENT name (first, last)>
<!ELEMENT first (#PCDATA)>
<!ELEMENT last (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT birthday (year, month, day)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT month (#PCDATA)>
<!ELEMENT day (#PCDATA)>
Шеми

• Шемите само по себе се XML документи.


• Стандардизирани се по DTDа и нудат повеќе
информации за документот.
• Содржат типови на податоци вклучувајќи
string, decimal, integer, boolean, date, и time.
• Ги делат елементите во едноставни и
комплексни типови.
• Ја одредуваат структурата на дрвото и колку
деца може секој јазол да има.
Шема пример за адреса
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="address">
<xs:complexType>
<xs:sequence>
<xs:element name="name"
type="xs:string"/>
<xs:element name="email" type="xs:string"/>
<xs:element name="phone"
type="xs:string"/>
<xs:element name="birthday"
type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Објаснување на пример шшемата
<?xml version="1.0" encoding="ISO-8859-1" ?>
• ISO-8859-1, Latin-1, е исто како и UTF-8 во првите 128
карактери.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
• www.w3.org/2001/XMLSchema содржи шема стандарди.
<xs:element name="address">
<xs:complexType>
• Ова кажува дека address е комплексен тип на елемент.
<xs:sequence>
• Ова кажува дека следните елементи формираат секвенца и
мора да дојдат во прикажаниот редослед.
<xs:element name="name" type="xs:string"/>
• Ова кажува дека елементот name мора да биде string.
<xs:element name="birthday" type="xs:date"/>
• Ова кажува дека елементот birthday е датум. Датумите се
секогаш во форма yyyy-mm-dd.
XSLT
Extensible Stylesheet Language Transformations

• XSLT се употребува за трансформација на


еден xml документ во друг, често html
документ.
• Програма зема како влез еден xml документ и
произведува како излез друг.
• Ако излезниот документ е во html, може да
биде прикажам во веб прелистувач.
Style Sheet за трансформација на примерот

<?xml version="1.0" encoding="ISO-8859-1"?>


<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="address">
<html><head><title>Address
Book</title></head>
<body>
<xsl:value-of select="name"/>
<br/><xsl:value-of select="email"/>
<br/><xsl:value-of select="phone"/>
<br/><xsl:value-of
select="birthday"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Резултат од трансформацијата

Alice Lee
alee@aol.com
123-45-6789
1983-7-15
Референци

• Elliotte Rusty Harold, Processing XML with


Java, Addison Wesley, 2002.
• Elliotte Rusty Harold and Scott Means,
XML Programming, O’Reilly & Associates,
Inc., 2002.
• W3Schools Online Web Tutorials,
http://www.w3schools.com.

You might also like