Editory

Pokud budeme chtφt psßt dokumenty v XML, budeme k tomu dozajista pot°ebovat n∞jak² vhodn² editor. Jeliko₧ je XML dokument obyΦejn² textov² soubor dopln∞n² o tagy, m∙₧eme k jeho vytvß°enφ a nßslednΘ editaci pou₧φt libovoln² textov² editor. P°ijdeme tak vÜak o spoustu u₧iteΦn²ch funkcφ û lepÜφ editor m∙₧e automaticky kontrolovat strukturu dokumentu. Nedovolφ nßm pak vytvo°it dokument, kter² nenφ sprßvn∞ strukturovan² Φi neodpovφdß po₧adovanΘmu DTD nebo schΘmatu. Chytr² editor nßm takΘ m∙₧e napovφdat, kterΘ elementy a atributy m∙₧eme v danΘm mφst∞ dokumentu pou₧φt.

Luxusnφ editor m∙₧e b²t p°φmo integrovßn s n∞jak²m formßtovacφm enginem, kter² dokß₧e dokument zformßtovat pro tisk nebo p°evΘst do dalÜφch formßt∙. Pro n∞koho m∙₧e b²t d∙le₧itß i integrace editoru se systΘmem pro sprßvu dokument∙. P°i v∞tÜφm objemu dokument∙ je uklßdßnφ do soubor∙ pom∞rn∞ nepohodlnΘ. LepÜφ je dokumenty uklßdat do n∞jakΘho systΘmu pro jejich sprßvu, kter² b²vß postaven nad databßzφ a Φasto v sob∞ zahrnuje i funkce pro °φzenφ ob∞hu dokument∙ apod.

DneÜnφ XML editory m∙₧eme rozd∞lit do n∞kolika skupin, podle toho, jak moc je u₧ivatel vystaven styku se samotn²m jazykem XML. NejjednoduÜÜφ editory zobrazujφ p°φmo zdrojov² k≤d XML s tφm, ₧e mohou tagy zv²raznit jinou barvou pro odliÜenφ od textu. N∞kterΘ editory pouze zv²raznφ syntaxi, jinΘ v tomto re₧imu automaticky kontrolujφ strukturu dokumentu a nabφzejφ u₧ivateli elementy a atributy, kterΘ m∙₧e na tom kterΘm mφst∞ dokumentu pou₧φt. PokroΦilejÜφ editory ji₧ pracujφ v ΦßsteΦnΘm WYSIWYG re₧imu, kdy je text vid∞t zformßtovan² pomocφ stylu, ale jsou v n∞m vid∞t jednotlivΘ tagy. Poslednφ stupe≥ ji₧ p°ed u₧ivatelem XML ·pln∞ schovß. Vklßdßnφ tag∙ je pak pln∞ v re₧ii editoru, kter² m∙₧e podle n∞jak²ch pravidel mapovat jednotlivΘ vizußlnφ styly na XML elementy.

V²Üe popsanΘ editory se hodφ spφÜe na editovßnφ textov²ch dokument∙. Pokud vÜak do XML uklßdßme spφÜe databßzovß nebo hodn∞ strukturovanß data, m∙₧e nßm vφce vyhovovat editor, kter² dokument zobrazuje jako hierarchickou stromovou strukturu. Pro specißlnφ aplikace se m∙₧e vyplatit vytvo°enφ jedno·ΦelovΘho editoru, kter² umo₧nφ velice efektivn∞ editovat data vyhovujφcφ jednomu urΦitΘmu DTD. Praktick²m p°φkladem tohoto p°φstupu je nap°φklad editor rovnic zabudovan² v prohlφ₧eΦi Amaya, kter² umo₧≥uje pohodln∞ vizußln∞ editovat matematickΘ v²razy zapsanΘ v MathML (obr. 1).

Obrßzek 1. Experimentßlnφ prohlφ₧eΦ Amaya obsahuje editor rovnic, kter² pracuje s formßtem MathML

WYSIWYG editory

Pro masovΘ pou₧itφ XML se nejvφce hodφ editory, kterΘ pracujφ ve WYSIWYG re₧imu a hodn∞ tak p°ipomφnajφ klasick² textov² editor jako je t°eba Microsoft Word. D∙kazem sprßvnosti tΘto cesty budi₧ t°eba HTML editor FrontPage, kter² si mnoho u₧ivatel∙ oblφbilo prßv∞ proto, ₧e v n∞m nemusejφ v∙bec p°ijφt do styku s HTML k≤dem. FrontPage zßkladnφ formßtovacφ p°φkazy automaticky p°evßdφ do odpovφdajφcφch struktur jazyka HTML. Podobn∞ je tomu i u vysp∞l²ch XML editor∙. V nßsledujφcφch odstavcφch se podφvßme na funkce, kterΘ nabφzejφ editory spadajφcφ do tΘto kategorie.

SilnΘ postavenφ na poli XML editor∙ majφ firmy SoftQuad a ArborText dφky tomu, ₧e ji₧ p∞knou °ßdku let vyrßb∞jφ editory podporujφcφ SGML. Ty staΦilo drobn∞ upravit, a rßzem jsou na sv∞t∞ dva ÜpiΦkovΘ XML editory û XMetaL a Epic. P°ekvapiv∞ umφ XML editovat i WordPerfect 9 (souΦßst WordPerfect Office 2000), podpora XML byla p°idßna do klasickΘho textovΘho editoru.

AΦkoliv ka₧d² ze t°φ editor∙ mß svou silnou strßnku n∞kde jinde, jsou si v mnohΘm podobnΘ. Velkou v²hodou vÜech editor∙ je, ₧e podporujφ libovolnΘ DTD. Pomocφ zabudovanΘho makro jazyka lze navφc editory nastavit tak, ₧e n∞kterΘ funkce a menu se objevφ pouze p°i editaci dokumentu vyhovujφcφmu urΦitΘmu DTD. Pokud se do dokumentu vklßdajφ slo₧it∞jÜφ data, m∙₧eme si na to v zabudovanΘm jazyce vytvo°it specißlnφ vstupnφ dialogovΘ okno.

Obrßzek 2. V∞tÜina WYSIWYG editor∙ nabφzφ t°i druhy pohled∙ na dokument û hierarchick² strom, ·pln² WYSIWYG re₧im...

Obrßzek 3. ...a hybridnφ WYSIWYG, ve kterΘm jsou vid∞t i jednotlivΘ tagy

Samotnß editace dokument∙ probφhß ve WYSIWYG re₧imu. Krom∞ toho nabφzejφ vÜechny editory i hierarchick² pohled na strukturu dokumentu. Dokument m∙₧eme editovat v libovolnΘm z t∞chto pohled∙. Editory nabφzejφ i hybridnφ WYSIWYG re₧im, ve kterΘm jsou v textu dokumentu viditelnΘ i jednotlivΘ tagy. Editory samoz°ejm∞ hlφdajφ strukturu dokumentu a ke vlo₧enφ nßm nabφzejφ jen platnΘ elementy. Editace atribut∙ je takΘ velice pohodlnß a probφhß pomocφ dialogov²ch oken.

Aby mohly editory pracovat ve WYSIWYG re₧imu, musφ v∞d∞t, jak se majφ jednotlivΘ elementy zobrazovat. Pro tyto ·Φely pou₧φvß ka₧d² z editor∙ jinou technologii.

V Epicu se pro definici vzhledu dokumentu pou₧φvß stylov² jazyk FOSI, kter² mß svß zlatß lΘta ji₧ za sebou, ale v∞tÜinu po₧adavk∙ s p°ehledem uspokojφ. Epic mß v sob∞ navφc zabudovan² i v²konn² formßtovacφ engine. Vytvo°enΘ dokumenty lze tedy p°φmo tisknout nebo z nich m∙₧eme vygenerovat PostScript. Pokud mßme nainstalovßn Adobe Acrobat, m∙₧eme z dokumentu p°φmo generovat i PDF.

V XMetaLu m∙₧eme vzhled dokumentu v editoru definovat pomocφ kaskßdov²ch styl∙ (CSS). To je velice p°φjemnΘ, proto₧e stejn² styl lze pou₧φt i v prohlφ₧eΦφch. CSS vÜak nemajφ dostateΦnΘ prost°edky pro definici vzhledu strßnky pro pot°eby DTP, a tak je XMetaL pouze Üikovn² editor. Pro formßtovßnφ dokumentu musφme pou₧φt samostatn² program. KaskßdovΘ styly nemusφme vytvß°et ruΦn∞, XMetaL pro n∞ mß zabudovan² pom∞rn∞ komfortnφ editor. SouΦßstφ editoru je i zabudovan² prohlφ₧eΦ, kter² vyu₧φvß komponentu Internet Exploreru, tak₧e je dokument vid∞t ·pln∞ stejn∞ jako v prohlφ₧eΦi. Verze XMetaLu 1.2 mß v sob∞ ji₧ zabudovan² i XSL procesor, tak₧e je mo₧nΘ provßd∞t nßhled dokumentu zformßtovanΘho pomocφ XSL.

WordPerfect nepou₧φvß ₧ßdn² standardnφ stylov² jazyk. Ve specißlnφm programu se musφ ka₧dΘ DTD, kterΘ chceme pou₧φvat, zkompilovat do Üablony. Do nφ je mo₧nΘ p°idat jeÜt∞ definice vzhledu jednotliv²ch element∙. K dispozici mßme bohatΘ formßtovacφ mo₧nosti WordPerfectu, tak₧e lze dosßhnout kvalitnφ typografick² v²stup.

Pro naÜince je rovn∞₧ d∙le₧itΘ, v jak²ch k≤dovßnφch umφ editory dokumenty uklßdat. V tomto ohledu XMetaL zklamal, proto₧e podporuje pouze k≤dovßnφ ISO 8859-1. V n∞m chyb∞jφ n∞kterΘ ΦeskΘ znaky s diakritikou, a proto souΦasnou verzi XMetaLu pro editaci dokument∙ v ΦeÜtin∞ pou₧φt nem∙₧eme. P°φÜtφ verze by tento nedostatek m∞la odstranit. Epic je na tom s podporou r∙zn²ch k≤dovßnφ nejlΘpe. Pro ΦeÜtinu m∙₧eme pou₧φt UTF-8, ISO 8859-2 a windows-1250. Verze Epicu, kterou jsem m∞l k dispozici, bohu₧el neum∞la rozpoznat k≤dovßnφ uvedenΘ v XML deklaraci, budoucφ verze by tuto chybu m∞ly mφt odstran∞nu. WordPerfect podporuje pouze k≤dovßnφ UTF-8 a UTF-16.

Emacs û hodn∞ muziky za mßlo pen∞z

N∞komu nemusφ editace ve WYSIWYG re₧imu vyhovovat a chce mφt zdrojov² k≤d dokumentu naprosto pod svou kontrolou. Na druhou stranu nenφ proΦ se vzdßvat takov²ch vymo₧enostφ, jako je kontrola dokumentu oproti DTD a pohodlnΘ vklßdßnφ jen t∞ch element∙, kterΘ lze v danΘm mφst∞ dokumentu pou₧φt. Editorem, kter² toto vÜe nabφdne a navφc zdarma je Emacs.

Emacs je kultovnφm textov²m editorem. Je to jeden z prvnφch program∙, kter² byl Üφ°en pod GNU licencφ û tedy zadarmo vΦetn∞ zdrojov²ch text∙. To umo₧nilo ÜirokΘ obci v²vojß°∙ p°izp∙sobit Emacs pro dalÜφ operaΦnφ systΘmy û dnes je Emacs dostupn² na v∞tÜin∞ pou₧φvan²ch platforem. P∙vodn∞ byl Emacs vyvinut pro Unix, kde m∙₧e b∞₧et v textovΘ konzoli i jako X-Window aplikace. Dnes jsou k dispozici i verze pro Windows a MS-DOS.

Obrßzek 4. Emacs+PSGML zvlßdne editaci dokument∙ vyhovujφcφch libovolnΘmu DTD. V jednom okn∞ edituji Φlßnek v DTD DocBook, v druhΘm okn∞ prßv∞ Emacs funguje jako editor WML strßnek pro mobilnφ za°φzenφ

Asi nejv∞tÜφ zbranφ Emacsu je zabudovan² interpret jazyka Lisp, pomocφ kterΘho lze upravovat Φinnost editoru a psßt makra. V tomto jazyce je pro Emacs napsßno nep°ebernΘ mno₧stvφ modul∙ û emailov² klient, FTP klient, ΦteΦka news∙, webov² prohlφ₧eΦ, v²vojovß prost°edφ pro mnoho programovacφch jazyk∙ a mnoho dalÜφho. Pro nßs je vÜak d∙le₧itΘ, ₧e existuje balφk PSGML, kter² z Emacsu ud∞lß plnohodnotn² SGML/XML editor.

Vzhledem k tomu, ₧e dneÜnφ verze GNU Emacsu zatφm nenφ WYSIWYG editor, probφhß editace XML dokument∙ v jejich zdrojovΘm tvaru. PSGML re₧im vÜak nabφzφ mnoho nßstroj∙, je₧ nßm editaci usnadnφ. P°edevÜφm jsou dokumenty zobrazovßny se zv²razn∞nou syntaxφ û znaΦkovßnφ mß jinou barvu ne₧ samotn² text dokumentu, co₧ usnad≥uje orientaci.

PSGML samoz°ejm∞ umφ pracovat s DTD, a dφky tomu nßm b∞hem psanφ umφ nabφdnout elementy, kterΘ m∙₧e v danΘm mφst∞ pou₧φt. U ka₧dΘho elementu lze snadno editovat i atributy. PSGML mß zkrßtka po°ßd p°ehled o tom, kde v dokumentu prßv∞ jsme. Lze se proto snadno pohybovat mezi elementy a dokonce si m∙₧eme nechat obsah zvolen²ch element∙ schovat û p°i editovßnφ dlouh²ch dokument∙ se pak v textu snßze orientujeme. PSGML umφ automaticky zdrojov² k≤d p°ehledn∞ formßtovat. Z DTD si pamatuje i vÜechny definovanΘ entity, tak₧e pokud si na n∞jakou nem∙₧eme vzpomenout, staΦφ si ji vybrat v menu. PSGML si poradφ i s editacφ dokumentu, kter² je ulo₧en ve vφce souborech.

PSGML mß vestav∞n jednoduch² parser, kter² obvykle na kontrolu sprßvnosti dokumentu staΦφ. P°φmo z editoru lze velice pohodln∞ volat dalÜφ aplikace, jako externφ parsery a r∙znΘ formßtovacφ programy.

Emacs ve spojenφ s PSGML je opravdu v²born² nßstroj. Asi po n∞m sßhnete v p°φpad∞, kdy nebudete mφt prost°edky na nßkup d°φve zmφn∞n²ch pom∞rn∞ drah²ch WYSIWYG editor∙. Z poΦßtku vßm mo₧nß nebude Emacs p°φliÜ vyhovovat, proto₧e jeho ovlßdßnφ je troÜku odliÜnΘ ne₧ to, na kterΘ jste zvyklφ z dneÜnφch aplikacφ. Emacs p°eci jen n∞jak² ten pßtek pamatuje, a i kdy₧ se neustßle vyvφjφ, ovlßdßnφ se kv∙li zp∞tnΘ kompatibilit∞ nem∞nφ.

Editory pro ädatabßzovΘ dokumentyô

VÜechny dosud popisovanΘ editory byly komfortnφ a hodily se na editaci dokument∙ reprezentujφcφch rozsßhlΘ texty. Pokud vÜak n∞kdy pot°ebujeme rychle vytvo°it jednoduch² XML dokument, kter² slou₧φ spφÜe pro uklßdßnφ strukturovan²ch dat ne₧ dlouh²ch text∙, m∙₧eme pou₧φt n∞kter² z editor∙, kter² dokument zobrazuje jako hierarchickou strukturu element∙ a atribut∙, jejich₧ hodnoty m∙₧eme editovat. Zobrazenφ dokumentu je pak velice podobnΘ Pr∙zkumnφku z Windows. Tuto funkΦnost nabφzφ nap°. Microsoft XML Notepad a n∞kterΘ dalÜφ jednoduchΘ editory, kterΘ jsou napsanΘ v∞tÜinou v Jav∞.

Obrßzek 5. XML Notepad se hodφ jen na editaci velice jednoduch²ch dokument∙

XML Notepad je na strßnkßch Microsoftu k dispozici zdarma. Editor umφ provßd∞t validaci dokumentu oproti DTD a schΘmat∙m, ale pouze p°i naΦφtßnφ dokumentu. B∞hem editace m∙₧eme vklßdat libovolnΘ elementy a atributy, editor pouze hlφdß, aby byl vytvo°en² dokument sprßvn∞ strukturovan². O jeho validitu se ji₧ nestarß.

Microsoft Office 2000 a XML

Mnoho u₧ivatel∙ se ptß, zda a jak Office 2000 podporuje XML. Microsoftφ tvrdφ, ₧e jeho Office 2000 XML podporuje. ProblΘm je ve vßgnosti pojmu äpodporujeô. Office 2000 (Word 2000) nepodporuje XML v tom smyslu, ₧e by um∞l editovat dokumenty vyhovujφcφ libovolnΘmu DTD. Word 2000 tedy v ₧ßdnΘm p°φpad∞ nenφ XML editor, kter² bychom mohli srovnßvat s XMetaLem, Epicem nebo WordPerfectem.

Na druhou stranu to neznamenß, ₧e by Microsoft lhal. Office 2000 skuteΦn∞ formßt XML pou₧φvß, ale pouze pro svΘ pot°eby. Office 2000 umo₧≥uje uklßdßnφ dokument∙ ve formßtu HTML mφsto klasick²ch formßt∙ DOC a XLS. Narozdφl od p°edchozφch verzφ se p°i uklßdßnφ do HTML neztrßcejφ ₧ßdnΘ informace. Formßt HTML je tak funkΦn∞ ekvivalentnφ s nativnφmi formßty. Aby Ülo do formßtu HTML ulo₧it vÜechny p°φdavnΘ informace, pou₧φvß se mφsto HTML ve skuteΦnosti XML a jmennΘ prostory. JmennΘ prostory umo₧≥ujφ v jednom dokumentu pou₧φvat n∞kolik r∙zn²ch sad znaΦek. Jako implicitnφ jmenn² prostor je zvoleno HTML 4.0. Ostatnφ jmennΘ prostory obsahujφ specißlnφ elementy û pro vektorovou grafiku, pro ulo₧enφ informacφ o dokumentu, pro ulo₧enφ specißlnφch formßtovacφch vlastnostφ apod. StarÜφ prohlφ₧eΦe p°φdavnΘ jmennΘ prostory ignorujφ a vidφ pouze HTML k≤d, kter² zobrazφ. Nov∞jÜφ verze Internet Exploreru a programy z Office 2000 pak rozumφ vÜem element∙m.

O tom, jak bude vypadat podpora XML v dalÜφch verzφch Office, zatφm p°edstavitelΘ Microsoftu mlΦφ. A ml₧φ. Tvrdφ, ₧e Office bude postupn∞ podporovat XML ve t°ech ·rovnφch. Office 2000 ·dajn∞ obsahuje podporu prvnφ ·rovn∞. Nezb²vß ne₧ Φekat a doufat, ₧e dalÜφ ·rove≥ bude zahrnovat ·plnou podporu XML a ₧e se tato ·rove≥ objevφ hned v p°φÜtφ verzi Office.

PomocnΘ editory

Pokud v naÜich aplikacφch pou₧φvßme XML, obvykle pou₧φvßme i dalÜφ technologie ·zce svßzanΘ s XML û p°edevÜφm r∙znΘ stylovΘ jazyky a jazyky pro definice schΘmatu nebo DTD dokumentu. Tuto prßci nßm samoz°ejm∞ mohou ulehΦit specializovanΘ programy.

Styl m∙₧eme samoz°ejm∞ ruΦn∞ zapisovat p°φmo v odpovφdajφcφm stylovΘm jazyku. Pro slo₧itΘ dokumenty to vÜak m∙₧e b²t pom∞rn∞ nevd∞Φnß a zdlouhavß prßce. Existujφ editory, kterΘ nßm umo₧nφ vytvo°enφ stylu v pohodlnΘm vizußlnφm prost°edφ bez nutnosti znßt syntaktickΘ detaily pou₧φvanΘho stylovΘho jazyka. ╚asto jsou tyto editory souΦßstφ XML editor∙ a nejsou k dispozici jako samostatnΘ programy.

Vytvß°enφ DTD nebo schΘmat si lze rovn∞₧ usnadnit pomocφ r∙zn²ch podp∙rn²ch program∙. Slo₧it∞jÜφ DTD nebo schΘmata jsou pom∞rn∞ velkΘ a slo₧it∞ strukturovanΘ textovΘ dokumenty. Vizußlnφ editory dokß₧φ schΘma dokumentu znßzornit v grafickΘ podob∞ a takto s nφm i pracovat. M∙₧eme se soust°edit na strukturu dokument∙ a nemusφme myslet na syntaktickΘ detaily pou₧itΘho jazyka pro zßpis schΘmat. P°φkladem editoru schΘmat je XML Authority, kter² umφ vizußln∞ editovat schΘmata. XML Authority rozumφ n∞kolika nejpou₧φvan∞jÜφm schΘmov²m jazyk∙m a DTD, tak₧e je mezi sebou m∙₧eme i p°evßd∞t.

⌐ Ji°φ Kosek 2000-2001