Hi Paul,

I'm very surprised this made a difference and would like to see what 
went wrong. Would it be possible for you to email me (directly, not on 
the list) both versions of the generated binding factory class?

Incidentally, for the 1.2 code I've got code generation from schema 
working, and the OTA schemas were my main test case. If you've already 
gone through and constructed code and bindings for these it may be too 
late to help you, but thought I'd mention this is coming. I'm actually 
hoping to release the OTA stuff as a JiBX subproject, since it makes a 
good demonstration of the capabilities and also would be directly useful 
to the travel industry which makes up a lot of the JiBX users base. I 
haven't tried the generated OTA code and bindings using Axis2, but if 
you're interested in giving them a try I can set you up.

  - Dennis

Dennis M. Sosnoski
SOA and Web Services in Java
Training and Consulting
http://www.sosnoski.com - http://www.sosnoski.co.nz
Seattle, WA +1-425-939-0576 - Wellington, NZ +64-4-298-6117



Paul Mahoney wrote:
> Resolved by adding the following to the end of the binding file:
>
>       <mapping class="java.lang.Object" abstract="true" choice="true"
> ordered="false">
>               <namespace uri="http://www.opentravel.org/OTA/2003/05";
> default="elements"/>
>       </mapping>
>
> This is a 'dummy' mapping but the result is the global names and namespace
> arrays get populated :-)
>
>   
>> -----Original Message-----
>> From: Paul Mahoney [mailto:[EMAIL PROTECTED] 
>> Sent: 18 November 2008 19:50
>> To: 'jibx-users@lists.sourceforge.net'
>> Subject: bindingFactory.getElementNames() array values are ALL null
>>
>> My apologies, the following description is involved and 
>> requires some study.
>>
>> I have run into a problem with JibX. I using version 1.1.5 as 
>> that is the version installed with Axis 2.1.4. However I feel 
>> the issue is with my bindings an not an axis issue.
>>
>> I have a large collection of binding files. A simple one is 
>> given here:
>> --------------------------------------------------------------
>> --------------------
>> <binding direction="both" value-style="attribute">
>>      <namespace uri="http://www.opentravel.org/OTA/2003/05"; 
>> default="elements"/>
>>
>>      <include path="OTA_AirCommonTypes.xml"/>
>>
>>      <mapping name="OTA_PingRQ" class="uk.co.xact.ota.OTA_PingRQ">
>>              <value name="EchoToken" field="echoToken" 
>> usage="optional"/>
>>              <value name="TimeStamp" field="timeStamp" 
>> usage="optional"/>
>>              <value name="Target" field="target" 
>> deserializer="uk.co.xact.ota.commonTypes.oTA_PayloadStdAttribu
>> tes.Target.get" usage="optional"/>
>>              <value name="Version" field="version"/>
>>              <value name="TransactionIdentifier" 
>> field="transactionIdentifier" usage="optional"/>
>>              <value name="SequenceNmbr" field="sequenceNmbr" 
>> usage="optional"/>
>>              <value name="TransactionStatusCode" 
>> field="transactionStatusCode" 
>> deserializer="uk.co.xact.ota.commonTypes.oTA_PayloadStdAttribu
>> tes.TransactionStatusCode.get" usage="optional"/>
>>              <value name="RetransmissionIndicator" 
>> field="retransmissionIndicator" usage="optional"/>
>>              <value name="PrimaryLangID" 
>> field="primaryLangID" usage="optional"/>
>>              <value name="AltLangID" field="altLangID" 
>> usage="optional"/>
>>              <value name="EchoData" field="echoData" 
>> style="element"/>
>>      </mapping>
>> </binding> 
>> --------------------------------------------------------------
>> --------------------
>>
>> As you see, the top level name OTA_PingRQ is mapped to 
>> uk.co.xact.ota.OTA_PingRQ.
>>
>> In my test code I use the following line to get the binding factory:
>>
>>   bindingFactoryRQ = BindingDirectory.getFactory(OTA_PingRQ.class);
>>
>> My basic questions is why bindingFactoryRQ.getElementNames() 
>> return an array of null values. The mapping OTA_PingRQ is not 
>> abstract.
>>
>> The method bindingFactoryRQ.getElementNamespaces() also 
>> returns an array of nulls. But this might be expected since 
>> the mapping is in the default namespace.
>>
>> Despite this, my junit test to marshal and unmarshal sample 
>> xml files works fine. But thing go wrong for axis2. The issue 
>> here is that within the AXIS skeleton code for the service it 
>> uses the following code in the MessageReceiverInOut class:
>>
>> --------------------------------------------------------------
>> ----------------------
>> private org.apache.axiom.om.OMElement mappedChild(Object 
>> value, org.apache.axiom.om.OMFactory factory) {
>>         org.jibx.runtime.IMarshallable mrshable = 
>> (org.jibx.runtime.IMarshallable)value;
>>         org.apache.axiom.om.OMDataSource src = new 
>> org.apache.axis2.jibx.JiBXDataSource(mrshable, bindingFactory);
>>         int index = mrshable.JiBX_getIndex();
>>         org.apache.axiom.om.OMNamespace appns = 
>> factory.createOMNamespace(bindingFactory.getElementNamespaces(
>> )[index], "");
>>         return factory.createOMElement(src, 
>> bindingFactory.getElementNames()[index], appns);
>>     }
>> --------------------------------------------------------------
>> ----------------------
>>  
>> The call to factory.creatOMNamespace() throws an NPE because 
>> bindingFactory.getElementNamespaces()[index] = null.
>>
>> I am using the WSDL2JAVA code generator with the following 
>> 'top-level' binding file:
>>
>> --------------------------------------------------------------
>> ----------------------
>> <binding direction="both" value-style="attribute">
>>   <namespace uri="http://www.opentravel.org/OTA/2003/05"; 
>> default="elements"/>
>>   <include path="../../gensrc/jibx/OTA_PingRQ.xml"/>
>>   <include path="../../gensrc/jibx/OTA_PingRS.xml"/>
>> </binding>
>> --------------------------------------------------------------
>> ----------------------
>>
>> The type section of the WSDL file is:
>> --------------------------------------------------------------
>> ----------------------
>> <wsdl:types>
>>  <xs:schema>
>>   <xs:import 
>> namespace="http://www.opentravel.org/OTA/2003/05"; 
>> schemaLocation="http://www.xact.co.uk/ota/OTA_PingRQ.xsd"/>
>>   <xs:import 
>> namespace="http://www.opentravel.org/OTA/2003/05"; 
>> schemaLocation="http://www.xact.co.uk/ota/OTA_PingRS.xsd"/>
>>  </xs:schema>
>> </wsdl:types>
>> --------------------------------------------------------------
>> ----------------------
>>
>> Any pointers on why the array values are all null would be 
>> most appreciated.
>>
>> Regards
>>
>> Paul
>>
>>     
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> jibx-users mailing list
> jibx-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jibx-users
>
>   

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to