Hello Folks!
Env: XP PRO, JScript, SOAP, WSDL, XML

I have to query the status of two devices (SEP0017593F52C4, SEP0007EB9F1118) using a SOAP RPC. The device list is suppose to be coded in a SOAP string array item.
Here is the WSDL:

CODE
The WSDL def for the select items array:
- <complexType name="CmSelectionCriteria">
- <sequence>
<element name="MaxReturnedDevices" nillable="true" type="xsd:unsignedInt" />
<element name="Class" nillable="true" type="xsd:string" />
<element name="Model" nillable="true" type="xsd:unsignedInt" />
<element name="Status" type="xsd:string" />
<element name="NodeName" nillable="true" type="xsd:string" />
<element name="SelectBy" type="xsd:string" />
<element name="SelectItems" nillable="true" type="tns:SelectItems" />
</sequence>
</complexType>

- <complexType name="SelectItem">
- <sequence>
<element name="Item" type="xsd:string" />
</sequence>
</complexType>

- <complexType name="SelectItems">
- <complexContent>
- <restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:SelectItem[]" />
</restriction>
</complexContent>
</complexType>


The example I was told to use is:

CODE
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://schemas.cisco.com/ast/soap/"
xmlns:types="http://schemas.cisco.com/ast/soap/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<tns:AstHeader> <SessionId xsi:type="xsd:string">613</SessionId> </tns:AstHeader>
</soap:Header>
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org
/soap/encoding/">
<tns:SelectCmDevice>
<StateInfo xsi:type="xsd:string"/>
<tns:CmSelectionCriteria xsi:type="tns:CmSelectionCriteria">
<MaxReturnedDevices xsi:type="xsd:unsignedInt">200</MaxReturnedDevices>
<NodeName xsi:type="xsd:string"/>
<SelectBy xsi:type="xsd:string">Name</SelectBy>
<SelectItems soapenc:arrayType="tns:SelectItem[1]" xsi:type="soapenc:Array">
<item xsi:type="tns:SelectItem">
<Item xsi:type="xsd:string">SEP0017593F52C4</Item>
</item> <item xsi:type="tns:SelectItem">
<Item xsi:type="xsd:string">SEP0007EB9F1118</Item>
</item>
</SelectItems>
</tns:CmSelectionCriteria>
</tns:SelectCmDevice>

I have some confusion so here are a couple of questions:
1) The above example worked but I noticed I have 2 items and SelectItems had "tns:SelectItem[1]". What does this "[1]" specify in this case.
I was thinking it limits the number of items you are transmitting but that can't be the case because the RPC processed the 2 devices correctly.
So what is that[1]?
2) Is there a shorter way to code this rather than all this code for each item inthe SOAP array?
<SelectItems soapenc:arrayType="tns:SelectItem[1]" xsi:type="soapenc:Array">
<item xsi:type="tns:SelectItem">
<Item xsi:type="xsd:string">SEP0017593F52C4</Item>
</item> <item xsi:type="tns:SelectItem">
<Item xsi:type="xsd:string">SEP0007EB9F1118</Item>
</item>
</SelectItems>

I tried this way but it only processes the last item in the list: SEP0007EB9F1118
<SelectItems soapenc:arrayType="tns:SelectItem[2]" xsi:type="soapenc:Array">
<item xsi:type="tns:SelectItem">
<Item xsi:type="xsd:string">SEP0017593F52C4</Item>
<Item xsi:type="xsd:string">SEP0007EB9F1118</Item>
</item>
</SelectItems>
</tns:CmSelectionCriteria>
</tns:SelectCmDevice>