Generation of default XML schemas for stored procedures that return result sets

The workbench can generate detailed or generic XML schemas for stored procedures that accept non-varying input values and return result sets that are always the same.

To make the XML schema as detailed as possible, the workbench needs to know the structure of these unchanging result sets. To find out this information, the workbench needs to run the stored procedure. Before the workbench can do so, provide the values of the input parameters.

For example, the operation "two_result_sets" calls a stored procedure that always accepts the same input values and always returns the same two result sets. If you do not provide the input values and run the stored procedure, the workbench creates the following default XML schema for the response message:

<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>

This XML schema does not contain information about columns or data types.

However, if you do provide the input values and then tell the workbench to run the stored procedure, the workbench generates this default XML schema for the response message:

<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>

 

Related tasks

Adding operations that are based on calls to stored procedures