0

DLNAの仕様を見ると、ほとんどのメタデータ通信は石鹸ベースのようです。ただし、さまざまなサービスのWSDLのようなものは見つかりません。代わりに、次のようなサービス記述言語があります。

<scpd>
  <serviceStateTable>
    <stateVariable>
      <Optional />
      <name>TransferIDs</name>
      <sendEventsAttribute>yes</sendEventsAttribute>
      <dataType>string</dataType>
      ...
    </stateVariable>
  </serviceStateTable>
  <actionList>
    <action>
      <name>Browse</name>
      <argumentList>
        <argument>
          <name>ObjectID</name>
          <direction>in</direction>
          <relatedStateVariable>A_ARG_TYPE_ObjectID</relatedStateVariable>
        </argument>
        ...
      </argumentList>
    </action>
    ...
  </actionList>
</scpd>

この形式に関するドキュメントや、WSDLの場合のように、サーバーまたはクライアントのスタブを生成するためのツールが見つかりません。この時点で、私のオプションは

  1. XSLTを作成して、記述子言語wsdlに変換しようとします
  2. 既存の記述子言語から機能するJavaコード生成ツールを作成する
  3. 手作業でsoapメッセージをシリアル化/逆シリアル化するためのスタブとコードを作成します

3つのオプションはすべて、まったく同じように魅力的ではないように見えますが、最初のオプションは最も効果が少ないように見えますが、それは多くのことを言っているわけではありません。問題をより適切に処理するための提案はありますか?

4

2 に答える 2

0

最終的に、コード生成ツールを使用して手動で XML を解析し、クライアントとサーバーのスタブを作成しました。

于 2010-07-07T22:21:58.190 に答える
0

役立つ場合、ohNetは同様のアプローチを使用して、SOAP メッセージのすべての (逆) シリアル化を処理する UPnP サービス (C++、C#、Java、JavaScript、または C のいずれかを選択) ごとにクラスを作成します。

于 2011-12-01T17:07:15.383 に答える