これは、SOAP::Liteを使用してモデル化しようとしているSOAPドキュメントです。
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<GetOrderByPartnerOrderID xmlns="http://api.geotrust.com/webtrust/query">
<Request>
<QueryRequestHeader>
<PartnerCode>partnercode</PartnerCode>
<AuthToken>
<UserName>username</UserName>
<Password>password</Password>
</AuthToken>
</QueryRequestHeader>
<PartnerOrderID>partnerid</PartnerOrderID>
</Request>
</GetOrderByPartnerOrderID>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
これが私がこのドキュメントをモデル化するために使用しているPerlコードです。
my $params = SOAP::Data->name("Request" =>
\SOAP::Data->value => (
\SOAP::Data->name("QueryRequestHeader" =>
\SOAP::Data->value(
SOAP::Data->name("PartnerCode" => $partnercode),
SOAP::Data->name("AuthToken" =>
\SOAP::Data->value(
SOAP::Data->name("UserName" => $username),
SOAP::Data->name("Password" => $password)
)
)
)
),
\SOAP::Data->name("PartnerOrderID" => $poid)
);
ただし、このコードによって生成されたSOAPドキュメント(トレースをオンにしてSOAP :: Liteを使用しています)は次のとおりです。
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<GetOrderByPartnerOrderID xmlns="http://api.geotrust.com/webtrust/query">
<Request>
<QueryRequestHeader>
<PartnerCode>partnercode</PartnerCode>
<AuthToken>
<UserName>username</UserName>
<Password>password</Password>
</AuthToken>
</QueryRequestHeader>
</Request>
<Request>
<PartnerOrderID>partnerid</PartnerOrderID>
</Request>
</GetOrderByPartnerOrderID>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
何らかの理由で、Requestタグを閉じてから、再度開きます。簡単に修正できるようですが、考えられることはすべて試しましたが、理解できません。どんな助けでも大歓迎です。