Jazyky pro popis dat
kombinované studium
Nástroje
- xmllint
Jednoduchý program pro úpravu formátování XML dokumentů. Vhodný pro validaci. Použití:
xmllint --noout soubor.xml
zkontroluje, zda je soubor.xml správně strukturovaný.xmllint --noout --valid soubor.xml
zkontroluje, zda je soubor.xml správný (validní). XML soubor musí obsahovat odkaz na DTD.xmllint --noout --schema jazyk.xsd soubor.xml
zkontroluje, zda je soubor.xml správný (validní) podle XML schématu v souboru jazyk.xsd.xmllint --noout --relaxng jazyk.rng soubor.xml
zkontroluje, zda je soubor.xml správný (validní) podle Relax NG schématu v souboru jazyk.rng.- xsltproc
-
Jednoduchý XSLT procesor, součást balíku libxslt. Použití:
xsltproc styl.xsl soubor.xml
transformuje soubor.xml podle pravidel daných v styl.xsd.
Cvičení
Cvičení vypracujte v uvedených termínech a výsledky mi pošlete elektronickou poštou.
Odevzdat do 1. listopadu 2024
- Vytvoření DTD a validace
-
Pro soubor knihy.xml vytvořte DTD definující příslušný jazyk. (Atribut
isbn
je povinný, autor je alespoň jeden, vydavatel a rok vydání jsou nepovinné.) Ověřte správnost programem xmllint. - XML Schema
-
Pro soubor knihy.xml z předchozího cvičení vytvořte XML Schema definici příslušného jazyka. Zkuste ji vytvořit ve třech alternativách vycházejících z různých přístupů k sestavování XML schémat. Ověřte správnost programem xmllint.
- Relax NG
-
Navrhněte pomocí Relax NG schéma pro jazyk popisující vektorové obrázky. Obrázek (prvek
obrazek
) je seznam jednotlivých grafických prvků, jejich počet v obrázku je libovolný.Grafické prvky jsou různých typů:
usecka
obdelnik
kruh
Všechny tři typy prvků mají několik položek společných:
- povinný atribut
id
- informaci o barvě (
barva
) s nepovinným atributemsystem
s přípustnými hodnotami "rgb", "cmyk" a "bw" - prvek
cara
udávající tloušťku čáry, jíž má být vykreslen - prvek
kotva
definuje kotevní bod, konkrétně jeho souřadnice x a y - nepovinný prvek
pruhlednost
udávající míru průhlednosti daného prvku
Další obsah prvku závisí na jeho typu:
- obdélník nese informace o šířce a výšce
- kruh o poloměru
- úsečka o jejím druhém koncovém bodu
Příklad dokumentu v tomto jazyce. Použijte xmllint k ověření správnosti.
Odevzdat do 20. prosince 2024
- XSLT, 1. úloha
-
Vytvořte XSLT předpis, kterým soubor uzivatele.xml převedete na HTML stránku s následujícím obsahem (adresy webových stránek jednotlivých uživatelů se generují z uživatelských jmen):
<html> <head><title>Seznam uzivatelu</title></head> <body> <h1>Seznam uzivatelu</h1> <dl> <dt><strong>mail</strong></dt> <dd>shell: /sbin/nologin<br/> web: <a href="/~mail">/~mail</a> </dd> ... </dl> </body> </html>
- XSLT, 2. úloha
-
Vytvořte XSLT předpis, kterým ze souboru osoby.xml vypíšete v textové podobě osoby kategorie
sluzba
. Každá osoba bude uvedena na samostatném řádku, který bude obsahovat její identifikátor následovaný jménem. Řádky seřaďte lexikograficky podle identifikátorů.