Specialized Administration > Supporting Visualization and Publishing > WVS Publish Rules > Evaluating Publish Rules > Introduction > Evaluating Publish Rules Logic > Step 10: Processing <param-set>
  
Step 10: Processing <param-set>
<param-set> elements can appear anywhere between the <rules> tags within the Publish Rules XML file. It is often useful to reference the same <param-set> element from several <publish> elements. The children of a <param-set> element contain information that is part of the Publish Job. The information is contained in the following elements:
post-publish – These elements are used to pass necessary information to the PostPublishDelegate. For more information, see Post-Publishing.
iba – These elements are also used to pass optional information to the PostPublishDelegate. For more information, see Post-Publishing.
In order for global attributes to be set during processing, you first must define the global attribute for the type in the Type and Attribute Management utility. Since the Publish Rules reside in an XML file that contains strings, you need to be aware of how you represent non-string values to pass to the post-publishing delegate. See Working with the Type and Attribute Management Utility for details.
The following is a list of supported global attribute types and an example value for each global attribute:
<iba name="com.ptc.MyTypeBoolean">Yes</iba>
<iba name="com.ptc.MyTypeDateTime">2007-07-13 11:12:32</iba>
<iba name="com.ptc.MyTypeInteger">36</iba>
<iba name="com.ptc.MyTypeRealNumber">0.12321345</iba>
<iba name="com.ptc.MyTypeRealUnitsArea">25 m**2</iba>
<iba name="com.ptc.MyTypeString">string test</iba>
<iba name="com.ptc.MyTypeURL">http://www.ptc.com (PTC)</iba>
worker – This element is used to pass extra information to the Worker if the Worker supports it. The worker is determined by the authoring application of the EPMDocument that is being used during the evaluation.
These elements have an identical structure; each has a ‘name’ attribute to identify the parameter and the text content of the element is the parameter’s value.
<param-set name=”SET1”>
<post-publish name=”name1”>VALUE1</post-publish>
<post-publish name=”name2”>VALUE2</post-publish>
<iba name=”iba_name1”>IBA_VALUE1</iba >
<iba name=”iba_name2”>IBA_VALUE2</iba >
<worker name=”worker_info_name”>WORKER_INFO_VALUE</ worker >
</param-set>
A <param-set> element can have any number of <worker>, <post-publish>, and <iba> elements; however, unlike most of the other evaluation steps, the order of appearance is important. When Step 8 matches a <publish> element, the evaluation process constructs an internal table for each element, for example, a table for <worker>, a table for <post-publish>, and a table for <iba>. The children of the <param-set> element are retrieved in the order they appear in the file.
As each child is processed, the tables are populated with name/value pairs. Parameter names must be unique within each table, but are not required to be unique across tables. (For example, you can have the same <post-publish> name and <iba> name, but you cannot have two <post-publish> names be the same.)
When a child is processed, if its parameter identifier was previously encountered, its table entry is updated with a new parameter value, thus replacing previously encountered values for the same name.
A <param-set> element can also have <include> element children. The <include> element adds the parameters associated with a specified <param-set> to the tables. This is akin to calling a subroutine.
<param-set name=”SET1”>
<include param-set=”COMMON”/>
<post-publish name=”name”>From SET1</post-publish>
</param-set>

<param-set name=”COMMON”>
<post-publish name=”name”>From COMMON</post-publish>
</param-set>
In the above fragment, if the SET1 <param-set> was referenced in the Publish Rules file, the <post-publish> parameter ‘name’ has the value ‘From SET1’ because the <include> element in SET1 appears before the <post-publish> element. If the elements were reversed, the value would be ‘From COMMON’.
The <include> element effectively allows <param-set> elements to be chained together. After the entire chain is processed, processing proceeds to Step 11.