http://www.perlmonks.org?node_id=285910

hijinks has asked for the wisdom of the Perl Monks concerning the following question:

I have a soap lite question. i'm supposed to match this xml schema
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envel +ope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http:// +www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1:getIntervalData soapenv:encodingStyle="http://schemas.xmlsoap.o +rg/soap/encoding/" xmlns:ns1="https://www.caiso.com/webservices/pirp/ +OperationsService/1.0"> <resId xsi:type="xsd:string">CABZON_1_WINDA1</resId> <intervals xsi:type="soapenc:Array" soapenc:arrayType="ns2:Operatio +nInterval[2]" xmlns:ns2="https://pirp.caiso.com/schemas/pirp/v1" xmln +s:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> <item href="#id0"/> <item href="#id1"/> </intervals> </ns1:getIntervalData> <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://sc +hemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:OperationInterval" xm +lns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns3="ht +tps://pirp.caiso.com/schemas/pirp/v1"> <operDate xsi:type="xsd:dateTime">2003-08-16T10:51:36.137Z</operDat +e> <hourEnding xsi:type="soapenc:int">16</hourEnding> <intervalId xsi:type="soapenc:int">6</intervalId> </multiRef> <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://sc +hemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:OperationInterval" xm +lns:ns4="https://pirp.caiso.com/schemas/pirp/v1" xmlns:soapenc="http: +//schemas.xmlsoap.org/soap/encoding/"> <operDate xsi:type="xsd:dateTime">2003-08-16T10:51:36.137Z</operDat +e> <hourEnding xsi:type="soapenc:int">16</hourEnding> <intervalId xsi:type="soapenc:int">5</intervalId> </multiRef> </soapenv:Body> </soapenv:Envelope>
for the life of me I can't figure out the array part of it. It gets into the wsdl file just fine. here is the perl code
# set this to what resId we want to use $resId = "met_tower"; @OperationInterval = qw(["2003-08-16T10:51:36.137Z", "16", "6"], ["2003-08-16T10:51:36.137Z", "16", "5"]); use SOAP::Lite; my $soap = SOAP::Lite ->service("file:OperationsService.wsdl") ->xmlschema('2001'); my $som = $soap->getIntervalData($resId, @OperationInterval); print $som;