4

この wsdl を使用しようとしています: http://www.ans.gov.br/padroes/tiss/schemas/ 問題は、wsdl への参照が C# プロジェクトに追加されると、同じ xsd タイプに対して異なる名前空間が作成されることです。 cabecalhoTransacao、したがって、使用する場合は次のようにする必要があります。

  • tissCancelaGuia.cabecalhoTransacao
  • tissVerificaElegibilidade.cabecalhoTransacao

変換せずに解決するにはどうすればよいですか?それが可能だ?

4

1 に答える 1

4

可能です。これは、あなたが指しているものについて私がどれだけ知っているかに基づいて、私がすることです。

まず、説明したページからすべてのWSDL / XSD参照をスクレイプしてダウンロードし、共通のセット(どのサービス/バージョンがどのXSDを共有するか)を把握します。それらをロードした後、これは群れの観点から見ることができるものです(サーモン色はWSDL、灰色はXSDです)。

ここに画像の説明を入力してください

つまり、5つの主要なグループがあります。明らかに、同じXSDのセットに関連付けられているすべてのWSDLは、パッケージ化の観点から、探しているタイプの共有を示す必要があります。

次のステップは、次のようなWSDLを定義することです。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- WSDL 1.1 generated by QTAssistant (http://www.paschidev.com) -->
<definitions name="aggregate" targetNamespace="urn:tempuri-org"  xmlns="http://schemas.xmlsoap.org/wsdl/">
    <import namespace="http://www.ans.gov.br/tiss/ws/tipos/tissLoteGuias/v20202" location="tissLoteGuiasV2_02_02.wsdl"/>
    <import namespace="http://www.ans.gov.br/tiss/ws/tipos/tissSolicitacaoStatusProtocolo/v20202" location="tissSolicitacaoStatusProtocoloV2_02_02.wsdl"/>
</definitions>

注:ロケーションに使用される相対URIが機能しない場合は、代わりに絶対URIを試してください(自分のマシンでこのWSDLを作成し、リモートサーバー上にあるWSDLロケーションを指す場合はさらにそうです)。必要なWSDLを追加し続けます。説明のために、2つだけ追加しました。

とにかく、完了したら、Visual Studioを起動し、プロジェクトで、作成したばかりのこの新しいWSDLへのサービス参照を追加します(@JohnSaundersがコメントに追加したように)。物事を取り除くことを確認するために、最初にWSDLを検証するようにしてください。

ここに画像の説明を入力してください

生成されたコードで共通の型が取得されるようになったため、これらのサービスの呼び出しを、一方から他方に渡すなどして簡単に調整できます。

于 2013-03-12T20:29:34.170 に答える