1 ROZHRANÍ ESA XML Ing. Richard Vondráček SCIA CZ, s. r. o., Thákurova 3, Praha 6 1 OTEVŘENÝ FORMÁT Jednou z mnoha užitečných vlastností programu ESA...
ROZHRANÍ ESA XML Ing. Richard Vondráček SCIA CZ, s. r. o., Thákurova 3, 160 00 Praha 6 www.scia.cz
1
OTEVŘENÝ FORMÁT
Jednou z mnoha užitečných vlastností programu ESA PT je podpora otevřeného rozhraní postaveného na bázi XML. Veškerá data, která lze v prostředí ESA PT zobrazit v dokumentu, lze exportovat do strukturovaného souboru XML. Je tedy možné použít XML soubor jakožto standardní výstupní formát, který je schopen popsat veškeré vlastnosti modelu i všechny dostupné výsledky. Pevně stanovený formát umožňuje uživateli využít tato data v nějakém navazujícím automatizovaném systému. Samotný obsah souboru XML si dokonce může uživatel definovat sám pomocí standardních uživatelských nástrojů ESA PT. V prostředí ESA PT lze zadávat data a vytvářet tak model efektivně a pohodlně. Může však nastat situace, kdy uživatel potřebuje načíst nějaká data z externího programu, přičemž ruční zadávání do prostředí ESA PT by pro něj bylo příliš náročné. V takový okamžik lze opět využít možnosti ESA XML souboru, který slouží i jako vstupní formát pro editaci existujících a přidávání nových objektů projektu ESA PT. Obsahem tohoto příspěvku je názorný příklad použití XML rozhraní jakožto flexibilního nástroje zadání většího množství dat do existujícího projektu v aplikaci ESA PT.
2
PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML
Předpokládejme, že uživatel namodeloval plošnou konstrukci v editoru ESA PT a potřebuje na ni umístit zatížení nějakým velmi specifickým způsobem. Má k dispozici vlastní program, který dovede vygenerovat sadu osamělých sil tak, aby jejich účinek odpovídal nějakým naměřeným nebo předem vypočteným hodnotám. Takto vygenerovaná data pak může naformátovat do XML souboru a následně je načíst do projektu ESA PT pomocí funkce File/Update/XML file. Zajímavou vlastností je, že formát a obsah XML souboru si může uživatel nadefinovat sám v prostředí aplikace ESA PT. 2.1 Tvorba XML dokumentu 2.1.1 Příprava projektu Aby uživatel mohl vytvořit XML soubor obsahující sadu bodových zatížení reprezentujících osamělé síly, musí znát formát ESA XML souboru. Toho lze nejlépe docílit tak, že si z ESA PT vygeneruje prototyp XML souboru, který obsahuje jednu typickou instanci bodového zatížení. Následně si uživatel vyexportuje tabulku bodových zatížení, ve které se vyskytne právě tato typická instance.
- 43 -
obr. 1 - Úloha obsahující jeden prototyp bodového zatížení 2.1.2 Příprava obsahu dokumentu Nástroj na export dat do XML souboru se nachází v nabídkovém stromu ESA PT na pozici Tools/XML, jak je vidět na obr. 2.
obr. 2 - Export do XML lze nalézt ve stromu pod nabídkou Tools Tato volba nás při prvním spuštění požádá o zadání souboru šablony dokumentu (*.TDX). Mohli bychom vybrat přednastavený soubor DEFAULT.TDX, ale v našem případě zmáčkneme STORNO, což vygeneruje prázdný dokument. Program otevře okno, ve kterém lze definovat obsah XML dokumentu. Obsahem dokumentu může být několik tabulek, kde každá tabulka obsahuje seznam všech objektů daného typu. Naším cílem je vložit pouze tabulku bodových zatížení. Tlačítkem New přidáme novou položku dokumentu typu Load / Free point load.
Dále je možné spustit z toolbaru dialog Table Composer a vybrat tak, které vlastnosti objektu bodového zatížení se mají v tabulce objevit. Klikneme pravým tlačítkem na tabulku a vybereme Table Composer z kontextového menu nebo vybereme tabulku ve stromu a zvolíme předposlední tlačítko na toolbaru. Podle obr. 4 vybereme následující vlastnosti.
obr. 4 - Definice sloupců tabulky odpovídajících vybraným vlastnostem objektu
Po skončení výběru zvolených vlastností zavřeme Table Composer tlačítkem OK.
- 45 -
2.2 Export dokumentu První ikona na toolbaru je Export. Tato volba otevírá dialogové okno Document Export, kde lze zadat cestu a název výstupního XML souboru (např. FreeLoadExample.xml). Dále je zde možné zaškrtnout volbu Description, což znamená, že vedle hlavního datového souboru FreeLoadExample.xml se vygeneruje ještě soubor FreeLoadExample.xml.def, který obsahuje definici formátu soboru FreeLoadExample.xml. Toto pole zaškrtneme, protože definiční soubor budeme potřebovat při opětovném importu dat.
obr. 5 - Export dokumentu do XML souboru 2.3 Popis XML souboru V našem případě byl vytvořen soubor FreeLoadExample.xml, jehož obsah je složen z několika vzájemně vnořených elementů. Jeden hlavní element <project> obsahuje obecně několik podelementů typu s vloženou tabulkou
. Každá tabulka má nejprve uloženou hlavičku a následně několik objektů . Jednotlivé vlastnosti objektu jsou vloženy jako až , přičemž typ těchto vlastností je popsán v hlavičce tabulky. V souboru se objeví pouze ty vlastnosti, které jsme vložili do dokumentu. Všimněme si na obr. 6 vlastností v elementu , které odpovídají vlastnostem objektu námi zadaného volného zatížení.
obr. 6 - Soubor FreeLoadExample.xml Přesná definice vlastností je však uvedena v souboru FreeLoadExample.xml.def. Tento soubor obsahuje informace o přesném formátu souboru xml. Zde je uveden výčet tabulek - 46 -
s odkazy na odpovídající datové struktury ESA. Dále je zde pro každou tabulku uveden výčet vlastností. Každá vlastnost má uvedeno své pořadové číslo, svůj název, typ, identifikátor a v případě výčtového typu i možné varianty.
obr. 7 - Soubor FreeLoadExample.xml.def 2.4 Editace XML soboru Nyní je možné otevřít soubor FreeLoadExample.xml v nějakém externím editoru a změnit tak vlastnosti uloženého zatížení. Dále je možné založit nové instance bodového zatížení vložením nového elementu XML typu přesně podle předepsaného vzoru. Jediné, co je pro každou novou instanci nutné, je zvolit nové unikátní id jakožto atribut elementu . Pokud nám pro nové instance stačí implicitně vygenerované nové jméno, není třeba uvádět atribut nm. Pokud bychom zadali id nějakého už existujícího objektu, pak by se nejednalo o založení nového objektu, ale o editaci vlastností již existujícího objektu. Vyrobíme tedy nový FreeLoadExample.xml, který bude navíc obsahovat následující elementy:
obr. 8 - Nově přidané objekty bodového zatížení
- 47 -
2.5 Update XML Změny provedené v souboru FreeLoadExample.xml můžeme promítnout zpět do původní úlohy pomocí funkce XML Update v menu File / Update / XML file. Tato funkce nás požádá o soubor FreeLoadExample.xml, který obsahuje požadované změny. Změny vlastností existujících elementů se promítnou do změn vlastností existujících objektů. Nově vytvořené elementy s novým id způsobí vytvoření nových objektů v projektu ESA.
obr. 9 - Zatížení naimportované přes XML update Pokud vše proběhlo správně, tak se v našem projektu objevily dva nové objekty volného bodového zatížení tak, jak je vidět na obr. 9.
3
ZÁVĚR
Na jednoduchém příkladu jsme předvedli univerzálnost rozhraní ESA XML jakožto nástroje pro přenášení dat mezi projektem ESA PT a jinými programy. Použitelnost ESA XML je však mnohem obecnější. Pomocí rozhraní XML lze například zadat vstupní hodnoty parametrické úloze aplikace ESA PT. Následně je možné spustit ESA PT z příkazové řádky v čistě výpočtovém módu a poté si nechat vygenerovat standardní XML výstup s výsledky. Rozhraní ESA XML je perspektivní formát který dává prostor novým možnostem použití programu ESA PT. Ten se tak stává platformou otevřenou pro spolupráci s jinými programy bez ohledu na to, zda se jedná o velké programy profesionálních firem nebo malé praktické utilitky napsané samotnými uživateli.