Tato část obsahuje popis struktury XML souborů pro uložení (export) konfiguračních (vývojových) dat systému PROMOTIC.
Obecný XML dokument se skládá z tzv.
"tagů". Je to slovo uzavřené v hranatých závorkách, za ním je obsah tohoto tagu a na konci je koncová značka tohoto tagu, například:
<Prop> .. obsah tagu .. </Prop>
Obsah tagu může být prázdný (pak lze celý tag napsat zkráceně například:
<Prop/>), v něm může být prostý text nebo v něm mohou být další tagy. Na stejné úrovni (za sebou) může být více tagů a lze je také vnořovat do libovolné úrovně. Každý tag může mít tzv. atributy, které se zapisují například následovně (atribut je
Name v tom případě):
<Prop Name="PmaNumber"> .. obsah tagu .. </Prop>
Systém PROMOTIC využívá XML způsobu zápisu dat na mnoha místech (viz např.
Sdílení XML dat v runtime). Zde popíšeme tvar XML zápisu pro uložení vývojových dat.
Tag zde může být například objekt systému PROMOTIC - v tom případě v sobě obsahuje více tagů představujících např. vlastnosti tohoto objektu.
Například v následujícím textu tag
<Content> obsahuje tag
<PmaObject> který obsahuje dva tagy
Prop.
<Content>
<PmaObject Type="PmaNumber" Name="number0" Import="XXX" Defimport="XXX">
<Prop Name="Value">100</Prop>
<Prop Name="Unit">cm</Prop>
</PmaObject>
</Content>
Zde tag
<Prop Name="Value">100</Prop> znamená, že vlastnost s názvem "
Value" má hodnotu
100.
Struktura XML PROMOTIC dokumentu je následující
<?xml version="1.0" encoding="utf-8"?>
<Document CfgSelect="XXX" Load="XXX">
<Cfg Name="NameCfg1" Src="XXX">
<Dst Ctx="XXX" Defimport="XXX" Import="XXX"/>
<Content>
<PmaObject Type="PmaNumber" Name="Number0" Import="XXX" Defimport="XXX">
<Prop Name="Value">100</Prop>
<Prop Name="Unit">~KeyName</Prop>
</PmaObject>
</Content>
</Cfg>
<Cfg Name="NameCfg2">
...
</Cfg>
...
</Document>
Poznámka 1: Soubor je logicky členěn na konfigurace <Cfg>. Těchto může být v souboru více. Při provádění importu ve vývojovém prostředí PROMOTIC lze vybrat, kterou konfiguraci načíst nebo lze také načíst konfigurace všechny. Samotná data jsou umístěna v konfiguraci uvnitř tagu <Content>.
Chování celého dokumentu a každé konfigurace lze při importu ovlivnit v popisu struktury uvedenými atributy.
Poznámka 2: XML dokument (nejen PROMOTIC XML dokument) rozlišuje velká/malá písmena v názvech tagů a atributů.
Poznámka 3: <?xml version="1.0" encoding="utf-8"?> generuje systém PROMOTIC a je povinný. Je to identifikace, že jde o XML soubor.
Popis tagu <Document>: (tento tag je povinný)
Atribut
CfgSelect="XXX" (nepovinné):
CfgSelect="First" znamená, že ze souboru se vybere pouze první konfigurace vyhovující kontextu umístění a dál se nepokračuje
Pokud není nastaveno, pak se importují všechny konfigurace v souboru (v závislosti na Dst, viz dále)
Atribut
Load="XXX" (nepovinné):
Load="Auto": import proběhne bez interaktivní části
Load="Interactive": (přednastaveno) interaktivní postup (s dotazy)
Popis tagu <Cfg>: (tento tag je povinný)
Atribut Name="NameCfg": název konfigurace.
Atribut Src="Promoticdata.xml" (nepovinné): Promoticdata.xml je název externího souboru (dodržujícího pravě zde popisovanou strukturu XML souboru), který bude systémem PROMOTIC načítán při načtení této konfigurace NameCfg (v tom případě NEjsou načítána data z tagu <Content>).
Pokud není nastaveno, pak se načítají data z tagu <Content>.
Popis tagu <Dst>: (tento tag je nepovinný)
Určuje platnost kontextu konfigurace v závislosti na objektu, do kterého se importuje.
<Dst> tagů může být v konfiguraci více.
Atribut
Ctx="XXX": je název třídy tagu, například:
<GPanel Name="XXX"></Gpanel>
je tag třídy
Gpanel, pak by
Ctx="GPanel" znamenalo:
- pokud by tato konfigurace byla importována do obrazu, pak je platná.
- pokud by tato konfigurace byla importována do Pmg objektu nebo například do Pma objektu, pak je NEplatná a import konfigurace nebude proveden.
Pokud
<Dst> není v XMLsouboru uvedeno, pak je konfigurace platná vždy.
Atribut
Defimport="XXX" (nepovinné): Kromě tagu
<Dst> lze definovat tento atribut u libovolného tagu. Určuje jak importovat všechny podtagy mimo tagu, kde je uveden.
Defimport="IfNotExist" - importovat podtagy pouze pokud neexistují
Defimport="IfExist" - importovat podtagy pouze pokud existují
Defimport="Replace" - pokud podtag existuje, pak je importován; pokud neexistuje, pak je vytvořen a importován
Defimport="Add" - podtagy vytvořit vždy nově a pak importovat (názvy budou zachovány podle XML dokumentu)
Defimport="AddWithNewName" - podtagy vytvořit vždy nově a pak importovat (názvy budou nově vygenerovány)
Defimport="RemoveAndNew" - pokud podtagy neexistují, pak jsou vytvořeny a importovány; pokud existují, pak jsou smazány, vytvořeny nové a ty importovány
Defimport="Remove" - všechny podtagy jsou smazány
Defimport="No" - neimportují se žádné podtagy
Defimport="NoThis" - pokud nemají podtagy definováno jinak (uvedením DefImport, Import), pak se neimportují
Atribut Import="XXX" (nepovinné): Kromě tagu <Dst> lze definovat tento atribut u libovolného tagu. Určuje jak importovat tag, kde je tento atribut uveden. XXX nabývá stejných významů jako Defimport.
Poznámka: Atributy
Import,
Defimport pro konfigurace, ve kterých nejsou uvedeny explicitně v sekci
<Dst>, se určují v okně pro import volbou "Typ importu".
Pokud jsou určeny na obou místech, pak platné jsou atributy v
<Dst> v XML souboru.
Popis tagu <Content>: (tento tag je povinný)
Tento tag obsahuje samotná data PROMOTIC.