This is pretty much spot-on - In the WSDL, you can define complex argument types which may be composed by any number of sub-elements. For example, from a Perl web service that I wrote which employed WSDL:
<xsd:complexType name="queryElement">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="address" type="xsd:
+string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="category" type="xsd
+:integer"/>
<xsd:element maxOccurs="1" minOccurs="1" name="id" type="xsd:strin
+g"/>
<xsd:element maxOccurs="1" minOccurs="1" name="request" type="xsd:
+string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="time" type="xsd:int
+eger"/>
</xsd:sequence>
</xsd:complexType>
perl -le "print unpack'N', pack'B32', '00000000000000000000001000000000'"