Motywowawnie i system wynagrodzeń


XML Schema
Motywacja, struktura schematu, typy złożone
Patryk Czarnik
Instytut Informatyki UW
XML i nowoczesne technologie zarządzania treścią 
2007/08
Dlaczego nie DTD?
Zastosowania XML-a w elektronicznej wymianie danych:
przeniesienie zadania sprawdzania poprawności z
tworzonej aplikacji na narzędzie walidujące daje spore
oszczędności,
60% tworzonego kodu dotyczy weryfikacji poprawności
danych.
Roger L. Costello, XML Schema Tutorial
Cechy DTD:
niemal brak kontroli nad tekstową zawartością elementów
i wartościami atrybutów,
bardzo ogólne metody definiowania częstości wystąpień.
Porównanie DTD i XML Schema
DTD XML Schema
pochodzący z SGML
zaprojektowany dla XML
specyficzna składnia
składnia XML
10 typów danych
44 wbudowane typy proste
brak kontroli tekstowej
zaawansowana kontrola
zawartości elementów
tekstowej zawartości
niewielka dla atrybutów
elementów i atrybutów
modularność tylko na
modularność na poziomie
poziomie tekstu DTD
pojęć abstrakcyjnych
(encje parametryczne)
(własne typy zawartości,
grupy, import)
Status XML Schema
15 lutego 1999: Dokument W3C opisujący wymagania.
2 maja 2001: XML Schema oficjalną rekomendacją W3C:
XML Schema Part 0: Primer,
XML Schema Part 1: Structures,
XML Schema Part 2: Datatypes.
Obecnie prace nad wersją 1.1 XML Schema
(status: working draft).
Prosty przykład schematu




minOccurs="1" maxOccurs="unbounded"/>


use="optional"/>



element główny schematu
przestrzeń nazw XML Schema
deklaracja elementu (globalna)
deklaracja elementu (lokalna)
określenie liczności elementów
deklaracja atrybutu
określenie (nie)obowiązkowości atrybutu
Typy w XML Schema
Elementy i atrybuty mają w schemacie określony typ
zawartości.
Typy zwn. zasięg definicji:
nazwane,
anonimowe.
Typy zwn. pochodzenie:
predefiniowane (przez standard),
definiowane w schemacie.
Typy zwn. zawartość:
proste,
złożone, o zawartości:
pustej,
prostej,
elementowej (złożonej),
mieszanej.
Typy nazwane i anonimowe
Typy nazwane







Typy anonimowe








Typy nazwane i anonimowe  kiedy stosować?
Typy nazwane
ten sam typ stosowany dla wielu elementów / atrybutów,
typ stanowi podstawę zawężeń / rozszerzeń,
także w potencjalnych przyszłych rozszerzeniach
schematu!
Typy anonimowe
typ występujący tylko w jednym miejscu schematu,
nie stanowiący podstawy dla innego typu.
Deklaracje globalne i lokalne
Deklaracje globalne








Deklaracje lokalne






Deklaracje globalne i lokalne  kiedy stosować?
Deklaracje globalne
element (atrybut) występujący w wielu miejscach schematu
z tym samym typem zawartości,
także w potencjalnych przyszłych rozszerzeniach
schematu!
Deklaracje lokalne
element (atrybut) tylko w jednym miejscu schematu,
w różnych miejscach z różnym typem zawartości. . .
Deklaracje lokalne z różnym typem zawartości
możliwość użycia tej samej nazwy dla różnych
(semantycznie i strukturalnie) elementów i atrybutów,
naturalne w przypadku atrybutów,
mylące w przypadku elementów  używać z rozsądkiem.
Przykład










12 -9
Typy złożone i proste
Typ złożony







Typ prosty








Typy proste i złożone  kiedy używać?
Typy złożone
struktura (podelementy, atrybuty),
odpowiednie dla elementów.
Typy proste
zawartość tekstowa,
odpowiednie dla atrybutów i elementów,
wiele typów predefiniowanych,
możliwość definiowania własnych typów.
Typy złożone  rodzaje zawartości
Zawartość elementowa:

Jan
Kowalski

Zawartość pusta:

Zawartość prosta:
10.55
Zawartość mieszana:
W Pascalu przypisanie ma postać x := 5,
natomiast w C x = 5.

Definiowanie zawartości elementowej
Grupy deklaracji (model groups)
sequence,
choice,
all.
Zagnieżdżanie grup sequence i choice









Liczność wystąpień
AtrybutyminOccursimaxOccurs.
Dla podelementów oraz grup.
WartośćunboundeddlamaxOccurs.
Domyślna liczność: dokładnie 1.
Sztuczny przykład



minOccurs="0" maxOccurs="3"/>





Modele (nie)deterministyczne
Model niejednoznaczny:
Nawet znając cały dokument nie jesteśmy w stanie wskazać które deklaracje
w schemacie odpowiadają elementom w dokumencie.
(a,a)*|(a,a,a)*
Model niedeterministyczny:
Czytając dokument od początku gdy pojawia się pewien znacznik otwierający
nie jesteśmy w stanie wskazać która deklaracja w schemacie odpowiada
bieżącemu elementowi w dokumencie (bez czytania dalej dokumentu).
(a,a?,a?) (a,b)+,a?
Modele definiowane w XML Schema muszą być
deterministyczne:
Czytając dowolny dokument od początku gdy pojawia się pewien znacznik
otwierający jesteśmy w stanie wskazać która deklaracja w schemacie odpowiada
bieżącemu elementowi w dokumencie (bez czytania dalej dokumentu).
(a,(a,a?)?)
Grupa all
Wszystkie podelementy w dowolnej kolejności.
maxOccurspodelementów <= 1.
Brak udziału w zagnieżdżeniach.
Przykład




minOccurs="0"/>


Nazwane grupy elementów

















Deklaracje atrybutów
Deklaracje globalne i lokalne.
W definicji typu złożonego za określeniem typu zawartości.
Przykład


...


...



Obowiązkowość i wartości domyślne
use  required,optional,prohibited.
default lub fixed  wartość domyślna lub ustalona.
Przykład

...
use="required"/>

...



Nazwane grupy atrybutów








...





...



Elementy czy atrtybuty?
Przesłanki strukturalne
Elementy konieczne gdy:
liczność większa od 1,
wewnętrzna struktura (podelemety),
także w potencjalnych przyszłych rozszerzeniach
schematu!
Zalety atrybutów:
zwięzłość zapisu,
wartości domyślne,
w DTD dostępne typy zawartości NMTOKEN, ID, IDREF
(w XML Schema bez znaczenia).
Elementy czy atrtybuty?
Przesłanki semantyczne
Informacje modelowane zwykle w elementach:
zawartość (elementy semantyczne, np. nazwisko, nazwa
leku, adres),
struktura (np. rozdział, akapit, tytuł, lista),
wyszukiwanie (np. termin do indeksu, glosariusza, a także
elementy dedykowane),
odesłania (np. hiperlinki, noty, przypisy).
Informacje modelowane zwykle w atrybutach:
metainformacje (np. jednostka miary, waluta, język,
priorytet),
identyfikatory wartości i odwołania do nich.
Typy złożone  rodzaje zawartości
Zawartość elementowa:

Jan
Kowalski

Zawartość pusta:

Zawartość prosta:
10.55
Zawartość mieszana:
W Pascalu przypisanie ma postać x := 5,
natomiast w C x = 5.

Definiowanie zawartości pustej
Schemat



Dokument

10.55
W Pascalu przypisanie ma postać x := 5,
natomiast w C x = 5.

Definiowanie zawartości prostej
Schemat







Dokument
10.55
Definiowanie zawartości mieszanej (1)
Ważna liczność i kolejność






Dokument

Zamawiam pączka i kawę.
Proszę przysłać na Banacha 2.

Definiowanie zawartości mieszanej (2)
Jak w DTD






Dokument
W Pascalu przypisanie ma postać x := 5,
natomiast w C x = 5.

ID i IDREF
Typy atrybutów w DTD, dostępne także w XML Schema.
ID:
nazwa w sensie XML,
żaden inny atrybut o typie ID nie może mieć tej samej
wartości,
IDREF:
jakiś atrybut o typie ID w dokumencie musi mieć równą
wartość.
Ograniczenia:
tylko nazwy (w szczególności nie numery),
jedna przestrzeń identyfikatorów dla wszystkich elementów,
tylko atrybuty.
Klucze i referencje
Więzy integralności (identity constraints) w XML Schema:
unique  wartości w ramach określonego zakresu
unikatowe,
key  wartości w ramach określonego zakresu unikatowe
i niepuste,
keyref  odwołanie do wartości wskazanego klucza.
Zalety w porównaniu z atrybutami typu ID / IDREF:
dowolny typ zawartości (nie tylko nazwa),
możliwych wiele niezależnych od siebie ograniczeń,
odwołanie do konkretnego klucza,
kombinacje wartości (krotki),
kontrolowane zawartości elementów, nie tylko atrybutów.
Klucze i referencje
type="ZamówieniaFakturyTyp">





refer="zamówienieId">
xpath="faktury/faktura/do-zamówienia"/>









Wyszukiwarka

Podobne podstrony:
Motywowanie i system wynagrodzeń pracowników
Motywacyjna rola systemu wynagrodzen na przykladzie przedsiebiorstwa Pol Hun [ www potrzebujegotowki
Motywacyjny system wynagradzania
Systemy motywowania pracowników wyk 1
Motywowanie i wynagradzanie prez
Systemy motywowania pracowników wyk 2
System prowizji i wynagrodzeń
wylaczenie aktualizacji systemu XP
EV (Electric Vehicle) and Hybrid Drive Systems
system ósemkowy
ANALIZA KOMPUTEROWA SYSTEMÓW POMIAROWYCH — MSE

więcej podobnych podstron