3.1.4.4.2.4 ResponsePacket

This element is the actual content of the protocol server’s QuerySoapOut (section 3.1.4.4.1.2) SOAP message. It contains the search results that the protocol server created in response to the search query issued by the QuerySoapIn SOAP message.

 <s:element name="ResponsePacket">
   <s:complexType>
     <s:sequence>
       <s:element name="Response">
         <s:complexType>
           <s:sequence>
             <s:element name="QueryId" type="t:GUIDType" minOccurs="0"/>
             <s:element name="Range" minOccurs="0">
               <s:complexType>
                 <s:sequence>
                   <s:element name="StartAt" type="t:StartAtType"/>
                   <s:element name="Count" type="s:unsignedInt"/>
                   <s:element name="TotalAvailable" type="s:unsignedInt"/>
                   <s:element name="Results" minOccurs="0">
                     <s:complexType>
                       <s:sequence>
                         <s:element ref="d:Document" maxOccurs="unbounded"/>
                       </s:sequence>
                     </s:complexType>
                   </s:element>
                 </s:sequence>
               </s:complexType>
             </s:element>
             <s:element name="Status" type="r:StatusType"/>
             <s:element name="DebugErrorMessage" type="t:String2048" minOccurs="0"/>
           </s:sequence>
           <s:attribute name="domain" type="t:String255" use="optional"/>
         </s:complexType>
       </s:element>
     </s:sequence>
   </s:complexType>
 </s:element>

Response: This element contains the response to the query.

Response.QueryId: The unique identifier of the search query (see section 2.2.5.2). It MUST only be present if the request’s QueryPacket.Query element contained a QueryId child element. In that case, this element MUST be set to the same value that was set in the request’s QueryPacket.Query.QueryId element.

Response.Range: Information about the range of search results returned, in addition to search results. For each query request, the protocol server MUST behave as if it generated a large list of all results, ordered as specified in the request’s QueryPacket.Query.SortByProperties element. The results that are returned in the response to a search query MUST behave as if they were a subset from that list as specified in the request’s QueryPacket.Query.Range element. If the requested count of search results exceeds the number of items in the search results, the protocol server MUST return all search results. In that case, this element MUST contain the information about the range of search results that were actually returned (as opposed to the range that was requested). This element MUST be present if the status code in the Response.Status element is "SUCCESS". This element MUST NOT be present otherwise.

Response.Range.StartAt: Where to begin the returned results (see section 2.2.5.4). This element MUST specify which element in the big list of all results corresponds to the first element returned by the protocol server for the query request. For example, if this is set to 10, the first result returned is the tenth result in the list of all results.

Response.Range.Count: Specifies how many items are being returned. It MUST be set to the number of results that follow.

Response.Range.TotalAvailable: Approximate number of results for this query. This element SHOULD be set to the approximate number of results that are available for the given search query.

Response.Range.Results: Result items for this query. This element MUST contain all the actual results in its child elements. The child elements MUST be of type Document.

Response.Status: Status of the query. This element MUST contain a status code that indicates the success of the request. See section 2.2.5.5 for possible values.

Response.DebugErrorMessage: If the value of the Response.Status element is anything but "SUCCESS", this element MUST either be empty or contain an error message (see section 2.2.5.7). This error message is intended to be read by an administrator. If the value of the Response.Status element is "SUCCESS", this element MUST NOT be present.

Response.domain: If the request’s QueryPacket.Query element had a domain attribute, this attribute MUST be set to the same value that was present in the QueryPacket.Query.domain attribute of the request (see section 2.2.5.8). If the request’s QueryPacket.Query element did not have a domain attribute, the presence of this attribute depends on whether the status code in the Response.Status element is "SUCCESS" or not. If the status code in the Response.Status element is "SUCCESS", and the request’s QueryPacket.Query element did not have a domain attribute, this attribute MUST be absent. If the status code in the Response.Status element is anything other than "SUCCESS", and the request’s QueryPacket.Query element did not have a domain attribute, this attribute MUST be present and set to an empty string.