That works. Really sorry about the stupid mistake. And thanks for having
better eyes than me :)

Matthieu

On 3/28/07, Radu Preotiuc-Pietro <[EMAIL PROTECTED]> wrote:

I think that the solution is

<xb:namespace uri="http://www.apache.org/ode/schemas/dd/2007/03";>
    <xb:package>org.apache.ode.bpel.dd</xb:package>
</xb:namespace>

in your .xsdconfig file and

        XmlOptions options = new XmlOptions();
        HashMap otherNs = new HashMap();

        otherNs.put("http://ode.fivesight.com/schemas/2006/06/27/dd";,
            "http://www.apache.org/ode/schemas/dd/2007/03";);
        options.setLoadSubstituteNamespaces(otherNs);
        _dd = DeployDocument.Factory.parse(ddLocation, options);
                                                       =======
in your code.

If this doesn't work, we'll need to look into it in detail (input doc
would then be nice) and see if there is a bug.

Radu

On Wed, 2007-03-28 at 11:54 -0700, Jacob Danner wrote:
> Have you tried loading the type as an xmlobject, getting the value of
> the namespace, and casting to the correct type?
> ie //pcode, please excuse incorrectness
>
> if(xmlobject.getNamespace() == namespace1)
>    type = (typeDocument)xmlobject;
>
> -or-
> you could change the namespace using the xmlcursor or DOM apis before
> creating the type. In other words:
> XmlObject xo  = XmlObject.Factory.parse(instance);
> XmlCursor xc = XmlObject.newCursor();
> xc.changeNS();
> and then assign to the most recent NS, type
>
> If ns replacement is a valid solution for you, you could always just
> try something like:
> (yes, way more hackish)
> String goodInstance = xo.xmlText().replaceAll("oldNS", "newNs");
> TypeDocument t = TypeDocument.factory.parse(goodInstance);
>
> Please let us know if any of these solutions works for you.
>
> -jacob danner
>
> -------------------
sent from my nokia 9500
>
> On 3/28/07, Matthieu Riou <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > I'm having some difficulties to support the reading of an XML instance
> > document that could belong to two different target namespaces. I'm
using
> > XMLBeans to compile a schema and then read and browse instances using
the
> > generated Java data structures.
> >
> > Originally, my schema was in a first namespace:
> > http://ode.fivesight.com/schemas/2006/06/27/dd. So my schema header
> > declaration was something like:
> >
> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
> >            targetNamespace="
http://ode.fivesight.com/schemas/2006/06/27/dd";
> > ....
> >
> > And in my xsdconfig I had the following:
> >
> >   <xb:namespace uri="http://ode.fivesight.com/schemas/2006/06/27/dd";>
> >     <xb:package>org.apache.ode.bpel.dd</xb:package>
> >   </xb:namespace>
> >
> > Now I want to update that target namespace to
> > http://www.apache.org/ode/schemas/dd/2007/03 while still maintaining
> > backward compatibility with older documents. So if someone gives me a
> > document that looks like:
> >
> > <deploy xmlns="http://ode.fivesight.com/schemas/2006/06/27/dd"; ...
> >
> > I would like XMLBeans to either ignore this namespace and replace it
with
> > the new one or generate exactly the same data structure as with the
new
> > namespace so I don't need to change my whole java code.
> >
> > I've tried different approaches, the first one was to declare the two
> > namespaces in my xsdconfig:
> >
> >   <xb:namespace uri="http://ode.fivesight.com/schemas/2006/06/27/dd";>
> >     <xb:package>org.apache.ode.bpel.dd</xb:package>
> >   </xb:namespace>
> >   <xb:namespace uri="http://www.apache.org/ode/schemas/dd/2007/03";>
> >     <xb:package>org.apache.ode.bpel.dd</xb:package>
> >   </xb:namespace>
> >
> > The gotcha is that my schema can only have one target namespace anyway
so
> > that doesn't quite fly. My second try was to do:
> >
> >                 XmlOptions options = new XmlOptions();
> >                 HashMap otherNs = new HashMap();
> >
> > otherNs.put("http://ode.fivesight.com/schemas/2006/06/27/dd";,
> > "http://www.apache.org/ode/schemas/dd/2007/03";);
> >                 options.setLoadSubstituteNamespaces(otherNs);
> >                 _dd = DeployDocument.Factory.parse(ddLocation);
> >
> > When I load the instance. That didn't work either, in both cases
XMLBeans
> > complains with:
> >
> > org.apache.xmlbeans.XmlException:
/home/dusty/Dev/Tools/Platform/apache-
> > tomcat-5.5.17/webapps/ode/WEB-INF/processes/DynPartner/deploy.xml:0:
error:
> > The document is not a deploy@
http://www.apache.org/ode/schemas/dd/2007/03:
> > document element namespace mismatch expected "
> > http://www.apache.org/ode/schemas/dd/2007/03"; got "
> > http://ode.fivesight.com/schemas/2006/06/27/dd";.
> >
> > Is there any solution to my problem?
> >
> > Thanks,
> > Matthieu
> >

Notice:  This email message, together with any attachments, may contain
information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated
entities,  that may be confidential,  proprietary,  copyrighted  and/or
legally privileged, and is intended solely for the use of the individual or
entity named in this message. If you are not the intended recipient, and
have received this message in error, please immediately return this by email
and then delete it.

Reply via email to