J¦zyki opisu dokumentu

Transkrypt

J¦zyki opisu dokumentu
Materiały bazowe
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
1 / 59
Materiały bazowe
http://www.w3schools.com/default.asp
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
1 / 59
Materiały bazowe
http://www.w3schools.com/default.asp
P. Kazienko, K. Gwiazda ”XML na poważnie”, Helion 2002.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
1 / 59
Istotne braki DTD
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
2 / 59
Istotne braki DTD
Brak możliwości definiowania typów danych zawartych w elemencie.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
2 / 59
Istotne braki DTD
Brak możliwości definiowania typów danych zawartych w elemencie.
Brak możliwości określania dokładnej liczby wystąpień elementów.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
2 / 59
XML Schema jest alternatywą dla DTD.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
3 / 59
XML Schema jest alternatywą dla DTD.
XML Schema - rekomendacja W3C - 2 maja 2001r.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
3 / 59
XML Schema jest alternatywą dla DTD.
XML Schema - rekomendacja W3C - 2 maja 2001r.
XML Schema, podobnie jak DTD, służy do definiowania ”cegiełek”, z
których może składać się dokument XML, ale ma dużo większe możliwości.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
3 / 59
Możliwości XML Schema
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
4 / 59
Możliwości XML Schema
definiuje elementy i atrybuty, które mogą wystąpić w dokumencie XML
oraz zależności między nimi;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
4 / 59
Możliwości XML Schema
definiuje elementy i atrybuty, które mogą wystąpić w dokumencie XML
oraz zależności między nimi;
definiuje ilość możliwych wystąpień elementów-dzieci;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
4 / 59
Możliwości XML Schema
definiuje elementy i atrybuty, które mogą wystąpić w dokumencie XML
oraz zależności między nimi;
definiuje ilość możliwych wystąpień elementów-dzieci;
określa czy element jest pusty czy może zawierać tekst;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
4 / 59
Możliwości XML Schema
definiuje elementy i atrybuty, które mogą wystąpić w dokumencie XML
oraz zależności między nimi;
definiuje ilość możliwych wystąpień elementów-dzieci;
określa czy element jest pusty czy może zawierać tekst;
definiuje typy danych dla elementów i atrybutów;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
4 / 59
Możliwości XML Schema
definiuje elementy i atrybuty, które mogą wystąpić w dokumencie XML
oraz zależności między nimi;
definiuje ilość możliwych wystąpień elementów-dzieci;
określa czy element jest pusty czy może zawierać tekst;
definiuje typy danych dla elementów i atrybutów;
definiuje wartości domyślne i stałe dla elementów i atrybutów;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
4 / 59
Możliwości XML Schema
definiuje elementy i atrybuty, które mogą wystąpić w dokumencie XML
oraz zależności między nimi;
definiuje ilość możliwych wystąpień elementów-dzieci;
określa czy element jest pusty czy może zawierać tekst;
definiuje typy danych dla elementów i atrybutów;
definiuje wartości domyślne i stałe dla elementów i atrybutów;
określa wzorce zawartości elementów i atrybutów;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
4 / 59
Możliwości XML Schema
definiuje elementy i atrybuty, które mogą wystąpić w dokumencie XML
oraz zależności między nimi;
definiuje ilość możliwych wystąpień elementów-dzieci;
określa czy element jest pusty czy może zawierać tekst;
definiuje typy danych dla elementów i atrybutów;
definiuje wartości domyślne i stałe dla elementów i atrybutów;
określa wzorce zawartości elementów i atrybutów;
oferuje bogaty zbiór typów wbudowanych, które w zależności od potrzeb
można zawężać lub rozszerzać.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
4 / 59
Jedną z największych zalet XML Schemas jest korzystanie z typów danych.
Dzięki temu:
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
5 / 59
Jedną z największych zalet XML Schemas jest korzystanie z typów danych.
Dzięki temu:
łatwiej jest opisywać dozwoloną zawartość dokumentu;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
5 / 59
Jedną z największych zalet XML Schemas jest korzystanie z typów danych.
Dzięki temu:
łatwiej jest opisywać dozwoloną zawartość dokumentu;
łatwiej jest kontrolować poprawność danych;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
5 / 59
Jedną z największych zalet XML Schemas jest korzystanie z typów danych.
Dzięki temu:
łatwiej jest opisywać dozwoloną zawartość dokumentu;
łatwiej jest kontrolować poprawność danych;
łatwiej jest pracować z danymi z baz danych;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
5 / 59
Jedną z największych zalet XML Schemas jest korzystanie z typów danych.
Dzięki temu:
łatwiej jest opisywać dozwoloną zawartość dokumentu;
łatwiej jest kontrolować poprawność danych;
łatwiej jest pracować z danymi z baz danych;
łatwiej jest definiować ograniczenia dla danych;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
5 / 59
Jedną z największych zalet XML Schemas jest korzystanie z typów danych.
Dzięki temu:
łatwiej jest opisywać dozwoloną zawartość dokumentu;
łatwiej jest kontrolować poprawność danych;
łatwiej jest pracować z danymi z baz danych;
łatwiej jest definiować ograniczenia dla danych;
łatwiej jest definiować format danych;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
5 / 59
Jedną z największych zalet XML Schemas jest korzystanie z typów danych.
Dzięki temu:
łatwiej jest opisywać dozwoloną zawartość dokumentu;
łatwiej jest kontrolować poprawność danych;
łatwiej jest pracować z danymi z baz danych;
łatwiej jest definiować ograniczenia dla danych;
łatwiej jest definiować format danych;
łatwiej jest konwertować dane do innego typu.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
5 / 59
Zalety faktu, że XML Schema jest napisane w XML:
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
6 / 59
Zalety faktu, że XML Schema jest napisane w XML:
nie trzeba uczyć się nowego języka;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
6 / 59
Zalety faktu, że XML Schema jest napisane w XML:
nie trzeba uczyć się nowego języka;
można używać edytora XML do edycji XML Schema;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
6 / 59
Zalety faktu, że XML Schema jest napisane w XML:
nie trzeba uczyć się nowego języka;
można używać edytora XML do edycji XML Schema;
można używać parsera XML do parsowania XML Schema.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
6 / 59
XML Schema gwarantuje, że przesyłane dane są jednakowo rozumiane
przez nadawcę i przez odbiorcę.
Przykład
Data w postaci ”03-11-2008” w niektórych krajach zostanie
zinterpretowana jako 3. listopada, a w innych jako 11. marca.
Jednakże element XML określony z użyciem typu danych:
<data type="date">2008-03-11</data>
zapewnia właściwe zrozumienie zawartości, gdyż XML-owy typ danych
”date” wymaga formatu ”RRRR-MM-DD”.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
7 / 59
Podstawowe składniki schematów XML Schema
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
8 / 59
Podstawowe składniki schematów XML Schema
deklaracja XML;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
8 / 59
Podstawowe składniki schematów XML Schema
deklaracja XML;
element główny o nazwie schema, który w znaczniku początkowym
zawiera określenie odpowiedniej przestrzeni nazw;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
8 / 59
Podstawowe składniki schematów XML Schema
deklaracja XML;
element główny o nazwie schema, który w znaczniku początkowym
zawiera określenie odpowiedniej przestrzeni nazw;
definicje typów;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
8 / 59
Podstawowe składniki schematów XML Schema
deklaracja XML;
element główny o nazwie schema, który w znaczniku początkowym
zawiera określenie odpowiedniej przestrzeni nazw;
definicje typów;
deklaracje elementów i atrybutów.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
8 / 59
Element schema
Element <schema> jest elementem głównym każdego dokumentu XML
Schema.
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
...
...
</xs:schema>
W znaczniku początkowym określona jest przestrzeń nazw oraz
przedrostek, dokładniej zapis ten oznacza, że elementy i typy danych
używane w tym dokumencie pochodzą z przestrzeni nazw
http://www.w3.org/2001/XMLSchema. Ponadto wskazuje, iż elementy i
typy danych pochodzące z przestrzeni nazw
http://www.w3.org/2001/XMLSchema muszą być poprzedzone
przedrostkiem xs:.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
9 / 59
Atrybuty elementu schema
Element <schema> może zawierać kilka dodatkowych atrybutów.
Przykład
<?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"
attributeFormDefault="qualified">
...
...
</xs:schema>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
10 / 59
Atrybut targetNamespace elementu schema
Fragment
targetNamespace="http://www.w3schools.com"
oznacza, że wszystkie nazwy zdefiniowane w tym schemacie mają być
przydzielone do przestrzeni nazw identyfikowanej przez
http://www.w3schools.com
Można pominąć atrybut targetNamespace, ale wtedy przestrzeń dla XML
Schema nie może być domyślna - powinna posiadać prefiks.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
11 / 59
Atrybut xmlns elementu schema
Fragment
xmlns="http://www.w3schools.com"
oznacza, że domyślną przestrzenią nazw jest http://www.w3schools.com
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
12 / 59
Atrybuty elementFormDefault i attributeFormDefault
elementu schema
Fragment
elementFormDefault="qualified"
oznacza, że nazwa każdego elementu zadeklarowanego w tym schemacie
musi być zakwalifikowana do przestrzeni nazw.
Fragment
attributeFormDefault="qualified"
oznacza, że nazwa każdego atrybutu zadeklarowanego w tym schemacie
musi być zakwalifikowana do przestrzeni nazw.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
13 / 59
Atrybuty elementFormDefault i attributeFormDefault
elementu schema
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
14 / 59
Atrybuty elementFormDefault i attributeFormDefault
elementu schema
Drugą dopuszczalną (i jednocześnie domyślną) wartością dla atrybutów
elementFormDefault i attributeFormDefault jest unqualified.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
14 / 59
Atrybuty elementFormDefault i attributeFormDefault
elementu schema
Drugą dopuszczalną (i jednocześnie domyślną) wartością dla atrybutów
elementFormDefault i attributeFormDefault jest unqualified.
Do domyślnej przestrzeni nazw można przydzielać lub z niej wyłączać
poszczególne elementy i atrybuty deklarowane w schemacie. Służy do tego
atrybut form umieszczany w deklaracji konkretnego elementu lub atrybutu.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
14 / 59
Odwołania do schematów
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
15 / 59
Odwołania do schematów
Dokument XML można przypisać schematowi na dwa sposoby:
bez przestrzeni nazw;
przydzielając do przestrzeni nazw.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
15 / 59
Odwołania do schematów
Dokument XML można przypisać schematowi na dwa sposoby:
bez przestrzeni nazw;
przydzielając do przestrzeni nazw.
Drugi sposób jest przydatny, gdy wykorzystuje się wiele schematów
jednocześnie. W praktyce rzadko występuje taka sytuacja.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
15 / 59
Odwołania do schematów bez przestrzeni nazw
Aby dokument XML przypisać schematowi bez określania przestrzeni nazw
należy użyć atrybutu xsi:noNameSpaceschemaLocation, w którym podaje
się jedynie lokalizację schematu.
Przykład
<?xml version=’1.0’ ?>
<elementKorzen
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNameSpaceschemaLocation="nazwa.xsd">
...
...
</elementKorzen>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
16 / 59
Poprawność dokumentu korzystającego ze schematu XML
Schema
Parser przetwarzający dokument XML korzystający ze schematu XML
Schema sprawdza:
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
17 / 59
Poprawność dokumentu korzystającego ze schematu XML
Schema
Parser przetwarzający dokument XML korzystający ze schematu XML
Schema sprawdza:
poprawność składniową dokumentu;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
17 / 59
Poprawność dokumentu korzystającego ze schematu XML
Schema
Parser przetwarzający dokument XML korzystający ze schematu XML
Schema sprawdza:
poprawność składniową dokumentu;
zgodność dokumentu ze schematem (walidacja);
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
17 / 59
Poprawność dokumentu korzystającego ze schematu XML
Schema
Parser przetwarzający dokument XML korzystający ze schematu XML
Schema sprawdza:
poprawność składniową dokumentu;
zgodność dokumentu ze schematem (walidacja);
zgodność schematu z zasadami tworzenia schematów.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
17 / 59
Deklaracje elementów i atrybutów
Definiowanie elementu prostego
<xs:element name="xxx" type="yyy"/>
xxx- nazwa elementu, yyy - typ danych elementu.
Definiowanie atrybutu
<xs:attribute name="xxx" type="yyy"/>
xxx- nazwa atrybutu, yyy - typ danych atrybutu.
Atrybut type służy do określania typu elementu lub atrybutu.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
18 / 59
Wartości stałe i domyślne dla elementów prostych i
atrybutów
Wartość domyślna dla elementu
<xs:element name="kolor"
type="xs:string" default="czerwony"/>
Wartość stała dla elementu
<xs:element name="kolor"
type="xs:string" fixed="czerwony"/>
Wartość domyślna dla atrybutu
<xs:attribute name="jezyk"
type="xs:string" default="polski"/>
Wartość stała dla atrybutu
<xs:attribute name="jezyk"
type="xs:string" fixed="polski"/>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
19 / 59
Rodzaje typów dla elementów i atrybutów
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
20 / 59
Rodzaje typów dla elementów i atrybutów
typy wbudowane - zdefiniowane bezpośrednio przez standard XML
Schema;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
20 / 59
Rodzaje typów dla elementów i atrybutów
typy wbudowane - zdefiniowane bezpośrednio przez standard XML
Schema;
typy proste - własne, zdefiniowane za pomocą elementu xs:simpleType;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
20 / 59
Rodzaje typów dla elementów i atrybutów
typy wbudowane - zdefiniowane bezpośrednio przez standard XML
Schema;
typy proste - własne, zdefiniowane za pomocą elementu xs:simpleType;
typy złożone - własne, zdefiniowane za pomocą elementu xs:complexType.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
20 / 59
Typy wbudowane
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
21 / 59
Typy wbudowane
Typy czasowe
duration, dateTime, time, date, gYearMonth, gYear, gDay, gMonthDay,
gMonth
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
21 / 59
Typy wbudowane
Typy czasowe
duration, dateTime, time, date, gYearMonth, gYear, gDay, gMonthDay,
gMonth
Typ logiczny
boolean
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
21 / 59
Typy wbudowane
Typy czasowe
duration, dateTime, time, date, gYearMonth, gYear, gDay, gMonthDay,
gMonth
Typ logiczny
boolean
Typy binarne
base64Binary, hexBinary
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
21 / 59
Typy wbudowane
Typy czasowe
duration, dateTime, time, date, gYearMonth, gYear, gDay, gMonthDay,
gMonth
Typ logiczny
boolean
Typy binarne
base64Binary, hexBinary
Typy znakowe
string, normalizedString, token
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
21 / 59
Typy wbudowane - c.d.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
22 / 59
Typy wbudowane - c.d.
Typy liczbowe
float, double, decimal, integer, nonPositiveInteger, negativeIntiger,
nonNegativeInteger, unsignedLong, unsignedInt, unsignedShort,
unsignedByte, positiveInteger, long, int, short, byte
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
22 / 59
Typy wbudowane - c.d.
Typy liczbowe
float, double, decimal, integer, nonPositiveInteger, negativeIntiger,
nonNegativeInteger, unsignedLong, unsignedInt, unsignedShort,
unsignedByte, positiveInteger, long, int, short, byte
Typy XML
anyURI, QName, NOTATION, language, Name, NCName, ID, IDREF,
IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
22 / 59
Typy wbudowane - c.d.
Typy liczbowe
float, double, decimal, integer, nonPositiveInteger, negativeIntiger,
nonNegativeInteger, unsignedLong, unsignedInt, unsignedShort,
unsignedByte, positiveInteger, long, int, short, byte
Typy XML
anyURI, QName, NOTATION, language, Name, NCName, ID, IDREF,
IDREFS, ENTITY, ENTITIES, NMTOKEN, NMTOKENS
Szczegółowe informacje na temat typów można znaleźć pod adresem
http://www.w3.org/TR/xmlschema-2
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
22 / 59
Definiowanie typu prostego
Przykład - dowolna liczba całkowita od 1 do 150
<xs:simpleType name="typ_wiek">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="150"/>
</xs:restriction>
</xs:simpleType>
Zastosowanie
<xs:attribute name="wiek" type="typ_wiek"/>
Za pomocą typów prostych można definiować tylko bezpośrednią zawartość
elementu (bez podelementów i atrybutów) lub zawartość atrybutu.
W definicji typów prostych można wykorzystywać tylko inne typy proste
lub typy wbudowane.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
23 / 59
Definiowanie typu złożonego
Przykład - typ złożony zawierający 3 podelementy i 1 atrybut
<xs:complexType name="typ_adres">
<xs:sequence>
<xs:element name="ulica" type="xs:string"/>
<xs:element name="nrDomu" type="xs:string"/>
<xs:element name="miasto" type="xs:string"/>
</xs:sequence>
<xs:attribute name="rodzaj_adresu" type="xs:token"
fixed="czasowy"/>
</xs:complexType>
Za pomocą typów złożonych można definiować elementy zawierające
podelementy i (lub) atrybuty.
Definicje atrybutów w typach złożonych zawierających podelementy muszą
wystąpić po definicjach podelementów.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
24 / 59
Definiowanie własnych typów - zastosowanie
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
25 / 59
Definiowanie własnych typów - zastosowanie
Definiowanie własnych typów ma sens, gdy wykorzystujemy je do
określania zawartości wielu elementów.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
25 / 59
Definiowanie własnych typów - zastosowanie
Definiowanie własnych typów ma sens, gdy wykorzystujemy je do
określania zawartości wielu elementów.
Jeśli dany typ ma być wykorzystany tylko w jednym miejscu, prościej jest
zadeklarować zawartość tego atrybutu lub elementu wprost. Takie
deklaracje nazywane są deklaracjami lokalnymi.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
25 / 59
Aspekty - rodzaje
Aspekty służą do charakteryzowania dopuszczalnych wartości elementów i
atrybutów.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
26 / 59
Aspekty - rodzaje
Aspekty służą do charakteryzowania dopuszczalnych wartości elementów i
atrybutów.
Rodzaje aspektów
określające długość;
ograniczające wartości liczbowe;
aspekt definiujący wzorce wartości;
aspekt określający listę dopuszczalnych wartości (wyliczeniowy);
aspekt określający sposób traktowania białych znaków.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
26 / 59
Aspekty określające długość
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
27 / 59
Aspekty określające długość
length
określa dokładną liczbę znaków lub pozycji listy;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
27 / 59
Aspekty określające długość
length
określa dokładną liczbę znaków lub pozycji listy;
maxLength
określa maksymalną liczbę znaków lub pozycji listy; musi być większa lub
równa 0;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
27 / 59
Aspekty określające długość
length
określa dokładną liczbę znaków lub pozycji listy;
maxLength
określa maksymalną liczbę znaków lub pozycji listy; musi być większa lub
równa 0;
minLength
określa minimalną liczbę znaków lub pozycji listy; musi być większa lub
równa 0.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
27 / 59
Aspekty określające długość - przykłady
Typ haslo - dokładnie 8 znaków
<xs:simpleType name="haslo">
<xs:restriction base="xs:string">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
Typ haslo - od 5 do 8 znaków
<xs:simpleType name="haslo">
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
28 / 59
Aspekty ograniczające wartości liczbowe
Dla typów pochodnych od integer :
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
29 / 59
Aspekty ograniczające wartości liczbowe
Dla typów pochodnych od integer :
maxExclusive
definiuje górną granicę dla wartości numerycznych (wartość musi być
mniejsza);
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
29 / 59
Aspekty ograniczające wartości liczbowe
Dla typów pochodnych od integer :
maxExclusive
definiuje górną granicę dla wartości numerycznych (wartość musi być
mniejsza);
maxInclusive
definiuje górną granicę dla wartości numerycznych (wartość musi być
mniejsza lub równa);
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
29 / 59
Aspekty ograniczające wartości liczbowe
Dla typów pochodnych od integer :
maxExclusive
definiuje górną granicę dla wartości numerycznych (wartość musi być
mniejsza);
maxInclusive
definiuje górną granicę dla wartości numerycznych (wartość musi być
mniejsza lub równa);
minExclusive
definiuje dolną granicę dla wartości numerycznych (wartość musi być
większa);
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
29 / 59
Aspekty ograniczające wartości liczbowe
Dla typów pochodnych od integer :
maxExclusive
definiuje górną granicę dla wartości numerycznych (wartość musi być
mniejsza);
maxInclusive
definiuje górną granicę dla wartości numerycznych (wartość musi być
mniejsza lub równa);
minExclusive
definiuje dolną granicę dla wartości numerycznych (wartość musi być
większa);
minInclusive
definiuje dolną granicę dla wartości numerycznych (wartość musi być
większa lub równa).
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
29 / 59
Aspekty ograniczające wartości liczbowe
Dla typów pochodnych od decimal:
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
30 / 59
Aspekty ograniczające wartości liczbowe
Dla typów pochodnych od decimal:
totalDigits
określa dokładną liczbę dopuszczalnych cyfr; musi być większa lub równa 0;
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
30 / 59
Aspekty ograniczające wartości liczbowe
Dla typów pochodnych od decimal:
totalDigits
określa dokładną liczbę dopuszczalnych cyfr; musi być większa lub równa 0;
fractionDigits
określa dopuszczalną liczbę miejsc dziesiętnych; musi być większa lub
równa 0.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
30 / 59
Aspekty ograniczające wartości liczbowe - przykłady
Typ wiek - wartość od 1 (włącznie )do 150 (włącznie)
<xs:simpleType name="typ_wiek">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="150"/>
</xs:restriction>
</xs:simpleType>
Typ waluta - dwa miejsca po przecinku, wartość mniejsza lub równa
999.99
<xs:simpleType name="waluta">
<xs:restriction base="xs:decimal">
<xs:totalDigits value="5"/>
<xs:fractionDigits value="2" fixed="true"/>
</xs:restriction>
</xs:simpleType>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
31 / 59
Aspekt definiujący wzorce wartości
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
32 / 59
Aspekt definiujący wzorce wartości
pattern
określa dokładny ciąg znaków dla wartości dopuszczalnych.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
32 / 59
Aspekt definiujący wzorce wartości
pattern
określa dokładny ciąg znaków dla wartości dopuszczalnych.
Wzorce stosowane w tym aspekcie muszą być wyrażeniami regularnymi.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
32 / 59
Aspekt pattern
<xs:element name="litera">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie zdefiniowany jest element o nazwie litera, dla
którego jedyną dopuszczalną wartością jest DOKŁADNIE JEDNA mała
litera od a do z.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
33 / 59
Aspekt pattern
<xs:element name="inicjaly">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][A-Z][A-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie zdefiniowany jest element o nazwie inicjaly, dla
którego jedyną dopuszczalną wartością jest ciąg trzech wielkich liter od A
do Z.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
34 / 59
Aspekt pattern
<xs:element name="inicjaly">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie zdefiniowany jest element o nazwie inicjaly, dla
którego jedyną dopuszczalną wartością jest ciąg trzech wielkich lub małych
liter od a do z.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
35 / 59
Aspekt pattern
<xs:element name="wybor">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[xyz]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie zdefiniowany jest element o nazwie wybor, dla
którego jedyną dopuszczalną wartością jest jedna z liter x, y lub z.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
36 / 59
Aspekt pattern
<xs:element name="prodid">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie zdefiniowany jest element o nazwie prodid, dla
którego jedyną dopuszczalną wartością jest ciąg pięciu cyfr, z których
każda jest z zakresu od 0 do 9.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
37 / 59
Aspekt pattern
<xs:element name="litera">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z])*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie zdefiniowany jest element o nazwie litera, dla
którego dopuszczalną wartością jest zero lub więcej małych liter z zakresu
od a do z.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
38 / 59
Aspekt pattern
<xs:element name="litera">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z][A-Z])+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie zdefiniowany jest element o nazwie litera, dla
którego dopuszczalną wartością jest jedna lub więcej par liter. Każda para
składa się z małej litery, po której następuje duża litera. Przykładem
prawidłowej wartości może być: sToP.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
39 / 59
Aspekt pattern
<xs:element name="plec">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="kobieta|mezczyzna"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie zdefiniowany jest element o nazwie plec, dla
którego jedynymi dopuszczalnymi wartościami są kobieta lub mezczyzna.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
40 / 59
Aspekt pattern
<xs:element name="haslo">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie zdefiniowany jest element o nazwie haslo.
Dopuszczalną wartością jest ciąg dokładnie ośmiu znaków, z których każdy
może być małą lub dużą literą od a do z lub cyfra z zakresu od 0 do 9.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
41 / 59
Aspekt określający listę dopuszczalnych wartości
enumeration
definiuje listę dopuszczalnych wartości;
Przykład
<xs:element name="samochod">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie jedynymi wartościami dopuszczalnymi dla
elementu samochod są: Audi, Golf i BMW.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
42 / 59
Aspekt whiteSpace
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
43 / 59
Aspekt whiteSpace
whiteSpace
określa sposób postępowania z ”białymi znakami”.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
43 / 59
Aspekt whiteSpace
whiteSpace
określa sposób postępowania z ”białymi znakami”.
Możliwe wartości dla aspektu whiteSpace:
preserve;
replace;
collapse.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
43 / 59
Aspekt whiteSpace
Wartość preserve
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie wartość dla whiteSpace jest ustawiona na
preserve, co oznacza, że ”białe znaki” nie zostaną usunięte.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
44 / 59
Aspekt whiteSpace
Wartość replace
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie wartość dla whiteSpace jest ustawiona na
replace, co oznacza, że wszystkie ”białe znaki” zostaną zastąpione
spacjami.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
45 / 59
Aspekt whiteSpace
Wartość collapse
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
W powyższym przykładzie wartość dla whiteSpace jest ustawiona na
collapse, co oznacza, że wszystkie ”białe znaki” zostaną usunięte i
zastąpione spacjami a wielokrotne spacje zastąpione pojedynczą spacją.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
46 / 59
Łączenie aspektów
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
47 / 59
Łączenie aspektów
Aspekty mogą byc łączone przez podanie kilku podelementów z
poszczególnymi aspektami.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
47 / 59
Łączenie aspektów
Aspekty mogą byc łączone przez podanie kilku podelementów z
poszczególnymi aspektami.
Aspekty pattern oraz enumeration są łączone za pomocą logicznego
”lub”.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
47 / 59
Łączenie aspektów
Aspekty mogą byc łączone przez podanie kilku podelementów z
poszczególnymi aspektami.
Aspekty pattern oraz enumeration są łączone za pomocą logicznego
”lub”.
Pozostałe aspekty są łączone za pomocą logicznego ”i”.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
47 / 59
Łączenie aspektów
Aspekty mogą byc łączone przez podanie kilku podelementów z
poszczególnymi aspektami.
Aspekty pattern oraz enumeration są łączone za pomocą logicznego
”lub”.
Pozostałe aspekty są łączone za pomocą logicznego ”i”.
Można stosować wiele aspektów tego samego rodzaju równocześnie.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
47 / 59
Blokowanie wartości aspektów
W definicjach typów można blokować wartości aspektów tak, aby nie
można było ich zmieniać przy deklaracji konkretnych elementów. Służy do
tego atrybut fixed.
Typ waluta - dwa miejsca po przecinku, wartość mniejsza lub równa
999.99
<xs:simpleType name="waluta">
<xs:restriction base="xs:decimal">
<xs:totalDigits value="5"/>
<xs:fractionDigits value="2" fixed="true"/>
</xs:restriction>
</xs:simpleType>
Korzystając z typu waluta (np. przy wyprowadzaniu typu pochodnego) nie
wolno użyć aspektu fractionDigits.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
48 / 59
Opcjonalność atrybutów
Dany atrybut może wystąpić w elemencie raz lub wcale.
Atrybuty domyślnie są opcjonalne.
Aby narzucić warunek wymagalności atrybutu należy użyć atrybutu use w
elemencie definiującym dany atrybut i nadać mu wartość required:
Przykład
<xs:attribute name="jezyk" type="xs:string" use="required"/>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
49 / 59
Liczba wystąpień elementu
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
50 / 59
Liczba wystąpień elementu
W XML Schema można określać minimalną i maksymalną liczbę wystąpień
elementu. Służą do tego atrybuty minOccurs i maxOccurs.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
50 / 59
Liczba wystąpień elementu
W XML Schema można określać minimalną i maksymalną liczbę wystąpień
elementu. Służą do tego atrybuty minOccurs i maxOccurs.
Wartościami domyślnymi dla atrybutów minOccurs i maxOccurs jest 1.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
50 / 59
Liczba wystąpień elementu
W XML Schema można określać minimalną i maksymalną liczbę wystąpień
elementu. Służą do tego atrybuty minOccurs i maxOccurs.
Wartościami domyślnymi dla atrybutów minOccurs i maxOccurs jest 1.
Jeśli liczba wystąpień elementu jest nieograniczona, to atrybutowi
maxOccurs należy nadać wartość unbounded.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
50 / 59
Liczba wystąpień elementu
W XML Schema można określać minimalną i maksymalną liczbę wystąpień
elementu. Służą do tego atrybuty minOccurs i maxOccurs.
Wartościami domyślnymi dla atrybutów minOccurs i maxOccurs jest 1.
Jeśli liczba wystąpień elementu jest nieograniczona, to atrybutowi
maxOccurs należy nadać wartość unbounded.
Tylko niektóre kombinacje wartości dla atrybutów minOccurs i maxOccurs
mają swoje odpowiedniki w DTD.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
50 / 59
Liczba wystąpień elementu - przykład
<xs:element name="osoba">
<xs:complexType>
<xs:sequence>
<xs:element name="imie_nazwisko" type="xs:string"/>
<xs:element name="imie_dziecka" type="xs:string"
minOccurs="0" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
</xs:element>
W powyższym przykładzie element imie dziecka może nie wystąpić ani
razu i może wystąpić maksymalnie 10 razy.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
51 / 59
Składacze
Składacze to elementy wyznaczające kolejność występowania
podelementów.
Rodzaje składaczy
sequence;
choice;
all.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
52 / 59
Składacz sequence
Użycie składacza sequence oznacza, że elementy-dzieci muszą występować
w ściśle określonej kolejności.
Przykład zastosowania
<xs:element name="osoba">
<xs:complexType>
<xs:sequence>
<xs:element name="imie" type="xs:string"/>
<xs:element name="nazwisko" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
53 / 59
Składacz choice
Użycie składacza choice oznacza, że pojawić się może tylko jeden z
elementów-dzieci.
Przykład zastosowania
<xs:element name="osoba">
<xs:complexType>
<xs:choice>
<xs:element name="pracownik" type="employee"/>
<xs:element name="student" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
54 / 59
Składacz choice - wymuszenia występowania
<xs:element name="HistoriaSpotkanDwochDruzyn">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="wygrana"
type="xs:string"/>
<xs:element name="remis"
type="xs:string"/>
<xs:element name="przegrana" type="xs:string"/>
</xs:choice>
</xs:complexType>
</xs:element>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
55 / 59
Składacz all
Użycie składacza all oznacza, że elementy-dzieci mogą występować w
dowolnej kolejności oraz, że każdy element-dziecko może pojawić się tylko
raz.
Przykład zastosowania
<xs:element name="osoba">
<xs:complexType>
<xs:all>
<xs:element name="imie" type="xs:string"/>
<xs:element name="nazwisko" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
56 / 59
Składacz all - ograniczenia
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
57 / 59
Składacz all - ograniczenia
W skład all mogą wchodzić jedynie pojedyncze elementy.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
57 / 59
Składacz all - ograniczenia
W skład all mogą wchodzić jedynie pojedyncze elementy.
Podelementy w all nie mogą się powtarzać.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
57 / 59
Składacz all - ograniczenia
W skład all mogą wchodzić jedynie pojedyncze elementy.
Podelementy w all nie mogą się powtarzać.
Podelementy w all muszą mieć maksymalną ilość wystąpieć równą 1, zaś
minimalną ilość wystąpień równą 0 lub 1.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
57 / 59
Składacz all - ograniczenia
W skład all mogą wchodzić jedynie pojedyncze elementy.
Podelementy w all nie mogą się powtarzać.
Podelementy w all muszą mieć maksymalną ilość wystąpieć równą 1, zaś
minimalną ilość wystąpień równą 0 lub 1.
Składacz all nie może być zagnieżdżony w innych składaczach.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
57 / 59
Składacz all - ograniczenia
W skład all mogą wchodzić jedynie pojedyncze elementy.
Podelementy w all nie mogą się powtarzać.
Podelementy w all muszą mieć maksymalną ilość wystąpieć równą 1, zaś
minimalną ilość wystąpień równą 0 lub 1.
Składacz all nie może być zagnieżdżony w innych składaczach.
Uwaga! Nie wszystkie aplikacje zgodne z XML Schema mają
zaimplementowany składacz all.
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
57 / 59
Zagnieżdżanie składaczy
Sequence wewnątrz choice - przykład
<xs:element name="kontrahent">
<xs:complexType>
<xs:choice>
<xs:element name="firma"
type="xs:string"/>
<xs:sequence>
<xs:element name="imie"
type="xs:string"/>
<xs:element name="nazwisko" type="xs:string"/>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
58 / 59
Choice wewnątrz sequence - przykład
<xs:element name="osoba">
<xs:complexType>
<xs:sequence>
<xs:element name="imie"
<xs:element name="nazwisko"
<xs:choice>
<xs:element name="Pesel"
<xs:element name="NIP"
<xs:element name="nrDowodu"
<xs:element name="nrPaszportu"
<xs:element name="nrLegitymacji"
type="xs:string"/>
type="xs:string"/>
type="xs:string"/>
type="xs:string"/>
type="xs:string"/>
type="xs:string"/>
type="xs:string"
maxOccurs="5"/>
</xs:choice>
<xs:element name="wiek" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
()
Języki opisu dokumentu - XML Schema
9 listopada 2012
59 / 59

Podobne dokumenty