Création d'stubs Java pour un service / client DLNA? (Ou, Qu'est-ce qu'un balise racine dans un fichier XML?)

StackOverflow https://stackoverflow.com/questions/1716740

Question

En regardant les spécifications DLNA, la plupart de la communication de métadonnées semble être savon à base. Cependant, je ne peux pas trouver quoi que ce soit comme un WSDL pour l'un des différents services. Au lieu de cela il y a une sorte de langage de description de service qui ressemble à ceci:

<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>

Je ne peux trouver aucune documentation sur ce format ou des outils pour générer des souches de serveur ou client pour comme je peux avec un WSDL. A ce stade, mes options semblent être

  1. Créer un XSLT pour essayer de transformer la langue de descripteur dans wsdl
  2. outils de génération de code écriture java qui fonctionnent de la langue du descripteur existant
  3. Ecrire des talons et le code de sérialisation / désérialisation les messages de savon à la main

Les trois options semblent à peu près également peu attrayante, mais le premier semble être le moins de travail, pas que ça veut tout dire beaucoup. Toutes les suggestions pour obtenir une meilleure idée sur le problème?

Était-ce utile?

La solution

Je finalement utilisé un outil de génération de code pour analyser le XML manuellement et créer des stubs client et serveur.

Autres conseils

Dans le cas où il aide, Ohnet utilise une approche similaire pour créer une classe par service UPnP (dans votre choix de C ++, C #, Java, JavaScript ou C) qui gère tous (de) sérialisation des messages de savon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top