2.1.4.3 Claims Transformation Rules Processing

Claims transformation rules processing requires the InternalTransformationRules variable to be populated using InputTransformationRulesText and requires all other variables to be initialized (see section 2.1.3 and section 2.1.4.2).

Claims transformation rules processing uses an additional variable called InternalMatchingClaimsList to store temporary data during processing. Each InternalMatchingClaimsList is a list of claims that matches a Sel-condition (section 2.1.4.3.4). InternalMatchingClaimsLists are created dynamically on a per-Rule (section 2.1.4.3.2) basis.

The following state diagram illustrates the logical processing flow, with error handling excluded. Any error encountered during the claims transformation rules processing MUST set ReturnValue to FAILURE, and the processing MUST immediately continue from the Processing End (section 2.1.4.3.10) state.

Claims transformation state machine

Figure 2: Claims transformation state machine

For the purposes of this section, processing is defined as InternalTransformationRules evaluation on the InternalEvaluationContext or InternalTransformationRules action taken using Matching Claims.

The processing MUST begin at the first tag in InternalTransformationRules and MUST proceed depth-first in the order in which the tags are placed.

The processing steps for the critical tags are specified in the following subsections. Those tags not listed MUST be treated as if they have no processing steps and MUST be ignored during processing.