# Microsoft.Search.Query Schema

This topic contains the annotated text of the Microsoft.Search.Query.xsd schema file. For additional information about this schema, see Microsoft.Search.Query Schema Documentation.

    <?xml version="1.0" encoding="utf-8" ?>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
    <!-- Schema: Query.xsd                                          -->
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  -->
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        targetNamespace="urn:Microsoft.Search.Query"
        xmlns="urn:Microsoft.Search.Query" elementFormDefault="qualified"
        xmlns:t="urn:Microsoft.Search.Types">
        <xsd:annotation>
            <xsd:documentation>
                This document is provided for informational purposes
                only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED,
                AS TO THE INFORMATION IN THIS DOCUMENT. Complying with
                all applicable copyright laws is the responsibility of
                the user.  Microsoft may have patents, patent
                applications, trademarks, copyrights, or other
                intellectual property rights covering subject matter in
                this document. Except as expressly provided in any
                written license agreement from Microsoft, the furnishing
                of this document does not give you any license to these
                patents, trademarks, copyrights, or other intellectual
                property. (c) 2003 Microsoft Corporation. All rights
                reserved.
            </xsd:documentation>
            <xsd:documentation>
                Defines a Query Packet from the client to a service
                provider, which can in turn contain several individual
                queries corresponding to each of the provider's services.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:import schemaLocation="Microsoft.Search.Types.xsd"
            namespace="urn:Microsoft.Search.Types" />
        <xsd:import
            schemaLocation="Microsoft.Search.Query.Office.Keywords.xsd"
            namespace="urn:Microsoft.Search.Query.Office.Keywords" />
        <xsd:import
            schemaLocation="Microsoft.Search.Query.Office.Context.xsd"
            namespace="urn:Microsoft.Search.Query.Office.Context" />
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <!-- Root Element: QueryPacket                         -->
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <xsd:element name="QueryPacket">
            <xsd:annotation>
                <xsd:documentation>
                    A Query Packet from the client to a service provider,
                    which can in turn contain several individual queries
                    corresponding to each of the provider's services.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="Query" maxOccurs="unbounded"
                        type="QueryType">
                        <xsd:annotation>
                            <xsd:documentation>
                                An individual query
                                directed at a service.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:any namespace="##other" minOccurs="0"
                        maxOccurs="unbounded" processContents="skip">
                        <xsd:annotation>
                            <xsd:documentation>
                                Any element in another namespace.
                                Can be used for extensibility
                                in the future.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:any>
                </xsd:sequence>
                <xsd:attribute name="revision" type="xsd:unsignedInt"
                    use="optional">
                    <xsd:annotation>
                        <xsd:documentation>
                            Unsigned integer indicating the revision of
                            the schema used in the request.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="build" type="t:String255"
                    use="optional">
                    <xsd:annotation>
                        <xsd:documentation>
                            The build of the component used
                            to generate the request.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
            </xsd:complexType>
        </xsd:element>
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <!-- Type: QueryType                                   -->
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <xsd:complexType name="QueryType">
            <xsd:annotation>
                <xsd:documentation>
                    Describes an individual query directed at a service.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:sequence>
                <xsd:element name="QueryId" type="t:String255"
                    minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            Unique ID identifying the query.  Can be used
                            for tracking purposes.  Office always uses a
                            GUID.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="OriginatorId" type="t:String255"
                    minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            The service should be able to uniquely
                            identify the client through this id.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="SupportedFormats"
                    type="SupportedFormatsType">
                    <xsd:annotation>
                        <xsd:documentation>
                            Formats that the client understands
                            for the response.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Context" type="ContextType"
                    minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            Context information,
                            including the actual query.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Range" type="RangeType"
                    minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            Range information, including the number of
                            results expected.  Office will never request
                            more than one range.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:any namespace="##other"
                    minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            Any element in another namespace.  Office
                            will emit elements in the OfficeContext and
                            Keywords namespaces here.  This area can
                            also be used for extensibility.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:any>
            </xsd:sequence>
            <xsd:attribute name="domain"
                type="t:String255" use="optional">
                <xsd:annotation>
                    <xsd:documentation>
                        A unique domain identifier for the service
                        handling the query.  The Response from the s
                        ervice should have a matching domain attribute.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:attribute>
        </xsd:complexType>
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <!-- Type: SupportedFormatsType                        -->
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <xsd:complexType name="SupportedFormatsType">
            <xsd:annotation>
                <xsd:documentation>
                    Describes any number of formats that the client
                    understands for the response.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:sequence>
                <xsd:element name="Format" type="FormatType"
                    maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            Supported response elements (QNames).
                            All recognized namespaces should be
                            specified here.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:any namespace="##other" minOccurs="0"
                    maxOccurs="unbounded" processContents="skip">
                    <xsd:annotation>
                        <xsd:documentation>
                            Any element in another namespace.
                            Can be used for extensibility in the future.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:any>
            </xsd:sequence>
        </xsd:complexType>
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <!-- Type: FormatType                                  -->
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <xsd:complexType name="FormatType">
            <xsd:annotation>
                <xsd:documentation>
                    Defines a supported format.  Normally this should
                    be treated as a fully qualified name
                    (namespace:localname).
                </xsd:documentation>
            </xsd:annotation>
            <xsd:simpleContent>
                <xsd:extension base="xsd:string">
                    <xsd:attribute name="revision" type="xsd:unsignedInt"
                        use="optional">
                        <xsd:annotation>
                            <xsd:documentation>
                                Unsigned integer indicating the
                                revision of the schema used.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:attribute>
                    <xsd:attribute name="build" type="t:String255"
                        use="optional">
                        <xsd:annotation>
                            <xsd:documentation>
                                The build of the component used.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:attribute>
                </xsd:extension>
            </xsd:simpleContent>
        </xsd:complexType>
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <!-- Type: ContextType                                 -->
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <xsd:complexType name="ContextType">
            <xsd:sequence>
                <xsd:element name="QueryText" type="QueryTextType"
                    minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            Query to perform search on.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="LanguagePreference"
                    type="xsd:language" minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            Language preference for the response.  This
                            applies mainly to user interface elements,
                            not to content.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Requery" type="RequeryType"
                    minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            Requery data from the service being
                            round-tripped through the client.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="OriginatorContext"
                    type="OriginatorContextType" minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            This piece of context will get round-tripped
                            through the service and sent back.  Office
                            currently does not emit this element.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:any namespace="##other" minOccurs="0"
                    maxOccurs="unbounded" processContents="skip">
                    <xsd:annotation>
                        <xsd:documentation>
                            Any element in another namespace.  Can be
                            used for extensibility in the future.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:any>
            </xsd:sequence>
        </xsd:complexType>
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <!-- Type: QueryTextType                               -->
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <xsd:complexType name="QueryTextType">
            <xsd:annotation>
                <xsd:documentation>
                    Defines the query to perform search on.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:simpleContent>
                <xsd:extension base="xsd:string">
                    <xsd:attribute name="language"
                        type="xsd:language" use="optional">
                        <xsd:annotation>
                            <xsd:documentation>
                                The language of the query string.  It is
                                Office's best attempt at deriving it.
                            </xsd:documentation>
                        </xsd:annotation>
                    </xsd:attribute>
                    <xsd:attribute name="type" use="optional"
                        default="STRING">
                        <xsd:annotation>
                            <xsd:documentation>
                                The type of query.  All queries generated
                                 by Office are strings.
                             </xsd:documentation>
                        </xsd:annotation>
                        <xsd:simpleType>
                            <xsd:restriction base="xsd:string">
                                <xsd:enumeration value="STRING">
                                    <xsd:annotation>
                                        <xsd:documentation>
                                            A simple string.  All queries
                                            generated by Office are
                                            strings.
                                        </xsd:documentation>
                                    </xsd:annotation>
                                </xsd:enumeration>
                                <xsd:enumeration value="ID">
                                    <xsd:annotation>
                                        <xsd:documentation>
                                            An ID.
                                        </xsd:documentation>
                                    </xsd:annotation>
                                </xsd:enumeration>
                                <xsd:enumeration value="MSSQLFT">
                                    <xsd:annotation>
                                        <xsd:documentation>
                                            A SQL search string.
                                        </xsd:documentation>
                                    </xsd:annotation>
                                </xsd:enumeration>
                                <xsd:enumeration value="XPATH">
                                    <xsd:annotation>
                                        <xsd:documentation>
                                            An XPath.
                                        </xsd:documentation>
                                    </xsd:annotation>
                                </xsd:enumeration>
                                <xsd:enumeration value="BOOLEAN">
                                    <xsd:annotation>
                                        <xsd:documentation>
                                            A boolean.
                                        </xsd:documentation>
                                    </xsd:annotation>
                                </xsd:enumeration>
                                <xsd:enumeration value="">
                                    <xsd:annotation>
                                        <xsd:documentation>
                                            An unspecified type.
                                        </xsd:documentation>
                                    </xsd:annotation>
                                </xsd:enumeration>
                            </xsd:restriction>
                        </xsd:simpleType>
                    </xsd:attribute>
                </xsd:extension>
            </xsd:simpleContent>
        </xsd:complexType>
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <!-- Type: RequeryType                                 -->
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <xsd:complexType name="RequeryType">
            <xsd:annotation>
                <xsd:documentation>
                    Defines requery data from the service being
                    round-tripped through the client.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:sequence>
                <xsd:element name="RequeryContext"
                    type="RequeryContextType" minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            Server data being round-tripped
                            by the client.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:any namespace="##other" minOccurs="0"
                    maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            Any element in another namespace.  Office
                            will emit the ServiceParameters element here.
                            It contains all the forms data.  This area
                            can also be used for extensibility.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:any>
            </xsd:sequence>
        </xsd:complexType>
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <!-- Type: RequeryContextType                          -->
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <xsd:complexType name="RequeryContextType">
            <xsd:annotation>
                <xsd:documentation>
                    Defines the Requery Context that a service can have
                    the client pass back, during a requery only.  It is
                    an arbitrary XML data island.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:sequence>
                <xsd:any namespace="##other" maxOccurs="unbounded"
                    processContents="skip">
                    <xsd:annotation>
                        <xsd:documentation>
                            Any element in another namespace.  This is an
                            XML island the service is passing to the
                            client for round-tripping.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:any>
            </xsd:sequence>
        </xsd:complexType>
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <!-- Type: OriginatorContextType                       -->
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <xsd:complexType name="OriginatorContextType">
            <xsd:annotation>
                <xsd:documentation>
                    Defines context data from the client to be
                    round-tripped through the service.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:sequence>
                <xsd:any namespace="##other" maxOccurs="unbounded"
                    processContents="skip">
                    <xsd:annotation>
                        <xsd:documentation>
                            Any element in another namespace.  This is
                            an XML island the client passed to the
                            service for round-tripping.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:any>
            </xsd:sequence>
        </xsd:complexType>
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <!-- Type: RangeType                                   -->
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - -->
        <xsd:complexType name="RangeType">
            <xsd:annotation>
                <xsd:documentation>
                    Defines the Range element containing information
                    about the results being requested.
                </xsd:documentation>
            </xsd:annotation>
            <xsd:sequence>
                <xsd:element name="ResultType" type="t:String2048"
                    minOccurs="0" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            Optional string describing the type of
                            result.  Office will not emit this element.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="StartAt" type="t:StartAtType"
                    default="1" minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            The index of the initial result requested,
                            based on '1' as the lowest result index.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="Count" type="xsd:unsignedInt"
                    minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            Total results of this type to return.  Note
                            less than this number may be returned if
                            there aren't enough and more than this number
                            may be returned due to policy restrictions.
                            If more are returned, the client should
                            display them all.  Absence of count implies
                            provider discretion.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:any namespace="##other" minOccurs="0"
                    maxOccurs="unbounded" processContents="skip">
                    <xsd:annotation>
                        <xsd:documentation>
                            Any element in another namespace.  Can be
                            used for extensibility in the future.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:any>
            </xsd:sequence>
            <xsd:attribute name="id" type="xsd:string" use="optional">
                <xsd:annotation>
                    <xsd:documentation>
                        A unique ID for the Range.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:attribute>
        </xsd:complexType>
    </xsd:schema>

©2003-2004 Microsoft Corporation. All rights reserved. Permission to copy, display and distribute this document is available at: http://msdn.microsoft.com/library/en-us/odcXMLRef/html/odcXMLRefLegalNotice.asp