130 likes | 258 Views
Technol ógie XML Prednáška č. 3. Namespace. Z minula. Čo nov é prináša DTD? Výhody/Nevýhody; Aká je najznámejšia aplikácia DTD?; Spôsoby pripojenia DTD k XML. ; Kedy je dokument “ validný “?. Namespaces / Priestory mien . <kniha> <titul>Základy OOP<titul> ... </kniha>
E N D
Technológie XMLPrednáška č.3 Namespace
Z minula • Čo nové prináša DTD? • Výhody/Nevýhody; • Aká je najznámejšia aplikácia DTD?; • Spôsoby pripojenia DTD k XML. ; • Kedy je dokument “validný“?
Namespaces / Priestory mien <kniha> <titul>Základy OOP<titul> ... </kniha> • V týchto prípadoch nastáva kolízia dvoch elementov, z ktorých každý popisuje niečo iné a pritom sa volajú rovnako. <osoba> <titul>RNDr.<titul> ... </osoba>
Namespaces ako riešenie. • Zavedením namespaces je možné riešiť predošlý problém. • Namespace a URI sú úzko prepojené.
URI; URN; URL • URN = UniformResourceName • Definuje identitu položky. • Napr. meno osoby • URL = UniformResourceLocator • Poskytuje metódu akou môže byť položka nájdená. • Napr. adresa osoby • URI = UniformResourceIdentifier • URN a URL sa teda dopĺňajú a spoločne tvoria URI.
Ako URI a namespaces riešia problém? • Problém s kolíziou elementov sa rieši zavedením namespaces, ktoré používajú uri. • Pridaním URI ku každému elementu získavame unikátny element a vyhneme sa tak kolíziám. <slovnik:knihyxmlns:kniha=“http://slovniky.html/kniha/” > <kniha> <kniha:titul>Základy OOP</kniha:titul> ... </kniha>
Syntax xmlns:prefix = “URI sadyznačiek” Použitie prefix:elemnetprefix:atribút Napríklad <cennik:polozkacennik:dph=“19%”>
Implicitný namespace • Ak definujeme namespace bez prefixu, hovoríme o implicitnom namespace. <root xmlns=“http://nieco.sk”> … <root> • Takýtonamespace je použitý pre element, na ktorom je deklarovaný a pre všetkých jeho potomkov.
Implicitný/Prázdny namespace • Využívaný je predovšetkým ak jeden z namespace prevažuje nad ostanými. • V takom prípade môže nastať, že niektorý element nemá patriť do žiadneho namespace. <knihaxmlns=“http://www.book.org”> <autor> JozefVrana </autor> <nazovxmlns=“”> XML </nazov> </kniha>
Explicitný namespace • Je definovaný spolu s prefixom a môže tak byť definovaný na každom elemente. <bib:ponukaxmlns:bib=“http://book.org”> <cennik:polozkaxmlns:cennik=“http://cenik.org”> </cennik:polozka> </bib:ponuka>
Atribúty • Atribúty môžu byť explicitne priradené do namespace: <knihabib:id=“ISBN-2-6543-45-3”> V opačnom prípade nepatria do žiadneho namespace ! Pozn.: dokonca aj keď element do namespace patrí.
Záver • Výhody: • Zabraňujú vzniku kolízií elementov s rovnakým menom • Sprehľadňujú XML súbor a robia ho lepšie čitateľným. • Nevýhody: • Existujúce parsery nedokážu kontrolovať validitu dokumentu používajúceho namespace. • XML Schéma by mala tento problém vyriešiť.
Domáca úloha • Je nutné pozrieť si tútorial na zvone: http://www.zvon.org/xxl/NamespaceTutorial/Output_cze/index.html • W3C špecifikácia: http://www.w3.org/TR/xml-names/ Písomka budúci týždeň !!!