
 Vyučující
 Zakončení
 Přednášky
 Cvičení
  01 Úvod
  02 XML
  03 DTD
  04 Schémata 
  05 CSS
  06 XPath, XSLT
  07 XSLT
  08 XSL-FO
  09 DocBook
  10 XQuery
  11 XML API
 Software
 Partneři
| XML Schémata
-
Nahrajte si ukázkové dokumenty a
schémata
Schéma faktura.xsd obsahuje ukázku
schématu, které nepoužívá jmenné
prostory. faktura2.xsd je schéma, které definuje
cílový jmenný prostor. Odpovídající instance dokumentů XML jsou
faktura-schema.xml a faktura-schema2.xml.
-
Zkuste si ukázkový dokument
faktura-schema.xml zvalidovat pomocí příkazu
xerces -v -s jméno_xml_dokumentu
a pomocí zabudované funkce v editoru oXygen, XML Spy nebo jEdit.
-
Zkuste v dokumentu napáchat chyby a podívejte se, jak se
projeví při validaci.
-
Prohlédněte si specifikace XML schémat,
slidy z přednášky
a tutoriál
a zkuste si měnit různé věci v hotovém schématu a
dokumentu
-
Můžete vyzkoušet i ostatní schémata a dokumenty, které jste si stáhli. Pokud nemá
dokument připojeno schéma, můžete k jeho validaci použít
jing.
jing schéma dokument
Jing zvládá validaci oproti DTD, XML Schema a Relax NG.
-
Pro dokument objednavka.xml, který byl mezi
ukázkovými dokumenty, vytvořte XML
schéma. Snažte se co nejlépe postihnout přípustnou strukturu
a povolené hodnoty v dokumentu.
-
Schéma vytvořte buď ručně, nebo použijte vizuální návrhář
v editoru XML.
-
Připojte schéma k dokumentu tak, aby dokument šel zvalidovat
(více informací).
Schéma dokumentu a jmenné prostory
-
Zkopírujte si objednávku do nového souboru a upravte ji tak, aby
byly všechny její elementy ve jmenném prostoru
urn:x-eshop:document-schemas:purchase-order.
-
Upravte schéma a způsb jeho připojení k dokumentu tak, aby šel
dokument zvalidovat.
Definice unikátního klíče
-
Ve schématu pro objednávku nepoužívající jmenné prostory
definujte unikátní klíč, který zajistí, že se v objednávce nevyskytnou
dvě položky se stejným kódem. Přidejte pak do objednávky duplicitní
položku a zkuste, zda ji validace odhalí.
-
Podobný klíč přidejte i do schématu, který používá jmenné
prostory. Dejte si pozor na to, že v XPath výrazu je potřeba před
elementy patřící do nějakého jmenného prostoru psát prefix, který musí
být předem deklarován. Např:
<xs:selector xpath="o:položka" xmlns:o="urn:x-eshop:document-schemas:purchase-order"/>
místo
<xs:selector xpath="položka"/>
|