Function Name |
Length | ||
Category |
String | ||
Icon |
![]() |
||
Description |
Return the length of a String | ||
Inputs |
|
||
Outputs |
|
||
Properties |
|
The Data Mapper String Length function calculates the length of an input String. If you need to carry out transformations on your input data, you may need to calculate the length of particular items as part of that process. For this reason, the Length function is most likely to be used in conjunction with other mapping functions. To apply the String Length transform function, use the following process:
Create a new Data Mapper file, dragging your XML data source and targets into the editor area. For this example we are using office_source.xsd, an XML Schema Definition inferred from the following source:
Source XML |
Copy Code
|
---|---|
<office> <file type="corporate"> <ref>12345abcde</ref> <title>Smith and Mitchell</title> </file> <file type="individual"> <ref>54321fghij</ref> <title>James Black</title> </file> </office> |
For our target schema we will be using office_target.xsd, inferred from the following XML:
Target XML |
Copy Code
|
---|---|
<associates> <account reference="98765klmno"> <category>Organisation</category> <contact>Jane Johnson</contact> </account> <account reference="56789pqrst"> <category>Corporate</category> <contact>Mary Simpson</contact> </account> </associates> |
The data models contact files for an organisation. Here is the Data Mapper with Source and Target imported:
Drag the String Length function from the Component Palette into the mapping area:
The String Length function takes a single input and gives a single numerical output. The input should be connected to the source text String item to calculate the length of. The output should be connected to the target item, in most cases another function rather than an item in the XML Writer. Let's assume in this case that we want all but the first 5 characters in the String, for demonstration. Add a Constant to the Mapper:
Alter the Constant properties by right-clicking it, choosing show Properties. Select an integer type from the drop-down list and enter 5 as the Value.
We will use the Right function to retrieve all of the input String except the first 5 characters. Drag a Right function onto the Mapper:
Assuming we know nothing about the length of the input String except that we don't want the first 5 characters, we need to calculate the length of the String we want the Right function to return. To achieve this, we need a Subtract function added to the Mapper:
Let's start making some connections. First, connect the "ref" item in the XML Reader to the Length function input and the Length output to the first Subtract input:
Next connect the Constant output to the second Subtract input:
Now the output of the Subtract function is what we want to use as the Length input for the Right function, so connect it, also connecting the "ref" item in the XML Reader to the String input of the Right function:
Finally, connect the Right function output to the "reference" input in the XML Writer and complete the remaining connections between Reader and Writer:
We can now execute the transform by pressing Shift-F5 or the Execute button (). The transform is applied and the file we selected as output opens in the editor:
Output XML |
Copy Code
|
---|---|
<associates> <account reference="abcde"> <category>corporate</category> <contact>Smith and Mitchell</contact> </account> <account reference="fghij"> <category>individual</category> <contact>James Black</contact> </account> </associates> |
The reference attribute value has been restricted to all but the first 5 characters as part of the mapping process. In this case we knew that the String as a whole was length 10, but in reality you may not always know the total length of your input data Strings, which is when the Length function may prove useful.
This is a scalar function so the standard rules apply if multiple values are presented to one or more inputs.