0
나는이 클라이언트 여기
목록 매개 변수를 SOAPpy의 배열이 아닌 여러 개의 링크 이름이 지정된 요소로 전달하려면 어떻게해야합니까?
oamCmdStruct = SOAPpy.structType()
oamCmdStruct._addItem('m-strName','set-log-level')
oamCmdStruct._addItem('m-argVector', logLevel)
oamCmdStruct._addItem('m-argVector', loggerName)
self.serverConnection.executeCommand({'in-cmd':oamCmdStruct}
에 대한 파이썬에서 내 코드는 다음과 WSDL
<complexType name="OAMCommand">
<sequence>
<element name="m-strName" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="m-argVector" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
이있는 웹 노예에 요소의 여러 인스턴스를 전달하려고
내가 얻을 출력 SOAPpy에서 웹 서비스에 의해 거부되면 2m-argVector 요소에 대한 배열을 만듭니다.
<xsd:in-cmd>
<m-strName xsi:type="xsd:string">set-log-level</m-strName>
<m-argVector SOAP-ENC:arrayType="xsd:string[2]" xsi:type="SOAP-ENC:Array">
<item>WARN_LOG_LEVEL</item>
<item>netborder</item>
</m-argVector>
</xsd:in-cmd>
다음은 다른 클라이언트가 보내는 출력입니다. 배열이 없습니다. 이름이 같은 두 개의 요소 만 있습니다.
<SoapOAM:executeCommand>
<in-cmd>
<m-strName>set-log-level</m-strName>
<m-argVector>ERROR_LOG_LEVEL</m-argVector>
<m-argVector>netborder.media</m-argVector>
</in-cmd>
</SoapOAM:executeCommand>
어떻게 위의 같은 XML 출력을 생성하는 내 SOAPpy 코드를 수정할 수 있습니까? 편집
: 나는 파이썬
oamCmdStruct = SOAPpy.structType(data = {"m-strName":"set-log-level",
"m-argVector": logLevel,
"m-argVector": loggerName})
에 다음 코드를 시도하지만이 SOAPpy에서 XML 출력
<xsd:in-cmd>
<m-strName xsi:type="xsd:string">set-log-level</m-strName>
<m-argVector xsi:type="xsd:string">loggerName</m-argVector>
</xsd:in-cmd>
처럼 보였다 있으며 logLevel의 값이 loggerName 덮어 대신 생성됩니다 것입니다 이 개 항목 ...
더 우아한 해결책은이 코드를 모두 주석 처리하는 대신 ** typed ** 값을 0으로 설정하는 것입니다. –