To: www-ws-desc@w3.org
Subject: WSDL Action Item: Review LC75s Table

This is one of my action items ...

> 2005-02-17: Asir to review table on how import and include actually work (added by JJM)

For LC75s, we decided to incorporate a table that describes the visibility of XML Schema components in WSDL. On the call, we formulated the names and number of columns and rows in this table; location of the table; etc. I see some problems with LC75s decision. A copy of the first attempt is:

Table 3-1. Visibility of schema components

Directly in WSDL In schema
xs:import All components from the imported namespace are visible to WSDL (the schema must have an identical targetNamespace). Components imported by the schema itself are NOT visible to WSDL.
xs:include All components included are visible to WSDL (the included schema must NOT have a namespace already). All components included by the schema itself are visible to WSDL (the schema included in the schema must NOT have a namespace already).
wsdl:import The embedded schemas contained in the imported WSDL document are NOT visible to WSDL. n/a
wsdl:include The embedded schemas contained in the included WSDL are visible to WSDL (as long as they share the same targetNamespace). n/a

In this table, ...

Two products are involved: WSDL and XML Schema. This table cuts through multiple levels: XML Representation (xs:import, WSDL), Mapping from XML Representation to Components (xs:import-->schema), and Component Model (embedded schema, schema, components ...) I like to emphasize that this cuts through multiple levels in two products.

Other issues are, this table includes information that is beyond visibility. Example: "the schema must have an identical targetNamespace". But, that is a constraint. Most of these constraints are repetition. They are described in other parts of the spec. 'xs:include' is not allowed in WSDL.

Another observation is, the information in this table is beyond the scope of Section 3, say wsdl:import and wsdl:include elements.

Suggested Alternate Solution ..

WSDL composition model offers four simple possibilities: including description, importing description, importing XML Schema and Embedding XML Schema.

The goal is to describe the visibility of XML Schema components in the WSDL Description component for these four possibilities. In simple terms (recapitulating from different parts of the spec), at the component level (just one level, in one product):

  1. Including Description (description/include) - XML Schema components in the included Description component's {element declarations} and {type definitions} properties are visible.
  2. Importing Description (description/import) - None of the XML Schema Components in the imported Description component are visible.
  3. Importing XML Schema (description/xs:import) - Element Declaration and Type Definition components in the imported namespace are visible.
  4. Embedded XML Schema (description/types/xs:schema) - Element Declaration and Type Definition components in the embedded XML Schema are visible.

Transcribing this into a table:

WSDL Composition
XML Representation
Visibility of XML Schema Components
Including Description    description/include    XML Schema components in the included Description component's {element declarations} and {type definitions} properties are visible
Importing Description description/import    None of the XML Schema Components in the imported Description component are visible
Importing XML Schema    description/xs:import    Element Declaration and Type Definition components in the imported namespace are visible
Embedded XML Schema    description/types/xs:schema    Element Declaration and Type Definition components in the embedded XML Schema are visible
 

Let me frame the questions that we should ask ..

 
Regards,
 
Asir S Vedamuthu
asirv at webmethods dot com
http://www.webmethods.com/