Overview
|
The Schema Cache contains XML Schemas that can be used globally by
Schema Validation filters. You can import XML Schemas
from XML Schema files or from WSDL files. WSDL files often contain XML
Schemas that define the elements that appear in SOAP messages. To
facilitate this, the Policy Studio can import WSDL files from the file
system, from a URL, or from a UDDI registry.
When the XML Schema has been imported into the cache and selected in a
Schema Validation filter, the Enterprise Gateway can retrieve
the schema from the cache instead of fetching it from its original location.
This improves the runtime performance of the filter, and also ensures that
an administrator has complete control over the schemas used to validate
messages.
In the Policy Studio navigation tree, you can access the global Schema Cache
by selecting Libraries -> Schemas. The
list of schemas present in the Schema Cache is shown in the tree. You can
view or edit the contents of any of these schemas by clicking the schema
node. The schema contents are displayed in the tab on the right.
At any point, you can manually modify the contents of the schema in the tab
on the right. To save the modified contents to the cache, right-click, and
elect Save.
|
Adding Schemas to the Cache
|
To add an XML Schema to the cache, right-click the Schemas node
in the tree, and select Add Schema. Alternatively, click the
Add Schema link at the top of the Schemas
screen on the right. The Load Schema dialog enables you to load
a schema from an XML Schema file directly or from a WSDL file.
Select the From XML Schema radio button to load the schema directly
from a schema file, and click Next. On the next screen, enter or
browse to the location of the schema file using the field provided. You can also enter
a full URL to pull the schema from a web location. Click the Finish
button to import the schema into the cache. Alternatively, if you wish to load the
schema file from a WSDL file, select the From WSDL radio button on
the Select Schema Source screen, and click Next.
The WSDL file can be located from the file system, from a URL, or from a UDDI registry.
Select the appropriate option and enter or browse to the location of the WSDL file in
the fields provided. If you wish to retrieve the WSDL file from a UDDI registry, click
the WSDL from UDDI radio button, and click the Browse UDDI
button. The Browse UDDI Server for WSDL dialog enables you to connect to
a UDDI and search it for a particular WSDL file. For more information on how to configure
this dialog, see the Retrieving WSDL Files from a UDDI
Directory topic.
|
Testing WSDL Files for WSI Compliance
|
Before loading the schema from a WSDL file, you can check the WSDL file for
compliance with the WS-I Basic Profile. The Basic Profile consists of a set of
assertions and guidelines on how to ensure maximum interoperability between different
implementations of Web Services. For example, there are recommendations on the SOAP
style to use (document/literal ), how schema information is included in
WSDL files, and how message parts are defined to avoid ambiguity for consumers of
WSDL files.
The Policy Studio uses the Java version of the WS-Interoperability Testing Tools to test
imported WSDL files for compliance with the recommendations in the Basic Profile. A report
is generated showing which recommendations have passed and which have failed. While
you can still import a WSDL file that does not comply with the Basic Profile, there is
no certainty that consumers of the Web Service can use it without encountering problems.
Important Note:
Before you run the WS-I compliance test, you must ensure that the Java version of the
Interoperability Testing Tools is installed on the machine on which the Policy Studio is
running. You can download these tools from www.ws-i.org.
To configure the location of the WS-I testing tools, select Window ->
Preferences from the Policy Studio main menu. In the Preferences
dialog, select the WS-I Settings, and browse to the location of the WS-I
testing tools. You must specify the full path to these tools (for
example, C:\Program Files\WSI_Test_Java_Final_1.1\wsi-test-tools ).
For more details on configuring WS-I settings, see the
Policy Studio Preferences topic.
Running the WS-I Compliance Test
To run the WS-I compliance test on a WSDL file, perform the following steps:
- Select Tools -> Run WS-I Compliance Test
from the Policy Studio main menu.
- In the Run WS-I Compliance Test dialog, browse to
the WSDL File or specify the WSDL URL.
- Click OK. The WS-I Analysis tools run in the
background in Policy Studio.
The results of the compliance test are displayed in your browser in a WS-I Profile
Conformance Report. The overall result of the compliance test is displayed in the
Summary section. The results of the WS-I compliance tests are grouped by
type in the Artifact: description section. For example, you can access
details for a specific port type, operation, or message by clicking the appropriate link
in the Entry List table. Each Entry displays the results
for the relevant WS-I Test Assertions.
|
Organizing Schemas with Schema Containers
|
If you intend to add large numbers of schemas to validate different types of requests,
it makes sense to organize these types of schemas into different groups. For example,
if you have a set of schemas that defines types used in requests for a StockQuote Web
Service and another set of schemas used to validate requests for a PurchaseOrder Web
Service, it makes sense to organize each set of schemas into separate groups (for
example, StockQuote Schemas and PurchaseOrder Schemas).
The Policy Studio enables you to add Schema Containers for
this purpose. To add a Schema Container, right-click the Schemas
tree node, and select the Add Schema Container menu option.
Enter a descriptive name for the container in the field provided on the
Schema Container dialog.
You can add related schemas under this container by right-clicking the container,
and selecting the Add Schema menu option. You can then load the
schema directly from an XML Schema file, or indirectly from a WSDL file in the
usual manner.
Furthermore, you can create containers within containers to further organize your
schemas. Right-click an existing container, and select the Add Schema
Container menu option.
A useful feature of Schema Containers is the ability to copy and paste schemas
from one container to another. For example, you can use this to copy schemas to
a Test Schemas container where you can modify them and test
them against incoming requests. To do this, right-click a schema, and select
the Copy menu option. To copy the schema to another container,
right-click the destination container and select the Paste option.
Important Notes:
-
Only one schema is allowed per target namespace in any one container.
This is because schemas are keyed in the cache using the
targetNamespace in the schema. Therefore, all
elements referenced by the imported schema must be in the same container
as the schema. The Policy Studio automatically stores imported and included
schemas in the same container as the top-level schema. However, deleting
schemas from a container that contains elements referenced by other schemas
in the container prevents the set of schemas from successfully validating
incoming requests.
If a schema has no targetNamespace defined, it
is keyed using the full path to the file on the file system.
-
If you add a schema that includes other schemas (using
the
<include> element) to the Schema Cache, the
included schemas are added inline to the top-level parent schema. Because
schemas are keyed by target namespace, and because all included schemas
must belong to the same namespace as the parent schema,
it makes sense to inline the included schemas.
|
Schema Validation
|
The Schema Validation filter is used to validate XML messages
against schemas stored in the cache or in the Web Services Repository.
This filter is found in the Content Filtering category of filters in
the Policy Studio. For more information on configuring this filter, see the
Schema Validation topic.
|
|