I've just had a bit of education about XML imports.  We have a slight
problem.  Given the pattern:

<schema xmlns:xxx="ZZZ"...>
   <... www="xxx:yyy" .../>
</schema>

we MUST have an import statement like:

<import namespace="ZZZ">

There is ONLY ONE exception:  xsd types are considered built in.  For
example, the following does not need an import:

<schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";...>
   <... type="xsd:int" .../>
</schema>

What does this mean for us?  We treat soapenc types as built-in types, but
they're not, so we have to add imports to all our WSDL that contains
soapenc.  And we should probably check for the import statement in
WSDL2Java.  (I THINK someone at the soapbuilder's interop meeting pointed
this out to us, but we chose to ignore him.)

Here's a condensation of my education if you're interested.  A schema
import (NOT a WSDL import, which is a slightly different beast) has two
attributes:  namespace, schemaLocation.  schemaLocation is optional and is
treated merely as a hint.  Tools can ignore the hint.  Since soapenc types
are treated as built-in by our tools, we would ignore the schemaLocation if
it appeared in a soapenc import statement.  But any other imported type we
would probably depend on the schemaLocation, and if it wasn't there, we'd
be free to throw an exception (which I believe we do).

I'm not in the mood to tackle this right now, but I'll add it to our TODO
list.

Russell Butek
[EMAIL PROTECTED]

Reply via email to