<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://bookstore.parasoft.com/" xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="Bookstore" targetNamespace="http://bookstore.parasoft.com/">
  <wsdl:types>
<xs:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://bookstore.parasoft.com/" xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://bookstore.parasoft.com/">

  <xs:element name="addItemToCart" type="tns:addItemToCart"/>

  <xs:element name="addItemToCartResponse" type="tns:addItemToCartResponse"/>

  <xs:element name="addNewItemToInventory" type="tns:addNewItemToInventory"/>

  <xs:element name="addNewItemToInventoryResponse" type="tns:addNewItemToInventoryResponse"/>

  <xs:element name="getItemById" type="tns:getItemById"/>

  <xs:element name="getItemByIdResponse" type="tns:getItemByIdResponse"/>

  <xs:element name="getItemByTitle" type="tns:getItemByTitle"/>

  <xs:element name="getItemByTitleResponse" type="tns:getItemByTitleResponse"/>

  <xs:element name="getItemsInCart" type="tns:getItemsInCart"/>

  <xs:element name="getItemsInCartResponse" type="tns:getItemsInCartResponse"/>

  <xs:element name="submitOrder" type="tns:submitOrder"/>

  <xs:element name="submitOrderResponse" type="tns:submitOrderResponse"/>

  <xs:element name="updateItemInCart" type="tns:updateItemInCart"/>

  <xs:element name="updateItemInCartResponse" type="tns:updateItemInCartResponse"/>

  <xs:complexType name="addNewItemToInventory">

    <xs:sequence>

      <xs:element minOccurs="0" name="book" type="tns:book"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="book">

    <xs:complexContent>

      <xs:extension base="tns:item">

        <xs:sequence>

          <xs:element maxOccurs="unbounded" minOccurs="0" name="authors" nillable="true" type="xs:string"/>

          <xs:element minOccurs="0" name="description" type="xs:string"/>

          <xs:element minOccurs="0" name="ISBN" type="xs:string"/>

          <xs:element minOccurs="0" name="publicationDate" type="xs:dateTime"/>

          <xs:element minOccurs="0" name="publisher" type="xs:string"/>

        </xs:sequence>

      </xs:extension>

    </xs:complexContent>

  </xs:complexType>

  <xs:complexType name="item">

    <xs:sequence>

      <xs:element name="id" type="xs:int"/>

      <xs:element minOccurs="0" name="name" type="xs:string"/>

      <xs:element minOccurs="0" name="price" type="xs:decimal"/>

      <xs:element name="stockQuantity" type="xs:int"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="addNewItemToInventoryResponse">

    <xs:sequence>

      <xs:element minOccurs="0" name="book" type="tns:book"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="updateItemInCart">

    <xs:sequence>

      <xs:element name="cartId" type="xs:int"/>

      <xs:element name="itemId" type="xs:int"/>

      <xs:element name="quantity" type="xs:int"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="updateItemInCartResponse">

    <xs:sequence>

      <xs:element minOccurs="0" name="updatedItem" type="tns:displayOrder"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="displayOrder">

    <xs:sequence>

      <xs:element name="cartId" type="xs:int"/>

      <xs:element minOccurs="0" name="item" type="tns:order"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="order">

    <xs:sequence>

      <xs:element minOccurs="0" name="book" type="tns:book"/>

      <xs:element name="quantity" type="xs:int"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="addItemToCart">

    <xs:sequence>

      <xs:element minOccurs="0" name="cartId" type="xs:int"/>

      <xs:element name="itemId" type="xs:int"/>

      <xs:element name="quantity" type="xs:int"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="addItemToCartResponse">

    <xs:sequence>

      <xs:element minOccurs="0" name="itemAdded" type="tns:displayOrder"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="getItemsInCart">

    <xs:sequence>

      <xs:element name="cartId" type="xs:int"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="getItemsInCartResponse">

    <xs:sequence>

      <xs:element minOccurs="0" name="cart" type="tns:cartManager"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="cartManager">

    <xs:sequence>

      <xs:element name="cartId" type="xs:int"/>

      <xs:element maxOccurs="unbounded" minOccurs="0" name="item" nillable="true" type="tns:order"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="getItemByTitle">

    <xs:sequence>

      <xs:element minOccurs="0" name="titleKeyword" type="xs:string"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="getItemByTitleResponse">

    <xs:sequence>

      <xs:element maxOccurs="unbounded" minOccurs="0" name="book" type="tns:book"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="getItemById">

    <xs:sequence>

      <xs:element name="id" type="xs:int"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="getItemByIdResponse">

    <xs:sequence>

      <xs:element minOccurs="0" name="book" type="tns:book"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="submitOrder">

    <xs:sequence>

      <xs:element name="cartId" type="xs:int"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="submitOrderResponse">

    <xs:sequence>

      <xs:element minOccurs="0" name="orderInformation" type="tns:submittedOrder"/>

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="submittedOrder">

    <xs:sequence>

      <xs:element minOccurs="0" name="orderTime" type="xs:dateTime"/>

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

    </xs:sequence>

  </xs:complexType>

  <xs:complexType name="Exception">

    <xs:sequence>

      <xs:element minOccurs="0" name="message" type="xs:string"/>

    </xs:sequence>

  </xs:complexType>

  <xs:element name="Exception" type="tns:Exception"/>

</xs:schema>
  </wsdl:types>
  <wsdl:message name="submitOrder">
    <wsdl:part element="tns:submitOrder" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getItemsInCart">
    <wsdl:part element="tns:getItemsInCart" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="addItemToCartResponse">
    <wsdl:part element="tns:addItemToCartResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getItemById">
    <wsdl:part element="tns:getItemById" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getItemByIdResponse">
    <wsdl:part element="tns:getItemByIdResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="updateItemInCart">
    <wsdl:part element="tns:updateItemInCart" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="addNewItemToInventoryResponse">
    <wsdl:part element="tns:addNewItemToInventoryResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getItemByTitleResponse">
    <wsdl:part element="tns:getItemByTitleResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="addNewItemToInventory">
    <wsdl:part element="tns:addNewItemToInventory" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getItemsInCartResponse">
    <wsdl:part element="tns:getItemsInCartResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getItemByTitle">
    <wsdl:part element="tns:getItemByTitle" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="addItemToCart">
    <wsdl:part element="tns:addItemToCart" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="submitOrderResponse">
    <wsdl:part element="tns:submitOrderResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="Exception">
    <wsdl:part element="tns:Exception" name="Exception">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="updateItemInCartResponse">
    <wsdl:part element="tns:updateItemInCartResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="Bookstore">
    <wsdl:operation name="addNewItemToInventory">
      <wsdl:input message="tns:addNewItemToInventory" name="addNewItemToInventory">
    </wsdl:input>
      <wsdl:output message="tns:addNewItemToInventoryResponse" name="addNewItemToInventoryResponse">
    </wsdl:output>
      <wsdl:fault message="tns:Exception" name="Exception">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="updateItemInCart">
      <wsdl:input message="tns:updateItemInCart" name="updateItemInCart">
    </wsdl:input>
      <wsdl:output message="tns:updateItemInCartResponse" name="updateItemInCartResponse">
    </wsdl:output>
      <wsdl:fault message="tns:Exception" name="Exception">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="addItemToCart">
      <wsdl:input message="tns:addItemToCart" name="addItemToCart">
    </wsdl:input>
      <wsdl:output message="tns:addItemToCartResponse" name="addItemToCartResponse">
    </wsdl:output>
      <wsdl:fault message="tns:Exception" name="Exception">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getItemsInCart">
      <wsdl:input message="tns:getItemsInCart" name="getItemsInCart">
    </wsdl:input>
      <wsdl:output message="tns:getItemsInCartResponse" name="getItemsInCartResponse">
    </wsdl:output>
      <wsdl:fault message="tns:Exception" name="Exception">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getItemByTitle">
      <wsdl:input message="tns:getItemByTitle" name="getItemByTitle">
    </wsdl:input>
      <wsdl:output message="tns:getItemByTitleResponse" name="getItemByTitleResponse">
    </wsdl:output>
      <wsdl:fault message="tns:Exception" name="Exception">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getItemById">
      <wsdl:input message="tns:getItemById" name="getItemById">
    </wsdl:input>
      <wsdl:output message="tns:getItemByIdResponse" name="getItemByIdResponse">
    </wsdl:output>
      <wsdl:fault message="tns:Exception" name="Exception">
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="submitOrder">
      <wsdl:input message="tns:submitOrder" name="submitOrder">
    </wsdl:input>
      <wsdl:output message="tns:submitOrderResponse" name="submitOrderResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="BookstoreSoapBinding" type="tns:Bookstore">
    <wsp:PolicyReference URI="#SignAndEncrypt"/>
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="addNewItemToInventory">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="addNewItemToInventory">
    <wsp:PolicyReference URI="#MessageLevelSecurityInput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:input>
      <wsdl:output name="addNewItemToInventoryResponse">
    <wsp:PolicyReference URI="#MessageLevelSecurityOutput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:output>
      <wsdl:fault name="Exception">
        <soap:fault name="Exception" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="updateItemInCart">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="updateItemInCart">
    <wsp:PolicyReference URI="#MessageLevelSecurityInput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:input>
      <wsdl:output name="updateItemInCartResponse">
    <wsp:PolicyReference URI="#MessageLevelSecurityOutput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:output>
      <wsdl:fault name="Exception">
        <soap:fault name="Exception" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="addItemToCart">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="addItemToCart">
    <wsp:PolicyReference URI="#MessageLevelSecurityInput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:input>
      <wsdl:output name="addItemToCartResponse">
    <wsp:PolicyReference URI="#MessageLevelSecurityOutput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:output>
      <wsdl:fault name="Exception">
        <soap:fault name="Exception" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getItemsInCart">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="getItemsInCart">
    <wsp:PolicyReference URI="#MessageLevelSecurityInput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:input>
      <wsdl:output name="getItemsInCartResponse">
    <wsp:PolicyReference URI="#MessageLevelSecurityOutput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:output>
      <wsdl:fault name="Exception">
        <soap:fault name="Exception" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getItemByTitle">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="getItemByTitle">
    <wsp:PolicyReference URI="#MessageLevelSecurityInput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:input>
      <wsdl:output name="getItemByTitleResponse">
    <wsp:PolicyReference URI="#MessageLevelSecurityOutput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:output>
      <wsdl:fault name="Exception">
        <soap:fault name="Exception" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getItemById">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="getItemById">
    <wsp:PolicyReference URI="#MessageLevelSecurityInput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:input>
      <wsdl:output name="getItemByIdResponse">
    <wsp:PolicyReference URI="#MessageLevelSecurityOutput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:output>
      <wsdl:fault name="Exception">
        <soap:fault name="Exception" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="submitOrder">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="submitOrder">
    <wsp:PolicyReference URI="#MessageLevelSecurityInput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:input>
      <wsdl:output name="submitOrderResponse">
    <wsp:PolicyReference URI="#MessageLevelSecurityOutput"/>
        <soap:body parts="parameters" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="Bookstore">
    <wsdl:port binding="tns:BookstoreSoapBinding" name="CartServicePort">
      <soap:address location="https://parabank.parasoft.com/parabank/services/store-wss-04"/>
    </wsdl:port>
  </wsdl:service>
    <wsp:Policy wsu:Id="SignAndEncrypt">
    <wsp:ExactlyOne>
      <wsp:All>
        <sp:AsymmetricBinding>
          <wsp:Policy>
            <sp:InitiatorToken>
              <wsp:Policy>
                <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
                  <wsp:Policy>
                    <sp:WssX509V3Token10/>
                  </wsp:Policy>
                </sp:X509Token>
              </wsp:Policy>
            </sp:InitiatorToken>
            <sp:RecipientToken>
              <wsp:Policy>
                <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
                  <wsp:Policy>
                    <sp:WssX509V3Token10/>
                  </wsp:Policy>
                </sp:X509Token>
              </wsp:Policy>
            </sp:RecipientToken>
            <sp:AlgorithmSuite>
              <wsp:Policy>
                <sp:Basic256/>
              </wsp:Policy>
            </sp:AlgorithmSuite>
            <sp:Layout>
              <wsp:Policy>
                <sp:Strict/>
              </wsp:Policy>
            </sp:Layout>
          </wsp:Policy>
        </sp:AsymmetricBinding>
      </wsp:All>
    </wsp:ExactlyOne>
  </wsp:Policy>
    <wsp:Policy wsu:Id="MessageLevelSecurityInput">
    <wsp:ExactlyOne>
      <wsp:All>
        <sp:SignedParts>
          <sp:Body/>
        </sp:SignedParts>
        <sp:EncryptedParts>
          <sp:Body/>
        </sp:EncryptedParts>
      </wsp:All>
    </wsp:ExactlyOne>
  </wsp:Policy>
    <wsp:Policy wsu:Id="MessageLevelSecurityOutput">
    <wsp:ExactlyOne>
      <wsp:All>
        <sp:SignedParts>
          <sp:Body/>
        </sp:SignedParts>
        <sp:EncryptedParts>
          <sp:Body/>
        </sp:EncryptedParts>
      </wsp:All>
    </wsp:ExactlyOne>
  </wsp:Policy>
</wsdl:definitions>