Service Schemas > Patron service

Patron service

<?xml version="1.0"?>
<xs:schema
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.sirsidynix.com/symws/patron"
    xmlns:common="http://schemas.sirsidynix.com/symws/common"
    xmlns:circulation="http://schemas.sirsidynix.com/symws/circulation"
    attributeFormDefault="qualified" elementFormDefault="qualified"
    targetNamespace="http://schemas.sirsidynix.com/symws/patron">
  <xs:import namespace="http://schemas.sirsidynix.com/symws/common"
      schemaLocation="common.xsd"/>
  <xs:import namespace="http://schemas.sirsidynix.com/symws/circulation"
      schemaLocation="circulation.xsd"/>

  <!-- messages -->
  <xs:element name="RenewMyCheckoutRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="itemID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="RenewMyCheckoutResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="message" type="xs:string" minOccurs="1" maxOccurs="1" />
        <xs:element name="userID" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="userName" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="itemID" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="callNumber" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="title" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="dueDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="CreateMyHoldRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:choice minOccurs="1">
          <xs:element name="itemID" type="xs:string" minOccurs="0" maxOccurs="1" />
          <xs:element name="titleKey" type="xs:long" minOccurs="0" maxOccurs="1" />
        </xs:choice>
        <xs:element name="callNumber" type="xs:string" minOccurs="0" maxOccurs="1" />
        <!-- if not present, holdType defaults to TITLE on the server -->
        <xs:element name="holdType" type="circulation:HoldType" minOccurs="0" maxOccurs="1" />
        <!-- if not present, holdRange defaults to GROUP -->
        <xs:element name="holdRange" type="circulation:HoldRange" minOccurs="0" maxOccurs="1" />
        <xs:choice minOccurs="0" maxOccurs="1">
          <xs:element name="pickupLibraryID" type="xs:string" minOccurs="1" maxOccurs="1" />
          <xs:element name="mailServiceID" type="xs:string" minOccurs="1" maxOccurs="1" />
        </xs:choice>
        <!-- if not present, expiresDate will be calculated by the ILS -->
        <xs:element name="expiresDate" type="common:NillableDate" minOccurs="0" maxOccurs="1"/>
        <xs:element name="suspendStartDate" type="xs:date" minOccurs="0" maxOccurs="1" />
        <xs:element name="suspendEndDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
        <xs:element name="comment" type="xs:string" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- CreateMyHoldResponse will be the holdKey -->
  <xs:element name="CreateMyHoldResponse" type="xs:long"/>

  <xs:element name="CancelMyHoldRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="holdKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="CancelMyHoldResponse" type="xs:boolean"/>

  <xs:element name="LookupMyAccountInfoRequest">
    <xs:complexType>
      <xs:sequence>
        <!-- All boolean "include" parameters are assumed false if not present. -->
        <xs:element name="includePatronInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        <xs:element name="includePatronCirculationInfo" type="xs:boolean" minOccurs="0"
          maxOccurs="1"/>
        <xs:element name="includePatronAddressInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        <xs:element name="includePatronCheckoutInfo" type="circulation:CheckoutInfoFilter"
          minOccurs="0" maxOccurs="1"/>
        <xs:element name="includePatronCheckoutHistoryInfo" type="xs:boolean" minOccurs="0"
          maxOccurs="1"/>
        <xs:element name="includePatronHoldInfo" type="circulation:HoldInfoFilter" minOccurs="0"
          maxOccurs="1"/>
        <xs:element name="includeFeeInfo" type="circulation:FeeInfoFilter" minOccurs="0"
          maxOccurs="1"/>
        <xs:element name="includePatronStatusInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        <xs:element name="includeUserGroupInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        <xs:element name="includeUserSuspensionInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        <!-- if present, stationLibraryID will override session station Library ID -->
        <xs:element name="stationLibraryID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="LookupMyAccountInfoResponse">
    <xs:complexType>
      <xs:sequence>
        <!-- patronInfo is returned only if includePatronInfo is true -->
        <xs:element name="patronInfo" type="PatronInfo" minOccurs="0" maxOccurs="1"/>
        <!-- PatronCirculationInfo is returned only if includePatronCirculationInfo
              is true -->
        <xs:element name="patronCirculationInfo" type="PatronCirculationInfo" minOccurs="0"
          maxOccurs="1"/>
        <!-- Patron addresses are returned only if includePatronAddressInfo is true -->
        <xs:element name="patronAddressInfo" type="PatronAddressInfo" minOccurs="0"
          maxOccurs="1"/>
        <!-- patronCheckoutInfo is returned only if includePatronCheckoutInfo is set -->
        <xs:element name="patronCheckoutInfo" type="PatronCheckoutInfo" minOccurs="0"
          maxOccurs="unbounded"/>
        <!-- patronCheckoutHistoryInfo is returned only if includePatronCheckoutHistoryInfo is
              set -->
        <xs:element name="includePatronCheckoutHistoryInfo" type="PatronCheckoutHistoryInfo"
          minOccurs="0" maxOccurs="unbounded"/>
        <!-- patronHoldInfo and feeInfo are returned only if includePatronHoldInfo is set -->
        <xs:element name="patronHoldInfo" type="PatronHoldInfo" minOccurs="0"
          maxOccurs="unbounded"/>
        <!-- feeInfo is returned only if includePatronFeeInfo is set -->
        <xs:element name="feeInfo" type="FeeInfo" minOccurs="0" maxOccurs="unbounded"/>
        <!-- patronStatusInfo is returned only if includePatronStatusInfo is true -->
        <xs:element name="patronStatusInfo" type="PatronStatusInfo" minOccurs="0" maxOccurs="1"/>
        <xs:element name="groupInfo" type="GroupInfo" minOccurs="0" maxOccurs="1"/>
        <xs:element name="userSuspensionInfo" type="UserSuspensionInfo" minOccurs="0"
          maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="PatronInfo">
    <xs:sequence>
      <xs:element name="userKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
      <xs:element name="userID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="alternativeID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="webAuthID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="groupID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="groupDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="displayName" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="birthDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <xs:element name="patronLibraryID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="patronLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="department" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <!-- preferredLanguage is returned as a ISO 639-1 language code and ISO 3166-1 country code
            if specified. (ex: en, en_US) -->
      <!-- If these values have not been set in the Language policy, the Language Policy ID will be
            returned instead. -->
      <xs:element name="preferredLanguage" type="xs:string" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="GroupMemberFeeInfo">
    <xs:complexContent>
      <xs:extension base="FeeInfo">
        <xs:sequence>
          <xs:element name="userID" type="xs:string" minOccurs="1" maxOccurs="1" />
          <xs:element name="userName" type="xs:string" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="FeeInfo">
    <xs:sequence>
      <xs:element name="billNumber" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="billReasonID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="billReasonDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="amount" type="common:Money" minOccurs="1" maxOccurs="1"/>
      <xs:element name="taxAmount" type="common:Money" minOccurs="0" maxOccurs="1"/>
      <!-- amountOutstanding is the portion of amount + taxAmount that is not yet paid -->
      <xs:element name="amountOutstanding" type="common:Money" minOccurs="1" maxOccurs="1"/>
      <!-- billLibraryID is returned only if config.multi -->
      <xs:element name="billLibraryID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="billLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="dateBilled" type="xs:date" minOccurs="1" maxOccurs="1"/>
      <xs:element name="dateCreated" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <xs:element name="numberOfPaymentsMade" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <!-- lastPaymentDate is returned only if numberOfPaymentsMade is greater than 0 -->
      <xs:element name="lastPaymentDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <!-- feePaymentInfo is returned only if includePatronFeeInfo includes PAYMENT -->
      <xs:element name="feePaymentInfo" type="FeePaymentInfo" minOccurs="0" maxOccurs="50"/>
      <!-- feeItemInfo is returned only if the fee is associated with an item (for example,
            an overdue fine) -->
      <xs:element name="feeItemInfo" type="FeeItemInfo" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="FeePaymentInfo">
    <xs:sequence>
      <xs:element name="transactionID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="paymentLibraryID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="paymentLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="paymentDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <xs:element name="paymentAmount" type="common:Money" minOccurs="1" maxOccurs="1"/>
      <xs:element name="paymentTypeID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="paymentTypeDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="FeeItemInfo">
    <xs:sequence>
      <xs:element name="titleKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
      <!-- itemID and itemTypeDescription are returned only if library is configured for
            accession -->
      <xs:element name="itemID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="itemTypeDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="callNumber" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="copyNumber" type="xs:int" minOccurs="0" maxOccurs="1"/>
      <xs:element name="itemLibraryID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="itemLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="checkoutDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
      <xs:element name="dueDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
      <xs:element name="recallDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <xs:element name="renewedDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
      <xs:element name="circulationRuleID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="circulationRuleDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PatronAddressInfo">
    <xs:sequence>
      <xs:element name="primaryAddress" type="xs:int" minOccurs="0" maxOccurs="1"/>
      <xs:element name="Address1Info" type="common:AddressInfo" minOccurs="0"
        maxOccurs="unbounded"/>
      <xs:element name="Address2Info" type="common:AddressInfo" minOccurs="0"
        maxOccurs="unbounded"/>
      <xs:element name="Address3Info" type="common:AddressInfo" minOccurs="0"
        maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PatronCirculationInfo">
    <xs:sequence>
      <xs:element name="numberOfCheckouts" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="numberOfClaimsReturned" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="numberOfBookings" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="numberOfRequests" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="numberOfUnansweredRequests" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="numberOfHolds" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="numberOfAvailableHolds" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="numberOfFees" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="estimatedFines" type="common:Money" minOccurs="1" maxOccurs="1"/>
      <xs:element name="estimatedOverdues" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="creditBalance" type="common:Money" minOccurs="0" maxOccurs="1"/>
      <!-- checkoutHistoryRule is returned if loan history is configured -->
      <xs:element name="checkoutHistoryRule" type="circulation:CheckoutHistoryRule" minOccurs="0"
        maxOccurs="1"/>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="numberOfCheckoutsAllowed" type="xs:int" minOccurs="1" maxOccurs="1"/>
         <!-- setting numberOfCheckoutsAllowedUnlimited to false will throw an illegal argument
              exception -->
        <xs:element name="numberOfCheckoutsAllowedUnlimited" type="xs:boolean" minOccurs="1"
          maxOccurs="1" />
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="GroupMemberCheckoutInfo">
    <xs:complexContent>
      <xs:extension base="PatronCheckoutInfo">
        <xs:sequence>
          <xs:element name="userID" type="xs:string" minOccurs="1" maxOccurs="1" />
          <xs:element name="userName" type="xs:string" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>


  <xs:complexType name="PatronCheckoutInfo">
    <xs:sequence>
      <xs:element name="titleKey" type="xs:long" minOccurs="0" maxOccurs="1"/>
      <xs:element name="itemID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="callNumber" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="copyNumber" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="pieces" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="numberOfPiecesReturned" type="xs:int" minOccurs="0" maxOccurs="1"/>
      <xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <!-- checkoutLibrary is the library where the item was checked out.
            itemLibrary is the item's owning library. These are not returned
            in a single-library configuration. -->
      <xs:element name="checkoutLibraryID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="checkoutLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="itemLibraryID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="itemLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="itemTypeID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="itemTypeDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <!-- reserveCollection is returned only if the item is on academic reserve. -->
      <xs:element name="reserveCollectionID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="reserveCollectionDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="checkoutDate" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
      <xs:element name="dueDate" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
      <!-- recallDate is returned only if the checkout has been recalled. -->
      <xs:element name="recallDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <!-- date item is due after being recalled -->
      <xs:element name="recallDueDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
      <xs:element name="recallNoticesSent" type="xs:int" minOccurs="0" maxOccurs="1"/>
      <!-- lastRenewedDate is returned only if the checkout has been renewed. -->
      <xs:element name="lastRenewedDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
      <xs:element name="renewals" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="unseenRenewals" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="renewalsRemaining" type="xs:int" minOccurs="1" maxOccurs="1"/>
        <!-- setting renewalsRemainingUnlimited to false will throw an illegal argument
              exception -->
        <xs:element name="renewalsRemainingUnlimited" type="xs:boolean" minOccurs="1"
          maxOccurs="1"/>
      </xs:choice>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="unseenRenewalsRemaining" type="xs:int" minOccurs="1" maxOccurs="1"/>
        <!-- setting unseenRenewalsRemainingUnlimited to false will throw an illegal argument
              exception -->
        <xs:element name="unseenRenewalsRemainingUnlimited" type="xs:boolean" minOccurs="1"
          maxOccurs="1"/>
      </xs:choice>
      <xs:element name="overdue" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
      <xs:element name="overdueNoticesSent" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <!-- dateOfLastOverdueNotice is returned only if not NEVER. -->
      <xs:element name="dateOfLastOverdueNotice" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <!-- fine of $0.00 is not returned. Note this amount includes both any
            outstanding bills on the checkout plus the estimated fine that would accrue
            if the item were returned at this moment. -->
      <xs:element name="fine" type="common:Money" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PatronCheckoutHistoryInfo">
    <xs:sequence>
      <xs:element name="itemID" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="callNumber" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="displayableCallNumber" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="copyNumber" type="xs:int" minOccurs="1" maxOccurs="1" />
      <xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="1" />
      <!--
          checkoutLibrary is the library where the item was checked out. itemLibrary is the item's
          owning library. These are not returned in a single-library configuration.
      -->
      <xs:element name="checkoutLibraryID" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="checkoutLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="itemLibraryID" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="itemLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="itemTypeID" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="itemTypeDescription" type="xs:string" minOccurs="0" maxOccurs="1" />
      <!-- reserveCollection is returned only if the item is on academic reserve. -->
      <xs:element name="reserveCollectionID" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="reserveCollectionDescription" type="xs:string" minOccurs="0"
        maxOccurs="1" />
      <xs:element name="checkoutDate" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
      <xs:element name="dueDate" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
      <xs:element name="circulationRuleID" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="circulationRuleDescription" type="xs:string" minOccurs="0" maxOccurs="1" />
      <!-- recallDate is returned only if the checkout has been recalled. -->
      <xs:element name="recallDate" type="xs:date" minOccurs="0" maxOccurs="1" />
      <xs:element name="recallNoticesSent" type="xs:int" minOccurs="0" maxOccurs="1" />
      <!-- lastRenewedDate is returned only if the checkout has been renewed. -->
      <xs:element name="lastRenewedDate" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
      <xs:element name="renewals" type="xs:int" minOccurs="0" maxOccurs="1" />
      <xs:element name="wasOverdue" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      <xs:element name="overdueNoticesSent" type="xs:int" minOccurs="0" maxOccurs="1" />
      <!-- dateOfLastOverdueNotice is returned only if not NEVER. -->
      <xs:element name="dateOfLastOverdueNotice" type="xs:date" minOccurs="0" maxOccurs="1" />
      <!--
        fine of $0.00 is not returned. Note this amount includes both any outstanding bills on the
        checkout plus the estimated fine that would accrue if the item were returned at this moment.
      -->
      <xs:element name="fine" type="common:Money" minOccurs="0" maxOccurs="1" />
      <xs:element name="dateLoanHistoryDischarged" type="xs:dateTime" minOccurs="0" maxOccurs="1" />
      <xs:element name="loanHistoryDischargingLibraryID" type="xs:string" minOccurs="0"
        maxOccurs="1" />
      <xs:element name="loanHistoryDischargingLibraryDescription" type="xs:string" minOccurs="0"
        maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="GroupMemberHoldInfo">
    <xs:complexContent>
      <xs:extension base="PatronHoldInfo">
        <xs:sequence>
          <xs:element name="userID" type="xs:string" minOccurs="1" maxOccurs="1" />
          <xs:element name="userName" type="xs:string" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="PatronHoldInfo">
    <xs:sequence>
      <xs:element name="holdKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
      <xs:element name="titleKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
      <xs:element name="itemID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="callNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="displayableCallNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="blanketHoldID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="blanketHoldCopiesNeeded" type="xs:int" minOccurs="0" maxOccurs="1"/>
      <xs:element name="blanketHoldCopiesReceived" type="xs:int" minOccurs="0" maxOccurs="1"/>
      <xs:element name="expiresDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <!-- holdStatus: 1=Inactive 2=Active -->
      <xs:element name="holdStatus" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <!-- Each holdInactiveReasonID will be associated with a holdInactiveType -->
      <xs:element name="holdInactiveReasonID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="holdInactiveReasonDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="holdInactiveType" type="circulation:HoldInactiveType" minOccurs="0"
        maxOccurs="1" />
      <!-- itemID and itemType might not be present if hold was placed on an order. -->
      <xs:element name="itemTypeID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="itemTypeDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="title" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="itemLibraryID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="itemLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="pickupLibraryID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="pickupLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="placedDate" type="xs:date" minOccurs="1" maxOccurs="1"/>
      <xs:element name="mailServiceID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="mailServiceDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <!-- reserve indicates if the hold is for an academic reserve collection. -->
      <xs:element name="reserve" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
      <xs:element name="recallStatus" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <!-- available and intransit are mutually exclusive. Both may be false, but
            only one may be true. intransit means that the hold was filled at a
            library other than the pickup library, so the item is in transit to
            the pickup library and will become available when it gets there. -->
      <xs:element name="available" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
      <xs:element name="intransit" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
      <!-- availableDate and availableExpiresDate are returned only if not NEVER. -->
      <xs:element name="availableDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <xs:element name="availableExpiresDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <xs:element name="queuePosition" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="queLength" type="xs:int" minOccurs="1" maxOccurs="1"/>
      <xs:element name="suspendStartDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <xs:element name="suspendEndDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <!-- holdPlacedWithOverride will not be returned in a "traditional holds"
            configuration. -->
      <xs:element name="holdPlacedWithOverride" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <!-- The order information elements are present only if the hold was placed on
            "on order" materials. -->
      <xs:element name="orderFiscalCycle" type="xs:int" minOccurs="0" maxOccurs="1"/>
      <xs:element name="orderID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="orderLibraryID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="orderLibraryDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="orderLine" type="xs:string" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ModifyMyHoldRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="holdKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
        <xs:element name="expiresDate" type="common:NillableDate" minOccurs="0" maxOccurs="1"/>
        <xs:choice minOccurs="0" maxOccurs="1">
          <!-- Only if config.multi is true; is a multilibrary system -->
          <xs:element name="holdPickupLibraryID" type="xs:string" minOccurs="1" maxOccurs="1"/>
          <!-- Only if books by mail is turned on; item must also be qualified for books
                by mail -->
           <xs:element name="mailDeliveryID" type="xs:string" minOccurs="1" maxOccurs="1"/>
         </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="ModifyMyHoldResponse" type="xs:boolean"/>

  <xs:element name="SuspendMyHoldRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="holdKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
        <!-- Must be after the current date and no later than hold expiration date -->
        <xs:element name="suspendStartDate" type="xs:date" minOccurs="1" maxOccurs="1"/>
        <!-- Must not be later than the hold expiration date -->
        <xs:element name="suspendEndDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="SuspendMyHoldResponse" type="xs:boolean"/>

  <xs:element name="UnsuspendMyHoldRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="holdKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="UnsuspendMyHoldResponse" type="xs:boolean"/>

  <xs:complexType name="PatronStatusInfo">
    <xs:sequence>
      <xs:element name="datePrivilegeExpires" type="xs:date" minOccurs="0" maxOccurs="1"/>
      <xs:element name="statusID" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="statusDescription" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="statusType" type="circulation:StatusType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="statusMessage" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="routingAllowed" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
      <xs:element name="userHasAlerts" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Online User Registration Feature must be configured on ILS -->
  <xs:element name="CreateSelfRegisteredPatronRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="firstName" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="middleName" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="lastName" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="nameSuffix" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="preferredName" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="socialSecurityNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="birthDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
        <xs:element name="pin" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="street" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="apartment" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="city" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="state" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="postalCode" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="homePhone" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="emailAddress" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="patronLibraryID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- CreateSelfRegisteredPatronResponse will be the userID of the Patron record created -->
  <xs:element name="CreateSelfRegisteredPatronResponse" type="xs:string"/>

  <xs:element name="ChangeMyPINRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="currentPIN" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="newPIN" type="xs:string" maxOccurs="1" minOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="ChangeMyPINResponse" type="xs:boolean"/>

  <xs:element name="LookupMyListsRequest"/>
  <xs:element name="LookupMyListsResponse">
    <xs:complexType>
      <xs:sequence>
        <!--The myList element only contains identifying information in this response-->
        <!-- The MyListEntry will be empty -->
        <!-- LookupMyListRequest should be used to get the list of Titles -->
        <xs:element name="myList" type="MyList" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="LookupMyListRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="myListID" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="includeMyListTitleInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="LookupMyListResponse" type="MyListInfo"/>

  <xs:element name="GetMyListRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="myListID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="GetMyListResponse" type="MyList"/>

  <xs:element name="SaveMyListRequest" type="MyList" />
  <xs:element name="SaveMyListResponse" type="MyList" />

  <xs:element name="DeleteMyListRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="myListID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="DeleteMyListResponse" type="xs:boolean"/>

  <xs:element name="ChangeMyAlternativeIDRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="newAlternativeID" type="xs:string" minOccurs="1" maxOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="ChangeMyAlternativeIDResponse" type="xs:boolean" />

  <xs:element name="enableMyCheckoutHistoryRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="enable" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="enableMyCheckoutHistoryResponse" type="xs:boolean" />

  <xs:element name="ActivateOnlineRegistedUserRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="assignedUserID" type="xs:string" minOccurs="1" maxOccurs="1" />
        <xs:element name="newUserID" type="xs:string" minOccurs="0" maxOccurs="1" />
        <xs:element name="newAltID" type="xs:string" minOccurs="0" maxOccurs="1" />
        <xs:element name="newWebAuthID" type="xs:string" minOccurs="0" maxOccurs="1" />
        <!-- required if newWebAuthID is present -->
        <xs:element name="webAuthOverride" type="xs:string" minOccurs="0" maxOccurs="1" />
        <xs:element name="pin" type="xs:string" minOccurs="0" maxOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="ActivateOnlineRegistedUserResponse" type="xs:boolean" />

  <xs:element name="PlaceMyHoldRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:choice minOccurs="1">
          <xs:element name="itemID" type="xs:string" minOccurs="0" maxOccurs="1" />
          <xs:element name="titleKey" type="xs:long" minOccurs="0" maxOccurs="1" />
        </xs:choice>
        <xs:element name="callNumber" type="xs:string" minOccurs="0" maxOccurs="1" />
        <!-- if not present, holdType defaults to TITLE on the server -->
        <xs:element name="holdType" type="circulation:HoldType" minOccurs="0" maxOccurs="1" />
        <!-- if not present, holdRange defaults to GROUP -->
        <xs:element name="holdRange" type="circulation:HoldRange" minOccurs="0" maxOccurs="1" />
        <xs:choice minOccurs="0" maxOccurs="1">
          <xs:element name="pickupLibraryID" type="xs:string" minOccurs="1" maxOccurs="1" />
          <xs:element name="mailServiceID" type="xs:string" minOccurs="1" maxOccurs="1" />
        </xs:choice>
        <!-- if not present, expiresDate will be calculated by the ILS -->
        <xs:element name="expiresDate" type="common:NillableDate" minOccurs="0" maxOccurs="1"/>
        <xs:element name="suspendStartDate" type="xs:date" minOccurs="0" maxOccurs="1" />
        <xs:element name="suspendEndDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
        <xs:element name="comment" type="xs:string" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="PlaceMyHoldResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="holdKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
        <xs:element name="estimatedFee" type="common:Money" minOccurs="0" maxOccurs="1" />
        <xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1" />
        <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="1" />
        <xs:element name="itemAvailable" type="xs:boolean" minOccurs="1" maxOccurs="1" />
        <xs:element name="callNumber" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="itemID" type="xs:string" minOccurs="0" maxOccurs="1" />
        <xs:element name="dateHoldExpires" type="xs:date" minOccurs="0" maxOccurs="1" />
        <xs:element name="dateHoldExpiresOnShelf" type="xs:date" minOccurs="0" maxOccurs="1" />
       </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- objects -->

  <xs:complexType name="MyList">
    <xs:complexContent>
      <xs:extension base="common:Entity">
        <xs:sequence>
          <xs:element name="myListID" type="xs:string" minOccurs="0" maxOccurs="1"/>
          <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
          <xs:element name="activeList" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
          <xs:element name="myListEntry" type="MyListEntry" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>


  <xs:complexType name="MyListInfo">
    <xs:sequence>
      <xs:element name="myListID" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="description" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="activeList" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
      <xs:element name="myListEntryInfo" type="MyListEntryInfo" minOccurs="0"
        maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="MyListEntry">
    <xs:complexContent>
      <xs:extension base="common:Entity">
        <xs:sequence>
          <xs:element name="titleKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="MyListEntryInfo">
    <xs:sequence>
      <xs:element name="titleKey" type="xs:long" minOccurs="1" maxOccurs="1"/>
      <xs:element name="myListTitleInfo" type="MyListTitleInfo" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="MyListTitleInfo">
    <xs:sequence>
      <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="title" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="thirdBriefEntry" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="fourthBriefEntry" type="xs:string" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="UserSuspensionInfo">
    <xs:sequence>
      <xs:element name="dateSuspended" type="xs:date" minOccurs="1" maxOccurs="1" />
      <xs:element name="dateSuspensionEnds" type="xs:date" minOccurs="1" maxOccurs="1" />
      <xs:element name="suspensionKey" type="xs:long" minOccurs="1" maxOccurs="1" />
      <xs:element name="linkedSuspensionKey" type="xs:long" minOccurs="1" maxOccurs="1" />
      <xs:element name="suspensionLibraryID" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="suspensionLibraryDescription" type="xs:string" minOccurs="1"
        maxOccurs="1" />
      <xs:element name="suspensionReasonID" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="suspensionReasonDescription" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="suspensionType" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="numberOfUnits" type="xs:int" minOccurs="1" maxOccurs="1" />
      <xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="itemID" type="xs:string" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="GroupInfo">
    <xs:sequence>
      <xs:element name="GroupInfo" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="GroupInfo" type="xs:int" minOccurs="1" maxOccurs="1" />
      <xs:element name="GroupInfo" type="xs:date" minOccurs="1" maxOccurs="1" />
      <xs:element name="groupStatusID" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="groupStatusDescription" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="groupStatusMessage" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="userGroupResponsibilityPolicyID" type="xs:string" minOccurs="1"
        maxOccurs="1" />
      <xs:element name="userGroupResponsibilityPolicyDescription" type="xs:string" minOccurs="1"
        maxOccurs="1" />
      <xs:element name="userGroupResponsibilityLevelID" type="xs:string" minOccurs="1"
        maxOccurs="1" />
      <xs:element name="userGroupResponsibilityTypeID" type="xs:string" minOccurs="1"
        maxOccurs="1" />
      <xs:element name="noticeMaster" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      <xs:element name="allowedDisplayGroupCheckouts" type="xs:boolean" minOccurs="1"
        maxOccurs="1" />
      <xs:element name="allowedDisplayGroupHolds" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      <xs:element name="allowedCheckoutGroupHolds" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      <xs:element name="allowedCancelGroupHolds" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      <xs:element name="allowedDisplayGroupFees" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      <xs:element name="allowedPayGroupFees" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      <xs:element name="allowedGroupChoice" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      <!-- groupCheckoutInfo is returned only if includePatronCheckoutInfo is set and the requesting
           user has permission -->
      <xs:element name="groupMemberCheckoutInfo" type="GroupMemberCheckoutInfo" minOccurs="0
        maxOccurs="unbounded" />
      <!-- groupHoldInfo are returned only if includePatronHoldInfo is set and the requesting user
           has permission -->
      <xs:element name="groupMemberHoldInfo" type="GroupMemberHoldInfo" minOccurs="0"
        maxOccurs="unbounded" />
      <!-- groupFeeInfo is returned only if includeFeeInfo is set and the requesting user has
           permission -->
      <xs:element name="groupMemberFeeInfo" type="GroupMemberFeeInfo" minOccurs="0"
        maxOccurs="unbounded" />
      <xs:element name="groupMemberInfo" type="GroupMemberInfo" minOccurs="0"
        maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="GroupMemberInfo">
    <xs:sequence>
      <xs:element name="userName" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="userID" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="userGroupResponsibilityPolicyID" type="xs:string" minOccurs="0"
        maxOccurs="1" />
      <xs:element name="userGroupResponsibilityPolicyDescription" type="xs:string" minOccurs="0
        maxOccurs="1" />
      <xs:element name="noticeMaster" type="xs:boolean" minOccurs="1" maxOccurs="1" />
      <xs:element name="userStatusID" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="userStatusDescription" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="userStatusMessage" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="userNumberOfBills" type="xs:int" minOccurs="0" maxOccurs="1" />
      <xs:element name="userEstimatedFines" type="common:Money" minOccurs="0" maxOccurs="1" />
      <xs:element name="userNumberOfOverdues" type="xs:int" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="LookupPatronInfoRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:choice minOccurs="1" maxOccurs="1">
          <xs:element name="userID" type="xs:string" minOccurs="1" maxOccurs="1"/>
          <xs:element name="alternateID" type="xs:string" minOccurs="1" maxOccurs="1"/>
          <xs:element name="webAuthID" type="xs:string" minOccurs="1" maxOccurs="1"/>
        </xs:choice>
        <!-- All boolean "include" parameters are assumed false if not present . -->
        <xs:element name="includePatronInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        <xs:element name="includePatronCirculationInfo" type="xs:boolean" minOccurs="0"
          maxOccurs="1"/>
        <xs:element name="includePatronAddressInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        <xs:element name="includePatronCheckoutInfo" type="circulation:CheckoutInfoFilter"
          minOccurs="0" maxOccurs="1"/>
        <xs:element name="includePatronCheckoutHistoryInfo" type="xs:boolean" minOccurs="0"
          maxOccurs="1"/>
        <xs:element name="includePatronHoldInfo" type="circulation:HoldInfoFilter" minOccurs="0"
          maxOccurs="1"/>
        <xs:element name="includeFeeInfo" type="circulation:FeeInfoFilter" minOccurs="0"
          maxOccurs="1"/>
        <xs:element name="includePatronStatusInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        <xs:element name="includeUserGroupInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        <xs:element name="includeUserSuspensionInfo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="LookupPatronInfoResponse">
    <xs:complexType>
      <xs:sequence>
        <!-- patronInfo is returned only if includePatronInfo is true -->
        <xs:element name="patronInfo" type="PatronInfo" minOccurs="0" maxOccurs="1" />
        <!-- PatronCirculationInfo is returned only if includePatronCirculationInfo is true -->
        <xs:element name="patronCirculationInfo" type="PatronCirculationInfo" minOccurs="0"
          maxOccurs="1" />
        <!-- Patron addresses are returned only if includePatronAddressInfo is true -->
        <xs:element name="patronAddressInfo" type="PatronAddressInfo" minOccurs="0" maxOccurs="1" />
        <!-- patronCheckoutInfo is returned only if includePatronCheckoutInfo is set -->
        <xs:element name="patronCheckoutInfo" type="PatronCheckoutInfo" minOccurs="0"
          maxOccurs="unbounded" />
        <!-- patronCheckoutHistoryInfo is returned only if includePatronCheckoutHistoryInfo is
             set -->
        <xs:element name="patronCheckoutHistoryInfo" type="PatronCheckoutHistoryInfo" minOccurs="0"
          maxOccurs="unbounded" />
        <!-- patronHoldInfo and feeInfo are returned only if includePatronHoldInfo is set -->
        <xs:element name="patronHoldInfo" type="PatronHoldInfo" minOccurs="0"
          maxOccurs="unbounded" />
        <!-- feeInfo is returned only if includePatronFeeInfo is set -->
        <xs:element name="feeInfo" type="FeeInfo" minOccurs="0" maxOccurs="unbounded" />
        <!-- patronStatusInfo is returned only if includePatronStatusInfo is true -->
        <xs:element name="patronStatusInfo" type="PatronStatusInfo" minOccurs="0" maxOccurs="1" />
        <xs:element name="groupInfo" type="GroupInfo" minOccurs="0" maxOccurs="1" />
        <xs:element name="userSuspensionInfo" type="UserSuspensionInfo" minOccurs="0"
          maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

 


© 2009-2012 SirsiDynix