I have a policy that changes the case of an attribute to proper name case. The problem I have is that the attribute could be multi-valued. Wheat I need is the ability to set the "current-node" local variable based on formatting, but that is read only obviously. So I need another local variable that is a nodeset that I can add to, but how do you add a value to a node to an existing nodeset?

Here is my policy with generally what I am trying to do:

<rule>
<description>Format School Name</description>
<conditions>
<and>
<if-op-attr name="SCHOOL_NAME" op="available"/>
</and>
</conditions>
<actions>
<do-for-each>
<arg-node-set>
<token-op-attr name="SCHOOL_NAME"/>
</arg-node-set>
<arg-actions>
<do-set-local-variable name="vCaseName" scope="policy">
<arg-string>
<token-map dest="surnames" src="surnames" table="\[root]\edu\uthidmdev\servers\DRIVERS\DriverSet1\Lookup Tables\Mixed Case">
<token-local-variable name="current-node"/>
</token-map>
</arg-string>
</do-set-local-variable>
<do-if>
<arg-conditions>
<and>
<if-local-variable mode="regex" name="vCaseName" op="equal">..*</if-local-variable>
</and>
</arg-conditions>
<arg-actions>
<do-set-local-variable name="current-node" scope="policy">
<arg-string>
<token-local-variable name="vCaseName"/>
</arg-string>
</do-set-local-variable>
</arg-actions>
<arg-actions>
<do-if>
<arg-conditions>
<and>
<if-local-variable mode="regex" name="current-node" op="equal">.*-.*</if-local-variable>
</and>
</arg-conditions>
<arg-actions>
<do-set-local-variable name="vNameArray" scope="policy">
<arg-node-set>
<token-split delimiter="-">
<token-local-variable name="current-node"/>
</token-split>
</arg-node-set>
</do-set-local-variable>
<do-set-local-variable name="vNameCased" scope="policy">
<arg-node-set>
<token-op-property name="nothing"/>
</arg-node-set>
</do-set-local-variable>
<do-for-each>
<arg-node-set>
<token-local-variable name="vNameArray"/>
</arg-node-set>
<arg-actions>
<do-if>
<arg-conditions>
<and>
<if-local-variable mode="nocase" name="vNameCased" op="not-equal"/>
</and>
</arg-conditions>
<arg-actions>
<do-set-local-variable name="vNameCased" scope="policy">
<arg-string>
<token-local-variable name="vNameCased"/>
<token-text xml:space="preserve">-</token-text>
<token-upper-case>
<token-substring length="1">
<token-local-variable name="current-node"/>
</token-substring>
</token-upper-case>
<token-lower-case>
<token-substring start="1">
<token-local-variable name="current-node"/>
</token-substring>
</token-lower-case>
</arg-string>
</do-set-local-variable>
</arg-actions>
<arg-actions>
<do-set-local-variable name="vNameCased" scope="policy">
<arg-string>
<token-upper-case>
<token-substring length="1">
<token-local-variable name="current-node"/>
</token-substring>
</token-upper-case>
<token-lower-case>
<token-substring start="1">
<token-local-variable name="current-node"/>
</token-substring>
</token-lower-case>
</arg-string>
</do-set-local-variable>
</arg-actions>
</do-if>
</arg-actions>
</do-for-each>
<do-set-local-variable name="current-node" scope="policy">
<arg-string>
<token-local-variable name="vNameCased"/>
</arg-string>
</do-set-local-variable>
</arg-actions>
</do-if>
<do-if>
<arg-conditions>
<and>
<if-local-variable mode="regex" name="current-node" op="equal">.*\s.*</if-local-variable>
</and>
</arg-conditions>
<arg-actions>
<do-set-local-variable name="vNameArray" scope="policy">
<arg-node-set>
<token-split delimiter="-">
<token-local-variable name="current-node"/>
</token-split>
</arg-node-set>
</do-set-local-variable>
<do-set-local-variable name="vNameCased" scope="policy">
<arg-node-set>
<token-op-property name="nothing"/>
</arg-node-set>
</do-set-local-variable>
<do-for-each>
<arg-node-set>
<token-local-variable name="vNameArray"/>
</arg-node-set>
<arg-actions>
<do-if>
<arg-conditions>
<and>
<if-local-variable mode="nocase" name="vNameCased" op="not-equal"/>
</and>
</arg-conditions>
<arg-actions>
<do-set-local-variable name="vNameCased" scope="policy">
<arg-string>
<token-local-variable name="vNameCased"/>
<token-text xml:space="preserve">-</token-text>
<token-upper-case>
<token-substring length="1">
<token-local-variable name="current-node"/>
</token-substring>
</token-upper-case>
<token-lower-case>
<token-substring start="1">
<token-local-variable name="current-node"/>
</token-substring>
</token-lower-case>
</arg-string>
</do-set-local-variable>
</arg-actions>
<arg-actions>
<do-set-local-variable name="vNameCased" scope="policy">
<arg-string>
<token-upper-case>
<token-substring length="1">
<token-local-variable name="current-node"/>
</token-substring>
</token-upper-case>
<token-lower-case>
<token-substring start="1">
<token-local-variable name="current-node"/>
</token-substring>
</token-lower-case>
</arg-string>
</do-set-local-variable>
</arg-actions>
</do-if>
</arg-actions>
</do-for-each>
<do-set-local-variable name="current-node" scope="policy">
<arg-string>
<token-local-variable name="vNameCased"/>
</arg-string>
</do-set-local-variable>
</arg-actions>
</do-if>
</arg-actions>
</do-if>
</arg-actions>
</do-for-each>
</actions>
</rule>