Generación de esquemas XML por omisión para procedimientos almacenados que devuelven conjuntos de resultados

El entorno de trabajo puede generar esquemas XML detallados o genéricos para procedimientos almacenados que aceptan valores de entrada no variables y devuelven conjuntos de resultados que no cambian.

Para hacer que el esquema XML sea lo más detallado posible, el entorno de trabajo necesita conocer la estructura de estos conjuntos de resultados que no cambian. Para obtener esta información, el entorno de trabajo debe ejecutar el procedimiento almacenado. Para que el entorno de trabajo pueda hacerlo, es necesario proporcionar los valores de los parámetros de entrada.

Por ejemplo, la operación "two_result_sets" llama a un procedimiento almacenado que siempre acepta los mismos valores de entrada y siempre devuelve los dos mismos conjuntos de resultados. Si no se proporcionan los valores de entrada y se ejecuta el procedimiento almacenado, el entorno de trabajo crea el siguiente esquema XML por omisión para el mensaje de respuesta:

<xsd:element name="two_result_sets_Response">
   <xsd:complexType>
      <xsd:sequence>
         <xsd:element maxOccurs="1" minOccurs="0" name="rowset" type="tns:anonymousResultSetType" />
         <xsd:element maxOccurs="1" minOccurs="0" name="rowset2" type="tns:anonymousResultSetType" />
      </xsd:sequence>
   </xsd:complexType>
</xsd:element>

Este esquema XML no contiene información sobre columnas o tipos de datos.

Sin embargo, si se proporcionan los valores de entrada y, a continuación, se indica al entorno de trabajo que ejecute el procedimiento almacenado, el entorno de trabajo genera este esquema XML por omisión para el mensaje de respuesta:

<xsd:element name="two_result_setsResponse">
   <xsd:complexType>
      <xsd:sequence>
         <xsd:element name="rowset">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element maxOccurs="unbounded" minOccurs="0" name="row">
                     <xsd:complexType>
                        <xsd:sequence>
                           <xsd:element name="NAME" nillable="true" type="xsd:string" />
                           <xsd:element name="JOB" nillable="true" type="xsd:string" />
                           <xsd:element name="_x0033_" nillable="true" type="xsd:double" />
                        </xsd:sequence>
                     </xsd:complexType>
                  </xsd:element>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         <xsd:element name="rowset2">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element maxOccurs="unbounded" minOccurs="0" name="row">
                     <xsd:complexType>
                        <xsd:sequence>
                           <xsd:element name="NAME" nillable="true" type="xsd:string" />
                           <xsd:element name="JOB" nillable="true" type="xsd:string" />
                           <xsd:element name="_x0033_" nillable="true" type="xsd:double" />
                        </xsd:sequence>
                     </xsd:complexType>
                  </xsd:element>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>
</xsd:element>

Comentarios