110 likes | 295 Views
Technol ógie XML. DTD ( pou žitie pre xml dokumenty) September , 2011. Identifikátor DTD s ú boru. Systémový identifikátor SYSTEM url - url ud á va adresu alebo meno súboru Verejný identifikátor PUBLIC identifika čný-reťazec url - reťazec identifikuje súbor
E N D
Technológie XML DTD (použitie pre xml dokumenty) September, 2011 Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Identifikátor DTD súboru • Systémový identifikátor SYSTEM url - url udáva adresu alebo meno súboru • Verejný identifikátor PUBLIC identifikačný-reťazec url - reťazec identifikuje súbor - url je ako záloha, keď identifikácia reťazcom zlyhá PUBLIC "-//Norman Walsh//DTD Docbook XML V3.1.4//EN" "docbookx.dtd" vlastník typ a označenie súboru jazyk neregistrovaný Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Pripojenie DTD k XML dokumentu Interné DTDExterné DTD <?xml version="1.0"?><?xml version="1.0"?> <!DOCTYPE zoznam [<!DOCTYPE zoznam identifikátor> …dtd…]><zoznam> <zoznam> … … Externé + interné DTD (rozširovanie/kombinovanie) <?xml version="1.0"?> <!DOCTYPE zoznam identifikátor [ …dtd…]> <zoznam> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Rozširovanie DTD • Rozširovanie znamená dodefinovanie a nie predefinovanie • Možné rozšírenia • doplnenie atribútu k existujúcemu elementu • doplniť element, v ktorého tele bude jeden alebo viac existujúcich elementov • Rozšírenie je možné • kombinácia interne umiestneného DTD a externého DTD • externé DTD importujúce a rozširujúce iné externé DTD • použitie externej parametrickej entity Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Rozšírené DTD predmet.dtd <!ELEMENT predmet (nazov, ukoncenie, typ, forma)> <!ELEMENT nazov (#PCDATA)> <!ATTLIT <!ELEMENT <!ELEMENT <!ATTLIST <?xml version="1.0"?> <!DOCTYPE stud-prog SYSTEM "predmet.dtd" [ <!ATTLIST predmet garant NMTOKENS #REQUIRED> <!ELEMENT stud-prog (predmet+)> <!ATTLIST stud-prog semester (z, l) #REQUIRED> ]> <stud-prog semester="z"> <predmet> <nazov>Technológie XML</nazov> <ukoncenie>kz</ukoncenie> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Kombinovanie DTD • Parametrické entity umožnia vložiť obsah externých DTD • Kombinovanie je realizované • v novom kombinovanom externom DTD • v internom DTD • časť do nového externého DTD a časť do interného DTD • Následne je možnérozšíriť vložené DTD • Doplnenie elementov ktoré použijú elementy z vložených DTD • Doplnenie atribútov k elementom z vložených DTD Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Kombinované DTD predmet.dtd <!ELEMENT predmet (nazov, ukoncenie, <!ELEMENT <!ATTLIT <!ELEMENT <!ELEMENT <!ATTLIST pedagog.dtd <!ELEMENT pedagog (priezvisko, meno, <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST <!ATTLIST <!ELEMENT vyukova-jednotka (pedagog, predmet, miestnost, od, do)> <!ELEMENT miestnost (#PCDATA)> <!ELEMENT od (#PCDATA)> <!ELEMENT do (#PCDATA)> <!ENTITY % ped SYSTEM "pedagog.dtd" <!ENTITY % pred SYSTEM "predmet.dtd" %ped; %pred; Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Menné priestory a DTD • DTD vzniklo pred vznikom XML • vznik ešte pred štandardizáciou menných priestorov • DTD nerozumie sémantike menných priestorov • DTD nemá problém so syntaxou menných priestorov • je možné použiť kvalifikované mená v DTD • s nimi možná asociácia s prefixovým menným priestorom • bez nich vloženie iba do bezprefixového menného priestoru • #FIXED deklarácia atribútu pre predpísanie menného priestoru nejakého elementu Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
DTD bez menného priestoru predmet.dtd <!ELEMENT predmet (nazov, forma+)> <!ELEMENT nazov (#PCDATA)> <!ELEMENT forma (#PCDATA)> <?xml version="1.0"?> <!DOCTYPE predmet SYSTEM "predmet.dtd" [ <!ATTLIST predmet xmlns CDATA #FIXED "http://tuke.sk/ns/predmet"> ]> <predmet xmlns="http://tuke.sk/ns/predmet"> <nazov>Technológie XML</nazov> <forma>P-1</forma> <forma>CL-2</forma> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
DTD s pevným menným priestorom predmet.dtd <!ELEMENT pm:predmet (pm:nazov, pm:forma+)> <!ATTLIST pm:predmet xmlns:pm CDATA #FIXED "http://tuke.sk/ns/predmet"> <!ELEMENT pm:nazov (#PCDATA)> <!ELEMENT pm:forma (#PCDATA)> <?xml version="1.0"?> <!DOCTYPE pm:predmet SYSTEM "predmet.dtd"> <pm:predmet xmlns:pm="http://tuke.sk/ns/predmet"> <pm:nazov>Technológie XML</pm:nazov> <pm:forma>P-1</pm:forma> <pm:forma>CL-2</pm:forma> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
DTD s meniteľným menným priestorom <!ENTITY % p "foo:"> <!ENTITY % s ":foo"> <!ENTITY % predmet "%p;predmet"> <!ENTITY % nazov "%p;nazov"> <!ENTITY % forma "%p;forma"> <!ELEMENT %predmet; (%nazov;, (%forma;)+)> <!ATTLIST %predmet; xmlns%s; CDATA "http://tuke.sk/ns/predmet"> <!ELEMENT %nazov; (#PCDATA)> <!ELEMENT %forma; (#PCDATA)> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach