Hi

Since XJC already supports using single package name for multiple
schemas with different namespace by means of passing the -p parameter,
why should this feature be disabled? 

If we pass -xjc-p,<package-name> in the wsdl2java then XJC should (and
does pick) up the single package for all namespaces and builds 1
ObjectFactory.java with createxxx() for all the types. It also generate
the package-info.java with the with namespace that is most frequently
used and in other JAXB classes it creates the XMLElement with the name
and namespace.



One thing I noticed is that JAXBDataBinding class  is actually passing
the default packagename passed to the wsdl2java to XJC. Should it be
doing that? Instead it should just let the user pass JAXB package
through the -xjc argument.

       if (context.getPackageName() != null) {
 
schemaCompiler.setDefaultPackageName(context.getPackageName());
        }

The context.getPackageName is the -p parameter of wsdl2Java (i.e. the
default package for the service interface, fault-class etc. Should we be
really passing the same to databinding compiler - XJC?


Thanks,
Sam

-----Original Message-----
From: Daniel Kulp [mailto:dk...@apache.org] 
Sent: Monday, March 30, 2009 9:11 AM
To: dev@cxf.apache.org
Cc: Eamonn Dwyer
Subject: Re: wsdl2java -p option change


Eamonn,


On Mon March 30 2009 9:25:23 am Eamonn Dwyer wrote:
> It looks like the use of the -p flag with wsdl2java has changed dor
cxf
> 2.2. Now it reports
>
> "-p option cannot be used when wsdl contains mutiple schemas"
>
> for my wsdl, even though the wsdl compiles with version 2.1.4.

Hmm...  I thought that message went in for 2.1.4 as well.  I'm surprised
it 
worked for 2.1.4.

Actually, that error message should change a bit.   -p CAN be used if
you 
provide a unique package for each namespace:

-p http://blah.com=com.blah  -p http://foo.com=com.foo

> The wsdl in question does import other schema, so I reckon that this
is
> causing the error to be reported. Is that correct?

If there are schemas in multiple namespaces, then it should report that
issue.


> If this is the case, is it really valid to say I cannot specify a
> package name now when I import a schema. I can understand it when the
> schema is a 3rd party one, but what if I just have simply factored out
> some schema from the wsdl file? 

Basically, if you have multiple schemas, you NEED to specify a unique
package 
name for each schema so the package-info.java and ObjectFactory.java for
each 
schema is put in a unique location instead of overwriting itself.

-- 
Daniel Kulp
dk...@apache.org
http://www.dankulp.com/blog

Reply via email to