XML data is the part of XML file that contains the object configuration of D2000 System or its sections.
Reserved sections
- REFERENCES - the section includes the structures representing the object and column references of object
- CFGRECORDS - the section includes the structure representing the data of object
- MEMBEROFLOGGROUP - the section includes member elements defining the logical group which the given object belongs to
- MEMBEROFRESGROUP - the section includes member elements defining the group of object which the given object belongs to
- CRC - the section includes the MD5 hash of data
- OBJLIFELOGS - the section includes the logs about the object history
The detailed information about the structures defining the objects of D2000 System, the attributes of structures, the value types of attributes and the values the attributes can acquire, can be find by the program to show the actual structure. This listing includes the unsupported objects and enumerated types.
REFERENCES reserved section
The example of section:
(the complete example is here)
<HOBJ_REF> <uid>A25DED0E4DA94B4895A119370E3AF4FB</uid> <name>SV.Limits</name> <objType>D2RECORD</objType> <valType>Rec</valType> </HOBJ_REF> <COL_REF> <col_idx>1</col_idx> <col_name>VHL</col_name> <col_valType>Int</col_valType> </COL_REF> <HOBJ_REF> <uid>USER_VAR</uid> <name>USER_VAR</name> <objType>SYSTEM</objType> <valType>NAN</valType> </HOBJ_REF>
It includes the structures:
- HOBJ_REF - they represent the object references of object
- COL_REF - they represent the column references of object (object must be a structure definition or the object refers to it)
Properties of the object references:
- minimal attribute name must be set in each object reference
- uid, objType and valType attributes are optional
- uid attribute has a priority to the name attribute at object references matching
Properties of the column references:
- the column reference follows the object reference
- minimal attribute col_name must be set in each column reference
- col_idx and col_valType attributes in column reference are optional
- col_idx attribute has the priority to the col_name attribute at column references matching
CFGRECORDS reserved section
The example of section:
(the complete example is here)
<TObjItemData> <Id>0</Id> <Name>U.TimeSlice</Name> <Descript>Time Slice</Descript> <Typ>USER_VAR</Typ> <ParentId>USER_VAR</ParentId> <Value_Type>TmR</Value_Type> <CreateTime>08.10.2009 08:10:31.366</CreateTime> <ModifyTime>08.10.2009 08:18:02.938</ModifyTime> ... <uuid>5CB809E9342B7A46BD790A8C7D14C69E</uuid> </TObjItemData> <tUserVarData_Full> <tUserVarData> <MANUAL>True</MANUAL> <MANUAL_VAL/> <FLAGS/> <VALUE_TIME>08.10.2009 08:10:31.379</VALUE_TIME> <MONITOR>False</MONITOR> <SAVE_VALUE>True</SAVE_VALUE> </tUserVarData> <startVal/> </tUserVarData_Full>
This section must contain just the one structure TObjItemData at the
beginning. It identifies the object uniquely. The configuration of
this object is saved in XML file.
This structure is followed by another structures, they count and name
depends on a particular type of object. See the example: the object is of USER_VAR
type and contains the structure
tUserVarData_Full.
Properties of identification structure:
- Id attribute represents an Id of object (it is important at XML Import)
- Name attribute need always to be set
- uuid attribute has a priority to the Name attribute at object matching
MEMBEROFLOGGROUP reserved section
The example of section:
(the complete example is here)
<member>SELT\CD8FD25EF8A690341B111F5274CDB5AB</member>
Properties of member value:
- it represents the object classification in the logical groups
- it must contain the name of logical group (before the sign '\')
- it can also contain uid of logical group (after the sign '\')
Note: This value affects the object membership in the logical groups at XML Import.
MEMBEROFRESGROUP reserved section
The example of section:
(the complete example is here)
<member>Home_s\04CB44144B2CD8E46955D846D30B0F72</member>
Properties of member value:
- it represents the object classification in the object groups
- it must contain the name of object group (before the sign '\')
- it can also contain uid of the object group (after the sign '\')
- if the name of object group is enclosed in '[' and ']' the object with children was inserted into group
CRC reserved section
The example of section:
(the complete example is here)
a7a8bda021932a3547e6553cb8980273
The CRC value represents MD5 hash formed from the contents of XML file. It includes data from <ROOT> element (<ROOT> element inclusive) to the row before CRC section (the signs CR, LF or both inclusive). The evaluation of CRC value is important for XML Import and XML Repository.
The evaluation of CRC value:
- the section is included in data :
- MD5 hash corresponds to this value - data have not been modified
- MD5 hash differs from this value - data have been modified
- the section is not included in data - it is not possible to define whether data have been modified
The evaluation of CRC value influences the validity of ModifyTime attribute in TObjItemData structure of <CRGRECORDS> section. It becomes evident at XML Import as follows:
- if the CRC value is valid the modify time of object is set on the value of ModifyTime attribute from XML file
- if the CRC value is invalid the modify time of object is set on the time of XML file or on the current time (if the time of XML file was undefined)
- if the CRC value was invalid or was not in XML file and, before the XML Import, the time to be changed is equal to the primary modify time of object the XML Import will change this modify time to the current time
OBJLIFELOGS reserved section
The example of section:
(the complete example is here)
<tObjLifeLogData> <name>U.TimeSlice</name> <state>OLA_CREATED</state> <modify_time>08.10.2009 08:16:23.761</modify_time> <user_name>s</user_name> <process_name>WS1JSTF2.CNF</process_name> <computer_name>WS1JSTF2</computer_name> <log_type>OLT_CONFIG</log_type> <comment_text/> </tObjLifeLogData>
tObjLifeLogData structures represent the logs about the object history.
Properties of log structure:
- name in logs can differ from name of object (as the object could has been renamed)
- uid and id are not in log, because they are directly in object
- only those logs are imported to the target configuration that have not been inserted in it for the given object
Supported value types of structure attributes
A supported value types of the structure attributes are:
Enumerated type | Description of value | Example of element in XML file |
---|---|---|
T_RECORD_NAME | Internal name of structure. | Tag name of structure |
T_RECORD | Value of structure type. | Nested structure <tCalcData> in <tCalcData_Full>. |
T_ARRAY | Value of structure array type of the same type. | Nested structure array <Tprvok_pola_?> v <STRIP_DATA>. |
T_HOBJ | Object name. | <ParentId>DIAGRAMS</ParentId> |
T_HOBJ_KEY | Object name which is a key item. | <ID_RESOURCE>Home_Pjanko</ID_RESOURCE> |
T_VOBJ | Object name, row and column. | <CtrlObject>P.IF500_RS_WatchDog</CtrlObject> |
T_BOOLEAN | Enumerated type (True or False). | <Read_Only>False</Read_Only> |
T_BITSET | Array of enumerated types (enumerated values). | <IsValueDelay>Off</IsValueDelay> |
T_ENUM | Enumerated type (enumerated values). | <Typ>POINT</Typ> |
T_SIGNED_INT | Integer value <-2147483647 .. 2147483648>. | <TransPalIdx>0</TransPalIdx> |
T_UNSIGNED_INT | Integer value <0 .. 4294967295>. | <Id>200449</Id> |
T_SIGNED_INT_KEY | Integer key value <-2147483647 .. 2147483648>. | <grObjectNr>1163</grObjectNr> |
T_UNSIGNED_INT_KEY | Integer key value <0 .. 4294967295>. | <Row>0</Row> |
T_FLOAT | Floating point. The values greater than 1.0E+38 will be interpreted as the value 1.0E+38 and the values less than -1.0E+38 will be interpreted as the value -1.0E+38. | <BaseValue>1.00000000000000E+00</BaseValue> |
T_D2TIME | Value modifying a time and date. | <ModifyTime>18.07.2003 11:52:09.674</ModifyTime> |
T_STRING | Text with defined length. | <PassCode>ROOT_CFGRECORDS_TUserData_PassCode</PassCode> |
T_BOUNDED_STRING | Text with defined maximal length. | <Name>D.PIPA_CHSO2_Mh</Name> |
T_UNBOUNDED_STRING | Text with unlimited length. | <statement>TextTextTextTextText</statement> |
Value types can be:
- structured - T_RECORD and T_ARRAY
- simple - all the others
The string values T_STRING, T_BOUNDED_STRING or T_UNBOUNDED_STRING can be:
- SDT_NORMAL - normal string
- SDT_EXPRESSION - string of expression type
- SDT_RAW_DATA - string defining the binary data
Properties of SDT_RAW_DATA type:
- attribute of SDT_RAW_DATA type indicates that XML file has the binary file
- data of binary file represents the real value of the attribute of SDT_RAW_DATA type
- the value of attribute of SDT_RAW_DATA file, stated in XML file, contains the nesting of attribute (it is ignored)
- XML Export saves the binary file with name <object_name>_<attribute_nesting>.bin
- XML Import searches the binary file with name <xml_file_name>_<attribute_nesting>.bin
- if the object name in XML file is not renamed (element <Name>), then both XML Export and XML Import works with the binary file of the same name (e.g. U.UserVar_ROOT_CFGRECORDS_TUserData_PassCode.bin) that is placed in the same directory as XML file (it is its necessary part)
Properties of T_ARRAY type:
- item name is in form ItemName_[X] (instead of [X] is either a value range from 0..N or the values of enumerated type)
- the items can be of T_RECORD type or single type
Example of XML file representing of object of D2000 System
The following example demonstrates the saving of the object of USER_VAR type with the name U.TimeSlice into XML file:
<?xml version="1.0" encoding="windows-1250"?> <!--$Date: 2012/07/04 05:05:23 $ $Revision: 1.10 $ $Author: pbrezina $ $ExpSubDir: Common\Planner $--> <ROOT> <REFERENCES> <HOBJ_REF> <uid>A25DED0E4DA94B4895A119370E3AF4FB</uid> <name>SV.Limits</name> <objType>D2RECORD</objType> <valType>Rec</valType> </HOBJ_REF> <COL_REF> <col_idx>1</col_idx> <col_name>VHL</col_name> <col_valType>Int</col_valType> </COL_REF> <HOBJ_REF> <uid>USER_VAR</uid> <name>USER_VAR</name> <objType>SYSTEM</objType> <valType>NAN</valType> </HOBJ_REF> </REFERENCES> <CFGRECORDS> <TObjItemData> <Id>0</Id> <Name>U.TimeSlice</Name> <Descript>Time Slice</Descript> <Typ>USER_VAR</Typ> <ParentId>USER_VAR</ParentId> <Value_Type>TmR</Value_Type> <CreateTime>08.10.2009 08:10:31.366</CreateTime> <ModifyTime>08.10.2009 08:18:02.938</ModifyTime> <Text_Palette/> <Read_Only>False</Read_Only> <TECH_UNIT/> <UseLimits>False</UseLimits> <VHL>1.00000000000000E+38</VHL> <HL>1.00000000000000E+38</HL> <LL>-1.00000000000000E+38</LL> <VLL>-1.00000000000000E+38</VLL> <VHL_ID>SV.Limits[1]^VHL</VHL_ID> <HL_ID/> <LL_ID/> <VLL_ID/> <Hysterezia>0.00000000000000E+00</Hysterezia> <TransPalIdx>0</TransPalIdx> <Hidden>False</Hidden> <uuid>5CB809E9342B7A46BD790A8C7D14C69E</uuid> </TObjItemData> <tUserVarData_Full> <tUserVarData> <MANUAL>True</MANUAL> <MANUAL_VAL/> <FLAGS/> <VALUE_TIME>08.10.2009 08:10:31.379</VALUE_TIME> <MONITOR>False</MONITOR> <SAVE_VALUE>True</SAVE_VALUE> </tUserVarData> <startVal/> </tUserVarData_Full> </CFGRECORDS> <MEMBEROFLOGGROUP> <member>SELT\CD8FD25EF8A690341B111F5274CDB5AB</member> </MEMBEROFLOGGROUP> <MEMBEROFRESGROUP> <member>Home_s\04CB44144B2CD8E46955D846D30B0F72</member> </MEMBEROFRESGROUP> <CRC>a7a8bda021932a3547e6553cb8980273</CRC> <OBJLIFELOGS> <tObjLifeLogData> <name>U.TimeSlice</name> <state>OLA_CREATED</state> <modify_time>08.10.2009 08:16:23.761</modify_time> <user_name>s</user_name> <process_name>WS1JSTF2.CNF</process_name> <computer_name>WS1JSTF2</computer_name> <log_type>OLT_CONFIG</log_type> <comment_text/> </tObjLifeLogData> </OBJLIFELOGS> </ROOT>
Related pages:
Pridať komentár