Hlavní navigace

Quo vadis, WWW?

binary runner

V současné době zažíváme potěšující rozmach internetových technologií. Ty se dostávají i do oblastí, kde by je dřív nikdo nečekal. V následujícím textu si představíme technologie, které v budoucích letech změní tvář nejen Internetu, ale i firemních informačních systémů.

DOM

Document Object Model (DOM) je objektový model dokumentu z dílen W3C. S jeho postupným rozšiřováním až na DOM Level 3 se z něj stává obecně použitelný model schopný obsáhnout snad všechny možné druhy dokumentů. V DOMu lze zachytit data, rozhraní datových zdrojů, nebo třeba popis uživatelského rozhraní.

DOM 0

Funkcionalita ekvivalentní Netscape Navigatoru 3.0 and MSIE 3.0 se neformálně označuje jako DOM 0. Nejedná se však o standard, spíš o jakési zachycení status quo a nalezení společného jmenovatele, který má být postupně pohlcen funkcionalitou standardu DOM 1 a následujících.

DOM 1

DOM Level 1 je platformně a jazykově nezávislé rozhraní pro manipulaci s dokumentem. Základní částí je tzv. Core, popisující dokument jako stromovou strukturu uzlů ( Node) různého typu. Každý typ uzlu má vlastní interface, poskytující specializované funkce. Definuje se datový typ DOMString. Pro DOM 1 je definováno mapování do jazyků IDL, Java a ECMA Script.

Návrh standardu DOM je modulární, skládá se z povinného základu, pojmenovaného Core, a volitelně implementovatelných doplňkových modulů, tzv. features(rysů). Interface DOMImplementation obsahuje metodu hasImplementation umožňující zjistit, zda je daný rys implementován — prvním parametrem je case insensitive název rysu, druhým číslo verze. Specifikace DOM Level 1 definuje rysy pro XML a HTML: hasFeature("XML","1.0"),
hasFeature("XHTML","1.0")

DOM 2

DOM Level 2 navazuje na DOM 1. Rozšiřuje všechna stávající rozhraní DOM 1, včetně Core ( hasFeature("Core","2.0")), a přidává nové interfacy pro XML. Navíc přichází s novým datovým typem DOMTimeStamp a dalšími rysy:

  • Views — interfacy umožňující dynamicky měnit reprezentaci dokumentu, podobné view v relační databázi hasFeature("Views","2.0")
  • Events — interfacy poskytující obecný systém událostí a definující standardní množinu událostí, společná podmnožina událostí DOM 0; obsahuje události UI, myši a změny v dokumentu, neobsahuje události klávesnice hasFeature("Events","2.0")
  • Style — interface umožňující dynamicky měnit obsah a styl dokumentu; hasFeature("StyleSheets","2.0")(obecné rozhraní), hasFeature("CSS","2.0")(pro CSS)
  • Traversal and Range — traversal poskytuje interfacy pro selektivní procházení dokumentu ( TreeWalker, NodeIterator, NodeFilter), range umožňuje definovat v dokumentu oblast jako obsah mezi dvěma hranicemi a pracovat s ní (kopírovat, mazat, vkládat,..) hasFeature("Travesral","2.0")hasFeature("Range","2.0")

DOM 3

DOM Level 3 je v současnosti se rodící standard, který posouvá možnosti DOM 2 na cestě k využití v informačních systémech. Rozšiřuje Core ( hasFeature("Core","3.0")). Events obohacuje o TextEvent( hasFeature("TextEvents","3.0")), obecnou textovou událost, která je nadmnožinou klávesových událostí. Přidává také datové typy DOMUserData (reference na aplikační/uži­vatelský typ) a DOMObject (reference na aplikační objekt). Výčet nových rysů je víc než zajímavý:

  • Load and Save —interface umožňující dynamicky měnit obsah, strukturu a styl dokumentu hasFeature("LS-Load","3.0")
  • Validation — interfacy umožňující získat informace o dokumentu a jeho gramatice hasFeature("VAL-DOC","3.0")
  • XPath — umožňuje XPath adresaci uzlů DOM hasFeature("XPath","3.0")
Tabulka č. 352
název implementuje licence platformy
msxml DOM 2 – Core, XML Microsoft .Net, Windows
gdome2 DOM 2 – Core, XML, Events LGPL C; UNIX/Linux
XML4C

DOM 2 – Core, XML, Traversal and Range;

Dom 3 – část Core a Load and Save

XSD Structure, Datatypes

Apache Software License 1.1 C++; UNIX/Linux, Windows; Xerces C++ s podporou ICU 2.2
Mozilla DOM DOM 2 – Core, Views, s chybami Events, Style, Traversal-Range, Views Mozilla Public License C++; UNIX/Linux, Windows, …

Příště si povídání o nových technologiích, které změní svět, dokončíme.

Našli jste v článku chybu?