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の場合のように、サーバーまたはクライアントのスタブを生成するためのツールが見つかりません。この時点で、私のオプションは
- XSLTを作成して、記述子言語をwsdlに変換しようとします
- 既存の記述子言語から機能するJavaコード生成ツールを作成する
- 手作業でsoapメッセージをシリアル化/逆シリアル化するためのスタブとコードを作成します
3つのオプションはすべて、まったく同じように魅力的ではないように見えますが、最初のオプションは最も効果が少ないように見えますが、それは多くのことを言っているわけではありません。問題をより適切に処理するための提案はありますか?