Využití objektových nástrojů při tvorbě informačních systémů na internetu.



Podobné dokumenty
Úvod do aplikací internetu a přehled možností při tvorbě webu

Úvod do tvorby internetových aplikací

APLIKACE XML PRO INTERNET

ZNAČKOVACÍ JAZYKY A JEJICH VYUŽÍVÁNÍ MARKUP LANGUAGE AND THEIR USE. Zdeněk Havlíček

Identifikátor materiálu: ICT-3-10

Úvod do Web Services

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Michal Krátký, Miroslav Beneš

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

INFORMAČNÍ SYSTÉMY NA WEBU

Instalace a konfigurace web serveru. WA1 Martin Klíma

Systém elektronického rádce v životních situacích portálu

Tvorba informačních systémů

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

Microsoft Office 2003 Souhrnný technický dokument white paper

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

Tvorba webu. Úvod a základní principy. Martin Urza

Požadavky pro výběrová řízení TerraBus ESB/G2x

Uspořádání klient-server. Standardy pro Web

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

CZ.1.07/1.5.00/

MBI - technologická realizace modelu

Formy komunikace s knihovnami

Jazyky pro popis dat

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy!

Platební systém XPAY [

Schéma e-pošty. UA (User Agent) rozhraní pro uživatele MTA (Message Transfer Agent) zajišťuje dopravu dopisů. disk. odesilatel. fronta dopisů SMTP

Alena Malovaná, MAL305

Úvod do informatiky 5)

Základy WWW publikování

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Internet Information Services (IIS) 6.0

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Inovace výuky prostřednictvím šablon pro SŠ

Internet - základní pojmy

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003

Vzdělávací obsah vyučovacího předmětu

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Identifikátor materiálu: ICT-3-03

Specifikace rozhraní. Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů. Martin Falc, SW architekt.

Kartografická webová aplikace. Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita

3.4 Základní služby Internetu

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Publikování map na webu - WMS

Olga Rudikova 2. ročník APIN

DOCUMENT MANAGEMENT TOOLKIT

Semináˇr Java X J2EE Semináˇr Java X p.1/23

EXTRAKT z české technické normy

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web,

EXTRAKT z mezinárodní normy

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ

PŘÍLOHA C Požadavky na Dokumentaci

Softwarové komponenty a Internet

Nastavení provozního prostředí webového prohlížeče pro aplikaci

WWW a HTML. Základní pojmy. Ivo Peterka

8.2 Používání a tvorba databází

TÉMATICKÝ OKRUH Softwarové inženýrství

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

1 Webový server, instalace PHP a MySQL 13

TÉMATICKÝ OKRUH Softwarové inženýrství

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

HTML Hypertext Markup Language

Elektronické publikování. doc. RNDr. Petr Šaloun, Ph.D. katedra informatiky FEI VŠB TU Ostrava

Komponentový návrh SW

Tvorba WWW stránek. Mojmír Volf

Mgr. Stěpan Stěpanov, 2013

Maturitní projekt do IVT Pavel Doleček

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Tvorba webových stránek

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Nové jazykové brány do Caché. Daniel Kutáč

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování

Přístup do IS z mobilních zařízení

Roční periodická zpráva projektu

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

DUM č. 11 v sadě. 36. Inf-12 Počítačové sítě

Oracle XML DB. Tomáš Nykodým

Základy XML struktura dokumentu (včetně testových otázek)

Maturitní otázky z předmětu PROGRAMOVÁNÍ

XML terminologie a charakteristiky. Roman Malo

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

MST - sběr dat pomocí mobilních terminálů on-line/off-line

Transkript:

Využití objektových nástrojů při tvorbě informačních systémů na internetu. Souhrn Tato diplomová práce uvádí do problematiky XML. Postihuje vývoj této technologie od pozadí jejího vzniku, přes dnešní možnosti uplatnění v praxi, až po její výhledy do budoucnosti. Jsou zde uvedeny další standardy a technologie vzniklé na základě XML. Podrobněji je rozebrána jedna z nich protokol SOAP. Podle zadaných požadavků byl vybrán vhodný programovací jazyk a sestavena funkční aplikace, která demonstruje možnosti využití XML jako nástroje pro elektronickou výměnu strukturovaných dat mezi aplikacemi. Krok po kroku jsou zde popsány technologie, nástroje a postupy, které vedly k jejímu vytvoření. Součástí je analýza aplikace provedená metodikami BORM a UML. Klíčová slova. XML, HTML, SGML, SOAP, webové služby, EDI, strukturovaná data Použité styly písma v diplomové práci: Běžný text http://www.php.net Mysql_Result Běžný text je vyznačen písmem Times New Roman. Internetové adresy jsou podtrženy a označeny kurzívou. Programový kód je zvýrazněn písmem Courier New. 1

The use of object oriented tools for development of internet information systems. Summary. This diploma thesis introduces the problematics of XML. It concerns the development of this technology, from the background of its rise, through today s possibility of proffesional use, until its view to the future. There are mentioned other standards and technologies, that arise from XML. One of them, the protocol SOAP is described in detail. On base of pre-defined demand, the suitable programming language was chosen and then there was implemented an application, that demonstrate the use of XML in electronical interchange of structured data between applications. Step by step there are described technologies and programing tools, that was used to built this application. The application is analyzed by BORM and UML methodology. Key words. XML, HTML, SGML, SOAP, web services, EDI, structured data 2

Seznam zkratek. API BORM CGI COM DLL DTD EDI FTP HTML HTTP IMAP ISO LDAP Aplikační programové rozhraní (Application Programming Interface) Modelování business procesů (Business Object Relation Modeling) Common Gateway Interface Komponentový objektový model (Component Object Model) Knihovna (dynamic link library) Definice typu dokumentu (Document Type Definition) Elektronická výměna strukturovaných standardních zpráv mezi dvěma aplikacemi dvou nezávislých subjektů (Electronic Data Interchange) Protokol přenosu souborů (File Transfer Protocol) Hypertextový značkovací jazyk (HyperText Markup Language) Přenosový protokol (Hyper Text Transfer Protocol) Protokol pro přístup k poště (Internet Mail Access Protocol) Mezinárodní organizace pro standardizaci (International Organization for Standartization) Protokol pro přístup k adresářům (Lightweight Directory Access Protocol) NNTP POP3 SGML SMTP SNMP SOAP UML URL W3C WAP XHTML Protokol pro přenos síťových news (Network News Transfer Protocol) Protokol pro elektronickou poštu (Post Office Protocol) Obecný značkovací jazyk pro dokumenty (Standart Generalized Markup Language) Protokol pro přenos zpráv (Simple Mail Transfer Protocol) Řídící protokol sítě (Simple Network Management Protocol) Jednoduchý protokol pro přístup k objektům (Simple Object Access Protocol) Modelovací jazyk pro zobrazení, specifikaci, konstrukci a dokumentaci artefaktů systému (Unified Modeling Language) Jednoznačná identifikace souboru na Internetu (Uniform Resource Locator) Konsorcium pro standardizací WWW technologií (World Wide WebConsorcium) Protokol pro bezdrátovou výměnu informací mezi sítí internet a mobilním telefonem (klientem) (Wireless Application Protocol) Rozšiřitelný hypertextový značkovací jazyk (extensible HyperText Markup Language) XML Rozšiřitelný značkovací jazyk (extensible Markup Language) 3

Obsah. 1. ÚVOD...6 2. CÍL A METODIKA PRÁCE...8 3. PROBLEMATIKA XML...10 3.1 CO JE TO XML...10 3.2 POZADÍ VZNIKU XML...11 3.2.1 HTML: Co je na něm dobré...11 3.2.2 HTML: to špatné...12 3.2.3 SGML: Co je na něm dobré...13 3.2.4 SGML: to špatné...15 3.2.5 Potřebujeme XML...16 3.3 JAZYK XML, SYNTAXE...17 3.3.1 Elementy...17 3.3.1.1 Deklarace typu elementu...18 3.3.1.2 Deklarace atributů...18 3.3.2 Entity...19 3.3.2.1 Interní entity...19 3.3.2.2 Externí entity....19 3.3.2.3 Parametrické entity....19 3.3.3 Komentáře...20 3.3.4 Zpracovatelské instrukce (PIs)...20 3.3.5 Sekce CDATA...20 3.3.6 Deklarace...20 3.3.6.1 Dobře vytvořené a platné dokumenty...21 3.4 POUŽITÍ XML...22 3.4.1 Aplikace XML...22 3.4.1.1 Dokumentové aplikace...22 3.4.1.2 Datové aplikace...24 3.4.1.2.1 XML a elektronický obchod...25 3.4.1.2.1.1 Vývoj elektronického obchodu...25 3.4.1.2.1.2 Přínosy elektronického obchodu...26 3.4.1.2.1.3 EDI...26 3.4.1.2.1.4 XML na poli EDI...26 3.4.2 Uplatnění XML v budoucnosti...27 3.5 DOPROVODNÉ STANDARDY...28 3.5.1 Jmenné prostory XML...29 3.5.2 Kaskádové styly...29 3.5.3 DOM a SAX...29 3.5.4 Xpath...29 3.5.5 XSL...30 3.5.6 Xlink a XPointer...30 3.6 ODVOZENINY XML...30 3.6.1 Jazyky k prezentaci informací...30 3.6.1.1 XHTML...31 3.6.1.2 WML...31 3.6.1.3 SVG...31 3.6.1.4 VoiceXML...31 3.6.2 Sémantický web...32 3.6.2.1 RSS...32 3.6.2.2 RDF...32 4

3.6.3 Webové služby...32 3.6.3.1 SOAP...34 3.6.3.2 WSDL...34 3.6.3.3 UDDI...35 3.6.3.4 XML-RPC...35 3.6.4 SOAP...35 3.6.4.1 Příkad použití...36 3.6.4.2 Struktura zprávy...37 3.6.4.3 Model výměny zpráv SOAP...37 3.6.4.4 Transportní mechanismy...38 3.6.4.5 Vzorek použití SOAP...38 4. MODUL OBCHODNĚ-INFORMAČNÍHO SYSTÉMU...41 4.1 POŽADAVKY NA SYSTÉM...41 4.2 PROJEKTOVÝ NÁVRH...41 4.3 VÝBĚR VHODNÉHO PROGRAMOVACÍHO JAZYKA...45 4.3.1 Výběr jazyka....45 4.3.2 Výhody PHP....45 4.3.3 Nevýhody PHP....46 4.3.4 Podpora XML v PHP....46 4.4 POUŽITÉ TECHNOLOGIE...46 4.5 VLASTNÍ APLIKACE...47 4.5.1 Popis systému pro správu zakázek...48 4.5.2 Popis skladového modulu...49 4.5.3 Použité zjednodušení...50 4.5.4 Databázová vrstva...50 4.5.5 Komunikace mezi aplikacemi...53 4.5.6 Popis funkčností modulu sklad...56 4.5.6.1 Skladový systém...56 4.5.6.1.1 Spotřeba...56 4.5.6.1.2 Inventura...57 4.5.6.1.3 Dodávky...58 4.5.6.2 Objednávkový systém...59 4.5.6.3 PHP skripty...62 4.5.6.4 Další prvky aplikace...65 4.6 PŘÍNOSY OBJEKTOVÉHO PŘÍSTUPU...66 4.7 SHRNUTÍ VLASTNÍ PRÁCE...66 5. ZÁVĚR...68 6. POUŽITÁ LITERATURA...70 5

1. Úvod. Tato diplomová práce je zaměřena na vývoj informačních systémů, kde probíhá elektronická výměna strukturovaných dat mezi aplikacemi, se zvláštním zaměřením na XML. Popis dnešních technologií v této oblasti doplňují praktické zkušenosti při vlastním vývoji konkrétní aplikace ve vybraném prostředí. HTML je populární značkovací jazyk. Některé studie udávají, že celkem existuje přes 800 miliónů webových stránek. Jazyk HTML je podporován obrovským množstvím aplikací, včetně prohlížečů, editorů, emailových programů, databází, organizátorů a dalších aplikací. Web byl původně platformou pro publikaci vědeckých dokumentů. Dnes je již plnoprávným médiem srovnatelným s tiskem či televizí. A co je ještě důležitější, web je médium interaktivní, protože podporuje online obchody, homebanking, obchodní podnikání a diskuzní fóra. HTML se během let této rostoucí popularitě muselo přizpůsobit, a to svým rozšířením. V jazyce se objevilo množství nových tagů. První verze HTML měla tagů jen pár; poslední verze HTML 4.0 jich má skoro sto ( nepočítaje v to tagy pracující jen v určitých typech prohlížečů ). Kvůli potřebám webu se na trh dostalo také množství dalších podpůrných technologií: JavaScript, Java, Flash, CGI, ASP, PHP, streamové technologie, MP3 a další. Některé z nich vyvinulo konsorcium W3C, další vznikly v nezávislých firmách. HTML samo o sobě neslibuje žádnou růžovou budoucnost. Stal se z něj dost složitý jazyk. Jestliže obsahuje téměř 100 tagů, znamená to, že jednoduchost je ta tam. Možných kombinací tagů je nespočet a výsledné zobrazení určitých kombinací se může v jednotlivých typech prohlížečů výrazně odlišovat. A to ještě není nejhorší přestože HTML obsahuje velké množství tagů, nestačí to. Aplikace pro elektronické obchody vyžadují další tagy; pro odkazy na výrobky, pro ceny, jména, adresy atd. Streamové technologie požadují tagy pro řízení přenosu obrázků a zvuků. Vyhledávací stroje potřebují přesnější tagy pro určování klíčových slov a popisů. 6

Bezpečnost webových aplikací vyžaduje tagy pro elektronické podpisy. Seznam aplikací, které potřebují vlastní tagy, je rovněž téměř nekonečný. Jenže přidávání dalších tagů do jazyka, který jich už tak má až moc, není šťastné řešení. Vypadá to, jako by HTML bylo již na pokraji zhroucení pod vahou vlastních tagů, tak proč do něj přidávat další? Dalším, ovšem souvisejícím problémem, je fakt, že pro formátovaní stránky je příliš mnoho tagů. Není nijak neobvyklé, že se potkáte se stránkou, ve které je více tagů než vlastního textu. Takovéto stránky se pomalu stahují i zobrazují. Na závěr těchto úvah je tedy možné říci, že HTML je populární a úspěšný značkovací jazyk, má však některé stinné stránky. Pro jejich odstranění byl vyvinut nový jazyk, XML. Vznik XML tedy nebyl dán jen snahou přijít s další novinkou. 7

2. Cíl a metodika práce Tato práce se zabývá problematikou XML, konkrétními technologiemi a standardy spadajících do této oblasti a popisem implementace zadané aplikace vybranou technologií. Diplomová práce je rozdělena do šesti základních kapitol. Po úvodní části, s cílem a metodikou, je detailně probrána problematika XML, důvody jejího vzniku, možnosti použití v dnešní době a výhledy do budoucna. Ve zjednodušené formě je podán výklad její syntaxe a pojednáno o doprovodných standardech, které XML obklopují a výrazně zvyšují možnosti jejího využití. Zvláštní pozornost je věnována protokolu SOAP, webovým službám a využití XML v elektronickém obchodování. Čtvrtá část je věnována vlastní aplikaci, která, v podobě skladového modulu s objednávkovým systémem, demonstruje možnosti použití XML při výměně strukturovaných dat mezi aplikacemi. Jsou zde uvedeny požadované funkce, projektový návrh v nástroji MetaEdit metodikami BORM a UML a následný výběr vhodného programovacího jazyka. V popisu naprogramované aplikace jsou rozebrány použité technologie, jejich implementace a ukázky programového kódu. Nakonec je zhodnocena vytvořená aplikace a jsou uvedeny možné způsoby jejího dalšího vylepšení a doplnění o další funkce. V závěrečných kapitolách je, kromě seznamu použité literatury, shrnuta celá práce a význam XML v dnešním světě informačních technologií. Pro dosažení stanovených cílů jsem zvolil metodu studia dostupných zdrojů. Část zdrojů byla použita z dostupné nabídky našeho knižního trhu, část relevantních zdrojů bylo nalezeno na Internetu. Při studiu podpory XML v PHP jsem vycházel především ze zahraniční odborné dokumentace, referencí v diskusních skupinách na Internetu a e-mailové komunikace s uživateli této technologie. Na závěr jsem aplikoval dosažené znalosti v implementaci zvolené aplikace a potvrdil tím vhodnost zvoleného řešení. 8

Součástí této práce je i CD obsahující funkční aplikaci, návod k instalaci a spuštění a kompletní text této diplomové práce ve formátech rtf a pdf. 9

3. Problematika XML 3.1 Co je to XML Zkratka XML znamená extensible Markup Language. Jde o poměrně nový značkovací jazyk vyvinutý konsorciem W3C (World Wide Web Consortium) především jako prostředek k překonání omezujících prvků v HTML. Konsorcium W3C vlastní standard XML, nemůže tedy dojít k blokování ze strany nějakého majitele, omezujícího použití XML na jeden systém nebo programovací jazyk pro zpracování dat. XML je syntaxe umožňující uživatelům vytvářet vlastní značkovací jazyky. Jazykům pro tvorbu značkovacích jazyků se obvykle říká metajazyky. 7 základních vlastností XML: 1. XML je způsob jak uložit strukturovaná data do textového souboru. Odstraňuje problémy spočívající v nedokonalé lokalizaci a platformní závislosti. 2. XML vypadá trochu jako HTML, ale není jím. Stejně jako HTML, obsahuje XML tagy (slova ohraničená znaky < a > ) a atributy (ve formě název= hodnota ), ale zatímco HTML určuje, co který tag a atribut znamená, XML používá tagy pouze pro ohraničení dat a jejich interpretaci už nechá na aplikaci, která je čte. 3. XML je text ale není určen ke čtení XML. Soubory jsou textové především z toho důvodu, že to umožní snadnější ladění aplikací a přitom pro editaci v případě nouze stačí jednoduchý textový editor. Pravidla pro vytváření XML dokumentů jsou ale mnohem přísnější než pro HTML. 4. XML zahrnuje více technologií. Základní specifikací je XML 1.0, která definuje, co jsou tagy a atributy, ale mimo tohoto základního modulu existuje stále více volitelných modulů, které splňují specifické úkoly. Např. Xlink, popisující, jak přidat hypertextové 10

odkazy do dokumentů, CSS týkající se definice stylů původně aplikovaný na HTML a další. 5. XML je obsáhlý, ale to nepředstavuje žádný problém. Jelikož XML je textový formát, soubory jsou většinou větší než srovnatelná binární interpretace. Je ovšem třeba vzít v úvahu výhody, které textový formát představuje (viz výše). Mimo to již dnes existují vyspělé kompresní algoritmy, které napomáhají optimálnímu využití přenosové rychlosti. 6. XML je nový standard, ale ne příliš nový. Před XML existoval SGML, vyvinutý již v 80. letech (viz kapitola 3.2.3). 7. XML je možné využívat bez licence, je nezávislý na platformě a podporovaný. Pro XML existují nástroje, které napomáhají manipulaci s jeho konstrukcemi. Každý si též může vytvořit software podporující XML bez nutnosti platit za licenci. 3.2 Pozadí vzniku XML 3.2.1 HTML: Co je na něm dobré HTML neboli Hypertext Markup Language je značkovací jazyk používaný pro tvorbu webových stránek. Až doposud je to nejpoužívanější značkovací jazyk vůbec. HTML je bez debat technologií, která změnila současný svět. HTML je hutný a přenosný, je možné ho zobrazit na milionech počítačů, a velmi snadno se dá také naučit. Nástroje pro vytváření a zobrazování webových stránek jsou levné, velmi často pak zcela zdarma. HTML využívá struktury pro formátování a zpracování textu umístěného ve dvojrozměrném prostoru. Tyto struktury jsou následně vykresleny v prohlížeči. Model dynamického HTML (DHTML), obsažený v prohlížeči firmy Microsoft a částečně podporovaný i jinými výrobci prohlížečů, nabízí bohatá programovací rozhraní, která rozšiřují HTML na něco, v čem se již dají tvořit vážněji míněné projekty. Díky rozdílům v dovednostech prohlížečů je však většina této funkčnosti nevyužita. HTML je většinou 11

používán pro zveřejnění informací ve dvou rozměrech: na webové stránce uvnitř prohlížeče. Jedním z nejlepších poznatků, který uživatelé webu prací s HTML získali, je funkčnost hypertextu. Každý, kdo má přístup na Internet, může myší klepnout na odkaz umístěný na stránce a nahrát jinou stránku, která je umístěna tisíce kilometrů od té, kterou si právě prohlíží. V posledních letech se získalo množství zkušeností s tímto univerzálním přístupem k informacím a standardizační skupiny vymyslely nové způsoby, jak se k informacím dostávat. Snadnost vytváření webových stránek a možnost vytvářet propojení mezi nimi je to, co umožnilo existenci webu. Ale HTML má i své stinné stránky. 3.2.2 HTML: to špatné Základní stížnosti na HTML se týkají jeho neschopnosti poskytovat určité formátovací funkce, například plovoucí sloupce, zarovnání textu pomocí tabulátoru (bez složitého elementu TABLE) nebo přesné ovládání tzv. bílých znaků. Všechny tyto schopnosti návrhářům stránek skutečně chybí. Některá omezení HTML v této oblasti byla vyřešena vývojem kaskádových stylů (CSS), ale ty jsou jen přídavkem k základní funkčnosti HTML a každý prohlížeč se s nimi vypořádá trochu jinak. Celý HTML je vymezen příliš volným způsobem, existuje jen málo pravidel ohledně zpracování dat na stránce a většina prohlížečů si nijak nevynucuje dodržování těch pravidel, která jsou dána. Například ukončovací tag <P> elementu P je volitelný, což má neblahé následky na jeho používání tvůrci stránek obvykle odstavce nijak neukončují. Programátoři HTML si zvykli neuzavírat elementy, jejich lenost se tak přenáší i tam, kde to vadí, a nakonec vynechávají ukončovací tagy i tam, kde jsou povinné. Proč vůbec prohlížeče takto špatně napsané stránky neodmítají? Inu, protože žádný výrobce nechce, aby jeho výrobek získal pověst nemehla, co nedokáže přečíst veškerý obsah webu. Firmy vyrábějící prohlížeče tedy ve skutečnosti soutěží o to, čí výrobek dokáže přečíst nejhůře napsané stránky! V takovém prostředí však tvůrci stránek HTML budou stále psát špatně, protože jejich chyby nečeká žádný trest. Špatný kód bude plodit další nekvalitní stránky, a tak pořád dokola. 12

HTML je definováno jako pevná sada tagů, optimalizovaných pro doručování elektronických dokumentů. HTML obsahuje elementy sloužící jako formátovací příkazy, například P (odstavec), LI (seznam) či TABLE (tabulka). Nenajdete tu žádné elementy, jejichž názvy by zněly například číslo_faktury, použitá_taktika nebo krevní_tlak. Pokud potřebujete zachytit v dokumentu tento typ informace, není HTML příliš vhodný, HTML nemůžete přímo uzpůsobit svým potřebám. Konsorcium W3C (skupina firem podílejících se na vývoji a správě základních technologií Internetu) vypracovala nový standard HTML, který přísněji dodržuje daná pravidla a zároveň je rozšiřitelný. Tato specifikace (XHTML) vyřeší problémy se špatně napsaným kódem, protože prohlížeče odpovídající této specifikaci odmítnou načíst nesprávně zformovaný dokument. To je výtečné, ovšem jen pro nově vytvářené dokumenty, bude však nutné opravit ohromné množství starších stránek. Taková zásadní korekce se dá očekávat jen stěží, proto budou muset mít analyzátory i do budoucna v sobě zabudovány procesor pro špatně napsaný kód. 3.2.3 SGML: Co je na něm dobré International Organisation for Standardisation (ISO) vytváří a udržuje standardy, které pomáhají lidem v rámci celosvětového obchodu i podnikání. ISO vlastní například standardy pro výrobu šroubů, díky kterým si lze objednat šrouby od výrobce z Lucemburska a na ně našroubovat matice vyrobené na Tchajwanu. Jazyk SGML (Standard Generalised Markup Language) je jedním ze standardů ISO. Cílem SGML bylo umožnit sdílení informací v rámci podniků, které mají odlišné informační systémy. V dobách, kdy SGML vznikalo začátkem osmdesátých let o něj měly zájem například firmy IBM, CEC nebo the U. S. Internal Revenue Service (IRS). Po dokončení tohoto standardu se na jeho konkrétní specifikaci začaly podílet i další velké průmyslové firmy a federální orgány. Mezi ty nejaktivnější patřilo ministerstvo obrany. Ministerstvo obrany chtělo snížit náklady na uzavření a doručení kontraktů od funkcionářů ministerstva novým smluvním partnerům. Cena za převod dokumentů ze systému aktuálního dodavatele do systému nového dodavatele byla někdy tak vysoká, že vojenští 13

funkcionáři vlastně upřednostňovali nové zájemce ti totiž nemuseli náklady na převod zahrnout do svých nabídek. Nakonec tedy ministerstvo obrany začalo pátrat po technologii umožňující práci se standardním dokumentem, jejíž používání by bylo pro dodavatele nutnou podmínkou k výhře v konkursu. Touto technologií se stalo SGML. Od té doby musí vojenští dodavatelé zasílat veškerou dokumentaci ve formátu SGML. Díky tomuto standardu je pak možné, aby noví smluvní partneři, kteří přebírají dlouhodobé dodávky, mohli tyto podpůrné dokumenty snadno přečíst. Skutečnost, že ministerstvo obrany a IRS rychle přijaly standard SGML, vedla některé lidi k tomu, že si tuto zkratku začali rozepisovat jako Standard Government Markup Language. SGML bylo prvním standardem umožňujícím oddělit data od operací na nich prováděných. Uživatelé během analýzy informací zjistili strukturu dat a obsah. Podle výsledků této analýzy byl pak vytvořen slovník označovaný jako DTD (definice typu dokumentu). DTD určovalo jednotlivé třídy informací, každé DTD bylo tedy přizpůsobeno určité sadě údajů. DTD dále naznačovalo obsah jednotlivých objektů, a to tzv. objektovým modelem s přesně definovanou syntaxí. SGML umožňuje podnikům opakovaně využít ty samé údaje v různých procesech. Stručně se to dá vyjádřit takto: Jednou vytvoříš, mnohokrát použiješ. Například návrhář učebních kurzů může stejný zdroj SGML použít pro vytváření příručky pro studenty a příručky pro lektora, protože většina informací je sdílena v obou typech příručky. Sázecí stroj při tisku příručky posluchačů vytiskne jen otázky, lektor však bude mít vytištěny také odpovědi. Dokument SGML je tvořen ASCII textem složeným ze značkování a obsahu. Analyzátor tento dokument přečte a určí strukturu podle značkování. Pozornost věnuje pochopitelně i obsahu jednotlivých elementů. Protože dokument SGML je napsán ve formě prostého textu ASCII, je přenosný a lze ho načíst na libovolném systému, kde běží analyzátor. Jak bude brzy řečeno, XML má tyto přednosti většinou také. Jakožto standard ISO je SGML stabilní a jen obtížně ho lze změnit. Každý standard ISO musí být jednou za pět let znovu zkontrolován výborem, který ho vytvořil a stará se o něj, aby se ověřilo, zda je tento standart ještě potřebný, a pokud ano, zda nevyžaduje 14

aktualizaci. Tento kontrolní postup sice funguje dobře u šroubů a matic, ale obchodní dokumenty se přece jen mění častěji než jednou za pět let a tím se dostáváme k jednomu z problémů, jež bude podrobněji rozebrán hned v další části. 3.2.4 SGML: to špatné SGML není schopen reagovat na požadavky webu. Vznikl v době pomalých a drahých počítačů (podle dnešních měřítek). Aby bylo možné z těchto primitivních systémů získat maximum, vybavili SGML jeho vývojáři komplexní sadou minimalizačních nástrojů ty měly výsledné soubory stlačit na co nejmenší velikost. Jenže důsledkem to byla zase složitost zpracování a finanční náročnost na zavádění SGML do praxe. Analyzátory SGML byly pomalé a drahé. Pokud chtěl uživatel vytvořit dokument v jazyku SGML, musel mít po ruce příslušnou DTD, která popisovala strukturu informací. Znamenalo to, že uživatel musel nejdříve provést drahý rozbor údajů a definovat jejich strukturu jednoznačnými pojmy (elementy) ještě předtím, než začal psát vlastní dokument. Hotová DTD pak byla zapojena do každé fáze zpracování dokumentu. Později uvidíte, že v případě změny struktury dat nebo DTD je velmi obtížné ověřit, zda je dokument formálně v pořádku. Dalším problémem je fakt, že SGML patří akademické obci, která viditelně upřednostňuje dodržování standardu nad jeho použitelností. Během dvou posledních revizí tohoto standardu, v roce 1991 a 1996, měla příslušná skupina šanci zjednodušit SGML tak, aby odpovídal potřebám webu. Z mnoha stran se ozývalo volání po zjednodušeném SGML, jehož syntaxe by byla výrazně omezena, aby ji webový prohlížeč dokázal zpracovat. Výbor ISO však odmítl provést jakékoli změny, které by SGML zeštíhlily. Jenže web vyžaduje něco přenosného, ale také levného, rychlého a snadného něco, co se bude podobat HTML, ale zároveň s možností pozdějšího doplňování jako u SGML. A samozřejmě tato očekávaná novinka by měla být kompatibilní s tím, co je již známo, aby se mohli používat již známé technologie a nástroje. 15

3.2.5 Potřebujeme XML Nechuť výboru ISO modernizovat standard SGML měla za následek vstup skupiny internetových profesionálů do konsorcia W3C (které v té době bylo na poli standardizátorů nováčkem), kde vznikl návrh zeštíhleného SGML, který by byl použitelný na webu, ale zároveň slučitelný se SGML i HTML. Členové této skupiny se domlouvali převážně e- mailem a během let 1996 a 1997 vypracovali specifikaci, kterou nazvali XML (extensible Markup Language). Při návrhu XML se členové skupiny drželi deseti hlavních cílů: 1. XML bude přímo použitelný na Internetu. 2. XML bude podporovat širokou paletu aplikací. 3. XML bude kompatibilní s jazykem SGML. 4. Tvorba programů pro zpracování XML bude snadná. 5. Počet volitelných částí XML bude minimalizován, v ideálním případě nebudou žádné volitelné části standardu. 6. Dokumenty XML by měl člověk bez problémů přečíst a pochopit. 7. Návrh XML musí být hotov rychle. 8. Návrh XML bude metodický a stručný. 9. Vytváření dokumentů XML bude snadné. 10. Obsažnost značkování XML nebude mít téměř žádný význam. 16

3.3 Jazyk XML, syntaxe XML dokumenty se skládají ze značek a obsahu (content). Existuje několik základních druhů značek, které se mohou v dokumentech vyskytnout. Jsou to: elementy (elements), entity (entities), resp. odkazy na entity (entity references), komentáře (comments), zpracovatelské instrukce (processing instructions, PIs), sekce CDATA (CDATA sections) a deklarace typu dokumentu (document type declarations). V následující části budou postupně popsány. 3.3.1 Elementy Jsou nejčastější formou značky. Elementy identifikují obsah který obklopují, z hlediska zápisu stejně jako v HTML. Element začíná start-tagem a je ukončen end-tagem, v následující syntaxi: <element>... </element> Element může mít určité atributy, jejichž název a obsah je definován v rámci starttagu: <báseň název = "Máj"> je element s názvem báseň a jedním atributem, pojmenovaným název, který má hodnotu Máj. Specifickým případem je tzv. prázdný (empty) element, jehož syntaxe je následující: <element/> 17

3.3.1.1 Deklarace typu elementu Specifikuje jméno elementu a druh jeho obsahu. Deklarace vypadá následovně: <!ELEMENT báseň(titul, sloka+, verš?)> Tato deklarace identifikuje element nazvaný báseň. Za jménem následuje model obsahu elementu (content model), který definuje co element může obsahovat. Ve výše uvedeném případě element musí obsahovat titul a sloku a může obsahovat verš. Znak + za slokou znamená, že element sloka se může v rámci elementu báseň opakovat více než jednou a musí se vyskytnout minimálně jednou, otazník za veršem znamená, že verš může být v elementu báseň obsažen, ale nemusí. Titul, u kterého není žádný doplňující znak, se musí v elementu objevit právě jednou. Další možností by byla hvězdička (*), která znamená, že element se může v rámci jiného elementu objevit vícekrát, ale nemusí ani jednou. Čárky mezi názvy elementů znamenají, že v elementu báseň musí být obsaženy v pořadí, v jakém jsou definovány. 3.3.1.2 Deklarace atributů Elementy mohou mít atributy, které musí být v dokumentu (resp. i mimo něj - tzv. externí deklarace - viz níže) deklarovány - určuje se, jaké atributy mohou elementy mít, jakých hodnot mohou atributy nabývat, jakého jsou typu a jaká je defaultní hodnota atributů. Elementy mohou mít libovolné množství atributů. Slouží jako metainformace k elementům. Deklarace: <!ATTLIST jméno_elementu deklarace_atributu> jméno_elementu: element, ke kterému se atribut vztahuje deklarace_atributu: skládá se ze tří částí 1. jméno atributu (stejné omezení jako pro jméno elementu) 2. typ atributu 3. standardní hodnota, případně zda je použití povinné 18

3.3.2 Entity Stejně jako v jiných jazycích i v XML jsou určité znaky vyhrazeny pro určitý účel - např. pro označení začátku tagu - např. <. Aby bylo možné tyto znaky použít ve vlastním obsahu dokumentu, existuje zde alternativní možnost jejich zobrazení, kterou poskytují právě entity. Kromě toho se entity používají k odkazu na často opakované části textu a k vkládání obsahu externích souborů. Každá entita musí mít unikátní jméno. Chceme-li na ní v dokumentu odkázat, použijeme znaky & jako počáteční a ;jako koncový. Rozeznáváme tři typy entit: 3.3.2.1 Interní entity. Tyto entity spojují jméno entity s určitým textem. Deklarace takové entity vypadá takto: <!ENTITY firma "ABC, s. r. o."> Následně při použití &firma; kdekoli v dokumentu bude vložen text ABC, s. r. o." na dané místo. Interní entity tedy umožňují definovat zkratky pro často se opakující části textu, u kterých mohou nastat změny a právě použitím interní entity se dají usnadnit případné změny - např. při změně názvu firmy toto stačí upravit v deklaraci entity. 3.3.2.2 Externí entity. Tyto entity spojují jméno entity s obsahem nějakého souboru. Příkladem deklarace externí entity budiž např.: <!ENTITY pozn "poznamka.txt"> Použití &pozn; vloží obsah souboru poznamka.txt. 3.3.2.3 Parametrické entity. Používá se např. u stejných typů atributů u více entit. Nechá se říct, že je to jakási zástupka. Definuje se následně: <!ENTITY %entita "nějaký text"> 19

Smysl použití je tedy stejný jako u interních a externích entit, rozdíl je v zápisu (používá se znak procenta namísto ampersandu) a v použití - odkaz na parametrovou entitu se používá v deklaraci, zatímco odkaz na interní/externí entitu ve vlastním těle dokumentu. 3.3.3 Komentáře Komentáře umožňují do textu vložit libovolné řetězce, kterými autor dokumentu může vkládat jakékoli informace, obdobně jako se píší komentáře ve zdrojových kódech programovacích jazyků jako jsou C++, Pascal apod. Komentáře jsou pak XML procesorem ignorovány. 3.3.4 Zpracovatelské instrukce (PIs) Tyto instrukce představují způsob, jak předat instrukce nějaké aplikaci pracující nad XML procesorem. Forma zápisu je následující: <? jmeno data?> Jmeno identifikuje instrukci pro aplikaci, která jej podle něj identifikuje a zpracuje. Za instrukcí mohou následovat data potřebná k provedení instrukce. 3.3.5 Sekce CDATA Sekce CDATA oznamuje XML procesoru, aby ignoroval všechny značky (markups) obsažené v sekci, což je možné využít např. v případě, kdy chceme, aby určitý obsah určitého elementu obsahoval ukázku XML textu a v té podobě by byla vypsána na obrazovku tedy, aby jednotlivé značky nebyly interpretovány jako značky, ale jako normální text. 3.3.6 Deklarace Deklarace jednotlivých elementů, entit, atributů se nachází v části dokumentu, která je označována jako deklarace typu dokumentu (document type declaration, DTD), která musí být první věcí v dokumentu za volitelnými PI (viz výše) a případnými komentáři - 20

musí být před prvním elementem v dokumentu. Deklarace kromě jiného identifikuje tzv. kořenový element (root element), který zahrnuje celý obsah dokumentu (v níže uvedeném případě se jedná o element kniha). Deklarace může být buď externí nebo interní. O interní deklaraci se jedná v případě, že všechny deklarace (elementů, entit, atributů) jsou uvedeny přímo v dokumentu; o externí v případě, že dokument obsahuje odkaz na externí soubor, který tyto deklarace obsahuje (DTD) - jedná se tak o zvláštní typ externí entity. XML dokument může obsahovat také jak interní, tak externí deklarace. XML procesor nejprve čte interní deklarace a poté externí. Pokud není požadováno, aby dokument byl platný (valid, viz níže) není nutné číst externí. 3.3.6.1 Dobře vytvořené a platné dokumenty Dokument je dobře vytvořený (well-formed), pokud splňuje obecná pravidla syntaxe XML - tzn. jednotlivé elementy, atributy entity jsou správně a na správném místě zapsány - mají start-tag a end-tag (nejedná-li se o prázdné elementy), žádný atribut není v jednom start-tagu vícekrát, dokument má kořenový element, používané entity jsou správně předem deklarovány apod. Dokument je platný (valid), pokud obsahuje deklaraci typu dokumentu (document type declaration), resp. je použita externí deklarace = odkaz na DTD, a pokud splňuje stanovení daná touto deklarací (je správné pořadí a hnízdění elementů, jsou uvedeny požadované atributy, hodnoty atributů jsou správného typu apod.). Dá se říci, že platný dokument je na o něco vyšší úrovni než dobře vytvořený - pro profesionální použití je vhodnější. V XML existují pouze výše uvedené dva druhy dokumentů. Pokud dokument nesplňuje kritéria valid ani well-formed, pak se nepovažuje za XML dokument. Zda je dokument dobře vytvořený či platný je možné ověřit parserem, který tak plní podobnou roli jako např. kompilátor u Pascalu, který před překladem nejprve zkontroluje správnost zápisu programového kódu. 21