Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Obecný popis PROMOTIC XML souboru 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 je složen 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 zde Name):
<Prop Name="PmNumber"> .. 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 objektem systému PROMOTIC - pak 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 PmObject jenž obsahuje dva tagy Prop.

<Content>
  <PmObject Type="PmNumber" Name="number0" Import="XXX" Defimport="XXX">
    <Prop Name="Value">100</Prop>
    <Prop Name="Unit">cm</Prop>
  </PmObject>
</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>
      <PmObject Type="PmNumber" Name="Number0" Import="XXX" Defimport="XXX">
        <Prop Name="Value">100</Prop>
        <Prop Name="Unit">~KeyName</Prop>
      </PmObject>
    </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 je také možno 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) je "case-sensitive", tzn. JE NUTNO rozlišovat psaní velkých a malých písmen 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í uvedeno, importují se všechny konfigurace v souboru (v závislosti na Dst, viz dále).
Atribut Load="XXX" (nepovinné): Load="Auto" znamená, že import proběhne bez interaktivní části. Load="Interactive" je 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), jenž bude systémem PROMOTIC načítán při načtení této konfigurace NameCfg (v tomto případě NEjsou načítána data z tagu Content). Pokud Src není uvedeno, načítají se data z tagu Content.

Popis tagu Dst: (tento tag je nepovinný)

Určuje platnost kontextu konfigurace v závislosti na objektu, do ně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 grafického prvku nebo například do PmObjektu, pak je NEplatná a import této konfigurace nebude proveden

Pokud <Dst> není v XMLsouboru uvedeno, je konfigurace platná vždy.

Atribut Defimport="XXX" (nepovinné): Kromě tagu <Dst> lze definovat tento atribut u libovolného tagu. Specifikuje jak importovat všechny podtagy mimo tagu, kde je uveden.
Defimport="IfNotExist" - importovat podtagy jen pokud neexistují
Defimport="IfExist" - importovat podtagy jen pokud existují
Defimport="Replace" - pokud podtag existuje - je importován, pokud neexistuje - 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í - jsou vytvořeny a pak importovány, pokud existují - jsou smazány, pak 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), neimportují se
Atribut Import="XXX" (nepovinné): Kromě tagu <Dst> lze definovat tento atribut u libovolného tagu. Specifikuje 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 'Import type'. 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.Tavičská 845/21 703 00 Ostrava-Vítkovice