Indicated by type="Transform"
, this attribute resolver applies one or more regular expressions to an input attribute, either replacing its values, or generating new attributes.
<OutOfProcess>
element's <Library>
element.The transforms to apply are specified using <Regex>
child elements. Each element specifies a transform rule to apply to each value of the designated input attribute(s).
A match
attribute specifies a regular expression to match against the input value(s). It can contain parentheses to specify capturing groups. The content of the element is a replacement expression that can contain group placeholders to match the capturing groups (e.g., $1, $2, etc.). If the expression does not match, the value is passed through unchanged.
A dest
attribute, if present, 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.
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".
Attributes
Name | Type | Default | Description |
---|---|---|---|
source | string | Identifies 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
Content A replacement expression that can contain group placeholders to match the capturing groups (e.g., $1, $2, etc.). If the expression does not match, the value is passed through unchanged. |
Example
This is overly simplistic, and assumes the source values are in a particular format.
<AttributeResolver type="Transform" source="displayName"> <Regex match="^(.+) (.+)$" dest="givenName">$1</Regex> <Regex match="^(.+) (.+)$" dest="sn">$2</Regex> <Regex match="^(.+) (.+)$">$2, $1</Regex> </AttributeResolver>