Kevin_Slade
13 years agoContributor
The generated XML is out of order after project update
Attached are 2 sets of WSDL & XSD files for sequential versions of one of our projects.
When the 4.2.1 set is loaded into SoapUI Pro Snapshot soapui-pro-3.6.2-SNAPSHOT-linux-bin.zip 11-May-2011 or older
the generated XML for the PipeCreate request maintains the expected XML structure order.
However if the 4.2.0 set is loaded and then the definitions are updated using the 4.2.1 set, generated xml is not ordered as expected. The result is that the SOAP server that has been created using Axis2C complains and fails to parse the XML.
A sample from the request after the upgrade is below. Note that the extra DelayDataSource and MapInterface sections occur earlier in the XML than expected.
<soapenv:Body>
<nin:PipeCreate>
<Name>test</Name>
<Config>
<nin:DelayDataSource>
<nin:DataObject>
<nin:Type>ROTFILE</nin:Type>
<nin:Name>r3</nin:Name>
</nin:DataObject>
<nin:Delay>12</nin:Delay>
</nin:DelayDataSource>
<nin:MapInterface>
<nin:In>B</nin:In>
<nin:Out>A</nin:Out>
</nin:MapInterface>
<nin:MapInterface>
<nin:In>C</nin:In>
<nin:Out>A</nin:Out>
</nin:MapInterface>
<nin:MapInterface>
<nin:In>D</nin:In>
<nin:Out>A</nin:Out>
</nin:MapInterface>
<nin:Enabled>false</nin:Enabled>
<!--1 or more repetitions:-->
<nin:DataSource>
<nin:Type>ROTFILE</nin:Type>
<nin:Name>R1</nin:Name>
</nin:DataSource>
<!--Zero or more repetitions:-->
<nin:DelayDataSource>
<nin:DataObject>
<nin:Type>ROTFILE</nin:Type>
<nin:Name>r2</nin:Name>
</nin:DataObject>
<nin:Delay>12</nin:Delay>
</nin:DelayDataSource>
<!--Optional:-->
<nin:MergeSources>?</nin:MergeSources>
<!--Optional:-->
<nin:DataSink>
<nin:Type>DAG</nin:Type>
<nin:Name>dagmod.3</nin:Name>
</nin:DataSink>
<!--Optional:-->
<!--Optional:-->
<!--0 to 4 repetitions:-->
<nin:MapInterface>
<nin:In>A</nin:In>
<nin:Out>A</nin:Out>
</nin:MapInterface>
<nin:OutputDataType>ERF</nin:OutputDataType>
<!--Optional:-->
<!--Optional:-->
<!--Optional:-->
<!--Optional:-->
<!--Optional:-->
<!--Optional:-->
<nin:PilotEnabled>false</nin:PilotEnabled>
<!--Optional:-->
<nin:Replay>
<nin:Enabled>true</nin:Enabled>
<!--Optional:-->
<nin:Rate>
<nin:Mode>RELATIVE</nin:Mode>
<!--Optional:-->
<!--Optional:-->
<nin:ScaleFactor>1</nin:ScaleFactor>
<nin:BitRate>123</nin:BitRate>
</nin:Rate>
<!--Optional:-->
<!--Optional:-->
<nin:Count>13</nin:Count>
<!--Optional:-->
</nin:Replay>
<!--Optional:-->
<nin:FastFilterEnabled>?</nin:FastFilterEnabled>
<!--Optional:-->
</Config>
</nin:PipeCreate>
</soapenv:Body>
</soapenv:Envelope>
When the 4.2.1 set is loaded into SoapUI Pro Snapshot soapui-pro-3.6.2-SNAPSHOT-linux-bin.zip 11-May-2011 or older
the generated XML for the PipeCreate request maintains the expected XML structure order.
However if the 4.2.0 set is loaded and then the definitions are updated using the 4.2.1 set, generated xml is not ordered as expected. The result is that the SOAP server that has been created using Axis2C complains and fails to parse the XML.
A sample from the request after the upgrade is below. Note that the extra DelayDataSource and MapInterface sections occur earlier in the XML than expected.
<soapenv:Body>
<nin:PipeCreate>
<Name>test</Name>
<Config>
<nin:DelayDataSource>
<nin:DataObject>
<nin:Type>ROTFILE</nin:Type>
<nin:Name>r3</nin:Name>
</nin:DataObject>
<nin:Delay>12</nin:Delay>
</nin:DelayDataSource>
<nin:MapInterface>
<nin:In>B</nin:In>
<nin:Out>A</nin:Out>
</nin:MapInterface>
<nin:MapInterface>
<nin:In>C</nin:In>
<nin:Out>A</nin:Out>
</nin:MapInterface>
<nin:MapInterface>
<nin:In>D</nin:In>
<nin:Out>A</nin:Out>
</nin:MapInterface>
<nin:Enabled>false</nin:Enabled>
<!--1 or more repetitions:-->
<nin:DataSource>
<nin:Type>ROTFILE</nin:Type>
<nin:Name>R1</nin:Name>
</nin:DataSource>
<!--Zero or more repetitions:-->
<nin:DelayDataSource>
<nin:DataObject>
<nin:Type>ROTFILE</nin:Type>
<nin:Name>r2</nin:Name>
</nin:DataObject>
<nin:Delay>12</nin:Delay>
</nin:DelayDataSource>
<!--Optional:-->
<nin:MergeSources>?</nin:MergeSources>
<!--Optional:-->
<nin:DataSink>
<nin:Type>DAG</nin:Type>
<nin:Name>dagmod.3</nin:Name>
</nin:DataSink>
<!--Optional:-->
<!--Optional:-->
<!--0 to 4 repetitions:-->
<nin:MapInterface>
<nin:In>A</nin:In>
<nin:Out>A</nin:Out>
</nin:MapInterface>
<nin:OutputDataType>ERF</nin:OutputDataType>
<!--Optional:-->
<!--Optional:-->
<!--Optional:-->
<!--Optional:-->
<!--Optional:-->
<!--Optional:-->
<nin:PilotEnabled>false</nin:PilotEnabled>
<!--Optional:-->
<nin:Replay>
<nin:Enabled>true</nin:Enabled>
<!--Optional:-->
<nin:Rate>
<nin:Mode>RELATIVE</nin:Mode>
<!--Optional:-->
<!--Optional:-->
<nin:ScaleFactor>1</nin:ScaleFactor>
<nin:BitRate>123</nin:BitRate>
</nin:Rate>
<!--Optional:-->
<!--Optional:-->
<nin:Count>13</nin:Count>
<!--Optional:-->
</nin:Replay>
<!--Optional:-->
<nin:FastFilterEnabled>?</nin:FastFilterEnabled>
<!--Optional:-->
</Config>
</nin:PipeCreate>
</soapenv:Body>
</soapenv:Envelope>