Co je obsaženo v přísném souboru dtd. DTD - Atributy. Atributy ID, IDREF a IDREFS

V dokumentech XML definuje DTD sadu platných prvků, identifikuje prvky, které mohou být obsaženy v jiných prvcích, a pro každý z nich definuje platné atributy. Syntaxe DTD je velmi unikátní a při vytváření takových dokumentů je vyžadováno další úsilí od autora-vývojáře (složitost DTD je jedním z důvodů, proč použití SGML, které vyžaduje Definice DTDžádný dokument není tak rozšířený jako například HTML). Jak bylo uvedeno, není nutné používat DTD v XML – dokumenty vytvořené bez těchto pravidel budou parserem zpracovány správně, pokud splňují základní požadavky syntaxe XML. Kontrola nad typy prvků a správností vztahů mezi nimi však bude v tomto případě zcela spočívat na autorovi dokumentu. Dokud nebude popsána gramatika našeho nového jazyka, budeme jej moci používat pouze my, a k tomu budeme nuceni používat speciálně vyvinutý software, nikoli univerzální analyzační programy.

DTD pro XML používá následující typy pravidel: pravidla pro prvky a jejich atributy, popisy kategorií (definice maker), popisy formátů binárních dat. Všechny popisují základní konstrukce jazyka - prvky, atributy, symbolické konstanty, externí binární datové soubory.

Abychom mohli použít DTD v našem dokumentu, můžeme jej buď popsat externí soubor a při popisu DTD jednoduše uveďte odkaz na tento soubor nebo přímo v dokumentu samotném vyberte oblast, ve které chcete definovat potřebná pravidla. V prvním případě dokument specifikuje název souboru obsahujícího popisy DTD:

...

Uvnitř dokumentu jsou deklarace DTD zahrnuty takto:

... ... ]> ...

V případě, že jsou současně použity interní a externí popisy, program analyzátoru nejprve vezme v úvahu interní, tzn. jejich priorita je vyšší. Při ověřování dokumentu procesor XML nejprve hledá DTD v dokumentu. Pokud pravidla uvnitř dokumentu nejsou definována a atribut není nastaven standalone="ano", pak program načte zadaný externí soubor a odtud se načtou pravidla v něm obsažená. Pokud je atribut samostatný záležitosti "Ano“, pak bude použití externích popisů DTD zakázáno.

Definice prvku

Prvek v DTD je definován pomocí handle! ŽIVEL, který určuje název prvku a strukturu jeho obsahu.

Například pro prvek lze definovat následující pravidlo:

Klíčové slovo ELEMENT označuje, že tento příkaz bude popisovat prvek XML. Uvnitř této instrukce je uveden název prvku (květina) a typ jeho obsahu.

V definici prvku nejprve určíme název prvku (květina), a poté jeho obsahový model – určíme, jaké další prvky nebo datové typy se v něm mohou vyskytovat. V v tomto případě obsah květinového elementu bude určen pomocí speciálního PCDATA markeru (což znamená parsovatelná znaková data - jakákoliv informace, se kterou může program analyzátoru pracovat). Existují dva další příkazy, které definují typ obsahu: EMPTY,ANY. První znamená, že prvek by měl být prázdný (např. ), druhým je, že obsah prvku není konkrétně popsán.

Posloupnost podřízených objektů pro aktuální prvek je určena jako seznam názvů prvků oddělených čárkami. V tomto případě, aby bylo možné uvést počet opakování inkluzí těchto prvků, symboly +, *, ? :

Tento příklad určuje, že uvnitř prvku prvky title, author a table-of-contents musí být definovány, přičemž prvek title je povinný prvek a může se objevit pouze jednou, prvek autor se může objevit vícekrát a prvek table-of-contents je volitelný, tj. může chybět. Pokud existuje několik možností pro obsah definovaného prvku, měly by být odděleny symbolem "|". :

Znak * v tomto příkladu označuje, že posloupnost definovaných vnitřních prvků se může několikrát opakovat nebo se nemusí vůbec použít.

Pokud definice prvku specifikuje "smíšený" obsah, tzn. textová data nebo sadu prvků, musíte nejprve zadat PCDATA a poté oddělit znakem "|" seznam prvků.

Příklad platného dokumentu XML:

]> ...

Marks avenue
12-12-12 46-23-62 [e-mail chráněný]

Definování atributů

Seznamy atributů prvků jsou definovány pomocí klíčového slova! ATTLIST. Uvnitř jsou uvedeny názvy atributů, typy jejich hodnot a další parametry. Například pro prvek

Lze definovat následující atributy:

V tomto příkladu pro prvek článek jsou definovány tři atributy: id, o A typ, které mají typy ID (identifikátor), CDATA a seznam možných hodnot, resp. Existuje celkem šest možných typů hodnot atributů:

  • CDATA - obsah dokumentu může být libovolný znakový údaj
  • ID – definuje jedinečný identifikátor prvku v dokumentu
  • IDREF(IDREFS) – označuje, že hodnotou atributu by měl být název (nebo několik takových názvů, ve druhém případě oddělených mezerami) jedinečného identifikátoru prvku definovaného v tomto dokumentu
  • ENTITY(ENTITIES) - hodnota atributu musí být název (nebo seznam názvů, pokud je použit ENTITIES) komponenty (definice makra) definované v dokumentu
  • NMTOKEN (NMTOKENS) - obsah prvku může být pouze jedno slovo (tj. tento parametr je omezenou variantou CDATA)
  • Seznam platných hodnot - definuje seznam hodnot, které může mít tento atribut.

V definici atributu můžete také použít následující parametry:

  • #REQUIRED - definuje povinný atribut, který musí být nastaven na všech prvcích tohoto typu
  • #IMPLIED – atribut je volitelný
  • #FIXED "value" - označuje, že atribut musí mít pouze zadanou hodnotu, samotná definice atributu však není povinná, ale během procesu analýzy bude jeho hodnota v každém případě předána programu analyzátoru
  • Hodnota – nastavuje výchozí hodnotu atributu

Definování komponent (definice maker)

Entita představuje definice, jejichž obsah lze v dokumentu znovu použít. V jiných programovacích jazycích se podobné prvky nazývají makrodefinice. Komponenty DTD se vytvářejí pomocí příkazu!ENTITY:

Program analyzátoru, který se nejprve podívá na obsah oblasti definice DTD, tuto instrukci zpracuje a při další analýze dokumentu použije obsah komponenty DTD v místě, kde se vyskytuje její název. Tito. Nyní v dokumentu můžeme použít výraz, který bude nahrazen řádkem "Rádi vás vítáme"

Obecně lze v rámci DTD definovat tři typy definic maker:

Interní definice maker- jsou navrženy tak, aby s jejich pomocí definovaly řetězcovou konstantu, můžete uspořádat odkazy na často se měnící informace, čímž se dokument stane čitelnějším; Vnitřní součásti jsou v dokumentu zahrnuty pomocí ampersand &

V XML je pět předdefinovaných interních znakových konstant:

  • < - символ "<"
  • > - symbol ">"
  • & - symbol "&"
  • " - symbol apostrofu """
  • " - znak dvojitých uvozovek """

Externí definice maker- ukažte na obsah externího souboru a tento obsah může být textová nebo binární data. V prvním případě budou vloženy textové řetězce tam, kde je makro použito, ve druhém - binární data, která analyzátor nezohledňuje a používají je externí programy

Definice makra pravidla- definice makra parametrů lze použít pouze v oblasti DTD a jsou označeny speciálním symbolem % vloženým před název makra. V tomto případě bude obsah komponenty umístěn přímo v textu pravidla DTD

Například pro následující fragment dokumentu:

Můžete použít kratší formulář:

Makra se často používají k popisu parametrů v pravidlech atributů. V tomto případě je možné použít stejné definice atributů pro různé prvky:

Typování dat

Poměrně často potřebuje vývojář při vytváření prvku XML určit, jaký typ dat lze použít jako jeho obsah. Tito. pokud definujeme prvek 10.10.98, pak chceme mít jistotu, že v dokumentu na tomto místě bude řetězec představující datum, nikoli číslo nebo libovolná posloupnost znaků. Pomocí datového typování můžete vytvářet prvky, jejichž hodnoty lze použít například jako parametry v dotazech SQL. V tomto případě musí klientský program vědět, ke kterému datovému typu patří aktuální hodnota prvku, a pokud se shoduje, vygeneruje dotaz SQL.

Pokud je jako klientský program použit ověřovací XML procesor, lze informace o typu přenášet pomocí prvku speciálně vytvořeného pro tento atribut, který má vhodnou definici DTD. Během procesu analýzy předá analyzátor hodnotu tohoto atributu klientské aplikaci, která může tyto informace použít podle očekávání. Chcete-li například určit, že obsah prvku musí být dlouhé celé číslo, můžete použít následující definici DTD:

Nastavením atributu na výchozí hodnotu LONG a jeho definováním jako FIXED jsme umožnili klientskému programu získat potřebné informace o typu obsahu tohoto prvku a nyní může nezávisle určit, zda je typ obsahu tohoto prvku zadán. v definici DTD.

Zde je příklad dokumentu XML, který definuje a používá několik prvků s různými datovými typy:

... 5 2 32.5 věrný 18346 34 rub. 28 k. ...

Jak je vidět z příkladu, mechanismus vytváření prvků dokumentu se vůbec nezměnil. Všechny informace potřebné ke kontrole datových typů jsou obsaženy v definicích prvků uvnitř bloku DTD.

Na závěr bych rád poznamenal, že DTD nám poskytuje velmi pohodlný mechanismus pro kontrolu obsahu dokumentu. Dnes téměř všechny programy pro prohlížení internetových dokumentů používají pravidla DTD. Není to však zdaleka jediný způsob, jak zkontrolovat správnost dokumentu. Konsorcium W3 v současné době zvažuje nový standard jazyka pro strukturu dokumentů nazvaný datová schémata. Další část je věnována práci s nimi.

Senior Technology Writer

Poslal vám někdo e-mailem soubor s příponou DTD, a Vy nevíte, jak jej otevřít? Možná jste soubor s příponou DTD našli ve svém počítači a zajímá Vás, co to je? Systém Windows vám může oznámit, že jej nelze otevřít, nebo v nejhorším případě můžete narazit na odpovídající chybovou zprávu spojenou se souborem DTD.

Než budete moci otevřít soubor DTD, musíte zjistit, jaký typ souboru je přípona souboru DTD.

Tip: Chyby přiřazení nesprávné přípony DTD danému souboru mohou být příznakem jiných hlubších problémů ve Vašem operačním systému Windows. Tyto neplatné položky mohou také způsobit související příznaky, jako je pomalé spouštění systému Windows, zamrzání počítače a další problémy s výkonem počítače. Proto se důrazně doporučuje, abyste v registru Windows prohledali neplatné přidružení souborů a další problémy související s fragmentovaným registrem.

Odpověď:

Soubory DTD jsou datové soubory, které jsou primárně spojeny s DesignTools 2D Design (TechSoft UK Limited).

Soubory DTD jsou také spojeny s ArcView UNIX Hyperhelp Supporting File (ESRI), SGML Document Definition File a FileViewPro.

Navíc, příponu DTD možná využívají i jiné typy souborů. Pokud víte o jakýchkoli dalších formátech souborů, které používají příponu souboru DTD, kontaktujte nás, abychom mohli odpovídajícím způsobem aktualizovat naše informace.

Jak otevřít soubor DTD:

Nejrychlejší a snadný způsob Otevření souboru DTD znamená poklepání na něj. V tomto případě systém Windows ona si vybere potřebný program otevřete soubor DTD.

V případě, že se váš soubor DTD neotevře, je velmi pravděpodobné, že na vašem počítači není nainstalován potřebný software. aplikačního programu pro zobrazení nebo úpravu souborů s příponami DTD.

Pokud Váš počítač soubor s příponou DTD sice otevře, ale použije k tomu nesprávnou aplikaci, musíte změnit nastavení přiřazování souborů. registru Windows. Jinými slovy, Windows spojuje přípony souborů DTD s nesprávným programem.

Nainstalujte volitelné produkty - FileViewPro (Solvusoft) | | | |

DTD Multipurpose Internet Mail Extensions (MIME):

  • mime text/xml

Nástroj pro analýzu souborů™ DTD

Nejste si jisti, jaký je typ souboru DTD? Chcete získat přesné informace o souboru, jeho tvůrci a jak jej lze otevřít?

Nyní můžete okamžitě získat vše potřebné informace o souboru DTD!

Revoluční Nástroj pro analýzu souborů™ DTD skenuje, analyzuje a podává zprávy podrobné informace o souboru DTD. Náš patentovaný algoritmus rychle analyzuje soubor a poskytuje podrobné informace během několika sekund v jasném a snadno čitelném formátu.†

Během několika sekund budete přesně vědět, jaký typ souboru DTD máte, aplikaci přidruženou k souboru, jméno uživatele, který soubor vytvořil, stav zabezpečení souboru a další užitečné informace.

Chcete-li začít bezplatná analýza jednoduše přetáhněte váš soubor DTD dovnitř níže uvedené tečkované čáry nebo klikněte na "Procházet můj počítač" a vyberte soubor. Zpráva o analýze souboru DTD se zobrazí níže přímo v okně prohlížeče.

Přetažením souboru DTD sem zahájíte analýzu

Zobrazit můj počítač »

Zkontrolujte také, zda můj soubor neobsahuje viry

Váš soubor se analyzuje... čekejte prosím.

Popis schématu dokumentu

DTD popisuje rozvržení dokumentu pro konkrétní značkovací jazyk prostřednictvím sady deklarací (parametrové objekty, prvky a atributy), které popisují jeho třídu (nebo typ) z hlediska syntaktických omezení daného dokumentu. DTD může také deklarovat konstrukce, které jsou vždy nezbytné k definování struktury dokumentu, ale mohou ovlivnit interpretaci určitých dokumentů.

Deklarace objektů parametrů

Deklarace objektu parametru definuje makro určitý typ, na který lze odkazovat a nasadit jej někde v DTD. Tato makra se nemusí objevit v samotném dokumentu, ale pouze v DTD. Pokud se na objekt parametru odkazuje jeho název DTD, je rozbalen do řetězce, který určuje obsah tohoto objektu.

Objekt parametru fontstyle obsahuje skupinu tagů TT | já | B | VELKÉ | MALÝ.

"#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">

Vložený objekt parametru obsahuje textová data a další čtyři objekty parametrů fontstyle, fráze, speciální a formctrl.

Deklarace prvků

Deklarace prvků poskytují seznam povolených názvů prvků v dokumentu a také určují informace týkající se značek (zda jsou vyžadovány) a modelu obsahu pro každý prvek.

Různé klíčová slova a znaky definují obsah prvku:

  • EMPTY - prázdný obsah
  • ANY – jakýkoli obsah
  • , - označuje pořadí
  • | - oddělení alternativ
  • () - seskupení
  • * - libovolný počet prvků (nula nebo více)
  • + - alespoň jeden prvek (jeden nebo více)
  • ? - volitelná přítomnost prvku (nula nebo jedna)
  • Pokud ne *, + nebo ? - musí existovat pouze jeden prvek

(DT|DD) +>

Prvek DL musí obsahovat jeden nebo více prvků DT nebo DD v libovolném pořadí.

(%block;|SCRIPT) + -(FORM) >

Element FORM musí obsahovat jeden nebo více prvků s objektem parametru bloku nebo prvky SCRIPT v libovolném pořadí, ale není možné obsahovat další prvek FORM.

Definování atributů

Každý prvek v dokumentu DTD může mít přiřazený seznam atributů. K tomu slouží direktiva!ATTLIST, která určuje název prvku, na který lze mapovat seznam atributů, a parametry každého atributu: jeho název, typ a výchozí vlastnosti.

Například:

název CDATA #REQUIRED>

Tento příklad definuje atribut názvu pro prvek MAP. Je to povinné.

Existují tyto typy atributů:

  • CDATA (Znaková sada dat) - hodnota atributu může být jakákoli znaková data
  • ID – hodnota atributu musí být jedinečný identifikátorživel
  • IDREF - hodnota prvku je odkaz na prvek podle jeho ID
  • IDREFS - totéž jako IDREF, ale s možností propojení ne jedním identifikátorem, ale několika
  • NMTOKEN - hodnota atributu může být posloupnost znaků, poněkud podobná jménu (odtud název - token jména). Toto je řetězec, který obsahuje libovolnou kombinaci těch znaků, které jsou povoleny pro názvy XML.
  • NMTOKENS - hodnota atributu je seznam hodnot
  • ENTITY - hodnota se používá k odkazování na externí entitu.
  • ENTITY - umožňuje zadat seznam externích entit oddělených mezerami.
  • NOTATION - hodnota atributu může být jedním z dříve definovaných zápisů
  • ZÁPISY - umožňuje zadat seznam zápisů.
  • Výpisy a výpisy NOTACE
  • VÝPOČET – určuje seznam možných alternativ hodnot.

K dispozici jsou následující výchozí vlastnosti:

  1. IMPLIED - hodnota atributu nemusí být specifikována;
  2. POVINNÉ - musí být zadána hodnota atributu;
  3. FIXED - hodnota tohoto atributu je uvedena jako konstanta v DTD a nelze ji v dokumentu změnit;
  4. nějakou konkrétní hodnotu, která se používá ve výchozím nastavení.

Asociace dokumentu s konkrétní DTD

Chcete-li přidružit dokument ke konkrétnímu DTD, musíte na začátku textu dokumentu zadat prvek Deklarace typu dokumentu.

V závislosti na umístění DTD může být deklarace typu dokumentu dvou typů:

  • Vnitřní podmnožina DTD

Sada deklarací DTD je obsažena v těle samotného dokumentu. Například:

]> ]>

  • Externí podmnožina DTD

Sada deklarací DTD je umístěna v samostatném textový soubor s příponou .dtd V tomto případě lze odkaz na soubor provést prostřednictvím veřejného identifikátoru a (nebo) prostřednictvím systémového identifikátoru. Například:

"http://www.w3.org/TR/html4/strict.dtd">

Příklad

Příklad velmi jednoduchého XML DTD popisujícího seznam lidí:

(osoba*) > (jméno, datum narození?, pohlaví?, číslo sociálního zabezpečení?) > (#PCDATA) > (#PCDATA) > (#PCDATA) >

Počínaje prvním řádkem:

  1. Živel Obsahuje libovolný počet prvků Znamení<*>znamená, že je možných 0, 1 nebo více prvků Uvnitř prvku .
  2. Živel Obsahuje prvky , , A . Znameníznamená, že prvek je volitelný. Živel neobsahuje, což znamená, že prvek mošt obsahovat prvek .
  3. Živel obsahuje data.
  4. Živel obsahuje data.
  5. Živel obsahuje data.
  6. Živel obsahuje data.

Příklad dokumentu XML s tímto DTD:

> > > Fred Bloggs > > 27/11/2008> > Samec > > 1234567890> > >

Viz také


Nadace Wikimedia.

2010.

    Podívejte se, co je "DTD" v jiných slovnících: DTD

    Podívejte se, co je "DTD" v jiných slovnících:- , die in einer ASCII Datei (ASCII) abgelegte Beschreibung der Struktur von Dokumenten, welche alle vom selben Typ sind. Eine DTD wird nach den Regeln der international anerkannten… … Universal-Lexikon

    Podívejte se, co je "DTD" v jiných slovnících:- může znamenat: Obsah 1 Média 2 Hudba 3 Sport 4 Technologie 4.1 Výpočetní technika ... Wikipedie

    - steht für: Inhaltsverzeichnis 1 Medien 2 Music 3 Technologien 3.1 Computer 3.1.1 Spiele … Deutsch Wikipedia Dtd

    Podívejte se, co je "DTD" v jiných slovnících:- existuje pro: Darwin Digital Television, australische Fernsehstation Delta Delta Tau, americká americká studentská organizace Definice typu dokumentu, definice typu dokumentu … Deutsch Wikipedia

    Podívejte se, co je "DTD" v jiných slovnících:- (dē tē dēʹ) n. Sada pravidel pro označování dokumentu v SGML. * * * … Universalium obsahující informace o formátu konkrétního dokumentu (Počítače) ... Anglický současný slovník

Toto je další článek ze série“ Základy XML“ a v něm se podíváme na základy popisu struktury XML dat pomocí DTD. Je to docela starý způsob popisy struktury XML dokumentů, ale stále se používá, takže se na to ještě podíváme.

Chci také podotknout, že toto skvělý způsob ukázat jak v XML probíhá kontrola obsah dokumentu, jeho gramatiku atd. Novější a pokročilejší způsob popisu struktury XML dokumentů pomocí XML technologie Na Schema se podíváme v příštím článku, ale nyní přejděme přímo ke studiu DTD XML.

V tomto článku se podíváme na několik důležité body. To je to, co XML DTD je a k čemu je potřeba, pojďme si promluvit o nevýhodách DTD a také se naučte, jak si samostatně sestavit vlastní DTD pro ověřování XML dokumentů. To vše, jako obvykle, bude prezentováno krok za krokem, co nejstručněji a nejjasněji, abychom ušetřili váš čas.

Tak začněme.

Co je DTD v XML a proč je potřeba?

Stručně řečeno, DTD v XML se používá ke kontrole gramatiky dokumentu a jeho souladu s normou (takou, se kterou přišel vývojář nebo vy sami). To umožňuje analyzátoru (procesoru) určit ve fázi zpracování, zda dokument splňuje naše požadavky. To znamená, že dokument XML je ověřen.

Potřeba zkontrolovat gramatiku dokumentů XML je následující:

  • Dokument XML nemusí být určen pro váš systém.
  • XML dokument může obsahovat nesprávná data.
  • XML dokument může obsahovat chyby ve struktuře ().

Takže jsme přišli na to, co je XML DTD a proč je potřeba. Nyní se krátce podíváme na nevýhody DTD a poté přejdeme k samotnému procesu Tvorba DTD soubory pro ověřování XML dokumentů.

Nevýhody XML DTD

  • Syntaxe jazyka odlišná od XML. To způsobuje mnoho problémů, jako jsou problémy s kódováním nebo nemožnost sledovat chyby.
  • Žádná kontrola typu dat. V DTD je pouze jeden typ - řetězec.
  • Neexistuje žádné DTD. K dokumentu nelze přiřadit dva nebo více popisů DTD.

Bylo krátký seznam Nedostatky DTD, které byly úspěšně opraveny v XML schématech, o kterých si povíme v následujících článcích.

Deklarace prvků, atributů a entit v DTD. Modifikátory „*“, „?“, „+“

Speciální deklarace a modifikátory se používají k deklaraci prvků, atributů a entit v DTD. Abychom vše dopodrobna pochopili, podívejme se nejprve na teoretické informace a poté ve druhé části článku přejdeme k praktickým příkladům.

Definování prvku XML a sekvence prvků XML

Prvek kniha obsahuje jeden prvek název, autor, cena a popis.

Alternativy prvků

Prvek ceník obsahuje prvky title, price a jeden ze tří prvků na výběr – autor, firma nebo vzorek.

Prázdné prvky

Element none musí být prázdný.

Deklarace atributů

Element pricelist může obsahovat dva atributy – atribut id a atribut name. V tomto případě je atribut id povinný, protože je zadáno #REQUIRED a atribut name je nepovinný (je zadáno #IMPLIED). CDATA zase indikuje obsluze, že není potřeba analyzovat obsah atributů.

Definování entit

Pokud je nalezena entita „“, bude místo ní automaticky nahrazen „Dmitrij Denisov“.

Modifikátory (vysvětlete opakování prvků)

* - nula nebo mnoho.
? – nula nebo jedna.
+ - jeden nebo více.

Prvek knihy může obsahovat jeden nebo více prvků knihy.

Nyní se podívejme, jak to celé vypadá, na dalších praktických příkladech.

Vytvoření souboru DTD pro ověření XML dokumentu na příkladu ceníku knih

Mějme stejný ceník knih, který používáme jako příklady v téměř každém článku o XML. Samotný XML dokument bude vypadat nějak takto.

Kniha 1 &myname; Cena 1 Popis

Výše uvedený příklad samozřejmě není konečným snem, ale jako příklad poslouží. Jak můžete vidět z příkladu, máme ceník kořenového prvku, který obsahuje vnořené prvky knihy. Uvnitř prvků knihy jsou prvky název, autor, cena a případně popis, které mohou obsahovat některé textové údaje.

Pro ověření tohoto ceníku můžeme použít následující dokument DTD.

Nyní se na vše podíváme podrobněji.

  • — deklarujeme knihy kořenového prvku a v závorkách uvedeme, co může obsahovat. V tomto případě může obsahovat jeden nebo více prvků knihy (znaménko plus znamená jeden nebo více, viz výše).
  • — definovat prvek knihy. Prvek knihy může obsahovat jeden prvek názvu, jeden nebo více prvků autora (znaménko plus), jeden prvek ceny a jeden nebo žádný prvek popisu (otazník).
  • — definovat prvek title. Jako obsah prvku zadáme #PCDATA. To znamená, že analyzátor musí analyzovat to, co je uvnitř tohoto prvku.
  • Podobně definujeme prvky autor, cena, popis.
  • — definujeme podstatu. Nejprve napíšeme samotnou entitu a poté v uvozovkách to, co se zobrazí na jejím místě. Ve výchozím nastavení jsou v XML definovány pouze 3 entity. Toto je více (">" -<), меньше («<» — >) a ampersand („&“ - &). Pokud chcete, můžete pomocí této metody vytvořit neomezený počet entit. Významy mohou být nejen slova, ale i celé věty významné délky.
Připojení DTD pro ověřování dokumentů XML

Deklarativní metoda

Tato metoda se používá velmi zřídka, protože její podstatou je vytvářet soběstačné dokumenty. To znamená, že dokument bude okamžitě obsahovat DTD i XML. Následující konstrukce se používá k přidání DTD do XML.

kde místo DOCUMENT označujeme kořenový prvek XML dokumentu.

Pro názornost se podívejme na příklad hotového soběstačného dokumentu s deklarativním způsobem zařazení DTD.

]>

Externí definice DTD - připojení dokumentu DTD

Podstatou této metody je připojení souboru DTD k dokumentu XML pomocí následující konstrukce.

kde DOCUMENT – označujeme kořenový prvek XML dokumentu.
file.dtd – odkaz na soubor DTD.

Pro jasnost zvažte následující příklad.

XML dokument

Tímto je tento článek uzavřen. Podívali jsme se na všechny hlavní body při práci s XML DTD a doufám, že se mi vše podařilo srozumitelně vysvětlit. Pokud si nechcete nechat ujít další XML a XSLT tutoriály, doporučuji se přihlásit k odběru newsletteru pomocí formuláře níže.

To je vše. Hodně štěstí a úspěchů při učení XML!

Použijte schémata XML namísto DTD k definování struktury dokumentů XML

XML Schema je výkonnější než DTD. Abychom ilustrovali výhody použití nástroje XML Schema, první tři výpisy porovnávají různé způsoby reprezentace prvků. Následuje výňatek z dokumentu XML. B ukazuje dva prvky deklarované v syntaxi DTD a B ukazuje syntaxi odpovídající schématu XML. Všimněte si, že syntaxe ve výpisu 3 je podobná syntaxi XML. Při použití schématu může validační analyzátor zkontrolovat, zda je prvek InvoiceNo kladné celé číslo a zda ProductID sestává z dané sady znaků (šest číslic a jedno písmeno od A do Z). Analyzátor zpracovávající definici DTD může pouze potvrdit, že dané prvky jsou řetězce.

Výpis 1: Fragment dokumentu XML
123456789 J123456
Výpis 2: Fragment DTD popisující prvky z Výpisu 1
Výpis 3: Fragment schématu XML popisující prvky z Výpisu 1

Použití jmenných prostorů ve schématu XML

Omezení DTD

Přestože DTD sloužily vývojářům SGML a HTML jako mechanismus pro popis strukturovaných informací již 20 let, mají DTD ve srovnání se schématy XML určitá omezení.

Podle DTD může být prvek reprezentován jedním ze tří způsobů:

  • Textový řetězec
  • Textový řetězec smíchaný s jiným podřízeným prvkem
  • Sada dětí

DTD nemají syntaxi XML a nabízejí pouze omezenou podporu pro typy a jmenné prostory.

Při společné práci může jedna strana zpracovávat dokumenty ostatních stran a různé strany mohou své datové prvky zastupovat odlišně. Navíc v samostatném dokumentu mohou potřebovat nezávisle odkazovat na prvky se stejným názvem vytvořené různými stranami. Použití schématu XML umožňuje odlišit definice se stejným názvem definováním různých jmenných prostorů.

Takové schéma XML definuje sadu nových názvů, jako jsou názvy prvků, typů, atributů a skupin atributů, jejichž definice a deklarace jsou popsány ve schématu. Názvy jsou definovány jako InvoiceNo , ProductID a ProductCode .

Názvy definované ve schématu patří do tzv cílový jmenný prostor. Samotný jmenný prostor je pevný, libovolný název, který musí odpovídat syntaxi adresy URL. Například jmenný prostor pro schéma uvedené v , lze nastavit takto: http://www.SampleStore.com/Account.

Syntaxe pro deklaraci jmenného prostoru může být někdy matoucí. Deklarace začíná http:// , ale neodkazuje na soubor schématu. Ve skutečnosti odkaz http://www.SampleStore.com/Account nevede vůbec na žádný soubor, ale pouze na přiřazený název.

Definice a deklarace ve schématu mohou odkazovat na jména, která mohou patřit do jiných jmenných prostorů. V tomto článku odkazujeme na takové jmenné prostory jako: původní jmenné prostory. Každé schéma může definovat jeden cílový jmenný prostor a případně více zdrojových jmenných prostorů. Obecně platí, že každé jméno v daném schématu patří do určitého jmenného prostoru. Názvy jmenných prostorů mohou být poměrně dlouhé, ale lze je zkrátit pomocí syntaxe deklarace xmlns v dokumentu schématu XML. Všechny tyto pojmy jsou znázorněny v.

Výpis 4: Cílové a zdrojové jmenné prostory

Ve schématu XML reprezentovaném pomocí je jmenný prostor targetNamespace http://www.SampleStore.com/Account a obsahuje názvy InvoiceNo, ProductID a ProductCode. Názvy schéma , element , simpleType , pattern , string a kladné celé číslo patří do původního jmenného prostoru http://www.w3.org/1999/XMLSchema , který je zkrácen na xsd deklarováním xmlns . Na aliasu xsd není nic zvláštního, můžete si vybrat jiné jméno. Pro pohodlí a jednoduchost budeme ve zbývající části tohoto článku používat předponu xsd k odkazování na jmenný prostor http://www.w3.org/1999/XMLSchema, přičemž v některých částech kódu vynecháme kvalifikaci xsd. V našem příkladu je targetNamespace také jedním z původních jmenných prostorů, protože název ProductCode se používá v definici jiných jmen.

Obrázek 1: Jmenné prostory pro výpis 4
Výpis 5: Vícenásobné zdrojové jmenné prostory, import jmenných prostorů

Definování prvků

Definování prvku spočívá v definování jeho názvu a modelu obsahu. Ve schématu XML je model obsahu prvku určen jeho typem. Prvky v dokumentu XML proto mohou mít pouze hodnoty, které odpovídají typům definovaným v jeho schématu.

Jednoduché typy

Specifikace schématu XML definuje několik jednoduchých typů hodnot, jak ukazuje Tabulka 2 – předdefinované jednoduché typy hodnot.

Typ prvku může být jednoduchý nebo komplexní (komplexní). Živel jednoduchý typ nemůže obsahovat jiné prvky nebo atributy. Komplexní typ může mít za následek vkládání prvků do jiných prvků nebo může k prvku přidružovat atributy. Dosud jsme používali pouze příklady s jednoduchými uživatelsky definovanými typy (viz Kód produktu). Specifikace XML Schema také obsahuje předdefinované jednoduché typy (viz rámeček). Předdefinovaný jednoduchý typ Omezuje hodnoty na jejich základní typ. Například hodnota předdefinovaného jednoduchého typu ProductCode je podmnožinou hodnot základní typřetězec .

Jednoduché, nevnořené prvky mají jednoduchý typ

Prvku, který neobsahuje žádné atributy nebo jiné prvky, lze přiřadit jednoduchý typ, předdefinovaný nebo definovaný uživatelem, jako je řetězec, celé číslo, desítkové číslo, čas, Kód produktu atd.

Výpis 7: Některé jednoduché typy prvků

Prvky s atributy musí být komplexního typu

Nyní zkusme přidat jednoduchý prvek cena z atributu měny. Nebudete to moci udělat, protože prvek jednoduchého typu nemůže mít atributy. Pokud chcete přidat atribut, musíte definovat cenu jako prvek komplexního typu. V příkladu z , definujeme tzv anonymní typ, ve kterém komplexní typ nemá explicitní název. Jinými slovy, atribut name prvku complexType není definován.

Výpis 8: Prvek komplexního typu

Prvky obsahující vnořené prvky musí být komplexního typu

V dokumentu XML mohou být do prvku vnořeny další prvky. Tento požadavek je vyjádřen přímo v DTD. Schéma XML místo toho definuje prvek a jeho typ, který může zahrnovat deklarace dalších prvků a atributů. Příklad je uveden v.

Tabulka 1: Porovnání komplexních datových typů v DTD a XML Schema

XML dokument
Skvělé XML <Title> <Author>Skvělý chlap</Author> </Book> </span><h5>DTD</h5><span> <!ELEMENT Book (Title, Author)> <!ELEMENT Title (#PCDATA)> <!ELEMENT Author (#PCDATA)> </span><h5>Schéma XML</h5><span> <element name="Book" type="BookType"/> <complexType name="BookType"> <element name="Title" type="string"/> <element name="Author" type="string"/> </complexType> </span><h5>Výpis 10: Skrytí BookType jako místního typu</h5><span> <element name="Title" type="string"/> <element name="Author" type="string"/> <element name="Book"> <complexType> <element ref="Title"/> <element ref="Author"/> </complexType> </element> </span><h2>Vyjádření komplexních omezení na prvky</h2><p>Schéma XML nabízí větší flexibilitu než DTD při vyjadřování omezení v modelu obsahu prvku. Na nejjednodušší úrovni, jako je DTD, můžete přiřadit atributy k prvku a také určit, že sekvence pouze jednoho (1), nula nebo více (*) nebo jednoho nebo více (+) prvků daného prvku prvek se v něm může objevit. Ve schématu XML můžete vyjádřit <a href="https://innovakon.ru/cs/phone/metod-gomori-primer-resheniya-sostavlenie-dopolnitelnogo-ogranicheniya.html">dodatečná omezení</a>, pomocí například atributů minOccurs a maxOccurs na elementu elementu a choice , group a všech elementech pro tento účel.</p><h5>Výpis 11: Výraz omezení pro typy prvků</h5><span> <element name="Title" type="string"/> <element name="Author" type="string"/> <element name="Book"> <complexType> <element ref="Title"/> <element ref="Author"/> </complexType> </element> </span><p>Tag Title je volitelný s ohledem na tag Book (stejné pravidlo lze nastavit v DTD). Také však říká, že prvek Kniha musí mít alespoň jeden a ne více než dva prvky Autor. Výchozí hodnota atributů minOccurs a maxOccurs tagu prvku je 1. Element choice označuje, že se může objevit pouze jeden ze zadaných podřízených prvků. Další prvek all určuje, že vše <a href="https://innovakon.ru/cs/rates/css-vybrat-vse-dochernie-elementy-kakoi-cvet-budet-u-zhirnogo.html">podřízené prvky</a> se může objevit pouze jednou, společně a v libovolném pořadí, nebo se nemusí objevit vůbec. B prohlašuje, že jak značky Title, tak Author, se musí objevit v Knize v libovolném pořadí, nebo se nemusí objevit vůbec. Taková omezení je obtížné vyjádřit pomocí DTD.</p><h5>Výpis 12: Označení, že prvek musí mít definovány všechny typy</h5><span> <xsd:element name="Title" type="string"/> <xsd:element name="Author" type="string"/> <xsd:element name="Book"> <xsd:complexType> <xsd:all> <xsd:element ref="Tile"/> <xsd:element ref="Author"/> </xsd:all> </xsd:complexType> </xsd:element> </span><h2>Shrnutí</h2><p>V <a href="https://innovakon.ru/cs/internet/gde-zagruzki-na-aifone-4-kak-udalit-dokumenty-i-dannye-s-iphone-i-ipad.html">tento dokument</a> Prostřednictvím jednoduchých příkladů jsme probrali nejzákladnější koncepty potřebné k definování struktury prvků pomocí schématu XML. K dispozici je také mnoho dalších výkonných mechanismů:</p><ul><li>Schéma XML poskytuje komplexní podporu pro dědičnost typů, což vám umožňuje znovu použít dříve definované struktury. Toto použití se nazývá <i>aspekty</i>. Můžete odvodit nové typy, které představují menší podmnožinu hodnot jiných typů, například definovat podmnožinu pomocí výčtu, rozsahu nebo shody vzoru. V jednom z příkladů v tomto článku byl typ ProductCode definován pomocí aspektu vzoru. V podtypu můžete také přidat nové prvky a atributy k základnímu typu.</li><li>Několik mechanismů k ovládání <a href="https://innovakon.ru/cs/services/simptomy-i-lechenie-grippa-a-i-b-etap-lecheniya-grippa-opredelenie-stepeni.html">obecná definice</a> podtyp nebo jej nahraďte <a href="https://innovakon.ru/cs/internet/ispravlyaem-oshibki-formatirovaniya-diska-perenaznachenie-vseh.html">konkrétní dokument</a>. Můžete například určit, že typ InvoiceType (typ čísla faktury) nemůže obsahovat podtypy, to znamená, že nikdo nebude schopen určit <a href="https://innovakon.ru/cs/internet/gde-rekomendacii-v-novom-vk-mobilnaya-versiya-novaya-versiya-mobilnogo-vk.html">nová verze</a> Typ faktury. Můžete také určit, že v konkrétním kontextu pro typ Kód produktu nemohou existovat substituce podtypů.</li><li>Kromě použití podtypů je možné definovat ekvivalentní typy, to znamená, že hodnota jednoho typu může být nahrazena hodnotou jiného.</li><li>Schéma XML poskytuje mechanismus pro nahrazení prvku nebo typu jeho prohlášením za abstraktní.</li><li>Pro větší pohodlí můžete definovat a pojmenovat skupiny atributů nebo prvků. To umožňuje jejich opětovné použití v následujících hovorech.</li><li>Schéma XML poskytuje tři prvky – appInfo, dokumentaci a anotace – pro použití komentářů jak lidmi (dokumentace), tak aplikacemi (appInfo).</li><li>Můžete vyjádřit jedinečná omezení založená na <a href="https://innovakon.ru/cs/services/css-vse-dochernie-elementy-znachenie-atributa-zakanchivaetsya.html">určité atributy</a> podřízené prvky.</li> </ul><p>Další informace o schématech XML lze získat z dokumentace na stránkách W3C (viz) a v zóně dW XML. Nyní, když byla specifikace XML Schema potvrzena jako kandidát na doporučení W3C, můžete ji s jistotou využít v plném rozsahu.</p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> <div class="single-popular"> <div class="single-popular-tit col-lg-12">Oblíbené v kategorii:</div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/5be8b76667696c4cd63a8c38979b50af.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Jak zkombinovat vrstvy ve Photoshopu do jedné nebo je spojit do skupiny Jak zkombinovat několik vrstev ve Photoshopu"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Jak sloučit vrstvy ve Photoshopu do jedné nebo je spojit do skupiny...</div> <a href="https://innovakon.ru/cs/settings/sposoby-obedineniya-sloev-v-fotoshope-kak-obedinit-sloi-v-fotoshope-v.html" rel="bookmark" title="Jak zkombinovat vrstvy ve Photoshopu do jedné nebo je spojit do skupiny Jak zkombinovat několik vrstev ve Photoshopu">číst</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/33b72e60e1d3066a9663f391221dc014.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Přenos kontaktů do nového telefonu Android"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Přenos kontaktů do nového telefonu Android</div> <a href="https://innovakon.ru/cs/phone/perenos-kontaktov-na-novyi-telefon-android-android-prilozheniya.html" rel="bookmark" title="Přenos kontaktů do nového telefonu Android">číst</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/ff504b14456f4702a94368a161811b1d.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Samsung Galaxy se restartuje sám – Solutions Galaxy note 4 se restartuje sám"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Samsung Galaxy se sám restartuje – řešení Galaxy Note...</div> <a href="https://innovakon.ru/cs/internet/esli-xiaomi-postoyanno-perezagruzhaetsya-samsung-galaksi-perezagruzhaetsya-sam-po.html" rel="bookmark" title="Samsung Galaxy se restartuje sám – Solutions Galaxy note 4 se restartuje sám">číst</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/242e09224609f2b7cbd6b5b9f2adc411.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Klíčové vlastnosti Kaspersky Rescue Disk"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Klíčové vlastnosti Kaspersky Rescue Disk</div> <a href="https://innovakon.ru/cs/rates/skachat-zagruzochnyi-disk-kasperskogo-osnovnye-vozmozhnosti-kaspersky-rescue.html" rel="bookmark" title="Klíčové vlastnosti Kaspersky Rescue Disk">číst</a> <div class="clr"> </div> </div> </div> <div class="clr"></div> </div> </div>  <div class="sidebar col-lg-3 col-md-4 col-sm-12"> <div class="sidebar-wrp"> <div class="sidebar-wrp-title">Nejnovější články</div> <div class="sidebar-wrp-des"> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/d93303aadea847492ee52538b585df87.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">MacBook se nepřipojí k wifi MacBook nevidí...</div> <div class="clr"></div> <a href="https://innovakon.ru/cs/phone/macbook-ne-podklyuchaetsya-k-wifi-avtomaticheski-makbuk-ne-podklyuchaetsya-k-wifi-makbuk-ne-vidit-vai-fai.html">číst</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/094fe0c598853f299be65e8611b45d60.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Jak vydělat peníze na WebMoney</div> <div class="clr"></div> <a href="https://innovakon.ru/cs/internet/kak-zarabotat-rubli-na-webmoney-kak-zarabotat-na-webmoney-proverennye.html">číst</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/280d369c9d1e343119c3d855af4b9c4d.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Tablet "Supra": recenze zákazníků</div> <div class="clr"></div> <a href="https://innovakon.ru/cs/rates/planshet-podelka-est-takoi-supra-firma-supra-planshet-otzyvy-pokupatelei-plyusy-i-minusy.html">číst</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/b1724f08fa52145089eaa72f836127ee.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Umístění lodí v reálném čase</div> <div class="clr"></div> <a href="https://innovakon.ru/cs/settings/voennye-korabli-v-realnom-vremeni-onlain-mestonahozhdeniya-sudov-v.html">číst</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/534951a61241c179a7c060b9fe1143c8.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Nejlepší programy pro Android Záznam hovorů z...</div> <div class="clr"></div> <a href="https://innovakon.ru/cs/rates/prilozheniya-dlya-android-obuchayushchie-programmy-dlya-detei-luchshie.html">číst</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/e280b0808c5e749938522ba1df2a41ec.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Odebírání nesledujících na Twitteru</div> <div class="clr"></div> <a href="https://innovakon.ru/cs/services/kak-udalit-ne-vzaimnyh-chitatelei-v-twitter-udalyaem-ne-chitatelei-v.html">číst</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/229610355b0a27a465c73ddb25664556.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Připojení k internetu na notebooku: všechny možné...</div> <div class="clr"></div> <a href="https://innovakon.ru/cs/phone/kak-vklyuchit-internet-na-kompyutere-ispolzuya-mobilnyi-telefon.html">číst</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/5399be52c80b405fedf00779a6136b42.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Samsung Galaxy S IV je nová vlajková loď...</div> <div class="clr"></div> <a href="https://innovakon.ru/cs/phone/samsung-galaxy-s4-vtoroi-vzglyad-samsung-galaxy-s-iv-novyi-flagman-galakticheskogo-masshtaba-galak.html">číst</a> </div> <div class="clr"></div> </div> </div> <div id="text-4" class="widget widget_text sidebar-wrp"> <div class="textwidget"> </div> </div> <div id="ketena1" style="height:500px;width:260px;" align="center"></div> <div class="clr"></div> </div> </div> </div> </div> <div id="footer"> <div class="container"> <div class="row"> <div class="footer-contacts col-lg-6 col-md-6 col-sm-12 col-xs-12"> <img src="/logo/logo.png" loading=lazy loading=lazy> <div class="footer-contacts-tit">innovakon.ru <br>Mobilní telefony a komunikace</div> <div class="footer-soc"> <div class="footer-soc-wrp"> <div class="soc_w"> <a href="#" class="soc-link vk" target="_blank"></a> <a href="#" class="soc-link fb" target="_blank"></a> </div> </div> </div> </div> <div class="footer-links col-lg-4 col-md-6 col-sm-12 col-xs-12"> </div> <div class="footer-links col-lg-4 col-md-4 col-sm-4 col-xs-4" style="display: block;"> <ul> <li><a href="">Edice projektu</a></li> <li><a href="">Reklama na webu</a></li> </ul> <ul> <li><a href="https://innovakon.ru/cs/feedback.html">Kontakty</a></li> <li><a href="https://innovakon.ru/cs/sitemap.xml">Mapa stránek</a></li> </ul> </div> </div> </div> <div class="copyright">© 2024 Mobilní telefony a komunikace</div> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="https://innovakon.ru/wp-content/themes/trudinsp/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://innovakon.ru/wp-content/themes/trudinsp/js/SmoothScroll.js"></script> <a id="scroll-to-top" href="#" title="Přejděte na začátek">Nahoru</a> <script type='text/javascript' src='https://innovakon.ru/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js?ver=3.51.0-2014.06.20'></script> <script type='text/javascript' src='https://innovakon.ru/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=4.4.1'></script> <script type='text/javascript' src='https://innovakon.ru/wp-content/plugins/jquery-smooth-scroll/js/jss-script.min.js?ver=4.8.3'></script> <script type='text/javascript' src='https://innovakon.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='/wp-includes/js/jquery/ui/effect.min.js?ver=1.11.4'></script> <script type='text/javascript' src='/wp-includes/js/jquery/ui/effect-blind.min.js?ver=1.11.4'></script> <script type='text/javascript'> /* <![CDATA[ */ var stbUserOptions = { "mode":"css","cssOptions":{ "roundedCorners":false,"mbottom":20,"imgHide":"http:\/\/innovakon.ru\/wp-content\/plugins\/wp-special-textboxes\/themes\/stb-metro\/minus.png","imgShow":"http:\/\/innovakon.ru\/wp-content\/plugins\/wp-special-textboxes\/themes\/stb-metro\/plus.png","strHide":"\u0421\u043a\u0440\u044b\u0442\u044c","strShow":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c"} }; /* ]]> */ </script> <script type='text/javascript' src='https://innovakon.ru/wp-content/plugins/wp-special-textboxes/js/wstb.min.js?ver=5.5.101'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.8.3'></script> <script type="text/javascript" id="slb_context">/* <![CDATA[ */if ( !!window.jQuery ) { (function($){ $(document).ready(function(){ if ( !!window.SLB ) { { $.extend(SLB, { "context":["public","user_guest"]} );} } })} )(jQuery);} /* ]]> */</script> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body> </html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>