03 December 2018

Table of Contents

1. XML Specification

A XML Specification configuration is used to customize how the default XML Serializer will format the generated XML.

The XML Specification can be inlined within the Payload definition, or put into a separate file in order to allow reuse. The root element for the XML Specification is <XMLSpec>.

There are a number of child elements available for the XMLSpec element that controls the XML format. The table below shows the available child elements along with its data type and a description.

Child Element Kind Default Value Description

<IncludeTableHeaders>

boolean

true

Defines if to include the table column information in the export.

<IncludeTableGroups>

boolean

true

Defines if to include any table column grouping defined on the table.

<IncludeTableContent>

boolean

true

Defines if to include the table content.

<IncludeSettings>

boolean

true

Include settings defined on the table columns or not.

<FlattenStructure>

boolean

false

Defines if the structural information should be ignored. Only applies to expanded business object structures.

<ShowLevel>

boolean

true

Whether or not to include level information for structural data.

<ShowDirection>

boolean

true

Whether or not to include direction (from/to) information for structural data.

<AddColumnId>

boolean

true

Whether or not to include an id per column/header

<AddCellIndex>

boolean

true

Whether or not to generate cell-index

<AddColumnRef>

boolean

true

Whether or not to include reference between cell and column/header

<AddCellValueSize>

boolean

true

Whether or not to add the size (sz) attribute on Cell elements.

<OmitCellValueElement>

boolean

false

Whether or not to omit the "value" element below the "cell".

Note that a column may use select expression that returns multiple values. In such cases when a cell refers to multiple values, each is wrapped inside its own value element.

This may however be omitted in case you only select simple values.

<OmitRootNode>

boolean

false

Whether or not to omit the root-node from the structure.

<OmitEmptyCells>

boolean

false

Whether or not to omit cells having empty values.

<OmitRowAttributes>

boolean

false

Whether or not to omit the extra row attributes such as object-id, type, name, revision, state and relationship type.

<UseColumnName>

boolean

false

Whether or not to use the name of the column as column element instead of using "<cell>" as a generic placeholder.

Note that if this is set to true, you must ensure that your table has set a name on each column.

<TableDataGroupElement>

String

data-groups

If you have data-grouping, this element will be the container element for those.

<TableDataElement>

String

objects

Defines the name of the element holding the actual data from the objects and/or relationships.

<TableColumnsElement>

String

headers

Defines the name of the element holding the columns.

If you have set <IncludeTableHeaders> to FALSE then this element has no meaning.

<TableColumnElement>

String

header

Defines the name of the column element.

See also above regarding the <UseColumnName> element.

If you have set <IncludeTableHeaders> to FALSE then this element has no meaning.

<RowElement>

String

row

Defines the name of the row element. A row represents either a relationship or a businessobject OR both depending on what your data set returns.

The row element may be a static string, or, you can use some predefined macros that during runtime will be substituted with value depending on the current row. These macros are:

${TYPE}

Resolves to the type of object on the row being processed

${NAME}

Resolves to the name of the object on the row being processed

${REVISION}

Resolves to the revision of the object on the row being processed

${STATE}

Resolves to the current state of the object on the row being processed

${POLICY}

Resolves to the policy of the object on the row being processed

${RELTYPE}

Resolves to the relationship type of the relationship on the row being processed

If the resolved value resolves to an empty or null string OR if the value itself does not contain any valid character for an XML element name, the name will fallback to row

<CellElement>

String

cell

Defines the name of the cell element.

See also above regarding the <UseColumnName> element.

<CellValueElement>

String

value

The name of the cell value element. For example if a column contains a select statement that resolves into multiple values, each value is put into separate elements.

If the <OmitCellValueElement> has been set to TRUE this element has no meaning.

<IncludeTableCalculations>

boolean

true

Defines if to include table calculations or not.

<IncludeGroupHeaders>

boolean

true

Defines if to include group headers or not.

If you have set <IncludeTableHeaders> to FALSE then this element has no meaning.

The attribute "rootElement" on the <Payload> element can be used to specify the root element name in the generated payload.

In addition; the attribute "omitRootElement" with value "true" is used to omit the root element. These are valid in case you only have one payload fraction If there are multiple ones, these settings has no impact.