views:

488

answers:

1

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

  1. Create an XSLT to try to transform the descriptor language into wsdl
  2. Write java code generation tools that work from the existing descriptor language
  3. 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?

A: 

I ultimately used a code generation tool to parse the XML manually and create client and server stubs.

Jherico