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?