Aktuální vydání

celé číslo

05

2021

Perspektivy automatizace, umělá inteligence v automatizaci; prostředky automatizace v době lockdownu
celé číslo

Industrial Framework

Automa 8/2000

Ing. Pavel Průša,
Pantek (CS) s. r. o.

Jazyk XML a průmyslová data

V článku jsou popsány základní vlastnosti jazyka XML v porovnání s HTML. Je zvážen význam jazyka XML pro zápis dat z průmyslových provozů a je uveden příklad zápisu konkrétní výrobní situace v XML.

Obr. 1.

1. Úvod
Jazyk HTML, celosvětově rozšířený jako standard pro zápis hypertextových dokumentů zejména v prostředí internetu, se stává pro velkou část aplikací zcela nevyhovujícím. Důvody jsou zejména jeho uzavřenost, nedostatečná pružnost, nízká úroveň strukturovanosti a dále skutečnost, že je příliš orientován na popis zobrazení dat v prohlížeči webových stránek a nijak nepopisuje význam jednotlivých datových položek.

Internet se během svého vývoje stal sítí pro přenos dat mezi aplikacemi, které neslouží jen k zobrazení těchto dat, ale obecně k jejich zpracování. Pro tento účel se ukázalo jako nutné zavést nový standard, který by byl snáze zpracovatelný cílovými aplikacemi, všeobecně čitelný a srozumitelný. Úkolu se ujala skupina expertů konsorcia pro standardizaci sítě Internet W3C. Východiskem práce na novém standardu s označením XML byla definice jazyka SGML, vytvořeného již dříve (1980 až 1986) pro tvorbu technické dokumentace rozsáhlých projektů. Specifikace SGML je však velmi rozsáhlá a složitá a tvorba aplikací plně podporujících SGML je značně komplikovaná. Jazyk XML, který je zjednodušeným „klonem“ jazyka SGML, je k tvůrcům aplikací mnohem vstřícnější a odráží zkušenosti, které konsorcium W3C nabylo z historie jazyka HTML. Výsledkem práce konsorcia W3C je základní specifikace XML 1.0 z února roku 1998.

2. Základní rysy jazyka XML
Stejně jako při zápisu v HTML se dokument zapsaný v XML skládá z dat a značek (tagů), které, na rozdíl od HTML, určují význam dat. Položka v databázi zákazníků zapsané v XML může vypadat takto:


<ZAKAZNIK> <JMENO>Martin</JMENO>
<PRIJMENI>Jonáš</PRIJMENI>
<FIRMA>RegProfi</FIRMA>
<SIDLO>Praha</SIDLO>
</ZAKAZNIK>

Obr. 2.

I přesto, že uvedený příklad je „vytržený“ z kontextu celého souboru, je jednoznačně srozumitelný. Z příkladu je, mimo jiné, na první pohled jasná i skutečnost, že „Jonáš“ je příjmení zákazníka a nikoli jeho jméno. Výrazy uzavřené mezi znaky „<“ a „>“ nazýváme formátovacími značkami neboli tagy. Jak již naznačuje slovo eXtensible v názvu XML, není počet těchto značek ani jejich atributů pevně stanoven, jako tomu je u HTML, ale je volně rozšířitelný. Tvůrce aplikace v jazyce XML může libovolně definovat neomezené množství vlastních značek i jejich atributů.

Při vytváření dokumentů v jazyce XML je výhodné vyjít z předem definované struktury popsané v samostatném souboru s označením DTD. V souboru DTD je definováno, jakou musí mít soubor XML strukturu, které elementy musí dokument obsahovat a jaké atributy mohou mít jednotlivé elementy. Podle souboru DTD může cílová aplikace kontrolovat, zda předaná data skutečně odpovídají definované struktuře, a při nesouladu je odmítnout. Tvůrce aplikace XML může využít již předem definované standardní soubory DTD, které jsou k dispozici např. pro tvorbu technické dokumentace, pro zápis vzorců chemických sloučenin, pro tvorbu multimediálních prezentací atd.

V XML je, oproti HTML, kladen daleko větší důraz na syntaktickou správnost dokumentu. Rozlišují se malá a velká písmena v datech i v definovaných symbolech (značky, atributy). Všechny značky vyskytující se v  souboru XML jsou párové a nesmí se překrývat. Zjistí-li aplikace XML syntaktickou chybu v souboru (neukončenou značku, chybné pořadí apod.), dokument odmítne a hlásí chybu. Například následující syntaxe naprosto běžně se vyskytující ve stránkách vytvořených v HTML je v dokumentu XML nepřípustná:

normální text <b> tučný text <i> tučná kurzíva </b> normální kurzíva </i> normální text

Správný zápis v XML je následující:

normální text <b> tučný text </b> <i> <b> tučná kurzíva </b> normální kurzíva </i> normální text.

Obr. 3.

Vzhled dokumentu XML je definován ve zvláštním souboru XSL, na který se dokument XML může odkazovat. Toto uspořádání, kdy popis formátu je oddělen od dat, je další velkou výhodou XML. Formátovací znaky neznepřehledňují data, navíc nemusí být nadbytečně přenášeny po internetu s každým stahovaným dokumentem. Určitá třída dokumentů může používat stejný soubor XSL a naopak dva různé soubory XSL mohou poskytovat dva různé pohledy na tatáž data. Vyšel-li tvůrce z nějakého standardního souboru DTD, nemusí soubor XSL vůbec vytvářet, neboť může použít soubor XSL, který je pro danou třídu dokumentů již k dispozici.

3. Strukturovaná data
Jak již bylo popsáno, XML je jazykem pro zápis strukturovaných dat. Strukturovanými daty se rozumějí taková data, u kterých je podstatná příslušnost k nějaké struktuře – tabulce, seznamu, grafu nebo množině. Za strukturovaná data lze považovat např. i psaný text, neboť jsou to data členěná do odstavců, nadpisů, poznámek atd.

Pod pojmem průmyslová data si představme data v průmyslových provozech, jež jsou typicky prezentována v podobě grafických zobrazení technologií a tabulek historických dat v systémech SCADA/HMI. U každého datového bodu je patrná příslušnost k nějaké množině – technologickému zařízení (kotel, vzduchotechnická jednotka, výrobní linka). Také každý datový bod představuje množinu informací (fyzická adresa, hodnota, měrová jednotka, alarmové meze atd.). Průmyslová data jsou typickým příkladem strukturovaných dat.

Zda je formát XML vhodný nebo nevhodný pro zápis průmyslových dat, je možné nejlépe prokázat na popisu konkrétního příkladu výrobní technologie.

4. Zápis průmyslových dat pomocí jazyka XML

4.1 Definice typu dokumentu
Na obr. 1 je ukázán příklad zobrazení technologického procesu – výrobní linky, která se skládá z několika zásobníků, reaktoru a sušicí pece. Předpokládejme, že v rámci podniku může existovat několik takových výrobních linek s různými počty zásobníků, reaktorů a pecí.

Obr. 4.

Jak již bylo řečeno, při vytváření souboru XML je vhodné vyjít z definičního souboru popisujícího strukturu dat – nazvěme jej např. „fact.dtd“ (přípona DTD je povinná a označuje soubor typu Data Type Definition). Soubor můžeme vytvořit v jakémkoli textovém editoru (viz např. obr. 2). V rámci definice typu dokumentu definujeme elementy a jejich atributy.

Pouze stručně popíšeme jednotlivé řádky v dokumentu DTD na obr. 2. První řádek udává verzi XML a použité kódování. Elementy jsou definovány syntaxí <!ELEMENT OZNAČENÍ(PARAMETRY)>. Jeden element je vždy základní – kořenový (v našem případě element FACTORY) a od něj se odvozují další definice. Řádek <!ELEMENT FACTORY(LINKA+)> vyjadřuje, že základní element FACTORY musí obsahovat alespoň jeden element LINKA. Řádek <!ELEMENT LINKA (ZASOBNIK+,REAKTOR,PEC?)> vyjadřuje, že element LINKA musí obsahovat alespoň jeden element ZASOBNIK, právě jeden element REAKTOR a může obsahovat element PEC. Z toho vyplývá, že výrok „alespoň jeden“ je vyjádřen znaménkem „+“ za jménem elementu, nepovinný element je vyjádřen znakem „?“ a „právě jeden“ lze vyjádřit tak, že za název elementu nebude zapsán žádný znak. Podobně můžeme definovat i pořadí elementů.

Konkrétní data jsou označena klíčovým výrazem #PCDATA.

Dále je možné pro každý element deklarovat atributy ve tvaru:
<!ATTLIST jméno_elementu deklarace_atributů>

Jestliže bychom chtěli v popisu technologie rozlišovat dva druhy pecí – např. indukční a horkovzdušnou, vypadala by definice takto:

<!ATTLIST PEC typ (indukcni|horkovzdusna)>

Vyčerpávající informace o vytváření souborů DTD (definici elementů, atributů, entit a notací) lze nalézt např. ve [2].

Obr. 5.

4.2 Zápis souboru XML
Soubor XML se skládá z hlavičky, ze značek (tagů) nadefinovaných v souboru DTD v podobě elementů a z konkrétních dat – viz obr 3. První řádek <?xml version=„1.0" encoding=„ISO-8859-2"?> označuje verzi XML a typ kódování. Vztah ke konkrétnímu souboru DTD vyjadřuje řádek <!DOCTYPE FACTORY SYSTEM “fact.dtd“> kde „fact.dtd“ je URL dokumentu DTD.

Dále již následuje datová oblast. Jednotlivá data jsou oddělena značkami, které vyjadřují příslušnost konkrétních dat k datové struktuře.

Nepotřebujeme tedy žádný prohlížeč XML k tomu, abychom zcela jednoznačně určili, že např. zásobník s označením A/2.1 obsahuje 700 jednotek cementu a že právě není doplňován.

Jestliže se soubor XML odkazuje na definiční soubor DTD, je třeba striktně dodržet strukturu dat definovanou v souboru DTD.

Ačkoli je norma XML ještě relativně mladá, jsou již k dispozici programy, které editaci souborů XML usnadňují [4]. Na obr. 4 je soubor XML z obr. 3 otevřen v editoru XML Spy, který poskytuje komfortnější nástroje pro editaci souborů DTD, XML a XSL. Jak je z obr. 4 patrné, dokument XML je editován v prostředí, které zabraňuje odchýlit se od struktury definované v definičním souboru DTD.

4.3 XSL
Požadavkem často kladeným na aplikace XML je možnost přehledné vizuální prezentace předaných dat. Je-li zpracovatelskou aplikací klasický systém SCADA/HMI podporující XML, přiřadí získaná data konkrétním objektům modelujícím skutečnou výrobní situaci. K zobrazení dat v aplikaci XML však můžeme využít i obecnější aplikaci, např. běžný prohlížeč webových stránek. Data v této aplikaci lze samozřejmě zobrazit mnoha způsoby: v tabulce, jako seznam, pomocí appletů Java nebo objektů ActiveX anebo kombinací uvedených struktur. Prohlížeči je tedy třeba určit, v jaké podobě má data „zapsaná“ v XML zobrazit, což se děje pomocí souboru XSL. Soubor XSL obecně obsahuje soubor pravidel, podle kterých je soubor XML transformován na jiný soubor, vhodnější pro daný účel. Výsledkem transformace pro zobrazení souboru v prostředí prohlížeče webových stránek může být např. dokument HTML. Na obr. 5 je příklad souboru XSL zajišťujícího transformaci do formátu HTML.

Obr. 6.

Soubor XSL obsahuje definice šablon pro elementy definované v souboru DTD a použité v souboru XML. Narazí-li zpracovatelský software (procesor XSL) v  souboru XML např. na značku <ZASOBNIK>, nahlédne zároveň do souboru XSL, zda je definována šablona <xsl: template match=“ZASOBNIK“>. Jestliže ano, aplikuje tuto šablonu na zobrazovaný dokument.

Příklad zobrazení souboru XML s aplikovaným XSL v prohlížeči internetu je na obr. 6. Informaci o tom, který soubor XSL bude použit pro zobrazení dat v prohlížeči, obsahuje přímo soubor XML (viz obr. 3): <!?xml stylesheet type=“text/xsl“ href=“fact.xsl“ ?>

„Fact.xsl“ je URL souboru XSL. Pouhou změnou tohoto odkazu na jiný soubor XSL vycházející ze stejného definičního souboru DTD je možné získat jiný pohled na tatáž data.

5. Závěr
Ukázali jsme si, že ve formátu XML lze efektivně a přehledně zapsat strukturovaná data, což jsou i průmyslová data. Jednoznačný a srozumitelný formát dat společně se samopopisující schopností XML klade minimální požadavky na tvorbu aplikací pracujících se soubory XML. Formát XML je tím přímo předurčen k předávání dat mezi různými aplikacemi různých výrobců nejen v síti internet. Vzhledem k možnosti definovat vlastní značky, vhodné pro danou aplikaci, je možné použít XML v mnoha oborech, od bankovnictví až po průmyslovou automatizaci.

Využití jazyka XML v průmyslové automatizaci přitom není pouze předmětem teoretické diskuse. Příkladem z praxe je konkrétní produkt, internetový portál Wonderware SuiteVoyager, který je schopen exportovat celá okna vytvářená systémem Wonderware InTouch (včetně popisu jednotlivých objektů, animací a odkazů) do formátů XML a VML a v těchto formátech je předávat tzv. tenkým internetovým a intranetovým klientům.

Názvosloví:
DTD – Data Type Definition
soubor s příponou DTD, definující strukturu souboru XML a v něm obsažené elementy a jejich atributy
HTML – HyperText Markup Language
světově rozšířený standard sloužící k zápisu dokumentů a jejich formátování pomocí uzavřené množiny formátovacích značek (tagů)
SCADA/HMI – Supervizory Control And Data Acquisition/Human Machine Interface
systémy a prostředky pro sledování a řízení technologických procesů
SGML – Standard Generalized Markup Language
jazyk pro tvorbu technické dokumentace rozsáhlých projektů
URL – Uniform Resource Locator
jednotný lokátor zdroje (adresa na dokumentu na webu)
VML – Vector Markup Language
obdoba XML určená pro zápis vektorových dat
W3C – World Wide Web Consortium
konsorcium pro standardizaci sítě Internet
XML – eXtensible Markup Language
rozšiřitelný značkovací jazyk určený pro zápis strukturovaných dat
XSL – eXtended StyleSheet Language
soubor obsahující množinu pravidel pro transformaci XML souboru na jiný XML soubor nebo HTML soubor, který je možné zobrazit v prohlížeči
Literatura:

[1] Internet: http://www.w3c.org (oficiální stránky konsorcia w3c).

[2] Internet: http://www.kosek.cz/clanky/xml/ (série článků o XML, DTD a XSL z časopisu Computerworld).

[3] Internet: http://msdn.microsoft.com/xml (Microsoft Online XML Developer Center).

[4] Internet: http://www.xmlsoftware.com (stránky o aplikacích podporujících XML).

[5] Internet: http://www.w3c.org/TR/REC-xml (úplná specifikace XML 1.0).