To manually configure a Content Validation rule using XPath:
-
Enter a meaningful name for this XPath content filter.
-
Click the Add button to add a new XPath expression.
Alternatively, you can select a previously configured XPath
expression from the drop-down list.
-
In order to resolve any prefixes within the XPath expression, the
namespace mappings (i.e. Prefix,
URI) should be entered in the table.
As an example of how this screen should be configured, consider the
following SOAP message:
| | |
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" id="sig1">
...............
...............
...............
...............
</dsig:Signature>
</soap:Header>
<soap:Body>
<prod:product xmlns:prod="http://www.company.com">
<prod:name>SOA Product</prod:name>
<prod:company>Company</prod:company>
<prod:description>WebServices Security</prod:description>
</prod:product>
</soap:Body>
</soap:Envelope>
| |
| | |
|
The following XPath expression evaluates to true if the
<company> element contains the value Company :
XPath Expression: //prod:company[text()='Company']
In this case, you must define a mapping for the prod
namespace as follows:
Prefix |
URI |
prod |
http://www.company.com |
In another example, the element to be examined by the XPath expression
belongs to a default namespace. Consider the following SOAP message:
| | |
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" id="sig1">
...............
...............
...............
...............
</dsig:Signature>
</soap:Header>
<soap:Body>
<product xmlns="http://www.company.com">
<name>SOA Product</name>
<company>Company</company>
<description>Web Services Security</description>
</product>
</soap:Body>
</soap:Envelope>
| |
| | |
|
The following XPath expression evaluates to true if the
<company> element contains the value
Company :
XPath Expression: //ns:company[text()='Company']
Because the <company> element belongs to the default
(xmlns ) namespace (http://www.company.com ,
you must make up an arbitrary prefix (ns ) for use in the
XPath expression, and assign it to http://www.company.com .
This is necessary to distinguish between potentially several default
namespaces which may exist throughout the XML message. The following
mapping illustrates this:
Prefix |
URI |
ns |
http://www.company.com |
|