You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Amila Chinthaka Suriarachchi (JIRA)" <ji...@apache.org> on 2007/11/06 11:56:51 UTC

[jira] Resolved: (AXIS2-3184) Databinding cannot parse itself (Unexpected subelement)

     [ https://issues.apache.org/jira/browse/AXIS2-3184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Amila Chinthaka Suriarachchi resolved AXIS2-3184.
-------------------------------------------------

    Resolution: Won't Fix

here actually it is not possible to determine whether the element intended to xs:any or the type. So with adb always you have to use the xs:any at last if minOccurs is 0.

> Databinding cannot parse itself (Unexpected subelement)
> -------------------------------------------------------
>
>                 Key: AXIS2-3184
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3184
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: adb
>    Affects Versions: 1.3
>         Environment: JDK 1.5 and 1.6, Ubuntu Linux 7.04
>            Reporter: Jose Antonio
>            Assignee: Amila Chinthaka Suriarachchi
>         Attachments: Begin.java, wscf.zip, wsctx-specification.zip
>
>
> Hello, I'm developing a web service specification with Axis2 1.3 and
> I've generated the code using ADB. That specification has a type B
> that extends type A and in some circumstances I want to convert an
> object of type A to B so I did something like:
> elem = A.getContent().getOMElement(B.name,factory);
> B.parse(elem);
> But I got an exception saying:
> Unexpected subelement b
> where b B.name.localpart.
> To get it better, I have the following code:
> RegistrationContext ctx = new RegistrationContext();
> RegistrationContextType ctxContent = new RegistrationContextType();
> ContextIdentifierType ctxId = new ContextIdentifierType();
> ctxId.setAnyURI(new URI("http://adapt20/0"));
> ctxContent.setContextIdentifier(ctxId);
> ServiceRefType regSrvc = new ServiceRefType();
> regSrvc.setExtraElement(AddressingUtils.eprToOM(new
> EndpointReference("http://localhost/registration")));
> ctxContent.setRegistrationService(regSrvc );
> ctx.setRegistrationContext(ctxContent);
> OMElement regCtxElem = ctx.getOMElement(null, OMAbstractFactory.getOMFactory());
> System.out.println("Created registration context element:");
> System.out.println(regCtxElem.toString());
> RegistrationContext newRegCtx =
> RegistrationContext.Factory.parse(regCtxElem.getXMLStreamReader());
> So what I'm doing is basically creating an object of type B, getting
> an OMElement from it and then parsing it through B.Factory.parse
> method. It should work but I get the following exception:
> java.lang.Exception: org.apache.axis2.databinding.ADBException:
> Unexpected subelement registrationContext
>        at org.oasis.wscaf.types.wscf.RegistrationContextType$Factory.parse(RegistrationContextType.java:1103)
>        at org.oasis.wscaf.types.wscf.RegistrationContext$Factory.parse(RegistrationContext.java:307)
>        at org.oasis.wscaf.tests.DatabindingTest.main(DatabindingTest.java:52)
> Caused by: org.apache.axis2.databinding.ADBException: Unexpected
> subelement registrationContext
>        at org.oasis.wscaf.types.wscf.RegistrationContextType$Factory.parse(RegistrationContextType.java:907)
>        ... 2 more
> Which is strange since registrationContext is the local name of
> RegistrationContext class.
> I cannot use the getPullParser method because of this bug:
> https://issues.apache.org/jira/browse/AXIS2-3028
> So I'm doing this through the getOMElement method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org