Filtering XML Services Messages
The ChangeMan ZMF XML Services API, like all text markup languages, is verbose. Occasionally, when large volumes of data are returned in response to a request, the verbosity of XML can overwhelm working storage capacity or severely degrade performance. To address this issue, Serena XML supports custom result filtering for XML services that accept <request>
subtags in the request message and return <result>
tags in the reply. This is accomplished by using the optional <includeInResult>
tag in the <request>
data structure.
<includeInResult>
Tag
The <includeInResult>
tag applies to all XML services with explicit <request>
subtags in the request message and explicit <result>
subtags in the reply.
The <includeInResult>
tag explicitly identifies the subtags to include in the <result>
tags returned in the XML reply message. The tag is repeatable to accommodate multiple <result>
subtags. If used, only the subtags explicitly named in an instance of <includeInResult>
will be returned. All other subtags normally returned in the <result>
by the service are suppressed.
The <includeInResult>
tag filters returned tags only. XML Services uses this tag to postprocess reply messages and strip out extraneous tags as it builds each <result>
data element. The <includeInResult>
tag has no effect on the filtering applied by a service when identifying which records to process or include in a report.
An example of the <includeInResult>
tag in a package general search follows. This example requests a search for all packages in frozen status. But the full set of <result>
tags is not desired in the reply; instead, only the <package>
tag and <auditReturnCode>
will be returned.
Data structure details for the <includeInResult>
tag appear in Exhibit 3-9.
XML Example — Filtering a General Package Search with <includeInResult>
<?xml version="1.0" encoding="UTF-8"?>
<service name="PACKAGE">
<scope name="GENERAL">
<message name="SEARCH">
<request>
<searchForFrozenStatus>Y</searchForFrozenStatus>
<includeInResult>package</IncludeInResult>
<includeInResult>auditReturnCode</IncludeInResult>
</request>
</message>
</scope>
</service>
...
Exhibit 3-9. <includeInResult>
Data Structure
Subtag | Use | Occurs | Data Type & Length | Description & Values |
---|---|---|---|---|
<includeInResult> |
Optional in any <request> tag |
0 - ∞ | String (255), variable | Contains desired <result> subtag name without angle brackets. Note: Value is case-sensitive. |
...