XMetaL 2.1

XML dokumenty snadno a rychle

Jiří Kosek


Obsah

Editování XML
Editor nebo chameleon
Tabulky a obrázky
Import a export
Podpora češtiny
Dokumentace
Shrnutí
Proč vytvářet dokumenty v XML?
Slovníček pojmů

V minulém čísle jste si mohli přečíst recenzi na XML editor Epic. Jeho největším konkurentem je editor XMetaL od firmy SoftQuad. Pokud se právě rozhodujete o tom, který XML editor si pořídit, může vám pomoci recenze popisující mé zkušenosti s používáním XMetaLu.

Editování XML

Základní funkcí každého XML editoru je pohodlné editování XML dokumentů. XMetaL patří do kategorie WYSIWYG XML editorů, protože standardně se v editoru nepracuje s dokumentem ve zdrojové XML podobě, ale s jeho vizuální podobou definovanou pomocí kaskádových stylů (CSS).

V tomto ohledu se chová XMetaL stejně jako ostatní XML editory. Ke každému druhu dokumentů je vhodné mít DTD, které definuje značky použitelné v dokumentu. Není to sice nezbytně nutné, XMetaL zvládne i editování well-formed dokumentů, ale ve většine případů je stejně lepší vytvářet dokumenty podle DTD. Informace z DTD je využívána při editaci dokumentu – v samostatném okně dostupném i pomocí klávesové zkratky je zobrazen seznamů elementů, které můžeme na daném místě dokumentu použít (viz obr. 7). Ke každému dokumentu si můžeme nechat v samostatném okně zobrazit jeho stromovou strukturu. Kromě seznamu elementů je na obrázku zachycen i editor atributů pro aktuální element.

Obrázek 7. Uživatelské rozhraní XMetaLu je přívětivé a velice dobře konfigurovatelné

Nastavit editor tak, aby šlo i složitější dokumenty pohodlně editovat v plném WYSIWYG režimu, vyžaduje nezanedbatelné množství práce. V mnoha případech proto uživatelé ocení možnost hybridního zobrazení dokumentu – v dokumentu jsou zobrazeny i značky, které odpovídají počátečním a koncovým tagům v XML dokumentu. Pokud příliš WYSIWYG editorům nevěříte, můžete se přepnout do režimu, kdy editujete přímo zdrojový XML kód. Tato vlastnost je hezká, ale mnoho uživatelů ji asi nevyužije.

Obrázek 8. Vlevo je Resource manager, vpravo pak dokument zobrazený v hybridním režimu včetně tagů

Pro vlastní editování nabízí XMetaL běžné funkce, které jsou doplněny některými specifickými pro editování XML – elementy lze snadno vkládat, rozdělovat a spojovat, mazat a přejmenovávat. Při hledání v dokumentu můžeme použít regulární výrazy a hledání lze omezit na obsah určitého elementu.

Samotný vzhled dokument při editaci je určen pomocí kaskádového stylu. Tento jazyk sice postrádá mnoho funkcí nabízených vyspělejšími jazyky jako XSL, ale na druhou stranu pro prezentaci na obrazovce zcela postačuje. Styl si můžete vytvořit vlastnoručně, nebo použít zabudovaný editor. Ten umožňuje nastavit pro jednotlivé elementy parametry zobrazení jako písmo, barvu, zarovnání apod. Ovládání je velice podobné nastavení stylu formátu odstavce tak, jak ho známe v klasických textových editorech.

Kaskádový styl můžeme k dokumentu připojit pomocí standardní instrukce <?xml-stylesheet…?>. Pokud styl k dokumentu nepřipojíme, použije se styl se shodným názvem jako název souboru s DTD dokumentu. Pro všechny dokumentu stejného typu se tak používá stejný styl.

Použití CSS pro definici vzhledu dokumentu je vlastnost, která si zaslouží pochvalu. Tento jazyk je totiž podporován i běžnými webovými prohlížeči s podporou XML – např. IE, Mozilla a Opera. V XMetaLu vytvořený dokument lze bez jakýchkoliv úprav zobrazit v prohlížeči. Náhled pomocí komponenty IE je možný přímo v okně editoru.

Editor nebo chameleon

Pro opravdu pohodlnou a rychlou práci s dokumety je vhodné editor upravit pro každé DTD, které používáme. Chování editoru a dostupné funkce se tak mohou lišit v závislosti na typu editovaného dokumentu.

XMetaL nabízí mnoho možností, jak jej upravit. Tou nejzákladnější je možnost úprav chování a zpracování jednotlivých elementů z DTD. V poměrně rozsáhlém dialogovém okně (obrázek 9) můžeme pro každý element nastavit mnoho parametrů.

Obrázek 9. Úprava chování editoru pro jednotlivé elementy

U každého elementu lze nastavit jeho popis, který se zobrazuje při vkládání elementu ze seznamu do dokumentu. Lze definovat akci, která se provede při vložení – můžeme do dokumentu vložit fragment XML kódu nebo zavolat skript, který se o obsluhu požadavku obstará. Pokud dokumenty z XMetaLu zpracováváme i ručně, využijeme možnost, jak poměrně přesně nastavit formátovací charakteristiky generovaného XML kódu.

Pro snadné editování je důležité namapovat vybrané elementy na zcela běžné operace. Pro každý element je možné nastavit, jak se má chápat – jako normální text, jako obrázek, seznam či položka seznamu apod. Tuto informaci pak XMetaL hojně využívá. Pokud chceme do dokument vložit seznam, stačí kliknout na jeho ikonu v liště nástrojů. Do dokumentu si přitom automaticky vloží element pro seznamy. Podobně to funguje i s obrázky.

Specialitou XMetaLu je možnost definovat ActiveX komponentu, která se použije pro zobrazení a editování elementu. Tímto způsobem lze do XMetaLu snadno integrovat další aplikace – např. MathML editor, prohlížeč SVG obrázků apod.

Ještě můžeme změnit zúžit seznam elementů, na které lze aktivní element jednoduše změnit. Rovněž lze nastavit element, který obvykle následuje. Můžeme tak snadno nastavit, že např. po vložení elementu pro nadpis a stisknutí klávesy Enter se automaticky vloží element pro odstavec.

Pro každý typ dokument (DTD) můžeme definovat vlastní makra, přidat ikonky do lišty nástrojů a položky do menu. Editor tak lze uzpůsobit téměř libovolnému požadavku.

Pro psaní maker je asi nejlepší použít zabudovaný editor s jednoduchým debuggerem. Makra můžeme psát ve VBScriptu a JScriptu, případně v libovolném dalším Active scripting jazyce – existují např. implementace Perlu a Python. Ve skriptech můžeme pracovat s dokumentem pomocí standardního rozhraní DOM. To umožňuje libovolně manipulovat s každým XML dokumentem. Kromě toho můžeme přes COM rozhraní ovládat a upravovat mnoho vlastností editoru. Pokud by snad někomu tyto možnosti nestačily, může si vytvořit vlastní COM komponenty v libovolném jazyce a jejich funkce pak využívat přímo z editoru.

Společně s XMetaLem je dodáván i editor formulářů (Form Editor). Ten umožňuje v pohodlném grafickém prostředí vytvořit formulář skládající se z běžných polí použitelných v dialogových oknech (vstupní pole, tlačítka, seznamy, …). Pomocí makrojazyka pak můžeme tento formulář svázat s částí určitého DTD. Přímo v editoru se pak pro editování fragmentu XML použije vytvořený formulář. To je velmi výhodné pro zadávání hodně strukturovaných dat.

Pro pohodlné a opravdu efektivní editování XML dokumentů je potřeba nakonfigurovat editor a vytvořit CSS styl. To je poměrně zdlouhavá a náročná práce (pro složitější DTD). Je proto velká škoda, že editor se dodává jen s omezeným množstvím předkonfigurovaných DTD – jedná se o HTML (ve verzích Strict, Transitional a Frameset) a o DTD Journalist, které vzniklo odvozením a zjednodušením DocBooku. To je dle mého názoru trochu málo. Minimálně podpora DocBooku a XHTML mohla být v editoru přímo integrována.

Podle libosti můžeme vytvářet šablony dokumentů, které nám editor nabízí při vytváření nového dokumentu.

Obrázek 10. Editor kaskádových stylů – všechny vlastnosti zobrazení lze nastavit výběrem hodnot v dialogovém okně

Pro každé DTD můžeme rovněž upravit vzhled Resource Manageru, který umožňuje snadné vkládání obrázků a dalších objektů do dokumentu. Dostupné objekty jsou přitom čteny z lokálního disku nebo z webového serveru – zejména druhá možnost je zajímavá pro nasazení ve větší firmě, kde je potřeba sdílet mnoho často opakovaných komponent dokumentu.

Tabulky a obrázky

XMetaL spadá do kategoire XML editorů, které se hodí především pro zpracování semistrukturovaných dokumentů, jako je dokumentace apod. V těchto dokumetech se často vyskytují obrázky a tabulky a proto pro ně má editor zvláštní podporu.

XMetaL zvládá vizuální editování tabulek v obou běžně používaných formátech CALS a HTML. K dispozici jsou běžné funkce jako slučování a rozdělování buněk, přesuny řádků a sloupců apod. Kromě toho můžeme jako tabulku prezentovat a editovat libovolná data, která mají strukturu tabulka/řádky/buňky. Pomocí CSS stačí říci, který element se chápe jako tabulka, který jako řádek a který jako buňka.

Obrázky lze vkládat také velice pohodlně, stačí nastavit, který element se chápe jako obrázek a v kterém atributu je uložena cesta k souboru s obrázkem. Editor pak umožňuje obrázek vybrat v pohodlném okně s náhledem nebo přímo v Resource Manageru. Pokud chceme, aby se v editoru rovnou zobrazil náhled obrázku, musí být v jednom z následujících formátů: BMP, PNG, JPEG, GIF nebo TIFF.

Přímé zobrazení obrázků v dalších formátech je možné, ale musíme mít ActiveX komponentu, která je umí zobrazovat. Tímto mechanismem lze editor rozšířit opravdu nevídaným způsobem, nicméně větší spektrum přímo podporovaných formátů by nebylo na škodu. Minimálně ještě formáty EPS, PDF, SVG a CGM jsou dnes při tvorbě dokumentů používány poměrně často.

Import a export

Hned zkraje musím říci, že možnosti importu a exportu z běžných kancelářských formátů jsou u XMetaLu velmi omezené. Editor neobsahuje žádný nástroj pro import wordových dokumentů. Jedno z ukázkových DTD sice obsahuje funkci importu z Wordu, ale české znaky nejsou převedeny korektně a všechny styly vstupního dokumentu jsou převedeny na jeden element para.

Standardní funkce exportu v editoru rovněž není implementována. Pokud chcete alespoň export do HTML, můžete si napsat XSLT styl a upravit si editor tak, aby po stisku tlačítka aplikoval na dokument transformaci a výsledek uložil do souboru. Pomocí skriptování můžete snadno vyvolat libovolný XSLT procesor, s editorem se navíc nainstaluje nová verze knihovny MSXML, která obsahuje nejrychlejší dostupný XSLT procesor.

Jedinečnou funkci však program nabízí pro import dat z databází do XML dokumentu. Pomocí skriptování lze vyvolat okno pro import dat z databáze. Můžeme si vybrat libovolnou databázi přístupnou přes ODBC. V ní vybereme tabulky, spojíme je a případně ručně upravíme automaticky vygenerovaný SQL dotaz. Nakonec si vybereme, zda se mají data vložit do HTML nebo CALS tabulky, případně do elementů, které odpovídají názvům databázových položek. Konfigurace importu se přitom dá uložit, takže v budoucnu lze načtená data kdykoliv aktualizovat.

Databázový import oceníte pokud potřebujete do dokumentu zařadit nějaký údaj z databáze nebo z firemního informačního systému – ceník, data zájezdů apod. Vzhledem k tomu, že v XMetaLu lze přímo editovat HTML stránky, můžeme takto data importovat i na webové stránky. Při importu více než několika stovek záznamů se editor zamyslel na tak dlouho, že jsem ho radši násilně ukončil. Toto omezení však v praxi asi nepocítíte, protože málokdy budete XMetaL používat jako nástroj pro editování rozsáhlých databázových dat uložených v XML.

Podpora češtiny

XMetaL 2.1 je první verzí editoru, která podporuje Unicode. Psaní českých znaků do XML dokumentů je tak zcela bez problémů. Podle dokumentace je Unicode podporován pouze na Windows NT/2000. Ostatní verze Windows osobně za operační systém nepovažuji, někomu přesto může vadit, že se v nich na české znaky nepodívají.

Z kódování vhodných pro češtinu/slovenštinu je podporováno UTF-8 a UTF-16. Jednobajtová kódování jako ISO-8859-2 a windows-1250 nejsou podporována. To je trošku škoda. Pokud kromě XMetaLu používáme pro editaci i jiné editory, může to být omezující, protože mnoho editorů zatím UTF kódování nepodporuje.

Zabudovaný korektor překlepů a tezaurus podporuje několik jazyků (angličtina americká a britská, francouzština a němčina), čeština mezi nimi bohužel není.

Dokumentace

Společně s programem jsou dodávány dva manuály v angličtině – uživatelská a programátorská příručka. V té první je důkladně popsáno ovládání všech funkcí editoru, včetně konfigurace. Programátorská příručka pak obsahuje podrobnou dokumentaci k COM rozhraní XMetaLu a k DOMu doplněnou o popis rozšiřování editoru. Veškerá dokumentace je dodávány i elektronicky ve formátu HTML Help.

Shrnutí

XMetaL je výborný editor XML. Zejména jeho bohaté možnosti konfigurace a přizpůsobení z něj umožňují velmi rychle vytvořit pohodlný nástroj na editování strukturovaných XML dokumentů. Pokud však potřebujete do XML převést větší množství dokumentů ze stávajících textových dokumentů, musíte si na to pořídit jiný nástroj. Oželíte-li český korektor překlepů a podporu jednobajtových českých kódování, není o čem přemýšlet. XML editor vhodný pro běžné uživatele s lepším poměrem cena/výkon neexistuje.

Tabulka 2. Hodnocení

Jednou větou:Špičkový WYSIWYG editor pracující s formáty XML a SGML
+rozšiřitelnost pomocí skriptování a ActiveX komponent
+podpora CSS
+import z databáze
-import z Wordu
-chybí český korektor překlepů
Platforma:Windows NT a 2000 (ve Windows 95/98/Me nepracuje správně čeština)
Cena:495 USD
Web:http://www.softquad.com
Kontakt:SoftQuad Ltd., tel: +44 1727 733300

Proč vytvářet dokumenty v XML?

Jestli jste pečlivě nesledovali seriál o XML, který vycházel v loňském roce v SWN, možná vám uniká, proč byste měli psát dokumenty v nějakém formátu XML. Jeho velkou výhodou je otevřenost – všechny dokumenty jsou textové soubory, kde je samotná textová informace doplněna značkami určujícími význam informací. Dokument se tak v některých ohledech podobá databázi, kde jsou jednotlivé informace přesně rozškatulkovány do relačních tabulek a položek. V XML můžeme zapisovat libovolné dokumenty a pracovat s nimi podobně jako se strukturovanými databázovými daty – prohledávat je, filtrovat, přeuspořádávat atd.

Pro psaní dopisů se XML příliš nehodí, ale pro psaní dokumentace je to výborný nástroj. XML dokument snadno zkonvertujete do mnoha dalších formátů – např. do HTML, PDF nebo RTF. Chcete-li ve vaší firmě úspěšně zavést knowledge management, nezbude vám nic jiného než důležité dokumenty vytvářet v XML a klíčové informace v nich označit. Jinak už je nikdy nenajdete.

Ve Wordu XML dokument pohodlně nepřipravíte. Psaní XML v Notepadu je cesta vhodná jen pro pár nadšenců a vývojářů. Všichni ostatní mohou použít WYSIWYG XML editor – na první pohled se podobá Wordu, ale dokumenty se pěkně ukládají do XML.

Pokud si chcete znalosti XML doplnit, seriál o XML je dostupný i na Webu – http://www.kosek.cz/clanky/swn-xml/.

© Jiří Kosek 2002