i think that WSDL generation may be broken, or at least incompatible with C# implementation of it as when trying to consume SOAP 1.1 from C#, any array will have null value even if Ladon will actually send some XML data.
i have seen another bug reported here telling that WSDL Array are broken, BTW the provided patch do not help, i think this is still broken and may be inner elements should be contained inside specific node rather than in "item" ?
here is how to reproduce this from the AlbumService example provided :
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using ConsoleApplication6.albumsWR; // PUT HERE THE NAME OF THE "Web References" you provide @ step 1
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{ AlbumService albumService = new AlbumService();
var filteredAlbums = albumService.listAlbums("The");
if (filteredAlbums.item == null)
{ Console.WriteLine("null contained, while it should not!");
}
}
}
}
---8<---
when checking the result with SOAP UI, of course an XML result is provided, if we intercept the data sent with Fiddler to the C# program here is what is provided so one can check that is not a 'null' answer, BTW may be some inconsistencies occurs between the WSDL definition and/or namespace and the result provided, that prevent C# to understand how to unserialize the result ?
---8<---
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns="urn:AlbumService" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<ns:listAlbumsResponse>
<result>
<item>
<band> <album-titles> <item>Album Of The Year</item> <item>KING FOR A DAY - FOOL FOR A LIFETIME</item> </album-titles> <name>Faith No More</name>
</band> <title>Album Of The Year</title>
<songs> <item>Ashes To Ashes.mp3</item> <item>Mouth To Mouth.mp3</item> <item>Last Cup Of Sorrow [Sharam Versus Fnm Club Mix] [Bonus Track].mp3</item> <item>Paths Of Glory.mp3</item> <item>Pristina.mp3</item> <item>Light Up And Let Go [Bonus Track].mp3</item> <item>Helpless.mp3</item>
<item>The Big Kahuna [Bonus Track].mp3</item>
<item>She Loves Me Not.mp3</item> <item>Stripsearch.mp3</item> <item>Last Cup Of Sorrow.mp3</item> <item>Collision.mp3</item> <item>Home Sick Home.mp3</item>
<item>She Loves Me Not [Spinna Crazy Dub Mix] [Bonus Track].mp3</item> <item>Last Cup Of Sorrow [Rammstein Mix] [Bonus Track].mp3</item> <item>Naked In Front of The Computer.mp3</item>
<item>Got That Feeling.mp3</item> <item>Ashes To Ashes [Hardknox Alternative Mix] [Bonus Track].mp3</item>
</songs>
</item>
<item>
<band> <album-titles> <item>Paint The Sky With Stars - The Best Of Enya</item> </album-titles> <name>Enya</name>
</band> <title>Paint The Sky With Stars - The Best Of Enya</title>
<songs> <item>Watermark.mp3</item> <item>Boadicea.mp3</item> <item>Storms In Africa.mp3</item> <item>Book Of Days.mp3</item> <item>Caribben Blue.mp3</item>
<item>The Celts.mp3</item> <item>Anywhere Is.mp3</item> <item>Shepherd Moons.mp3</item> <item>China Roses.mp3</item> <item>Marble Halls.mp3</item>
<item>On My Way Home.mp3</item> <item>Ebudae.mp3</item>
<item>The Memory Of Trees.mp3</item> <item>Paint The Sky With Stars.mp3</item> <item>Only If....mp3</item> <item>Orinoco Flow.mp3</item>
</songs>
</item>
<item>
<band> <album-titles> <item>Zitilites</item> <item>No Balance Palace</item> <item>Home Dead</item> <item>Travelogue</item> <item>Cruzential</item> <item>The Good Life</item> </album-titles> <name>Kashmir</name>
</band> <title>The Good Life</title>
<songs> <item>Gorgeous.mp3</item>
<item>New Year's Eve.mp3</item> <item>Lampshade.mp3</item> <item>It's OK Now.mp3</item> <item>Graceland.mp3</item> <item>Miss You.mp3</item> <item>Mudbath.mp3</item>
<item>Mom In Love, Daddy In Space.mp3</item> <item>Kiss Me Goodbye.mp3</item> <item>Make It Grand.mp3</item>
</songs>
</item>
<item>
<band> <album-titles> <item>The Wall CD2</item> <item>The Wall Part I</item> </album-titles> <name>Pink Floyd</name>
</band> <title>The Wall CD2</title>
<songs> <item>Nobody Home.mp3</item> <item>Waiting For The Worms.mp3</item> <item>Bring The Boys Back Home.mp3</item>
<item>The Trial.mp3</item>
<item>Is There Anybody Out There?.mp3</item> <item>Comfortably Numb.mp3</item>
<item>Run Like Hell.mp3</item>
<item>The Show Must Go On.mp3</item> <item>Vera.mp3</item>
<item>In The Flesh.mp3</item> <item>Outside The Wall.mp3</item>
<item>Hey You.mp3</item> <item>Stop.mp3</item>
</songs>
</item>
<item>
<band> <album-titles> <item>The Wall CD2</item> <item>The Wall Part I</item> </album-titles> <name>Pink Floyd</name>
</band> <title>The Wall Part I</title>
<songs>
<item>The Happiest Days Of Our Lives.mp3</item> <item>Another Brick In The Wall (Part 1).mp3</item> <item>Goodbye Cruel World.mp3</item>
<item>One Of The Turns.mp3</item>
<item>In The Flesh?.mp3</item> <item>Empty Spaces.mp3</item>
<item>The Thin Ice.mp3</item> <item>Goodbye Blue Sky.mp3</item> <item>Another Brick In The Wall (Part 2).mp3</item> <item>Another Brick In The Wall (Part 3).mp3</item> <item>Young Lust.mp3</item> <item>Mother.mp3</item> <item>Don't Leave Now.mp3</item>
</songs>
</item>
</result>
</ns:listAlbumsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
---8<---
i think that WSDL generation may be broken, or at least incompatible with C# implementation of it as when trying to consume SOAP 1.1 from C#, any array will have null value even if Ladon will actually send some XML data.
i have seen another bug reported here telling that WSDL Array are broken, BTW the provided patch do not help, i think this is still broken and may be inner elements should be contained inside specific node rather than in "item" ?
here is how to reproduce this from the AlbumService example provided :
1/ from any Visual Studio project, as Console Application, first create a Service Web reference like explained here : http:// webservices20. blogspot. fr/2008/ 10/interoperabi lity-gotcha- visual- studio. html for this example called 'albumsWR'
2/ code for the C# apps
---8<---
using System; Collections. Generic; ion6.albumsWR; // PUT HERE THE NAME OF THE "Web References" you provide @ step 1
using System.Collections;
using System.
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using ConsoleApplicat
namespace ConsoleApplication6
{
class Program
AlbumServi ce albumService = new AlbumService(); listAlbums( "The"); .item == null)
Console. WriteLine( "null contained, while it should not!");
{
static void Main(string[] args)
{
var filteredAlbums = albumService.
if (filteredAlbums
{
}
}
}
}
---8<---
when checking the result with SOAP UI, of course an XML result is provided, if we intercept the data sent with Fiddler to the C# program here is what is provided so one can check that is not a 'null' answer, BTW may be some inconsistencies occurs between the WSDL definition and/or namespace and the result provided, that prevent C# to understand how to unserialize the result ?
---8<--- schemas. xmlsoap. org/soap/ envelope/" xmlns:SOAP-ENC="http:// schemas. xmlsoap. org/soap/ encoding/" xmlns:ns= "urn:AlbumServi ce" xmlns:xsd="http:// www.w3. org/2001/ XMLSchema"> encodingStyle= "http:// schemas. xmlsoap. org/soap/ encoding/"> ns:listAlbumsRe sponse>
<album- titles>
< item>Album Of The Year</item>
< item>KING FOR A DAY - FOOL FOR A LIFETIME</item>
</album- titles>
<name> Faith No More</name>
<title> Album Of The Year</title>
<item> Ashes To Ashes.mp3</item>
<item> Mouth To Mouth.mp3</item>
<item> Last Cup Of Sorrow [Sharam Versus Fnm Club Mix] [Bonus Track].mp3</item>
<item> Paths Of Glory.mp3</item>
<item> Pristina. mp3</item>
<item> Light Up And Let Go [Bonus Track].mp3</item>
<item> Helpless. mp3</item>
<item> Stripsearch. mp3</item>
<item> Last Cup Of Sorrow.mp3</item>
<item> Collision. mp3</item>
<item> Home Sick Home.mp3</item>
<item> Last Cup Of Sorrow [Rammstein Mix] [Bonus Track].mp3</item>
<item> Naked In Front of The Computer.mp3</item>
<item> Ashes To Ashes [Hardknox Alternative Mix] [Bonus Track].mp3</item>
<album- titles>
< item>Paint The Sky With Stars - The Best Of Enya</item>
</album- titles>
<name> Enya</name>
<title> Paint The Sky With Stars - The Best Of Enya</title>
<item> Watermark. mp3</item>
<item> Boadicea. mp3</item>
<item> Storms In Africa.mp3</item>
<item> Book Of Days.mp3</item>
<item> Caribben Blue.mp3</item>
<item> Anywhere Is.mp3</item>
<item> Shepherd Moons.mp3</item>
<item> China Roses.mp3</item>
<item> Marble Halls.mp3</item>
<item> Ebudae. mp3</item>
<item> Paint The Sky With Stars.mp3</item>
<item> Only If....mp3</item>
<item> Orinoco Flow.mp3</item>
<album- titles>
< item>Zitilites< /item>
< item>No Balance Palace</item>
< item>Home Dead</item>
< item>Travelogue </item>
< item>Cruzential </item>
< item>The Good Life</item>
</album- titles>
<name> Kashmir< /name>
<title> The Good Life</title>
<item> Gorgeous. mp3</item>
<item> Lampshade. mp3</item>
<item> It's OK Now.mp3</item>
<item> Graceland. mp3</item>
<item> Miss You.mp3</item>
<item> Mudbath. mp3</item>
<item> Kiss Me Goodbye.mp3</item>
<item> Make It Grand.mp3</item>
<album- titles>
< item>The Wall CD2</item>
< item>The Wall Part I</item>
</album- titles>
<name> Pink Floyd</name>
<title> The Wall CD2</title>
<item> Nobody Home.mp3</item>
<item> Waiting For The Worms.mp3</item>
<item> Bring The Boys Back Home.mp3</item>
<item> Comfortably Numb.mp3</item>
<item> Vera.mp3< /item>
<item> Outside The Wall.mp3</item>
<item> Stop.mp3< /item>
<album- titles>
< item>The Wall CD2</item>
< item>The Wall Part I</item>
</album- titles>
<name> Pink Floyd</name>
<title> The Wall Part I</title>
<item> Another Brick In The Wall (Part 1).mp3</item>
<item> Goodbye Cruel World.mp3</item>
<item> Empty Spaces.mp3</item>
<item> Goodbye Blue Sky.mp3</item>
<item> Another Brick In The Wall (Part 2).mp3</item>
<item> Another Brick In The Wall (Part 3).mp3</item>
<item> Young Lust.mp3</item>
<item> Mother. mp3</item>
<item> Don't Leave Now.mp3</item> /ns:listAlbumsR esponse> ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://
<SOAP-ENV:Body SOAP-ENV:
<
<result>
<item>
<band>
</band>
<songs>
<item>The Big Kahuna [Bonus Track].mp3</item>
<item>She Loves Me Not.mp3</item>
<item>She Loves Me Not [Spinna Crazy Dub Mix] [Bonus Track].mp3</item>
<item>Got That Feeling.mp3</item>
</songs>
</item>
<item>
<band>
</band>
<songs>
<item>The Celts.mp3</item>
<item>On My Way Home.mp3</item>
<item>The Memory Of Trees.mp3</item>
</songs>
</item>
<item>
<band>
</band>
<songs>
<item>New Year's Eve.mp3</item>
<item>Mom In Love, Daddy In Space.mp3</item>
</songs>
</item>
<item>
<band>
</band>
<songs>
<item>The Trial.mp3</item>
<item>Is There Anybody Out There?.mp3</item>
<item>Run Like Hell.mp3</item>
<item>The Show Must Go On.mp3</item>
<item>In The Flesh.mp3</item>
<item>Hey You.mp3</item>
</songs>
</item>
<item>
<band>
</band>
<songs>
<item>The Happiest Days Of Our Lives.mp3</item>
<item>One Of The Turns.mp3</item>
<item>In The Flesh?.mp3</item>
<item>The Thin Ice.mp3</item>
</songs>
</item>
</result>
<
</SOAP-ENV:Body>
</SOAP-
---8<---