WebService プロパティの順序付けの非常に奇妙な動作があります。
次の WSDL を公開する WebService があります。
...
<s:complexType name="WsProgramPackage">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ProgramPackageID" nillable="true" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="ProgramID" nillable="true" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="PackageID" nillable="true" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="Layer" nillable="true" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="ProgramOffset" nillable="true" type="s:decimal" />
<s:element minOccurs="1" maxOccurs="1" name="PackageOffset" nillable="true" type="s:decimal" />
<s:element minOccurs="1" maxOccurs="1" name="Duration" nillable="true" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="IsDynamic" nillable="true" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" name="IsVisible" nillable="true" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" name="AllowSkip" nillable="true" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" name="ProgramUID" nillable="true" type="s1:guid" />
<s:element minOccurs="1" maxOccurs="1" name="PackageUID" nillable="true" type="s1:guid" />
</s:sequence>
</s:complexType>
...
また、次の SOAP 応答を返す必要があります
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetProgramByIDResponse xmlns="ws.kitd.vx2.ws.cms">
<GetProgramByIDResult>
<ThumbnailURL>string</ThumbnailURL>
<TrailerURL>string</TrailerURL>
<ProgramPackages>
<WsProgramPackage>
<ProgramPackageID>int</ProgramPackageID>
<ProgramID>int</ProgramID>
<PackageID>int</PackageID>
<Layer>int</Layer>
<ProgramOffset>decimal</ProgramOffset>
<PackageOffset>decimal</PackageOffset>
<Duration>int</Duration>
<IsDynamic>boolean</IsDynamic>
<IsVisible>boolean</IsVisible>
<AllowSkip>boolean</AllowSkip>
<ProgramUID>guid</ProgramUID>
<PackageUID>guid</PackageUID>
</WsProgramPackage>
...
SOAP UI でこのメソッドを呼び出そうとすると、応答のフィールドの順序が異なります。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetProgramByIDResponse xmlns="ws.kitd.vx2.ws.cms">
<GetProgramByIDResult>
<ThumbnailURL>http://origin.pmt.ovivo.ru/2f/59/2f59465e-7aa0-4188-9f2f-2904f92cced7.35557.203a5d20f56693df382b610354605ebf</ThumbnailURL>
<ProgramPackages>
<WsProgramPackage>
<ProgramPackageID>269310</ProgramPackageID>
<ProgramID>5190</ProgramID>
<PackageID>8855</PackageID>
<ProgramUID>ec62f0a5-c10e-4ac5-bb95-c5ab3ac6f150</ProgramUID>
<PackageUID>61d77ef1-495f-4ec8-9fac-3170a9705483</PackageUID>
<Layer>0</Layer>
<ProgramOffset>0.000</ProgramOffset>
<PackageOffset>0.000</PackageOffset>
<Duration>9469</Duration>
<IsDynamic>false</IsDynamic>
<IsVisible>false</IsVisible>
<AllowSkip>false</AllowSkip>
</WsProgramPackage>
</ProgramPackages>
...
WSDL では ProgramUID と PackageUID は最後のフィールドですが、応答では 3 と 4 の位置にあります。
応答が WSDL に記述されているものと異なる可能性はありますか。また、この順序を何らかの方法で修正することは可能ですか。
PS これは単純な古い C# WebService であり、WCF ではありません。