2009-11-11 13 views
0

查看DLNA的规格,大部分元数据通信看起来都是基于soap的。但是我找不到任何类似WSDL的任何服务。相反,有一些种类的服务描述语言,看起来像这样:为DLNA服务/客户端创建Java存根? (或者什么是XML文件中的<scpd>根标签?)

<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. 写存根和代码工作用手工序列化/反序列化肥皂信息

所有三个选项看起来都非常吸引人,尽管第一个看起来是最不起眼的工作,而不是说那么多。有什么建议可以更好地处理这个问题?

+0

<...蟋蟀...> – Jherico 2009-11-11 23:48:17

回答

0

我最终使用了代码生成工具来手动解析XML并创建客户端和服务器存根。

0

如果有帮助,ohNet使用类似的方法为每个UPnP服务(在您选择C++,C#,Java,JavaScript或C)中创建一个类,该类处理肥皂消息的所有(反)序列化。

相关问题