Dzisiaj kontynuujemy tworzenie schematów (XML Schema)

Zad 1 (patterns)

Wzorując się na przykładzie z wykładu ,

korzystając wielkrotnie z ustalenia wzorca napisz

schemat który dopuszcza następujące numery telefonu:

<telefon> 0870 55 512 12 </telefon>
<telefon> +48 141 555 1212 </telefon>
<telefon> (58) 555-1212 </telefon>

przykład:

<xsd: simpleType name="telefon">
<xsd: restriction base="xsd:string">
<xsd: pattern value="\(\d{3}\)\s\d{3}-\d{4}"/>
</xsd: restriction>
</xsd: simpleType>

opisuje element xml:

<telefon>(123) 456-7891<telefon>

Aby uzyskać ten sam efekt dla 3 telefonów na raz, możesz albo wpisać pod rząd 3 razy pattern value= ..., albo w jednym pattern pisać wzorce oddzielone kreską |

Zad 2 (listy)

Wzorując się na przykładzie do wykładu lotek xsd zaprezentuj tworzenie typu za pomocą list , pisząc schemat dla elementu

<wyniki_skokow> 115 120 108 117 </wyniki_skokow>

Przyjmij że wyników jest co najwyżej 4, a długość skoku jest ograniczona z dołu przez 0, a z góry przez długość skoczni czyli 130.

Zad 3 (unie)

Wzorując się na przykładzie do wykładu stawkiVat.xsd zaprezentuj tworzenie typu wyn_skok za pomocą unii dwóch typów nienazwanych, pisząc schemat dla elementów

<wyniki_skokow> 115 </wyniki_skokow>

<wyniki_skokow> 18.5 </wyniki_skokow>

<wyniki_skokow> 118 </wyniki_skokow>

<wyniki_skokow> 17.0 </wyniki_skokow>

gdzie wyniki zawierają się w przedziale od 0 do 130 a punktacja to liczby rzeczywiste od 0 do 20

Zad 4

Napisz schemat dla natępującego fragmentu xml:

<osoba plec="m">
	Jan
</osoba>

użyj w tym celu elementu simpleContent

Zad 5

Napisz możliwie najbardziej restrykcyjny schemat dla pliku xml dotyczącego opisu galerii. W tym celu utwórz niewielki plik xml opisujący zbiór obrazów w wirtualnej galerii. Każdy obraz ma autora , datę utworzenia , muzeum w którym przebywa, autor ma imę , nazwisko , datę ur , opcjonalnie datę zgonu , miasto pochodzenia i kraj pochodzenia . Obraz ma również podelement wymiary który jest listą 2 liczb.
Bardziej szczegółowo dane są związane z takimi restrykcjami: Daty powinny być typu wbudowanego date, imię powinno mieć co najmniej 3 znaki i co najwyżej 20 oraz zaczynać się od dużej litery, zaś nazwisko powinno być ciągiem liter zaczynającym się od dużej litery, mającym conajmniej 3 i conajwyżej 30 znaków. wmiary są listą 2 liczb z zakresu od 10 do 300 (oznaczają wyskość i szerokość). Sprawdź czy plik xml jest zgodny ze schematem przez wpisanie

xmllint --schema twoj_plik.xsd twoj_plik.xml

UWAGA: Zad 5,6 możesz wykonać nie używając przestrzeni nazw, tj wpisując

w pliku xml:

< xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
 xsd:noNamespaceSchemaLocation="nazwa_pliku.xsd" >


w pliku nazwa_pliku.xsd:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

Zad 6

Napisz schemat dla pliku xml Ł. Pankowskiego z drugich zajęć:

zadanie Jak powyżej, sprawdź czy xml jest zgodny ze schematem