Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Overview

Identified by type="Transform", this attribute resolver this AttributeResolver applies one or more regular expressions to an input attribute, either replacing its values, or generating new attributes.

...

Finally, the caseSensitive attribute specifies whether the containing <Regex> element's match expression is to be interpreted case-sensitively. It is a boolean that defaults to "true".

Reference

Attributes

Name

Type

DefaultReq?

Description

sourcestringYIdentifies the attribute ID of the input attribute(s) to process. All attributes with an ID that matches the value will be evaluated.

Child Element

Name

Cardinality

Description

<Regex>1 or more

Specifies a transform rule to apply to each value of the designated input attribute(s). See above for details on the element function

Attributes

Name

Type

DefaultReq?

Description

matchstringY

Specifies a regular expression to match against the input value(s). It can contain parentheses to specify capturing groups. 

deststring

Specifies the ID of a new attribute to create that will contain the transformed values. If not present, the transformed values replace the original attribute's values "in-place", if and only if the original attribute was a "simple" string-valued attribute. Other attribute types with more complex values cannot be transformed in-place.

Element Content

A replacement expression that can contain group placeholders to match the capturing groups (e.g., $1, $2, etc.). If the the match expression does not match, the value is passed through unchanged.

Example

Warning

This is a bit overly simplistic, and assumes the source values are in a particular format.

The example parses a displayName attribute in the form "first last" and produces two separate attributes to carry each value alone, while also reversing the order in place.

Code Block
<AttributeResolver type="Transform" source="displayName">
    <Regex match="^(.+) (.+)$" dest="givenName">$1</Regex>
    <Regex match="^(.+) (.+)$" dest="sn">$2</Regex>
    <Regex match="^(.+) (.+)$">$2, $1</Regex>
</AttributeResolver>