DLNA 서비스 / 클라이언트를위한 Java Stubs 생성? (또는 XML 파일의 루트 태그 란 무엇입니까?)

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

문제

DLNA의 사양을 살펴보면 대부분의 메타 데이터 통신은 비누 기반으로 보입니다. 그러나 다양한 서비스에 대해 WSDL과 같은 것을 찾을 수 없습니다. 대신 다음과 같이 보이는 일종의 서비스 설명 언어가 있습니다.

<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. 수작업으로 비누 메시지를 직렬화/사제 화하려면 스터브 및 코드를 작성하십시오.

세 가지 옵션은 모두 똑같이 매력적이지 않은 것처럼 보이지만 첫 번째는 가장 적은 작업처럼 보이지만 그 말이 많지 않습니다. 문제를 더 잘 처리하기위한 제안이 있습니까?

도움이 되었습니까?

해결책

궁극적으로 코드 생성 도구를 사용하여 XML을 수동으로 구문 분석하고 클라이언트 및 서버 스텁을 생성했습니다.

다른 팁

도움이되는 경우 오넷 비슷한 접근 방식을 사용하여 UPNP 서비스 당 클래스를 생성합니다 (C ++, C#, Java, JavaScript 또는 C)는 SOAP 메시지의 모든 (DE) 직렬화를 처리합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top