- From: Arthur Ryman <ryman@ca.ibm.com>
- Date: Wed, 20 Jul 2005 14:29:02 -0400
- To: "RDBMS" <RDBMS@aol.com>, www-ws-desc@w3.org
- Cc: "Booth, David \(HP Software - Boston\)" <dbooth@hp.com>
- Message-ID: <OFF24E2334.8BDA44B3-ON85257044.0064504E-85257044.0065863C@ca.ibm.com>
James,
You don't need a WSDL 2.0 editor. Use any XML editor. Just import the wsdl
namespace. See the test suite for examples.
I can't think of any other way to explain the situation. You are
misinterpretting the spec but I can't think of any other way to explain
the situation without repeating myself.
We will try to reword the spec to make the situation clearer. Thx for your
feedback.
Arthur Ryman,
Rational Desktop Tools Development
phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca
intranet: http://labweb.torolab.ibm.com/DRY6/
"RDBMS" <RDBMS@aol.com>
07/20/2005 01:23 PM
Please respond to
"RDBMS"
To
Arthur Ryman/Toronto/IBM@IBMCA
cc
"Booth, David \(HP Software - Boston\)" <dbooth@hp.com>
Subject
Re: Whoops - Example is invalid upate attached
Hi Again,
I was aware of point #1 from your response. I had provided an XML
instance document to ensure you could test/validate that the schemas
(schema hierarchy) were functional and valid.
Although, you could also imply a simple analogy where the XML instance
document I provided is somewhat similar to what should be encapsulated
within the <SOAP:body/> of the SOAP envelope if the corresponding WSDL
applied SOAP for the encoding.
I have quoted here the text from the WSDL 2.0 primer that had inspired my
concern and various comments:
"... Note that only components defined in the schema itself and components
included by it via xs:include are available to WSDL. Specifically,
components that the schema imports via xs:import are NOT available to
WSDL."
What I am referring to is the last sentence.
Again, going back to my schema hierarchy...
I can consume a schema outside of WSDL (e.g. validate my instance doc) as
a logical "assembly" of schemas. At the "top-level", I only declare
imports for those immediate child schemas of the top-level. One top-level
schema, nothing more - even though I could have numerous layers vertical
and horizontal of schema xs:imports located below.
Given the WSDL 2.0 text quoted above, I am interpreting this as no longer
true when schema is declared with WSDL as xs:import to <types/>.
To reference and consume the exact same "assembled" schema hierarchy from
within a WSDL (e.g. generate a SOAP request instance, where the body will
represent the message context as defined by my schema and its associated
reference to interface and input/output parts), I would now have to
declare 3 separate xs:imports within <types/> - even though the second and
third of the 3 is already declared intrinsically by my schema hierarchy.
Again, application and use of my schema "assembly" outside of WSDL does
not require this. I only deal with the highest "top-Level" schema and its
intrinsic and direct imports. My schema validator will resolve all of the
lower level imports for me. I can rely upon my schema hierarchy and not
manually recreate all of the lower level xs:imports for all schemas
referenced and imported at all the levels below my top-level schema in
order to process and validate. The schema validator does that for me.
With WSDL, I was "hoping" to have the same capability. Yet, that is not
my interpretation of the statement from the WSDL draft. From that
statement, I am interpreting that my lower-level, intrinsically declared
xs:imports that may reference and reside in numerous schemas (modular
sub-schemas) will have to be replicated within the WSDL <types/> rather
than having the WSDL processor and schema validator resolve them naturally
as a schema validator does today based upon the XML Schema recommendation.
I don't have a WSDL 2.0 compliant editor installed in my environment, so I
cannot provide a working example as you have requested. I work with WSDL
.0 and 1.1, but that would be out of context for this discussion as I do
not believe the syntax of <interface/> is supported by those earlier
recommendations.
I thank you for allowing me to monopolize your time (it really is much
appreciated), but I assume that what I have interpreted and described will
not be addressed in the WSDL 2.0 draft.
Thank you again !
J. Bean
P.O. Box 30171
Phoenix, AZ 85046-0171
RDBMS@aol.com
XML-Guy@hotmail.com
----- Original Message -----
From: Arthur Ryman
To: RDBMS ; www-ws-desc@w3.org
Cc: Booth, David (HP Software - Boston)
Sent: Wednesday, July 20, 2005 7:26 AM
Subject: Re: Whoops - Example is invalid upate attached
James,
Your schema now validates, but you are still using an XML instance
document as your example, not a WSDL document. As I mentioned in my
original response, I think the confusion really is what you understand by
WSDL reference schema elements. Let me summarize:
1. If an XML instance document contains an element, e.g.
<name:SIN>123456789</name:SIN>, then it does NOT have to contain an
<xs:import> for the namespace. All you need is a namespace declaration and
possibly a schemaLocation.
2. If an XSD or WSDL document references an element via QName, e.g.
<wsdl:input element="name:SIN"/>, then it must contain an <xs:import> for
the namespace.
If this is still not clear, please create a valid WSDL example that
illustrates your problem. If you'd like to see some examples of valid WSDL
documents, look at the primer [1] or the test suite [2].
[1]
http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20-primer.html
[2] http://dev.w3.org/cvsweb/2002/ws/desc/test-suite/documents/good/
Arthur Ryman,
Rational Desktop Tools Development
phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca
intranet: http://labweb.torolab.ibm.com/DRY6/
"RDBMS" <RDBMS@aol.com>
07/20/2005 08:14 AM
Please respond to
"RDBMS"
To
Arthur Ryman/Toronto/IBM@IBMCA
cc
"Booth, David \(HP Software - Boston\)" <dbooth@hp.com>
Subject
Re: Whoops - Example is invalid upate attached
Hi Arthur, David,
Here is another example that might be better. It validates with msxml4 and
with XML Spy.
In this case, the hierarchy is A -> B -> C
The instance document will represent structure and containers that are
declared from all 3 schemas.
Yet, SchemaA (top-level) only imports SchemaB. It does not import
SchemaC.
SchemaB imports SchemaC.
Sorry about the validation error (again). Proves that haste can cause
problems ;-)
Although very simple and a single branch, this example is more
representative of the schema reuse and assembly scenario I run into quite
a lot. You could extend this simple model horizontally and vertically with
additional imports.
Also, and if I am still interpreting the WSDL draft correctly, it requires
that I have to declare imports for all 3 schemas in <types/>, rather than
just SchemaA.
Thanks again,
J. Bean
P.O. Box 30171
Phoenix, AZ 85046-0171
RDBMS@aol.com
XML-Guy@hotmail.com
----- Original Message -----
From: Arthur Ryman
To: RDBMS
Cc: Booth, David (HP Software - Boston) ; www-ws-desc@w3.org
Sent: Tuesday, July 19, 2005 9:32 PM
Subject: Re: Whoops - Example is invalid upate attached
James,
Ignore, my comments below. After looking closer, I now see you wanted me
to look at SchemaA.xsd, not the instance document. It says:
<!-- Note that the import below ONLY imports schema "B". Schema
"C" is imported by declaration from wityhin schema "B", so you will not
see it here -->
The following reference is invalid:
<xs:element ref="C:ElementFromC" minOccurs=
"1"/>
You claimed it was valid, but I validated it myself and got the following
error message:
Severity Description Resource In Folder Location
Creation Time
2 src-resolve.4.2: Error resolving component 'C:ElementFromC'. It
was detected that 'C:ElementFromC' is in namespace 'http://www.testC.com',
but components from this namespace are not referenceable from schema
document
'file:///D:/workspaces/James/Example/data/RLG/MISC/WSDL%202.0%20Problem%20Examples/SchemaA.xsd'.
If this is the incorrect namespace, perhaps the prefix of 'C:ElementFromC'
needs to be changed. If this is the correct namespace, then an appropriate
'import' tag should be added to
'file:///D:/workspaces/James/Example/data/RLG/MISC/WSDL%202.0%20Problem%20Examples/SchemaA.xsd'.
SchemaA.xsd Example/data/RLG/MISC/WSDL 2.0 Problem Examples
line 18 July 20, 2005 12:23:32 AM
The error message says you need to import namespace C.
I am using the Xerces parser for validation (actually integrated in the
Eclipse Web Tools Platform which you can download from [1]. How are you
validating your schema?
[1] http://eclipse.org/webtools
Arthur Ryman,
Rational Desktop Tools Development
phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca
intranet: http://labweb.torolab.ibm.com/DRY6/
Arthur Ryman/Toronto/IBM
07/20/2005 12:00 AM
To
"RDBMS" <RDBMS@aol.com>, WSD WG
cc
"Booth, David \(HP Software - Boston\)" <dbooth@hp.com>
Subject
Re: Whoops - Example is invalid upate attachedLink
James,
I now undertand the confusion. In your example, you give an XML instance
document, ExampleSchemaHierarchy.xml, that contains elements declared in
the other schemas. In that case there is no need for an xs:import.
That is not what we are talking about in the WSDL 2.0 spec. There we are
taking about refering to element declarations via QNames.
When a WSDL document refers to an element declaration by QName, for
example to declare the messages in an operation, then it must have an
xs:import for the namespace of the element it is refering to. This is just
like in XSD when you build up a new element declaration from other element
declarations.
Arthur Ryman,
Rational Desktop Tools Development
phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca
intranet: http://labweb.torolab.ibm.com/DRY6/
"RDBMS" <RDBMS@aol.com>
07/19/2005 03:57 PM
Please respond to
"RDBMS"
To
Arthur Ryman/Toronto/IBM@IBMCA, "Booth, David \(HP Software - Boston\)"
<dbooth@hp.com>
cc
Subject
Whoops - Example is invalid upate attached
Hi David, Arthur,
In my haste, I found that I had incorporated and invalid type declaration.
In the attached, I've corrected it.
Thanks !
J. Bean
P.O. Box 30171
Phoenix, AZ 85046-0171
RDBMS@aol.com
XML-Guy@hotmail.com
Received on Wednesday, 20 July 2005 18:29:17 UTC