Looking at the specifications for DLNA, most of the metadata communication appears to be soap based. However I can't find anything like a WSDL for any of the various services. Instead there is some sort of service description language that looks like this:
<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>
I can't find any documentation on this format or any tools to generate server or client stubs for it like I can with a WSDL. At this point my options appear to be
- Create an XSLT to try to transform the descriptor language into wsdl
- Write java code generation tools that work from the existing descriptor language
- Write stubs and code to serialize/deserialize the soap messages by hand
All three options seem pretty equally unappealing, though the first seems like the least work, not that that's saying much. Any suggestions for getting a better handle on the problem?