wsRequest

<?xml version = "1.0" encoding = "UTF-8"?>
<xs:schema  xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
                        xmlns:xs="http://www.w3.org/2001/XMLSchema"
                        xmlns="http://www.exlibris.com/primo/xsd/wsRequest"
                        xsi:schemaLocation="http://www.exlibris.com/primo/xsd/wsRequest"
                        xmlns:psr="http://www.exlibris.com/primo/xsd/search/request"
                        xmlns:pnx="http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib"
                        targetNamespace="http://www.exlibris.com/primo/xsd/wsRequest"
                        elementFormDefault="qualified"
                        attributeFormDefault="unqualified">


        <xs:import namespace="http://www.exlibris.com/primo/xsd/search/request"
                           schemaLocation="../../../../../../../../primo_common/infrastructure/src/main/com/exlibris/primo/xsd/search/PrimoSearchRequest.xsd"/>
    <xs:import namespace="http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib"
                   schemaLocation="../../../../../../../../../jaguar/client/src/main/com/exlibris/jaguar/xsd/primo_nm_bib.xsd"/>



        <xs:element name="searchRequest"                        type="SearchRequest"/>
        <xs:element name="fullViewRequest"                      type="FullViewRequest"/>
        <xs:element name="addToEshelfRequest"           type="AddToEshelfRequest"/>
        <xs:element name="addFolderToEshelfRequest"  type="AddFolderToEshelfRequest"/>
        <xs:element name="getEshelfRequest"                     type="GetEshelfRequest"/>
        <xs:element name="getEshelfStructureRequest"    type="GetEshelfStructureRequest"/>
        <xs:element name="removeFromEshelfRequest"      type="RemoveFromEshelfRequest"/>
        <xs:element name="removeFolderFromEshelfRequest"        type="RemoveFolderFromEshelfRequest"/>

        <xs:element name="addTagRequest"                                type="addTagRequest"/>
        <xs:element name="removeTagRequest"                             type="removeTagRequest"/>
        <xs:element name="removeUserTagsRequest"                type="removeUserTagsRequest "/>
        <xs:element name="getTagsRequest"                               type="getTagsRequest"/>
        <xs:element name="getAllMyTagsRequest"                  type="getAllMyTagsRequest"/>
        <xs:element name="getTagsForRecordRequest"              type="getTagsForRecordRequest"/>
        <xs:element name="addReviewRequest"                             type="addReviewRequest"/>
        <xs:element name="removeReviewRequest"                  type="removeReviewRequest"/>
        <xs:element name="getReviewsRequest"                    type="getReviewsRequest"/>
        <xs:element name="getAllMyReviewsRequest"               type="getAllMyReviewsRequest"/>
        <xs:element name="getReviewsForRecordRequest"   type="getReviewsForRecordRequest"/>
        <xs:element name="getReviewsByRatingRequest"    type="getReviewsByRatingRequest"/>
        <xs:element name="getItRequest"                                 type="getItRequest"/>
        <xs:element name="primoCentralAvailabilityRequest"      type="primoCentralAvailabilityRequest"/>
        <xs:element name="primoCentralInstitutionUniqueRequest" type="primoCentralInstitutionUniqueRequest"/>

        <xs:element name="getScopesOfViewRequest" type="getScopesOfViewRequest"/>
        <xs:element name="getExtensionsRequest" type="getExtensionsRequest"/>
        <xs:element name="getSnippetsForRecordAndQueryRequest"  type="getSnippetsForRecordAndQueryRequest"/>



        <xs:complexType name="SearchRequest">
                <xs:sequence>
                        <xs:element ref="psr:PrimoSearchRequest"/>
                        <xs:element name="ip"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="institution"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="group"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="onCampus"  type="xs:boolean" maxOccurs="1"/>
                        <xs:element name="isLoggedIn" type="xs:boolean" maxOccurs="1" minOccurs="0"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                        <xs:element name="searchKey"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="FullViewRequest">
                <xs:sequence>
                        <xs:element ref="psr:PrimoSearchRequest"/>
                        <xs:element name="docId"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                        <xs:element name="searchKey"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                        <xs:element name="getDelivery"  type="xs:boolean" maxOccurs="1" minOccurs="0"/>
                         <xs:element name="ip"  type="xs:string" minOccurs="0" maxOccurs="1"/>
                        <xs:element name="institution"  type="xs:string" minOccurs="0"  maxOccurs="1"/>
                        <xs:element name="group"  type="xs:string" minOccurs="0" maxOccurs="1"/>
                        <xs:element name="onCampus"  type="xs:boolean" minOccurs="0" maxOccurs="1"/>
                        <xs:element name="isLoggedIn" type="xs:boolean" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="AddToEshelfRequest">
                <xs:sequence>
                        <xs:element name="docId"  type="xs:string"  minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="institution" type="xs:string"  maxOccurs="1"/>
                        <xs:element name="folderName"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="folderId"  type="xs:string"  maxOccurs="1"/>

                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                        <xs:element name="searchKey"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="AddFolderToEshelfRequest">
                <xs:sequence>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="institution" type="xs:string"  maxOccurs="1" minOccurs="0" />
                        <xs:element name="folderName"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="parentFolder"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="RemoveFromEshelfRequest">
                <xs:sequence>
                        <xs:element name="docId"  type="xs:string"  minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="institution"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="folderId"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="RemoveFolderFromEshelfRequest">
                <xs:sequence>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="folderId"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="institution"  type="xs:string"  maxOccurs="1" minOccurs="0" />
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="GetEshelfRequest">
                <xs:sequence>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="institution"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="folderId"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                        <xs:element name="getDelivery"  type="xs:boolean" maxOccurs="1" minOccurs="0"/>
                        <xs:element name="ip"  type="xs:string" minOccurs="0" maxOccurs="1"/>

                        <xs:element name="group"  type="xs:string" minOccurs="0" maxOccurs="1"/>
                        <xs:element name="onCampus"  type="xs:boolean" minOccurs="0" maxOccurs="1"/>
                        <xs:element name="isLoggedIn" type="xs:boolean" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="GetEshelfStructureRequest">
                <xs:sequence>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="institution"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="folderId"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="includeBasketItems"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>


        <xs:complexType name="addTagRequest">
                <xs:sequence>
                        <xs:element name="docId"  type="xs:string"  minOccurs="0"/>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="value"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="userDisplayName" type="xs:string" maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="removeTagRequest">
                <xs:sequence>
                        <xs:element name="docId"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="value"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="removeUserTagsRequest">
                <xs:sequence>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>


        <xs:complexType name="getTagsRequest">
                <xs:sequence>
                        <xs:element name="docId"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>


        <xs:complexType name="getAllMyTagsRequest">
                <xs:sequence>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="getTagsForRecordRequest">
                <xs:sequence>
                        <xs:element name="docId"  type="xs:string"  minOccurs="0"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="addReviewRequest">
                <xs:sequence>
                        <xs:element name="docId"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="value" type="xs:string" maxOccurs="1"/>
                        <xs:element name="status" type="xs:string" maxOccurs="1"/>
                        <xs:element name="rating" type="xs:string" maxOccurs="1"/>
                        <xs:element name="userDisplayName" type="xs:string" maxOccurs="1"/>
                        <xs:element name="allowUserName" type="xs:boolean" maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="removeReviewRequest">
                <xs:sequence>
                        <xs:element name="docId"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>

                </xs:sequence>
       </xs:complexType>

        <xs:complexType name="getReviewsRequest">
                <xs:sequence>
                        <xs:element name="docId"  type="xs:string"  maxOccurs="1"/>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="getAllMyReviewsRequest">
                <xs:sequence>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="getReviewsForRecordRequest">
                <xs:sequence>
                        <xs:element name="docId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="getReviewsByRatingRequest">
                <xs:sequence>
                        <xs:element name="userId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="rating" type="xs:string" maxOccurs="1"/>
                        <xs:element name="pdsHandle"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>


        <xs:complexType name="getItRequest">
                <xs:sequence>
                        <xs:element ref="psr:PrimoSearchRequest"/>
                        <xs:element name="docId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="institution" type="xs:string" maxOccurs="1"/>
                        <xs:element name="isLoggedIn" type="xs:boolean" maxOccurs="1"/>
                        <xs:element name="onCampus" type="xs:boolean" maxOccurs="1"/>
                        <xs:element name="group" type="xs:string" maxOccurs="1"/>

                        <xs:element name="pdsHandle" type="xs:string" maxOccurs="1"/>
                        <xs:element name="searchKey"  type="xs:string" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="primoCentralAvailabilityRequest">
                <xs:sequence>
                        <xs:element name="uniqueId"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="url"  type="xs:string" maxOccurs="1"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="primoCentralInstitutionUniqueRequest">
                <xs:sequence>
                        <xs:element name="institution"  type="xs:string" maxOccurs="1"/>
                        <xs:element name="uniqueId" type="xs:string" maxOccurs="1"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="getScopesOfViewRequest">
                <xs:sequence>
                        <xs:element name="viewId"  type="xs:string" maxOccurs="1"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="getExtensionsRequest">
                <xs:sequence>
                        <xs:element name="recId"  type="xs:string"  minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="extType" type="xs:string"  minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="groupId" type="xs:string"  minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="frbrtype" type="xs:string"  minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>

        <xs:complexType name="getSnippetsForRecordAndQueryRequest">
                        <xs:sequence>
                                <xs:element name="record" type="SnippetRecord" maxOccurs="unbounded"/>
                                <xs:element name="query" type="xs:string" maxOccurs="1"/>
                        </xs:sequence>
        </xs:complexType>

        <xs:complexType name="SnippetRecord">
                <xs:sequence>
                        <xs:element name="recordId" type="xs:string" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="alterSnippet" type="xs:string" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>



</xs:schema>