<<<OBSAH  >>>ENCSEN/CSZVONPřeklady

3. Autoři SGML (včetně autorů HTML)

Nahradí XML HTML?
Jak vypadá XML dokument zevnitř?
Jak XML zachází s mezerami, tabelátory, znaky nových řádků?
Které části XML dokumentu rozlišují velká a malá písmena?
Jak mohu mé existující HTML soubory používat v XML?
Existuje XML verze HTML?
Pokud je XML podmnožinou SGML, mohu používat XML soubory přímo v SGML programech
Umím vytvářet a publikovat v HTML. Mohu se naučit XML snadno?
Bude možné používat v XML znaky nepocházející z latinky
Co je Definice Typu Dokumentu(DTD) a kde mohu nějakou získat
Zaslechl jsem o alternativách DTD. Co je to schema?
Jak ovlivní XML odkazy v mém dokumentu?
Mohu psát matematické vzorce v XML?
Jak zachází XML s metadaty?
Mohu použít Javu, ActiveX, atd. v XML souborech?
Mohu použít Javu pro tvorbu a správu XML souborů?
Jak kontrolovat vzhled?
Jak mohu použít grafiku v XML?

Nahradí XML HTML?

Ne. XML samo o sobě nenahradí HTML: místo toho poskytuje alternativu, která umožňuje definovat vlastní sadu formátovacích prvků. Očekává se, že HTML ještě bude nějaký čas běžně používáno a Definice Typu Dokumentu pro HTML bude dostupná v XML stejně, jako je nyní v původní SGML. XML je navrženo tak, aby psaní DTD bylo mnohem jednodušší než s plným SGML. (Viz otázky na DTD, co jsou a proč je budete potřebovat.)
Probíhají práce na XML verzi HTML a dalších populárních DTD, ale možná bude třeba vyčkat na to, až stabilnější programy budou k dispozici. Sledujte oznámení na comp.text.sgml, comp.text.xml, XML-L, a xml-dev

Jak vypadá XML dokument zevnitř?

Jeho základní struktura se velmi podobá ostatním aplikacím SGML, včetně HTML. XML dokumenty mohou být velmi jednoduché, bez DTD a přímočaře rozvrženy podle vašeho návrhu.
<?xml version="1.0" standalone="yes"?> <conversation> <greeting>Hello, world!</greeting> <response>Stop the planet, I want to get off!</response> </conversation>
Nebo mohou být komplikovanější, se specifikovaným DTD
<?xml version="1.0" standalone="no" encoding="UTF-8"?> <!DOCTYPE titlepage SYSTEM "http://www.frisket.org/dtds/typo.dtd" [<!ENTITY % active.links "INCLUDE">]> <titlepage> <white-space type="vertical" amount="36"/> <title font="Baskerville" size="24/30" alignment="centered">Hello, world!</title> <white-space type="vertical" amount="12"/> <!-- In some copies the following decoration is hand-colored, presumably by the author --> <image location="http://www.foo.bar/fleuron.eps" type="URL" alignment="centered"/> <white-space type="vertical" amount="24"/> <author font="Baskerville" size="18/22" style="italic">Vitam capias</author> </titlepage>
Nebo mohou ležet někde mezi, mnoho bude záležet na tom, jak definujete vaše DTD a k jakému účelu bude využíváno. Podívejte se na otázku na platné a správně-zformátované soubory..

Jak XML zachází s mezerami, tabelátory, znaky nových řádků?

Pravidla pro tyto znaky se lyší od SGML. Všechny znaky musí parser předat nezměněné do aplikace (prohlížeč, formátovací program, ...). To znamená:
<chapter> <section> <title> My title for Section 1. </title> <p> ... </p> </section> </chapter>
The parser must, however, still inform the application that white-space has occurred in element content, if it can detect it. (Users of standard SGML may recognize that this information was not in the ESIS, but it is in the grove.) In the above example, the application will receive all the pretty-printing linebreaks, TABs, and spaces between the elements as well as those embedded in the section title. It is the function of the application (browser, formatter, viewer, etc) to decide which type of white-space to discard and which to retain.

Které části XML dokumentu rozlišují velká a malá písmena?

Všechny, značky i text. Tím se významně liší od HTML a většiny ostatních SGML dokumentů. Tato změna byla zavedena proto, aby bylo umožněno používat ve formátovacích značkách ne-ASCII charaktery.

Jak mohu mé existující HTML soubory používat v XML?

Učiňte z nich správně formátované dokumenty bez DTD a napište k nim tabulku stylů. Použití DTD v XML je volitelné, ale HTML soubory převedené do XML formátu musí být v současné době bez DTD, protože existuje pouze několik fungujících verzí DTD pro HTML v XML. (Musí být podstatně pozměněny, protože je nutné odstranit ty prvky SGML, které byly vyloučeny z XML.)
Je nutné upravit existující HTML soubory tak, aby byly správně zformátované. XML nedovoluje minimalizaci koncových značek (chybějící </p> atd.), která je dovolena ve většině HTML DTD. Jako příprava na XML slouží program HTML Tidy, který automaticky opraví některé formátovací chyby, které zanechávají některé HTML editory.
Pokud chcete přenést vaše soubory zcela mimo HTML, zkontrolujte pilotní projekt CommerceNet (http://www.xmlx.com/) pro výměnu XML DTD a pilotní FPI server http://www.ucc.ie/cgi-bin/public pro běžné SGML DTD, které vám v začátcích pomohou.
Pokud jste vytvořili vaše HTML soubory tak, aby splňovaly některé HTML DTD a jejich validace proběhne bez problémů, mohou být převedeny následujícím způsobem:
Buďte si vědomi toho, že mnoho HTML browserů neakceptuje EMPTY XML prvky, tedy ty, které končí s />. Alternativu nabízí doplňková koncová značka u všech EMPTY prvků. Tak např. <IMG src="foo.gif"> se stává <IMG src="foo.gif"></IMG>.
Pokud máte mnoho validních HTML souborů, můžete napsat skript v jazyce, který rozumí SGML/XML, jako je Omnimark, Balise, SGMLC, nebo systém využívající SGML knihovny Perl, Python, nebo Tcl),nebo dokonce maker textového editoru, pokud ovšem víte, co děláte.
Pokud vaše HTML soubory nejsou validní (většina HTML souborů vytvořených editory není validní), budou muset být s velkou pravděpodobností převedeny manuelně, ačkoliv pokud jsou odchylky pravidelné, mohou být soubory ve skutečnosti téměř správně formátované a skript může být použitelný. Při kontrole validity zkontrolujte:
Validní, ale zbytečné značkování může být nutné odstranit před konverzí (prázdné odstavce, prázdné tabulky, neviditelné gif obrázky k dosažení mezer). XML používá tabulky stylů, takže je nebudete potřebovat.
V pravidlech pro 'správně zformátované' XML soubory naleznete podrobné údaje o tom, co musíte zkontrolovat při konverzi do XML.

Existuje XML verze HTML?

Několik verzí se připravuje, žádná však dosud není v konečné podobě:

Pokud je XML podmnožinou SGML, mohu používat XML soubory přímo v SGML programech

Ano. Za předpokladu, že používáte SGML software, který si je vědom nových WebSGML Adaptací ISO 8879 (vlastnosti nutné pro podporu XML, jako je speciální tvar pro EMPTY prvky; některé aspekty SGML deklarací jako NAMECASE GENERAL NO; několikanásobné deklarace atributů, atd.).
Další možností je použít SGML DTD, které vám dovolí vytvořit SGML dokument, ale které nepoužívá prázdné prvky. Poté odstraníte DocType deklaraci, takže se z něj stane správně zformátovaný XML soubor bez DTD
V současnosti jen několik nástrojů nechává XML soubory nezměněny, ale vše se mění. The nsgmls parser má přepojení do XML modu pro použití s Jade a první XML editory začínají být dostupné (software)

Umím vytvářet a publikovat v HTML. Mohu se naučit XML snadno?

Ano, velmi snadno. V současnosti ale chybí návody, jednoduché nástroje a více příkladů XML dokumentů. Správně formátované XML dokumenty mohou být velmi podobné HTML s výjimkou několika drobných, ale velmi podstatných změn.
Velmi podstatným praktickým rozdílem je to, že v XML se musíte držet pravidel. HTML prohlížeče vám dovolí vytvářet nesprávné dokumenty, protože se snaží vyhnout všem problémům, v XML musí být všechny vaše soubory správné nebo nebudou vůbec použitelné.

Bude možné používat v XML znaky nepocházející z latinky

Ano. XML specifikace přímo uvádí, že XML používá ISO 10646, mezinárodní standardní 31-bitový repertoár znaků, který pokrývá většinu lidských(a některé další) jazyky. V současné době se shoduje s Unicode.
Specifikace uvádí (2.2): "Všechny XML procesory musí přijímat kódování UTF-8 a UTF-16 z ISO 10646 ...". UTF-8 je kódování Unicode do 8-bitových znaků. Prvních 128 je stejných jako ASCII, zbytek je použit na kódování Unicode do sekvencí mezi 2-6 byty. První oktet UTF-8 je tedy shodný s ISO 646 IRV (ASCII), takže můžete dále používat ASCII pro angličtinu a další jazyky bez háčků a čárek, které používají latinku. UTF-8 je nekompatabilní s ISO 8859-1 (ISO Latin-1) za kódem 126 (konec ASCII). UTF-16 je stejné jako UTF-8, ale využívá schema, ve kterém jsou znaky kódovány jako dva 16-bitové charaktery.
XML Specifikace popisuje, jak ve vašem XML souboru určit použité kódování.
UCS-4 lze legálně specifikovat v SGML nebo XML pouze v případě, pokud program implementuje WebSGML Adaptace ISO 8879. Tato adaptace umožňuje použití čísel obsahujících více než osm číslic v SGML deklaraci.
"Bez ohledu na použité kódování, jakýkoliv charakter ze seznamu ISO 10646 může být uveden ve své decimální nebo hexadecimální notaci". Bez ohledu na použité kódování tedy můžete použít libovolný charakter ze seznamu ISO 10646, pokud použijete &#dddd; (decimální notaci)nebo &#xHHHH; (hexadecimální notaci, velkým písmem). Terminologie může být značně komplikovaná stejně jako použitý kód, viz. ISO 10646 Concept Dictionary. Rick Jelliffe připravil ISO seznam v XML.

Co je Definice Typu Dokumentu(DTD) a kde mohu nějakou získat

DTD je soubor nebo několik souborů použitých najednou, které obsahují formální definici daného typu dokumentu. Určuje, jaká jména lze použít pro prvky v dném dokumentu, kde se mohou vyskytovat a jaké mají vzájemné vztahy. Pokud chcete například specifikovat prvek <Seznam>, který obsahuje jeden nebo více prvků <Položka>, část vašeho DTD obsahuje něco jako <!ELEMENT Seznam (Položka)+> <!ELEMENT Položka (#PCDATA)> Tento fragment definuje seznam jako prvek, který obsahuje jeden nebo více položek (význam znaménka plus) a položky mohou obsahovat pouze text, žádné prvky. XML je formální specifikační jazyk. Při jeho použití XML procesor automaticky zpracuje specifikovaný DTD a tuto informaci poté použije pro identifikaci všech prvků a jejich vztahů tak, aby další programy (prohlížeče, vyhledávací programy, databáze, tiskové programy) je mohly využít. Výše uvedený fragment vám například dovolí vytvořit seznam jako:<Seznam><Položka>Čokoláda</Položka><Položka>Hudba</Položka><Položka>Surfování</Položka></Seznam>. Způsob, jakým se váš dokument zobrazí na obrazovce závisí na vaší tabulce stylů: obvykle nemusíte v XML specifikovat žádnou formátovací instrukci tak, jako bylo nutné s HTML před nástupem tabulek stylů.
Ve skutečnpsti DTD poskytuje aplikaci předběžnou informaci o jménech a strukturách, které se mohou v dokumentu vyskytnout. Pokud použijete DTD, máte jistotu, že všechny dokumenty stejného typu budou podléhat stejným pravidlům.
V současnosti existují v mnoha různých oborech tisíce SGML DTD (SGML). Mnoho z nich je možné bez omezení používat, můžete si napsat i vlastní DTD. Stejně jako s jinými jazyky, musíte se to nejdříve naučit, např. podle knihy Developing SGML DTDs, Maler and el Andaloussi, Prentice Hall, 1997, 0-13-309881-8), XML je ale mnohem jednodušší než plný SGML, viz seznam omezení uvádějící vynechané části. Současné SGML DTD musí být převedené do XML, aby je bylo možné využít pro XML systémy: přečtěte si otázku na převádění SGML DTD do XML. Lze očekávat, že oblíbené DTD budou dostupné i ve formátu XML.

Zaslechl jsem o alternativách DTD. Co je to schema?

Bob DuCharme píše: "Mnoho XML vývojářů není spokojeno se syntaxí DTD, které uvádí XML specifikace, ze dvou důvodů: Zaprvé cítí, že pokud jsou XML dokumenty tak dobré na popis strukturovaných informací, popis typu dokumentu (jeho schema) by měl být rovněž XML dokument a neměl by používat svůj vlastní syntax. Díky tomu by byl nejen více konsistentní, bylo by rovněž snažší editovat a manipulovat se schematy s běžným nástroji na editaci XML. Zadruhé cítí, že tradiční syntax DTD nedává tvůrcům schemat dostatečné nástroje pro přesnou specifikaci dokumentu, není třeba možné určit, že daný prvek může obsahovat pouze kladné celé číslo, že nesmí být prázdný, nebo že musí nabývat pouze jedné z několika přesně specifikovaných možností. Pokud by to bylo možné, bylo by snažší vyvíjet nové programy, protože programátor by již nemusel psát tolik procedur na kontrolu chyb."
Uživatelé, kteří mají zkušenosti s databázemi nebo počítačovou vědou by si měli uvědomit, že SGML systémy, a tedy i XML, nejsou systémy na správu databází, ale na značení textu. Ačkoliv je zde mnoho podobností, jako ty popsané výše, některé koncepty z jednoho oboru v druhém vůbec neexistují. XML neobsahuje některé rysy databází s DBSM nemá některé možnosti značkování textů.
"Několik skupin navrhlo W3C alternativní způsoby pro vyjádření schemat dokumentů. Spolu s možností omezení typu dat a dalších rysů, navrhují využít současné tendence ve vývoji software, jako jsou objektově orientované metodologie. W3C pracovní skupina pro schemate v současné době zvažuje tyto návrhy a vyvíjí vlastní návrh, založený na nejužitečnějších funkcích, které obsahují současné návrhy, a na návrzích svých členů."

Jak ovlivní XML odkazy v mém dokumentu?

Odkazovací schopnosti XML systémů jsou na mnohem vyšší úrovni než v HTML. Současné HREF budou stále užitečné, ale nová odkazovací technologie je založena na zkušenostech při rozvoji dalších standardů včetně hypertextu, jako je TEI a HyTime, které umožňují správou obousměrných a multisměrných odkazů, stejně jako odkazy na části textových dokumentů (vlastních nebo cizích). Tyto funkce byly dostupné pro uživatele standardního SGML v prohlížečích jako DynaText, Panorama a Multidoc Pro již mnoho let, takže byla nashromážděna řada zkušeností při jejich použití.
The XML Linking Specification (XLink) and XML Extended Pointer Specification (XPointer) documents contain a detailed draft specification. An XML link can be either a URL or a TEI-style Extended Pointer, or both. A URL on its own is assumed to be a resource (as with HTML); if an XPointer follows it, it is assumed to be a sub-resource of that URL; an XPointer on its own is assumed to apply to the current document.
XML specifikace odkazů (XLink) a XML specifikace rozšířených odkazů (XPointer) obsahují podobný popis připravovaných standardů. XML odkaz může být URL nebo ukazatel ve stylu TEI nebo oba druhy najednou. Samotné URL je zdrojem (stejně jako v HTML), pokud ji následuje ukazatel, jedná se o bližší specifikaci místa v udaném dokumentu, a pokud je uveden samotný ukazatel, jeho pole působnosti je současný dokument.
XPointer vždy začíná s #, ?, or |. # a ? znamenají to samé jako v HTML, | naznačuje, jak dané místo nalézt ve zdroji, ale způsob provedení je ponechán na prohlížeči.
TEI Rozšířená notace ukazatelů (EPN) je mnohem všestrannější než adresy fragmntů na konci některých URL, protože dovoluje specifikovat přesné umístění odkazu a přitom využít strukturu samotného cílového dokumentu, nejen napevno udané orientační body jako je id. Například , druhý výskyt slova 'XPointer' dva odstavce před současnou polohou v tomto dokumentu lze specifikovat jako #ID(faq-hypertext)CHILD(2,*)(6,*).
the title of the question; <section id="faq-hypertext"> <TITLE>How will XML affect my document links?</TITLE>
the second paragraph:
If you view this file with Panorama or MultiDoc Pro you can click on the highlighted cross-reference button at the start of the example sentence, and it will display the locations in Extended Pointer Notation of all the links to it, including the word "XPointer" mentioned. (Doing this in an HTML browser is not meaningful, as they do not support bidirectional linking or EPN.) David Megginson has produced an additional function for Emacs/psgml which will deduce an XPointer for any location in an SGML or XML file.

Mohu psát matematické vzorce v XML?

Ano, pokud typ dokumentu, který používáte, s matematikou počítá. Uživatelé matematiky vytvářejí nové programy a návrh MathML (W3C), je XML aplikace. Rovněž by bylo možné vytvořit fragmenty XML z dřívějších specifikací HTML3, HTML Pro, ISO 12083 Math, OpenMath nebo i vlastní fragmenty. Některé SGML prohlížeče umožňují zobrazení matematiky, např. DynaText, Panorama,Multidoc Pro).
Náročnost zobrazení může sahat od výrazů jako xi, přes jednoduché jednořádkové rovnice jako E = mc2 až po komplikované rovnice. Techexplorer od IBM může být použit pro zobrazení matematckých výrazů psaných v TeX v běžných prohlížečích HTML a Amaya, testovací prohlížeč W3C experimentálně zobrazuje MathML.

Jak zachází XML s metadaty?

Protože XML dovoluje vytvářet vlastní značkovací jazyky, můžete plně využít rozšížených hypertextových možností (viz. Odkazy) XML pro skladovaní nebo odkazy na metadata v libovolném formátu (např. ISO 11179, Dublin Core, Warwick Framework, Resource Description Framework (RDF), a Platform for Internet Content Selection (PICS)).
XML neobsahuje žádné předdefinované prvky, protože XML je architektura a ne aplikace. Není proto úkolem XML určit, jak autoři mají nebo nemají specifikovat metadata. Můžete tedy použít jakoukoliv vhodnou metodu od jednoduchých atributů až po všechny prvky Dublin Core/Warwick Framework. Autoři prohlížečů mohou mít také vlastní doporučení a metody.

Mohu použít Javu, ActiveX, atd. v XML souborech?

To závisí na možnostech prohlížečů. XML popisuje informace. Skriptovací jazyky a jazyky pro vkládání funkcí jsou určeny pro software, který usnadňuje manipulaci s daty na počítači koncového uživatele.
XML určujě způsob, jak definovat syntaxi pro skriptovací jazyky. Jelikož se jedná o neutrální standard, jejich použití nedoporučuje ani nezakazuje, ani nedává žádnému z nich přednost.
Skriptovací jazyk pro XML je navržen v Extensible Style Language, XSL (viz. Tabulky stylů).

Mohu použít Javu pro tvorbu a správu XML souborů?

Ano, můžete použít libovolný programovací jazyk pro převedení dat do XML. Neustále přibívají nástroje pro takové konverze u mnoha současných programovacích prostředí a databázových systémů, které tyto úkoly usnadňují.

Jak kontrolovat vzhled?

XML vyžaduje tabulky stylů. Některé prohlížeče mohou poskytnout jednoduché přednastavené styly pro běžné prvky jako <Para>, nebo <List> obsahující <Item>, tabulky stylů ovšem dávají autorům mnohem lepší kontrolu zobrazení. Jelikož však tyto soubory mohou prohlížet různí uživatelé na různých zařízeních, autor nemůže vědět, co vše bude mít uživatel k dispozici (např. jaké fonty), obezřetnost je tedy na místě.
Arbortext XML Styler může být použit s XSL. Budete potřebovat AcitiveX a XSL codebase pro jeho použití.
Mnoho různých systémů tabulek stylů a jejich implementací existuje v soukromé sféře, kde jsou využívány zejména při psaní technické dokumentace.
Většina společností produkujících prohlížeče a editory slíbila podporu XSL, jelikož však jejich současné systémy mají řadu uživatelů, je otázkou, jak rychle k tomuto přechodu dojde.

Jak mohu použít grafiku v XML?

Grafika, to jsou normální odkazy, na jejichž konci není jiný text, ale grafický soubor. Mohou být tedy použity stejně jako ostatní odkazy s pomocí XLink a XPointer specifikace (viz. otázku na hypertext), včetně syntaxe odobné pro současné HTML obrázky. Mohou být také specifikovány s pomocí XML mechanismů NOTATION a ENTITY obdobně jako v klasickém SGML. Odkazy vám ovšem dávají mnohem lepší kontrolu při aktivaci odkazů, takže autor může například určit, zda se má obrázek zobrazit při nahrání stránky, nebo až po kliknutí uživatelem nebo jestli se má zobrazit v jiném okně, bez použití skriptovacího jazyka. Podporované grafické formáty si určí výrobci prohlížečů, XML nic nepředpokládá ani nezakazuje. GIF, JPG, TIFF, PNG a CGM, to je rozumné minimum, pracuje se na síťové vektorové grafice.
Peter Murray-Rust píše: "GIF a JPEGs zobrazují bitmapy (reprezentace obrázků v pixelech). Vektorové grafiky se týká aktivita W3C: (see http://www.w3.org/Graphics/Activity). Po dosažení shody bude možné přenášet grafiku přímo v XML souboru. Velké množství grafických objektů bude pak možné nahrávat mnohem rychleji a bez ztráty rozlišení."
Není možné vložit nezpracovaný grafický nebo jiný binární soubor přímo do XML, protože všechny byty, které náhodě připomínají syntax XML by způsobily zmatek.
Bob DuCharme dodává: "Všechna data v XML dokumentu musí být korektní XML. Je možné definovat vnější zdroj jako XML(parsed entity) nebo cokoliv ostatní(unparsed entity). Unparsed entity může být použito pro obrázky, zvuk, video, ... V dokumentu na ně může být odkázáno pouze s pomocí atributů, tak jako bitmapový obrázek v HTML je určen hodnotou atributu src u prvku img a není tedy součástí dokumentu. V XML dokumentu musí být tento atributdeklarován jako typu ENTITY a deklarace této entity musí uvádět typ NOTATION, protože pokud entity není XML, tak XML procesor musí vědět, co představuje.Příklad:
<?xml version="1.0"?> <!DOCTYPE dog [ <!NOTATION JPEG SYSTEM "Joint Photographic Experts Group"> <!ENTITY colliepic SYSTEM "lassie.jpg" NDATA JPEG> <!ELEMENT dog EMPTY> <!ATTLIST dog picfile ENTITY #REQUIRED> ]> <dog picfile="colliepic"/>
XLink a XPointer popisují další způsoby, jak adresovat jiné soubory, které neobsahují XML. Ty nabízejí širší možnosti pro určení polohy, vzhledu a chování těchto prvků uvnitř XML.
(Bylo by ovšem možné vložit zakódovaný binární soubor v sekci typu CDATA, například něco jako UUencode s odstraněným ] a <>, take bz nemohlo dojít k pochybnostem.)

<<<OBSAH  >>>ENCSEN/CSZVONPřeklady