2012-03-06 16 views
2

おそらく簡単な質問です:複数のwsdl + xsdファイルを1つのwsdlに結合するためのツールを知っていますか?複数のwsdlとxsdファイル...単一のwsdlに

ありがとうございます。

Edit1: サービスはWCFサービスであり、PHP用の単一のwsdl(クライアントとして)が必要です。

Edit2: あまりにも悪いことに、.Net 4.0を使用する必要があります。これは可能な場合は4.5ではありません。たぶん私は新しいMSツールの1つを借りることができますか?あなたはどちらを知っていますか? svcutil.exeは責任あるツールですか?はいの場合、彼の依存関係は何ですか?私はまだ.Net 4.5にジャンプしたくないからです。

+0

WCFによって自動的に生成されたWSDLを参照していますか?あるいは、「契約先」ですか、これらのファイルは他の場所から来ていますか? –

+0

はい、WCFによって作成されたWSDLファイルです。 – Learner

答えて

0

1つのwsdlファイルで、PHP側で石鹸プロキシを自動的に生成するツールが必要でした。しかし、我々はDTO層を手作業で書くことになった。

.NET 4.5にwcfサービスがある場合、wsdlファイル(WCFフレームワークの組み込み機能)を簡単に取得できます。

0

フラットwsdlを生成できる小さなアプリケーションを構築できます。相互運用可能なWCFサービスを構築するために、C#でプログラム的にフラットwsdlを生成します。フラットwsdlの生成方法については、linkを参照してください。

コードを見ればうまくいけば、それを行うツールを構築することができます。

これ以外の場合は、Altova Xml Spyを使用してxsdインポート属性をxsdスキーマ定義に置き換えることで手動で行うことができます。

+0

私はWCFExtrasを試しましたが、wsdlファイルを1つだけ持つ必要があり、異なる名前空間を持つネストされたサービスがあるため動作しません。例:ConcreteService:IService:IServiceBase ... IServiceとIServiceBaseは異なる名前空間を持ちます。私の場合、この "FlatWsdl"が機能すると思いますか? – Learner

+0

Btw PHPから使用するには – Learner

+0

が必要です。.NET 4.5を使用している場合は、WCFフレームワークの組み込み機能があり、単一のwsdlファイルを生成します。それ以外の場合は、独自のカスタムサービスファクトリを構築する必要があります。 .NETクライアントで同じ名前空間を呼び出すことができる場合は、インターフェイスの異なるネームスペースに関して、単一のフラットwsdlを生成することも有効です。 WCFサービスが非.NETクライアントによって消費されるようにするには、フラットwsdlsが必要です。 – Rajesh

1

確かに、複数のXSDファイルを可能な限り最小限のセットにまとめることができるa toolをお勧めします(私はそれを書いて以来、ここに偏っています)。多数のファイル、多数の名前空間、またはその両方がある場合は、それ自体が重い作業になる可能性があります。複数のWSDLを1つにするのが難しくなるかもしれません。たとえば、メッセージの分離を維持する3つのレイヤー(論理的には1つのWSDL、つまりポートタイプ - サービスまたは複数のWSDL)にオーサリングされていますか?あなたが保証しなければならないことは、すべてが同じタイプのサブシステムを共有していることです。操作などの競合はありません。しかし、これも達成できるタスクです。私は簡単にアドオンを出してしまいます...これがXMLスキーマのリファクタリングあなたが頻繁に見ているWSDLを私に教えてください。

+0

ok、あなたのウェブサイトは非常に遅く、登録する必要がありますか?) – Learner

+0

@Cristi、はい、それはサポートと自動更新の登録が必要です;遅いのは不具合だったかもしれませんが、私はあなたがPHPからそれを使用する必要があることを後で投稿したことに気付きました...私のものは、デスクトップ上で実行されているスタンドアロンのアプリです。この[post]を見てください(http://stackoverflow.com/questions/8896602/ XSDリファクタリングに関するアイデアについては、minoccurs属性は存在しない)、登録なしで続行したい場合は、Webサイトのサポートアドレスを使用して私に電子メールを送ってください。登録する。 –

関連する問題