Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2014, 04:56
inviernomudo
 
Fecha de Ingreso: octubre-2014
Mensajes: 2
Antigüedad: 9 años, 6 meses
Puntos: 0
NUSOAP coleccion con un array de arrays de entrada

Buenos días,

Tengo un problema que me persigue desde hace más de un mes. Tengo un Web Service que he desarrollado usando nusoap y ahora he agregado una nueva función. Esta nueva función le tengo puesto que recibe una estructura donde algunos campos de esta son arrays de estructuras:
Código:
<xsd:complexType name="getIncidenciasUsuarioRequest">
<xsd:sequence>
<xsd:element name="userLdap" type="xsd:string"/>
<xsd:element name="finicio" type="xsd:dateTime"/>
<xsd:element name="ffin" type="xsd:dateTime" nillable="true"/>
<xsd:element name="tipoIncidencia" type="tns:TipoIncidencia" minOccurs="1" maxOccurs="unbounded"/>
<xsd:element name="estadoIncidencia" type="tns:EstadoIncidencias" minOccurs="1" maxOccurs="unbounded"/>
<xsd:element name="elementosPorPagina" type="xsd:int"/>
<xsd:element name="numeroPagina" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="TipoIncidencia">
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="descripcion" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="EstadoIncidencias">
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="descripcion" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
Al hacer pruebas con SOAPUI y con la aplicación que consume del web service (esa aplicación la hace otra persona en Java) tengo un problema. Si paso varios tipoIncidencia y varios estadoIncidencia no tengo problemas, me reconoce todos los elementos. Pero si paso un solo elemento de alguno de ellos, en vez de un array con un elemento me aparece un array con dos elementos, id y descripción.
Esto es lo que pido en SOAPUI con más de un elemento:
Código:
       <!--1 or more repetitions:-->
            <estadoIncidencia>
               <id>1</id>
               <descripcion>Abierta</descripcion>
            </estadoIncidencia>
            <estadoIncidencia>
               <id>2</id>
               <descripcion>Cerrada</descripcion>
            </estadoIncidencia>
Y esto recibo en la función que procesa la entrada y contruye la respuesta:
Código:
  [estadoIncidencia] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [descripcion] => Abierta
                )

            [1] => Array
                (
                    [id] => 2
                    [descripcion] => Cerrada
                )

        )
Pero cuando envío un solo elemento:
Código:
       <!--1 or more repetitions:-->
            <estadoIncidencia>
               <id>1</id>
               <descripcion>Abierta</descripcion>
            </estadoIncidencia>
Esto recibo en el php:
Código:
    [estadoIncidencia] => Array
        (
            [id] => 45816661
            [descripcion] => Aceptada
        )
Como he dicho, llevo más de un mes dandole vueltas, ¿Alquien puede echarme una mano?

Gracias