Promotic

Popis PROMOTIC XML souborů pro Import/Export

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/>), může v něm 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 takto (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 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 jen 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.
© MICROSYS, spol. s r.o.