0

プロジェクトに Web サービスへの参照を追加しました。生成されたコードを使用して、Web サービスのメソッドを呼び出しています。メソッドの 1 つは、次の構造体を返します。

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:typens="urn:AllegroWebApi" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
       <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          <typens:doGetCatsDataResponse>
             <cats-list xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="typens:CatInfoType[24051]">
                <item xsi:type="typens:CatInfoType">
                   <cat-id xsi:type="xsd:int">26013</cat-id>
                   <cat-name xsi:type="xsd:string">Antyki i Sztuka</cat-name>
                   <cat-parent xsi:type="xsd:int">0</cat-parent>
                   <cat-position xsi:type="xsd:int">0</cat-position>
                   <cat-is-product-catalogue-enabled xsi:type="xsd:int">0</cat-is-product-catalogue-enabled>
                </item>
            ....

            </item>
            <item xsi:type="typens:CatInfoType">
               <cat-id xsi:type="xsd:int">124895</cat-id>
               <cat-name xsi:type="xsd:string">Pozostałe</cat-name>
               <cat-parent xsi:type="xsd:int">124883</cat-parent>
               <cat-position xsi:type="xsd:int">5</cat-position>
               <cat-is-product-catalogue-enabled xsi:type="xsd:int">0</cat-is-product-catalogue-enabled>
            </item>
            <item xsi:type="typens:CatInfoType">
               <cat-id xsi:type="xsd:int">124894</cat-id>
               <cat-name xsi:type="xsd:string">Teleskopy</cat-name>
               <cat-parent xsi:type="xsd:int">124883</cat-parent>
               <cat-position xsi:type="xsd:int">6</cat-position>
               <cat-is-product-catalogue-enabled xsi:type="xsd:int">0</cat-is-product-catalogue-enabled>
            </item>     // Line 168361   <--------------- HERE
         </cats-list>
         <ver-key xsi:type="xsd:long">91632766</ver-key>
         <ver-str xsi:type="xsd:string">1.1.47</ver-str>
      </typens:doGetCatsDataResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

逆シリアル化を担当する生成されたコードは、次の例外をスローします。

System.Xml.dll で 'System.InvalidOperationException' 型の未処理の例外が発生しました 追加情報: XML ドキュメントにエラーがあります (168361, 13)。

コード サンプルの例外に記載されている行をマークしました。item最後のオブジェクトの終了タグであるという事実と関係があると思います。なぜ失敗するのかわかりません。XML は適切にフォーマットされており、サポートされていない文字は含まれていないようです。

4

2 に答える 2

1

推測ですが、データを確認してください。フィールドの 1 つに '<' または '>' が含まれている可能性があり、xml ドキュメントの書式設定が無効になっている可能性があります。

于 2012-12-14T12:38:26.847 に答える
0

2つの終了アイテムタグが連続しているようです。確かに、XMLファイルの一部を除外している可能性があります。それでも、2つの終了タグが連続していると、確かにそのエラーが発生します。

于 2012-12-17T15:00:21.303 に答える