Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Gateway for 1D Data

Expand Attributes Mapping

  • Last UpdatedNov 04, 2025
  • 4 minute read

Expand Attributes mapping enables you to treat a string in an attribute as a comma-separated list with syntax to control the separation character and refer to each item in the list by its index value when assigning its value to specific attributes.

The ExpandAttributes requires you to specify the name of the attribute containing the string list. Optional parameters control the separator and refers to a specific tableIndex and headerRow.

The ExpandAttributes element can have two attributes, name and separator. The default separator is comma. You can have multiple attribute blocks, which permit the Name and Value to be specified. The Name attribute cannot be empty.

For example, suppose an input attribute called Content has the value Material, Steel, you can create a new attribute called Material with a Value of Steel using the following mapping.

<ExpandAttributes name = "Content">
<Attribute>
<Name index = "1" />
<Value index = "2" />
</Attribute>
</ExpandAttributes>

In this case, the separator does not need to be defined as the default value is comma.

Note: The Attribute section in the ExpandAttributes mapping is different from the Attribute section in the Attributes mapping, see Attribute Mapping, so the functionalities of Attribute in ExpandAttributes mapping will not be the same as in Attribute mapping.

If the input Content attribute has the value "Pump1 : 10 : kPa", then a new property can be created with the below mapping.

<ExpandAttributes name = "Content" separator = ":" >
<Attribute>
<Name index = "1" />
<Value index = "2" />
<Units index = "3" />
</Attribute>
</ExpandAttributes>

The values of Name, Value and Units elements are taken directly from the index positions 1-3 of the expanded string to create a Property with Name = "Pump", Value = "10" and Units = "kPa" in the output EIWM.

New row objects can also be created from a table that has a header index such that the attributes of each object have Names derived from the relevant header row's indexed values. For example, if the input has two tables:

Table: Plant Local to Cambridge Region

Identifier

Area

Type

Number

Batch

P-101

Cambridge

Hydo

1

D-5670

Valve 26

Histon

Hydro

1

Table: Parts Needed for Hydro Pumps

Part ID

Name

Material

Size

B_ST_8

Bolt

Stainless Steel

8 mm

G_BN_10

Gasket

Black Nylon

20 diam inner, 30 outer

The optional tableIndex and headerRow parameters are used to set which table and header rows should be used to generate the attributes for each of the non-header rows in a table. To access the headerRow’s values you need to specify the headerIndex:

You can also set all the values to create a new attribute, although in this case the Content attribute becomes irrelevant. Consider the following Expand Attribute mapping:

<ExpandAttributes name = "Content" separator = ":">
<Attribute>
<Name value = "Pump" />
<Value value = "Sequence" />
</Attribute>
</ExpandAttributes>

This mapping entry adds a new attribute whose Name will be Pump and Value will be Sequence.

Either value or index attribute can be used with Name, Value and Units elements, but not both for the same element.

The optional tableIndex and headerRow parameters are used to set which table and header rows should be used to generate the attributes for each of the non-header rows in a table. To access the headerRow’s values, you need to specify the headerIndex:

<ExpandAttributes name = "Content" separator = ":" tableIndex="1" headerRow="1" />
<Attribute>
<Name headerIndex="1" />
<Value index="1" />
</Attribute>
<Attribute>
<Name headerIndex="2" />
<Value index="2" />
</Attribute>
<ExpandAttributes />
<ObjectID value="[Identifier]" />

The value of Name element is taken from the index position 1 of the Content attribute value of table 1 and Value from the index position 2 of the headerRow object of table 1. The ObjectID is set to the value of the Identifier attribute previously created in the ExpandAttributes.

The above mapping will result in new characteristics to be created for each non-header row of table 1:

<Object>
<ID> P-101 </ID>
<Characteristic>
<Name> Identifier </Name>
<Value> P-101 </Value>
</Characteristic>
<Characteristic>
<Name> Area </Name>
<Value> Cambridge </Value>
</Characteristic>
</Object>
<Object>
<ID> Valve 26 </ID>
<Characteristic>
<Name> Identifier </Name>
<Value> Valve 26 </Value>
</Characteristic>
<Characteristic>
<Name> Area </Name>
<Value> Histon </Value>
</Characteristic>
</Object>

More than one table in a page can be processed by either specifying the relevant tableIndex values:

<ExpandAttributes name = "Content" separator = ":" tableIndex="1, 2" headerRow="1" />

Or choosing all the tables:

<ExpandAttributes name = "Content" separator = ":" tableIndex="all" headerRow="1" />

Either index or headerIndex attributes can be used with Name, Value and Units element. Both index and headerIndex cannot be used together.

Either value or index attribute can be used with Name, Value and Units element. Both index and value cannot be used together.

Limitation:

The Content attribute should have at least two substring elements for the ExpandAttribute mapping to be applied. This is also applicable in case of headerRow content as well.

Extracting Table Data from PDF Documents

When a PDF document contains data in a table format the rows of the table can be extracted as row objects with attributes named according to the header values in the table by:

  • Selecting to Extract Contents by Word, see Extract Settings.

  • Using the Object Merge Mapping Extension to convert the words in each row into row objects that have an attribute Content containing a comma separated list of the row values, see .Object Merge Mapping

  • Using Expand Attributes Mapping to identify the relevant table and header row and for each row object create attributes named from the header row cells and the values provided in the row cells.

Related Links
TitleResults for “How to create a CRG?”Also Available in