PHP または Python に WSDL ファイルを適切に解析するものがあるかどうか疑問に思っています。たとえば、http://www.onvif.org/ver10/media/wsdl/media.wsdlを解析する必要があります。PHP SOAP 拡張機能は、次のようなコードを生成します。
<ns1:GetStreamUri env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<param0 xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">StreamSetup</key>
<value xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">Stream</key>
<value xsi:type="xsd:string">RTP-Unicast</value>
</item>
<item>
<key xsi:type="xsd:string">Transport</key>
<value xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">Protocol</key>
<value xsi:type="xsd:string">UDP</value>
</item>
</value>
</item>
</value>
</item>
<item>
<key xsi:type="xsd:string">ProfileToken</key>
<value xsi:type="xsd:string">main</value>
</item>
</param0>
</ns1:GetStreamUri>
そして、私はこのようにする必要があります:
<GetStreamUri xmlns="http://www.onvif.org/ver10/media/wsdl">
<StreamSetup>
<Stream xmlns="http://www.onvif.org/ver10/schema">RTP-Unicast</Stream>
<Transport xmlns="http://www.onvif.org/ver10/schema">
<Protocol>UDP</Protocol>
</Transport>
</StreamSetup>
<ProfileToken>main</ProfileToken>
</GetStreamUri>
デフォルトのSOAP拡張機能を拡張することにより、2番目の例のようにリクエストを生成することができましたが、それでもすべてのタイプ、名前空間などを追加する必要があります...解析方法がわかりません...いくつかあるかもしれませんWSDLドキュメントで提供されている仕様に従ってこのリクエストを生成する方法は?