In XML Schema we declare an array or a multiple occurrence of a schema element by setting its maxOccurs attribute to a value greater than 1 or to the value “unbounded” in a case of no maximum boundary.
<xs:element maxOccurs="unbounded"
 minOccurs="0"
 name="params"
 nillable="true"
 type="xs:int"/>
If you generate PHP code to such a schema using wsdl2php tool, you will get a code for the class variable named “params” similar to this.
/** * @var array[0, unbounded] of int */ public $params;
So if you have a variable (say $object) for the object of this class you can fill the “params” field like this,
$object->params = array(1, 5, 8);
This will create the xml with the expected array of elements.
<wrapper> <params>1</params> <params>5</params> <params>8</params> </wrapper>
Not only for simple types, you can have arrays of complex types too.
<xs:element maxOccurs="unbounded"
minOccurs="0"
name="params"
nillable="true"
type="tns:MyComplexType"/>
Instead of giving simple integers like earlier case, this time you will feed the “params” variable with an array of PHP objects of ‘MyComplexType’ class.
$obj1 = new MyComplexType(); /* feeding data to obj1 variables */ $obj2 = new MyComplexType(); /* feeding data to obj2 variables */ $obj3 = new MyComplexType(); /* feeding data to obj3 variables */ $object->params = array($obj1, $obj2, $obj3);
This will create a xml containing array of params similar to this,
<wrapper> <params> <elementx/> <!-- elements in the MyComplexType type --> <elementy/> </params> <params> ... <!-- elements in the MyComplexType type --> </params> <params> ... <!-- elements in the MyComplexType type --> </params> </wrapper>