Professional Documents
Culture Documents
02-Shemi Na Podatoci
02-Shemi Na Podatoci
Калајџиски
XML шеми на
податоци
Содржина на предавањето...
q XML Schema
1
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
2
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
XML јазици
q XML јазик
¨ Множество на XML документи со одредена семантика
q Шема
¨ Формална дефиниција на синтаксата на XML јазикот
q Јазик за шемата
¨ Нотација за спецификација на шемата
Регуларни изрази
q Најчесто се користат во јазиците на шемата за опис на
секвенците од карактери или елементите
3
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Регуларни изрази
q Конечна низа од атоми од Σ може да одговараат на
даден регуларен израз α:
¨ σ∈Σ се совпаѓа само со стрингот σ
Регуларни изрази
q Примери:
(a(b*))|c
q се совпаѓа со сите стрингови кои се состојат или од едно а
следено од нула или повеќе појавувања на b или од c
0|1|2|3|4|5|6|7|8|9
q регуларен израз за опишување на цифри
0|-?(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*
q регуларен израз за опишување на цели броеви
4
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Регуларни изрази
q Примери:
Задача за дома:
Регуларни изрази
5
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
6
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Декларација на елементите
Декларација на елементите
Construct Значење
EMPTY Празна содржина
ANY Било каква содржина
#PCDATA Низа од карактери
element name Друг елемент
, Конкатенација
| Унија
? Опционално
* Нула или повеќе повторувања
+ Едно или повеќе повторувања
7
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
8
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Декларација на атрибутите
Декларација на атрибутите
ENTITY или
мора да одговара на име од одреден ентитет
ENTITIES
NMTOKEN или
ограничена форма на стринг, обично се состои од еден збор
NMTOKENS
Листа на
вредности кои може да ги прими атрибутот
вредности
9
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Декларација на атрибутите
q default декларација на атрибутите:
¨ #REQUIRED
¨ #IMPLIED
¨ “value”
¨ #FIXED “value”
q Примери:
<!ATTLIST p align (left|center|right|justify) #IMPLIED>
<!ATTLIST form
action CDATA #REQUIRED
onsubmit CDATA #IMPLIED
method (get|post) "get"
enctype CDATA "application/x-www-form-urlencoded">
10
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
11
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Декларација на ентитети
A gadget has a medium size head and a big gizmo subwidget. ©rightnotice;
12
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
13
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Пример за вежбање
<collection>
<description>Recipes suggested by Jane Dow</description>
<recipe id="r117">
<title>Rhubarb Cobbler</title>
<date>Wed, 14 Jun 95</date>
14
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Ограничувања на DTD
q нема ограничувања за CDATA
XML Schema
q W3C предлог за замена на DTD
15
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Типови и декларации
q Дефиниција на прости типови:
Дефинира фамилија на unicode текстуални стрингови
q Декларација на елементите:
Придружување на прост или сложен тип на името на елементот
q Декларација на атрибутите:
Придружување на прост тип кон името на атрибутот
16
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
q anySimpleType
¨ е унија од сите примитивни типови, односно кога е
специфициран ваков тип, може да се користи било кој
примитивен тип
q anyType
¨ е унија на сите типови, односно кога е специфициран, тогаш
атрибутот може да прими било кој податочен тип
17
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
<simpleType name=“procent”>
<restriction base=“string”>
<pattern value=“([0-9]|[1-9][0-9]|100)%”/>
</restriction>
</simpleType>
Тип на податок кој ќе дефинира опсег од 0 до 100 %
18
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
<simpleType name=“POSITIONTYPE”>
<restriction base=“string”> Да се дефинира тип на
<enumeration value=“Manager”/> податок за позицијата на
вработените, при што
<enumeration value=“Supervisor”/> позицијата може да биде
<enumeration value=“Assistant”/> една од Manager,
Supervisor или Assistant
</restriction>
</simpleType>
19
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
<simpleType name="boolean_or_decimal">
<union>
<simpleType>
<restriction base="boolean"/>
</simpleType>
<simpleType>
<restriction base="decimal"/>
</simpleType>
</union>
</simpleType>
20
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
q simpleType
¨ елементите кои немаат под-елементи
¨ и атрибути се од прост тип
q Сложен елемент:
<element name=“el_name”>
<complexType>
<sequence>
<!-- ovde se definiraat decata-->
</sequence>
</complexType>
</element>
21
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
тип пример
sequence конкатенација
choice унија
all Неподредена секвенца
any Било кој елемент
group Named sub expression
Кардиналност
q Преку XML шемата може да се прикаже и интервалот
на појавувања на инстанците на одреден елемент
преку специфицирање на параметрите:
22
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Пример
<?xml version= “1.0” encoding= “UTF-8” standalone= “yes”?>
<?xml:stylesheet type = “test/xsl” href = “staff_list.xsl”?>
<!DOCTYPE STAFFLIST SYSTEM “staff_list.dtd”>
<STAFFLIST>
<STAFF branchNo = “B005”>
<STAFFNO>SL21</STAFFNO>
<NAME>
<FNAME>John</FNAME><LNAME>White</LNAME>
</NAME>
<POSITION>Manager</POSITION>
<DOB>1945-10-01</DOB>
<SALARY>30000</SALARY>
</STAFF>
<STAFF branchNo = “B003”>
<STAFFNO>SG37</STAFFNO>
<NAME>
<FNAME>Ann</FNAME><LNAME>Beech</LNAME>
</NAME>
<POSITION>Assistant</POSITION>
<SALARY>12000</SALARY>
</STAFF>
</STAFFLIST>
23
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Пример
<element name=“STAFFLIST”>
<complexType> Следејќи ја претходната структура
коренот STAFFLIST може да се
<sequence>
дефинира како сложен елемент.
<!-- ovde ke dojde STAFF elementot-->
</sequence> На сличен начин ќе се дефинираат
</complexType> и STAFF и NAME елементите
</element>
<element name=“STAFFLIST”>
<complexType>
<sequence>
<element name=“STAFF”>
<complexType>
<sequence>
<element name=“STAFFNO” type = “string”/>
<element name=“NAME”>
<complexType>
<sequence>
<element name=“FNAME” type=“string”/>
<element name=“LNAME” type=“string”/>
</sequence>
</complexType>
</element>
<element name=“DOB” type = “date” minOcurrs=“0”/>
<element name=“SALARY” type=“decimal”/>
<attribute name=“branchNo” type = “string”/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
24
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Референци
Користење на референците
q Ако елементот SALARY го дефинираме како:
<element name=“SALARY” type=“float”/>
25
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Групи
q Преку XML шемата може да се дефинираат групи на елементи и
групи на атрибути
Пример
Со ова се <group name = “STAFFTYPE”>
креира група на
елементи која <sequence>
после може да <element name = “STAFFNO” type = “STAFFNOTYPE”/>
се искористи во
дефинирањето <element name = “POSITION” type = “POSITIONTYPE”/>
на сложениот <element name = “DOB” type = “date”/>
тип на елемент
STAFFLIST
<element name = “SALARY” type = “decimal”/>
</sequence>
</group>
26
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Композитори
q Во групата на композитори спаѓаат:
¨ sequence
¨ choice
¨ all
27
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Пример
<group name=“STAFFNAMETYPE”>
<choice>
<element name=“NAME” type=“string”/>
<sequence>
<element name=“FNAME” type=“string”/>
<element name=“LNAME” type=“string”/>
</sequence>
</choice>
</group>
Ограничувања
q XML шемата освен стандардните ограничувања,
обезбедува и XPath базирани ограничувања, како што
се:
28
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
Примери
Пример
<?xml version= “1.0” encoding= “UTF-8” standalone= “yes”?>
<?xml:stylesheet type = “test/xsl” href = “staff_list.xsl”?>
<!DOCTYPE STAFFLIST SYSTEM “staff_list.dtd”>
<STAFFLIST>
<STAFF branchNo = “B005”>
<STAFFNO>SL21</STAFFNO>
<NAME>
<FNAME>John</FNAME><LNAME>White</LNAME>
</NAME>
<POSITION>Manager</POSITION>
<DOB>1945-10-01</DOB>
<SALARY>30000</SALARY>
</STAFF>
<STAFF branchNo = “B003”>
<STAFFNO>SG37</STAFFNO>
<NAME>
<FNAME>Ann</FNAME><LNAME>Beech</LNAME>
</NAME>
<POSITION>Assistant</POSITION>
<SALARY>12000</SALARY>
</STAFF>
</STAFFLIST>
29
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
30
НЕСТРУКТУРИРАНИ БАЗИ НА ПОДАТОЦИ И XML - предавања д-р С. Калајџиски
31