Úloha č. 2: XML Schéma

Vytvořte XML schéma pro soubor people.xml a uložte jej do souboru people.xsd. Věnujte zvýšenou pozornost tomu, abyste ošetřili všechny požadavky na strukturu dokumentu, které jsou uvedené v komentářích.

Nezapomeňte ověřit správnost vytvořeného schématu pomocí nějakého validujícího parseru (např. xerces). Doporučuji Vám si vytvořit sadu správných dokumenů, jejichž struktura splňuje dané požadavky, a sadu nesprávných dokumentů, které dané požadavky nesplňují. Validace všech dokumentů z první sady musí proběhnout bez chyb a validace kteréhokoliv dokumentu z druhé sady naopak musí skončit chybou. Abychom Vám to usnadnili, přikládáme na ukázku tři špatné dokumenty (people2-bad-person.with.negative.salary.xml, people2-bad-car.with.wrong.id.xml a people2-bad-car.with.wrong.year.xml). Příkladem správného dokumentu je například soubor people.xml. Pozor! To, že Vaše schéma nedovolí validaci těchto dvou dokumentů, není zárukou toho, že je správné! Oba dokumenty obsahují pouze dvě z celé řady potenciálních chyb. Při opravování úlohy mají cvičící k dispozici mnohem rozsáhlejší kolekci správných i špatných dokumentů, které ověří téměř všechny potenciální chyby ve schématu.

Pravidla pro bodování jsou poněkud mírnější, než u první úlohy. Pokud bude odevzdané řešení obsahovat pouze drobnou chybu (zapomenete něco ošetřit), bude Vám stržen jeden bod, úloha Vám bude vrácena a musíte ji opravit a odevzdat znovu. Pokud bude chyba spočívat v nevalidnosti samotného schématu nebo toto schéma bude obsahovat chyby odhalitelné pomocí čtyř výše zmíněných ukázkových dokumentů, budou Vám strženy tři body (získáte tedy nula bodů), úloha Vám bude vrácena a musíte ji opravit a odevzdat znovu. Pokud úloha nebude odevzdána vůbec, nebo Vám bude vrácena a Vy ji neodevzdáte znovu, budou za tuto úlohu uděleny tři záporné body.

Obsah celého adresáře s úlohou je dispozici také v archivu uloha2.zip.

Úlohu odevzdejte tak, že soubor people.xsd zabalíte do archivu uloha2-kodevzdani.zip a ten umístěte do příslušné odevzdávárny v IS.