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 dropdown.
-
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 it is necessary to define a mapping for the
prod namespace as follows:
Prefix |
URI |
prod |
http://www.company.com |
Let's look at another example. This time the element that is 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 |
|