here's a curious cat.
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:Erik.Ostermueller@;alltel.com]
> Sent: Thursday, October 17, 2002 4:14 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [castor-dev] SourceGenerator on multiple namespaces
>
>
>
> Vincent wrote:
> >> I also agree with you it would be really nice if
> >> org.exolab.castor.builder.nspackages property worked at runtime.
>
> I have implemented this functionality on my own copy of castor.
> However, we keep the namespace/package mapping in a classpath
> loaded xml file instead of the Castor's Java system property.
> We load the mapping at system start up.
>
> If people are interested, I could post this to the group.
>
> > -----Original Message-----
> > From: Figari, Vincent [mailto:vincent.figari@;sap.com]
> > Sent: Thursday, October 17, 2002 7:53 AM
> > To: [EMAIL PROTECTED]
> > Subject: Re: [castor-dev] SourceGenerator on multiple
> namespaces
> >
> >
> > Hi Christian,
> >
> > I believe Castor instantiates AnyNode after failing to derive
> > a proper class name from the mapping file (if any) or
> from the
> > ClassDescriptor resolver. It also looks like the mapping file
> > is an "all or nothing" strategy so I have not been digging
> > much farther in that direction (although there might be tricks
> > I am not aware of).
> >
> > I also agree with you it would be really nice if
> > org.exolab.castor.builder.nspackages property worked
> at runtime.
> >
> > So currently I provide the unmarshaller with a custom
> > CD resolver
> > which extends
> > org.exolab.castor.xml.util.ClassDescriptorResolverImpl
> > The method I override is:
> > public XMLClassDescriptor resolve(String className,
> > ClassLoader loader);
> > Basically, if the className is not a soap class, I instantiate
> > the classDescriptor corresponding to the className with a
> > Class.forName(), hard-coding the package name from
> where to get
> > the classDescriptor definition, and return it.
> >
> > The custom CD resolver is also a useful approach for extending
> > the castor-generated classes and still loading the
> > generated descriptors.
> >
> > Hope this helps,
> >
> > Vincent
> >
> >
> > -----Original Message-----
> > From: Christian Bj�rnbak [mailto:cb@;touristonline.dk]
> > Sent: Thursday, October 17, 2002 2:27 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: [castor-dev] SourceGenerator on multiple
> namespaces
> >
> >
> > Hi Vincent
> >
> > I have now succesfully generated the classes, thanks..
> >
> > When I do Unmarshaller.unmarshal I now get Envelope
> > object containing a Body
> > element and a Header object within these the ebXML
> > objects are substituted
> > with AnyNode objects.
> >
> > So on to the next problems. You say there are 3 ways to
> > solve the mapping.
> >
> > 1) Map all the namespaces to the same java package..
> > Not nice since a have >
> > 100 classes - very messy...
> >
> > 2) Write a ClassDescriptor Resolver. Is there anywhere
> > I can find an example
> > implementation af a ClassDescriptor resolver??
> >
> > 3) If I do the mapping file do I have to do a complete
> > mapping or only a
> > partial mapping around the namespace changes (from
> > envelope.xsd to
> > msg-header...xsd)?
> >
> > Note to the castor developers: This would be much
> > easier if the
> > org.exolab.castor.builder.nspackages property also
> > worked runtime...
> >
> > /Christian Bj�rnbak
> >
> > On Thursday 17 October 2002 09:30, Figari, Vincent wrote:
> > > Hi Christian,
> > >
> > > About your questions:
> > >
> > > 1) I use the "type" generation option with the same
> > soap xsd file
> > > that you are using and have no problem. I guess the
> > default "element"
> > > generation is not adequate for this kind of xsd.
> > >
> > > 2) Personally I instantiate a Unmarshaller object and
> > feed it with
> > > the FileReader. This looks a more flexible approach,
> > specially for
> > > setting-up the Unmarsahller with your own
> > ClassDescriptor resolver.
> > >
> > > 3) If you use a mapping file, you can explicitly map
> > the xml names
> > > unmarshalled from under the soap <body> to your Java
> > class names.
> > > If you do not use one, Castor will attempt to
> derive a default
> > > class name from the xml name, and find the class in
> > the same package
> > > as the generated soap Body class. This is where the
> > custom ClassDescriptor
> > > mentioned above is a very convenient way of helping
> > Castor to locate
> > > the classes among different packages.
> > >
> > > Finally there seems to be a name space problem when
> > > marshalling a soap message (cf
> > >
> > http://www.mail-archive.com/castor-dev@;exolab.org/msg095
> > 62.html ). I hope
> > > to hear from Arnaud on this one, I am still a bit new
> > to Castor source code
> > > to investigate it myself ;-)
> > >
> > > Hope this helps,
> > >
> > > Vincent
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: Christian Bj�rnbak [mailto:cb@;touristonline.dk]
> > > Sent: Thursday, October 17, 2002 8:39 AM
> > > To: [EMAIL PROTECTED]
> > > Subject: [castor-dev] SourceGenerator on multiple namespaces
> > >
> > >
> > > This is a confirmation of an earlier question
> > including two questions.
> > >
> > > First some background:
> > >
> > > I'm trying to convert an ebXML message which is
> > contained in a SOAP message
> > > into Java using castor.
> > >
> > > An ebXML message instance looks like:
> > >
> > > <?xml version="1.0" encoding="utf-8"?>
> > > <SOAP-ENV:Envelope
> > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > > xmlns:eb="http://www.ebxml.org/namespaces/messageHeader"
> > > xmlns:xlink="http://www.w3.org/1999/xlink">
> > > <SOAP-ENV:Header>
> > > <eb:MessageHeader SOAP-ENV:actor="1" version="1.0">
> > > <eb:From>
> > >
> > <eb:PartyId>mailto:queryresponse@;companyb.com</eb:PartyId>
> > > </eb:From>
> > > <eb:To>
> > >
> > <eb:PartyId>mailto:query@;companya.com</eb:PartyId>
> > > </eb:To>
> > > <eb:CPAId>NULL</eb:CPAId>
> > >
> > >
> > <eb:ConversationId>[EMAIL PROTECTED]</eb:Co
> > nversationId>
> > > <eb:Service
> > eb:type="OTA">HotelBooking</eb:Service>
> > > <eb:Action>OTA_HotelAvailNotifRQ</eb:Action>
> > > <eb:MessageData>
> > >
> > >
> > <eb:MessageId>[EMAIL PROTECTED]</eb:
> > MessageId>
> > >
> > <eb:Timestamp>2001-07-20T9:31:12Z</eb:Timestamp>
> > > </eb:MessageData>
> > > <eb:QualityOfServiceInfo
> > eb:deliverySematics="BestEffort"/>
> > > </eb:MessageHeader>
> > > </SOAP-ENV:Header>
> > > <SOAP-ENV:Body>
> > > <eb:Manifest>
> > > <eb:Reference
> > xlink:href="cid:transfer1@;companya.com"
> > > xlink:type="simple">
> > > <eb:Description>Hotel Availability
> > Notification
> > > Request</eb:Description>
> > > </eb:Reference>
> > > </eb:Manifest>
> > > </SOAP-ENV:Body>
> > > </SOAP-ENV:Envelope>
> > >
> > > Here it's the <SOAP-ENV:Envelope> which is the root,
> > but in the schemas it
> > > the ebXML schema which imports the rest.
> > >
> > > The top of the ebXML schema looks like this:
> > >
> > > <schema
> > >
> > targetNamespace="http://www.oasis-open.org/committees/eb
> > xml-msg/schema/msg-
> > >header-2_0.xsd"
> > xmlns:xml="http://www.w3.org/XML/1998/namespace"
> > >
> > xmlns:tns="http://www.oasis-open.org/committees/ebxml-ms
> > g/schema/msg-header
> > >-2_0.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
> > > xmlns:xlink="http://www.w3.org/1999/xlink"
> > > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> > > xmlns="http://www.w3.org/2001/XMLSchema"
> > elementFormDefault="qualified"
> > > attributeFormDefault="qualified" version="2.0">
> > > <import namespace="http://www.w3.org/2000/09/xmldsig#"
> > >
> > schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsi
> > g-core-schema.xsd">
> > ></import> <import namespace="http://www.w3.org/1999/xlink"
> > >
> > schemaLocation="http://www.oasis-open.org/committees/ebx
> > ml-msg/schema/xlink
> > >.xsd"></import> <import
> > > namespace="http://schemas.xmlsoap.org/soap/envelope/"
> > >
> > schemaLocation="http://www.oasis-open.org/committees/ebx
> > ml-msg/schema/envel
> > >ope.xsd"></import> <import
> > namespace="http://www.w3.org/XML/1998/namespace"
> > > schemaLocation="http://www.w3.org/2001/03/xml.xsd"></import>
> > >
> > > I've added the following namespace mapping into
> > castorbuilder.properties:
> > >
> > > org.exolab.castor.builder.nspackages=\
> > >
> > >
> > http://www.oasis-open.org/committees/ebxml-msg/schema/ms
> g-header-2_0.xsd=to
> >.integration.ebxml.message,\
> >
> http://www.w3.org/2000/09/xmldsig#=to.integration.ebxml.messag
> e.xmldsig,
> \
> > http://www.w3.org/1999/xlink=to.integration.ebxml.message.xlink,\
> >
> http://schemas.xmlsoap.org/soap/envelope/=to.integration.ebxml
> .message.e
> nve
> >lope,\
> http://www.w3.org/XML/1998/namespace=to.integration.ebxml.message.xml
> >
> > Now to the questions:
> >
> > 1) When I generate the classes for the SOAP envelope schema
> (which is
> > attached) the SourceGenerator first generates a
> non-abstract class and
> then
> > asks to overwrite it with an abstract class... What's going on??
> >
> > 2) When I want to unmarshal the ebXML message I do a
> > to.integration.ebxml.message.envelope.Envelope envelope =
> > to.integration.ebxml.message.envelope.Envelope.unmarshal(new
> > FileReader(file)); - Right?
> >
> > 3) In the SOAP Envelope schema the schema type "any" are used
> everywhere
> > ebXML tags should be inserted. How does castor know where
> to find the
> ebXML
> > classes when unmarshalling e.g. SOAP Header element???
> >
> > /Christian Bj�rnbak
> >
> > -----------------------------------------------------------
> > If you wish to unsubscribe from this mailing, send mail to
> > [EMAIL PROTECTED] with a subject of:
> > unsubscribe castor-dev
>
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
> unsubscribe castor-dev
>
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
> unsubscribe castor-dev
>
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
> unsubscribe castor-dev
>
>
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev