Skip to main content

XML technologie (Ukázka, strana 99)

Page 1

i

i

i

i Notaci de nujeme prost°ednictvím elementu

notation

a jeho atribut·. Atribut

name

speci-

kuje název notace, pomocí n¥hoº se na ni v rámci XML schématu dále odkazujeme. Naproti tomu atribut

system

slouºí pro speci kaci URI externího programu nebo dokumentu, který

je danou notací reprezentován, zatímco atribut

public

slouºí pro speci kaci jeho libovolného

(obecn¥ známého) identi kátoru. Je moºné vyuºít kteroukoli z t¥chto variant, významu hodnoty by m¥l ale program, který schéma zpracovává, rozum¥t. S notacemi úzce souvisí jednoduchý vestav¥ný datový typ

NOTATION,

jehoº hodnotami mo-

hou být práv¥ názvy de novaných notací. Pro tento datový typ navíc platí, ºe není moºné pouºívat p°ímo jeho instance, ale pouze instance datových typ· z n¥j odvozených restrikcí

enumeration. Pro kaºdou element notation.

takto de novanou p°ípustnou hodnotu pak musí existovat p°íslu²ný

<xs:notation name="EPS" system="C:\eps\eps.exe"/> <xs:attribute name="Program"> <xs:simpleType> <xs:restriction base="xs:NOTATION"> <xs:enumeration value="EPS"/> </xs:restriction> </xs:simpleType> </xs:attribute> V p°íklad¥ je de nována notace

EPS,

která se odkazuje na spustitelný soubor programu na

lokálním disku. Abychom mohli tuto notaci (resp. její název) p°i°adit na ur£ité místo ve schématu (v na²em p°ípad¥ jako hodnotu atributu od typu

NOTATION,

Program),

je vytvo°en pomocný datový typ odvozený

jehoº jedinou p°ípustnou hodnotou je práv¥ název notace

EPS.

P°ípustných

hodnot by samoz°ejm¥ mohlo být více, pro kaºdou by ale musel existovat odpovídající element

notation. Záv¥rem je ale t°eba poznamenat, ºe se notace v praxi tém¥° nepouºívají.

4.6 Anotace Anotace lze povaºovat za roz²í°ení principu komentá°·, resp. za moºný zp·sob dokumentace vytvá°eného XML schématu. V podstat¥ na libovolné (samoz°ejm¥ vzhledem k vlastnostem dob°e vytvo°eného XML dokumentu korektní) místo v XML schématu je moºné vloºit element

annotation,

který obsahuje libovolné informace týkající se typicky aktuální £ásti schématu.

Dále je moºné rozli²it, zda jsou ur£eny pro £tená°e nebo pro aplikaci zpracovávající dané XML schéma. Pokud se jedná o informace ur£ené pro £lov¥ka, je podelementem elementu ment

documentation,

annotation

ele-

jehoº obsahem m·ºe být libovolný text nebo elementy jakéhokoli jmen-

ného prostoru krom¥ jmenného prostoru schématu. Jazyk tohoto textu je moºné speci kovat atributem

xml:lang

(pocházejícím z implicitního jmenného prostoru v²ech XML dokument·),

jehoº p°ípustné hodnoty ur£uje norma

RFC 3066

(nap°. en , en-GB , cs apod.).

<xs:annotation> <xs:documentation xml:lang="cs"> Toto je p°íklad anotace ur£ené pro £lov¥ka. </xs:documentation> </xs:annotation>

98

XML technologie

i

i i

i

Ukázka elektronické knihy, UID: KOS181547


i

i

i

i Ve druhém p°ípad¥ obsahuje element

annotation

podelement

appinfo,

jehoº obsahem jsou

data ur£ená pro aplikaci, která bude schéma zpracovávat. Op¥t se m·ºe jednat o zcela libovolný text, nap°. o £ást zdrojového kódu, parametry apod. V obou p°ípadech mohou elementy namísto textového obsahu nést pouze odkaz na dokument, v n¥mº jsou p°íslu²né informace uloºeny. URI tohoto zdroje informací je pak v obou p°ípadech

source.

speci kováno hodnotou atributu

4.7 Ko°enový element schema Posledním prvkem jazyka XML Schema, kterým se budeme zabývat, je ko°enový element

schema,

o n¥mº jiº víme, ºe má narozdíl od ostatních prvk· velmi speciální postavení. V první °ad¥ pro n¥j platí, ºe se v instancích XML dokument· nevyskytuje na první úrovni se v XML dokumentu vyskytují aº prvky (elementy), které jsou de novány v rámci jeho podelement·. Jak jiº bylo zmín¥no, tento element dále slouºí k p°ipojení jmenného prostoru jazyka XML Schema, pop°. implicitního jmenného prostoru a jiných jmenných prostor· (prost°ednictvím atribut·

xmlns),

a dále pro p°ípadnou speci kaci cílového jmenného prostoru vytvá°eného

schématu (prost°ednictvím atributu

targetNamespace).

Ostatními atributy elementu

schema

je

moºné speci kovat obecné vlastnosti celého schématu. Atributem

version lze speci kovat verzi vytvá°eného schématu. Konkrétní význam hodnoty

je ponechán na uºivateli hodnotou tohoto atributu m·ºe být totiº zcela libovolný (jednoslovný) text. Podobn¥ pak atribut

xml:lang

(pocházející z implicitního jmenného prostoru v²ech XML

dokument·) umoº¬uje speci kovat jazyk textových hodnot ve schématu. Zajímavý význam má atribut mentu

schema

id, který umoº¬uje speci kovat jednozna£ný identi kátor ele-

v rámci celého XML schématu. Tento atribut totiº m·ºe být speci kován také

pro libovolný jiný prvek (element) XML schématu a umoº¬uje tak jednozna£n¥ identi kovat libovolné místo ve schématu. Tato vlastnost m·ºe být výhodná nap°. pro aplikaci, která bude schéma zpracovávat. Zbývající atributy elementu

schema

umoº¬ují de novat implicitní hodnoty vybraných atri-

a blockDefault. První final, druhý implicitní hodnotu v²ech atribut· block. Druhou dvojicí jsou pak atributy attributeFormDefault, resp. elementFormDefault (a jejich hodnoty qualified a unqualified), které speci kují implicitní hodnotu atributu form v²ech atribut·, resp. element· schématu. Atribut form, kterým jsme se but· schématu. V první °ad¥ se jedná o dvojici atribut·

finalDefault

z nich, jak uº název napovídá, de nuje implicitní hodnotu v²ech atribut·

doposud nezabývali, slouºí pro lokáln¥ de nované elementy nebo atributy jako p°íznak ur£ující, zda je nutné p°íslu²né jméno elementu, resp. atributu, uvád¥t v instancích XML dokument· vºdy pln¥ kvali kované. Tato vlastnost je vhodná v p°ípadech, kdy je kombinováno v¥t²í mnoºství jmenných prostor· se stejn¥ pojmenovanými lokálními elementy, £i atributy, mezi nimiº je nutné rozli²ovat.

4.8 Vztah jazyka XML Schema k XML dokument·m V tabulce 4.1 je uveden p°ehled prvk·, které se mohou vyskytovat v XML dokumentech (tj. v instancích XML schémat) a jim odpovídající prvky jazyka XML Schema, kterými lze speci kovat jejich p°ípustnou strukturu.

4.9 Vztah jazyka XML Schema k DTD V tabulce 4.2 je pro úplnost uveden p°ehled prvk· jazyka DTD a jim odpovídajících prvk· jazyka XML Schema.

Pokro£ilé techniky jazyka XML Schema

99

i

i i

i

Ukázka elektronické knihy, UID: KOS181547


i

i

i

i

Prvek XML dokumentu

Prvek jazyka XML Schema

element

element

obsah elementu

jednoduchý vestav¥ný datový typ, element

atribut

simpleType nebo element complexType element attribute

hodnota atributu

jednoduchý vestav¥ný datový typ nebo element

element

simpleType entita

neexistuje

notace

element

komentá°e

neexistuje

instrukce pro zpracování

neexistuje

XML deklarace

neexistuje

jmenné prostory

neexistuje, resp. celé XML schéma speci kuje

notation

jmenný prostor Tab. 4.1

Prvky XML dokument· a prvky jazyka XML Schema

Jak je z tabulky patrné, tém¥° v²echny d·leºité prvky jazyka DTD lze v jazyce XML Schema speci kovat bu¤to stejn¥ silným, obvykle v²ak siln¥j²ím nástrojem. Zásadní výjimkou je deklarace entit, na ty se lze pouze odkazovat datovými typy

ENTITY,

resp.

ENTITIES.

4.10 Shrnutí Zatímco v kapitole 2 jsme popsali základní konstrukty jazyka XML Schema, které pouºije v¥t²ina jeho uºivatel·, cílem této kapitoly bylo ukázat i siln¥j²í nástroje, které jazyk XML Schema podporuje. Jak bylo moºné vid¥t, jazyk XML Schema umoº¬uje popsat strukturu XML dat velmi podrobn¥ a pro tyto ú£ely vyuºívá n¥kolik známých a ov¥°ených postup· z prost°edí objektov¥ orientovaných £i databázových systém·. Druhou stranou mince je ov²em fakt, ºe je tím pádem pochopení jazyka a v²ech jeho záludností velmi náro£ným úkolem. V¥t²ina uºivatel· proto rad¥ji sáhne po jazyku DTD, který je bezesporu jednodu²²í, nebo se rozhodne schéma XML dat rad¥ji v·bec nepouºívat. Poslední, extrémní p°ípad je samoz°ejm¥ zcela v rozporu s cílem konsorcia W3C, ov²em na druhou stranu vede k zamy²lení nad tím, jestli by se vývoj nem¥l ubírat také sm¥rem k uºivatelsky p°íjemnému a jednoduchému zp·sobu de nice struktury XML dat, neº jen sm¥rem k roz²i°ujícím a siln¥j²ím výraz·m.

100

XML technologie

i

i i

i

Ukázka elektronické knihy, UID: KOS181547


Turn static files into dynamic content formats.

Create a flipbook
XML technologie (Ukázka, strana 99) by Kosmas-CZ - Issuu