[ 20. April 2000]
- Martin_Nemecek
Atrib·ty a Entity v XML dokumentoch
V predchßdzaj·cich dvoch Φastiach nßÜho serißlu o XML sme si ukßzali jednoduch² prφklad XML dokumentu a postupne sme si popφsali jeho Ütrukt·ru. Teda z ak²ch Φastφ sa skladß a Φo musφ obsahova¥. T·to tΘmu sme vÜak celkom nevyΦerpali a preto budeme dnes pokraΦova¥ popisom atrib·tov a entφt.
Tak₧e po elementoch s· na rade atrib·ty.
SamotnΘ elementy m⌠₧u ma¥ atrib·ty, ktorΘ musia by¥ v dokumente (samozrejme aj mimo neho) deklarovanΘ. Ak s· deklarovanΘ mimo dokumentu, naz²vaj· sa externΘ deklarßcie. Tieto atrib·ty maj· urΦitΘ vlastnosti: urΦuje sa akΘ atrib·ty m⌠₧u elementy ma¥, akΘ m⌠₧u nadob·da¥ hodnoty, akΘho s· typu a akß je ich v²chodzia hodnota. Deklarßcia atrib·tu m⌠₧e vypada¥ naprφklad takto:
<!ATTLIST automobil
znaΦka ID
rok_v²roby CDATA
vlastnφk (prv² | druh²) "prv²">
V tomto prφpade mß element automobil tri atrib·ty: znaΦka, ktor² je identifikßtorom a je v tomto prφpade potrebn² vy₧adovan², ∩alej rok_v²roby, Φo je re¥azec a nie je vy₧adovan² a vlastnφk, ktor² mß default hodnotu "prv²".
Teraz si ukß₧eme podobn² zßpis, avÜak trochu zmenen². Ak je v dokumente viacej deklarßciφ atrib·tov patriacich jednΘmu elementu, s· tieto spojenΘ:
<!ATTLIST automobil
znaΦka ID
rok_v²roby CDATA
<!ATTLIST automobil vlastnφk (prv² | druh²) ┤novΘ┤>
Kv⌠li preh╛adnosti a lepÜej orientßcii je vhodnΘ ku ka₧dΘmu elementu priradi¥ iba jeden attribute list. Existuje Ües¥ typov atrib·tov:
CDATA - re¥azec znakov
ID - identifikßtor
ENTITY - hodnota atrib·tu musφ by¥ meno entity
IDREF - hodnota takΘhoto atrib·tu odkazuje na hodnotu ID inΘho atrib·tu v dokumente
IDREFS - hodnota atrib·tov m⌠₧e obsahova¥ viacero hodn⌠t (ID) in²ch atrib·tov. Zmysel IDREF a IDREFS si ukß₧eme na nasledovnom prφklade:
<!ATTLIST zamestnanec
ved·ci IDREF
podriaden² IDREFS
Element zamestnanec m⌠₧e obsahova¥ atrib·t ved·ci, predstavovan² ID inej osoby - ved·ceho tohto zamestnanca, ∩alej atrib·t podriaden², predstavovan² ID in²ch os⌠b - podriaden²ch tohoto zamestnanca, ktor²ch m⌠₧e by¥ viacej, zatia╛ Φo ved·ci iba jeden.
V²chodzie hodnoty m⌠₧u by¥ 4:
"hodnota" - priamo stanovenß hodnota atrib·tu, ktor² m⌠₧e nadob·da¥ aj in²ch hodn⌠t
Entity
Podobne ako aj v in²ch jazykoch, aj v XML s· urΦitΘ znaky vyhradenΘ pre urΦit² ·Φel - naprφklad pre oznaΦenie zaΦiatku tagu "<". Aby bolo mo₧nΘ tieto znaΦky pou₧i¥ vo vlastnom obsahu dokumentu, existuje tu alternatφvna mo₧nos¥ ich zobrazenia, ktorΘ poskytuj· prßve entity. Okrem toho sa entity pou₧φvaj· ako odkazy na Φasto opakovanΘ Φasti textu a ku vkladaniu obsahu extern²ch s·borov.
Ka₧dß entita musφ ma¥ unikßtne meno. Ak chceme na ≥u v dokumente odkßza¥, pou₧ijeme znak & ako poΦiatoΦn² a ; ako koncov². Naprφklad entita lt
vlo₧φ do textu znak "<". Potom re¥azec m⌠₧e by¥ zapφsan² ako <element>. Tieto entity s· obvykle naz²vanΘ ako obecnΘ (general) entity.
UrΦite tento sp⌠sob poznßte, hoci nie pod nßzvom entity. Ak ste u₧ na svojej strßnke chceli zobrazi¥ zdrojov² k≤d nejakej HTML, alebo inej dynamickej strßnky, nahrßdzanie znakov "<" ">" "©" Vßm urΦite nie je cudzie.
Existuje zvlßÜtny druh entit, ktorΘ sa naz²vaj· znakovΘ (character) entity, odkaz sa potom naz²va character reference a pou₧φva sa pre vkladanie znakov Unicode do textu. Pou₧φvaj· sa hlavne pre vkladanie znakov, ktorΘ nemo₧no zapφsa¥ normßlny sp⌠sobom - z klßvesnice. Odkaz m⌠₧e by¥ bu∩ dekadick², alebo hexadecimßlny. Naprφklad u₧ vyÜÜie spomenut² copyright je mo₧nΘ vlo₧i¥ do textu pomocou nasledovnej znakovej sekvencie : ©
V XML m⌠₧eme nßjs¥ tri druhy entit: internΘ, externΘ a parametrovΘ.
InternΘ entity (Internal Entites) spßjaj· meno entity s urΦit²m textom. Potom deklarßcia takejto entity vypadß nasledovne:
<!ENTITY spolocnost "FIRMA, a.s.">
Tak₧e, ak dovolφte, dneÜn· piatu Φas¥ nßÜho serißlu o XML ukonΦφme prßve pri intern²ch entitßch. V bud·cej Φasti si eÜte struΦne nieΦo povieme o extern²ch a parametrov²ch, pßr slov povieme o komentßroch a d·fam ₧e sa u₧ koneΦne dostaneme k avizovanej praktickej ukß₧ke jednoduchej objednßvky tovaru.
|
|
|