The data file is an XML file containing at least one table, which records can refer to records in other table, like a relational database. The content of such a data file is like this :
<?xml version="1.0" encoding="utf-8"?> <dpk:data> <dpk:table label="Table1Label"> <dpk:content DefaultRecordLabelTag="Table1FieldX"> <Table1RecordTag dpk:label="Table1Record1Label"> <Table1Field1>Table1Field1Data1</Table1Field1> <Table1Field2>Table1Field2Data1</Table1Field2> ... </Table1RecordTag> <Table1RecordTag dpk:label="Table1Record2Label"> <Table1Field1>Table1Field1Data2</Table1Field1> <Table1Field2>Table1Field2Data2</Table1Field2> ... </Table1RecordTag> ... </dpk:content> </dpk:table> <dpk:table label="Table2Label"> <dpk:aliases label="%RL%" TableLabel="Table1"> <dpk:alias label="Table1RecordXAlias" TableLabel="Table1"/> </dpk:aliases> <dpk:content DefaultRecordLabelTag="Table2FieldX"> <Table2RecordTag dpk:label="Table2Record1Label"> <dpk:insert RecordAlias="Table2RecordXAlias"/> <Table2Field1>Table2Field1Data1</Table2Field1> <Table2Field2>Table2Field2Data1</Table2Field2> ... </Table2RecordTag> <Table2RecordTag dpk:label="Table2Record2Label"> <dpk:insert RecordAlias="Table2RecordXAlias"/> <Table2Field1>Table2Field1Data2</Table2Field1> <Table2Field2>Table2Field2Data2</Table2Field2> ... </Table2RecordTag> ... </dpk:content> </dpk:table> ... </dpk:data>
The dpk:
prefixed tags or attributes, or the attributes in a dpk:
prefixed tag are keywords recognized by dpkq
and had to be written as is. However, it is possible to use another namespace as dpk
(see dpkq --help
for details).
The DefaultRecordLabelTag
attribute is optional, and allows to specify the tag which value is used for each record as its label. This can be supersede by putting a dpk:label
attribute to the concerned record.
The dpk:aliases
tag can be used to define aliases for records or for tables. When the label
attribute is defined, its value is used to generate an alias for each record of the table which label is given in the TableLabel
attribute, or alias with the TableAlias
attribute. The label
attribute can contain following markers (and should, at least, contain the %RI%
or %RL%
marker):
%RI%
: index of the record,%RL%
: label of the record,%TI%
: index of the table,%TL%
: label of the table,%%
: the %
character.
You can specify an alias for a table with the dpk:alias
tag (which have to be enclosed by a dpk:aliases
tag). The label
attribute specifies the alias label, the TableLabel
attribute the label of the table to which the alias is affected.
The same dpk:alias
tag can be used to explicitly specify a record alias, or supersede record aliases defined with the dpk:aliases
tag. The label
attribute contains the record alias label, and the table owning the record has to be specified by its label or alias by defining a TableLabel
attribute or a TableAlias
attribute. The table related attribute is not needed if the table is specified by its label or alias in the enclosing dpk:aliases
tag.
A dpk:table
can contain several (or no) dpk:aliases
tags, which can contain several (or no) dpk:alias
tag.
In addition of the optional dpk:label
attribute, each record can have a dpk:Handling
attribute, which can contain following values :
Skip
: the record is skipped, i. e. never picked,Ignore
: the record is ignored, as it does not exists.
You can insert in a record the content of the record of another table by using the dpk:insert
tag. The record is specified by its alias with the RecordAlias
attribute, or by its label by the RecordLabel
attribute. When using this latter, you have to specify the owning table by its label or alias by defining the TableLabel
attribute, or the TableAliase
attribute. There can be several (or no) dpk:insert
tag in a record.