<?xml version=“1.0” encoding=“UTF-8”?> <!–

Copyright 2006 Google Inc. All Rights Reserved.

Google Confidential

–> <xs:schema xmlns:xs=“www.w3.org/2001/XMLSchema” xmlns:xsi=“www.w3.org/2001/XMLSchema-instance” xmlns:tns=“checkout.google.com/schema/2” xsi:schemaLocation=“www.w3.org/2001/XMLSchema www.w3.org/2001/XMLSchema.xsd” targetNamespace=“checkout.google.com/schema/2” elementFormDefault=“qualified” attributeFormDefault=“unqualified”>

<xs:complexType name="Hello" />

<xs:complexType name="Bye">
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="DemoFailure">
  <xs:attribute name="message" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="CheckoutShoppingCart">
  <xs:all>
    <xs:element name="shopping-cart" type="tns:ShoppingCart" />
    <xs:element name="checkout-flow-support" minOccurs="0">
      <xs:complexType>
        <xs:choice>
          <xs:element name="merchant-checkout-flow-support" type="tns:MerchantCheckoutFlowSupport" />
        </xs:choice>
      </xs:complexType>
    </xs:element>
    <xs:element name="order-processing-support" type="tns:OrderProcessingSupport" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="CheckoutRedirect">
  <xs:all>
    <xs:element name="redirect-url" type="xs:string" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="MerchantCheckoutFlowSupport">
  <xs:all>
    <xs:element name="edit-cart-url" type="xs:anyURI" minOccurs="0" />
    <xs:element name="continue-shopping-url" type="xs:anyURI" minOccurs="0" />
    <xs:element name="tax-tables" type="tns:TaxTables" minOccurs="0" />
    <xs:element name="shipping-methods" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="flat-rate-shipping" type="tns:FlatRateShipping" />
            <xs:element name="merchant-calculated-shipping" type="tns:MerchantCalculatedShipping" />
            <xs:element name="pickup" type="tns:Pickup" />
            <xs:element name="carrier-calculated-shipping" type="tns:CarrierCalculatedShipping" />
          </xs:choice>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="parameterized-urls" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="parameterized-url" type="tns:ParameterizedUrl" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="merchant-calculations" type="tns:MerchantCalculations" minOccurs="0" />
    <xs:element name="request-buyer-phone-number" type="xs:boolean" minOccurs="0" />
    <xs:element name="analytics-data" type="xs:string" minOccurs="0" />
    <xs:element name="platform-id" type="xs:long" minOccurs="0" />
    <xs:element name="rounding-policy" type="tns:RoundingPolicy" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="MerchantCalculations">
  <xs:all>
    <xs:element name="merchant-calculations-url" type="xs:anyURI" />
    <xs:element name="accept-merchant-coupons" type="xs:boolean" minOccurs="0" />
    <xs:element name="accept-gift-certificates" type="xs:boolean" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="RoundingPolicy">
  <xs:all>
    <xs:element name="mode" type="tns:RoundingMode" />
    <xs:element name="rule" type="tns:RoundingRule" />
  </xs:all>
</xs:complexType>

<xs:complexType name="ParameterizedUrl">
  <xs:all>
    <xs:element name="parameters" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="url-parameter" type="tns:UrlParameter" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
  <xs:attribute name="url" type="xs:anyURI" use="required" />
</xs:complexType>

<xs:complexType name="UrlParameter">
  <xs:attribute name="name" type="xs:string" use="required" />
  <xs:attribute name="type" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="ShoppingCart">
  <xs:all>
    <xs:element name="merchant-private-data" type="tns:anyMultiple" minOccurs="0" />
    <xs:element name="cart-expiration" type="tns:CartExpiration" minOccurs="0" />
    <xs:element name="items">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="item" type="tns:Item" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="buyer-messages" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="gift-message" type="tns:GiftMessage" />
            <xs:element name="include-gift-receipt" type="xs:string" />
            <xs:element name="delivery-instructions" type="tns:DeliveryInstructions" />
            <xs:element name="special-instructions" type="tns:SpecialInstructions" />
            <xs:element name="special-requests" type="tns:SpecialRequests" />
            <xs:element name="in-honor-of-message" type="tns:InHonorOfMessage" />
            <xs:element name="in-tribute-of-message" type="tns:InTributeOfMessage" />
            <xs:element name="in-memory-of-message" type="tns:InMemoryOfMessage" />
            <xs:element name="buyer-note" type="tns:BuyerNote" />
          </xs:choice>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="Item">
  <xs:all>
    <xs:element name="item-weight" type="tns:ItemWeight" minOccurs="0" />
    <xs:element name="digital-content" type="tns:DigitalContent" minOccurs="0" />
    <xs:element name="tax-table-selector" minOccurs="0">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:minLength value="0" />
          <xs:maxLength value="255" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="item-name" type="xs:string" />
    <xs:element name="item-description" type="xs:string" />
    <xs:element name="unit-price" type="tns:Money" />
    <xs:element name="quantity">
      <xs:simpleType>
        <xs:restriction base="xs:int">
          <xs:minInclusive value="1" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="merchant-item-id" type="xs:string" minOccurs="0" />
    <xs:element name="merchant-private-item-data" type="tns:anyMultiple" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="CartExpiration">
  <xs:all>
    <xs:element name="good-until-date" type="xs:dateTime" />
  </xs:all>
</xs:complexType>

<xs:complexType name="ItemWeight">
  <xs:attribute name="value" use="required">
    <xs:simpleType>
      <xs:restriction base="xs:double">
        <xs:minInclusive value="0.0" />
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="unit" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="GiftMessage">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="from" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="to" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-chars" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="1000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-line-length" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-lines" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:complexType name="DeliveryInstructions">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="max-chars" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="1000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-line-length" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-lines" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:complexType name="SpecialInstructions">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="max-chars" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="1000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-line-length" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-lines" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:complexType name="SpecialRequests">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="max-chars" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="1000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-line-length" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-lines" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:complexType name="InHonorOfMessage">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="from" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="to" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-chars" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="1000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-line-length" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-lines" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:complexType name="InTributeOfMessage">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="from" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="to" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-chars" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="1000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-line-length" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-lines" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:complexType name="InMemoryOfMessage">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="from" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="to" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0" />
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-chars" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="1000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-line-length" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-lines" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:complexType name="BuyerNote">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="max-chars" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="1000" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-line-length" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="max-lines" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:minInclusive value="1" />
            <xs:maxInclusive value="20" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:complexType name="USStateArea">
  <xs:all>
    <xs:element name="state" type="xs:string" />
  </xs:all>
</xs:complexType>

<xs:complexType name="USZipArea">
  <xs:all>
    <xs:element name="zip-pattern" type="xs:string" />
  </xs:all>
</xs:complexType>

<xs:complexType name="USCountryArea">
  <xs:attribute name="country-area" type="tns:USAreas" use="required" />
</xs:complexType>

<xs:complexType name="PostalArea">
  <xs:all>
    <xs:element name="country-code" type="xs:string" />
    <xs:element name="postal-code-pattern" type="xs:string" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="WorldArea" />

<xs:complexType name="Address">
  <xs:all>
    <xs:element name="email" type="xs:string" minOccurs="0" />
    <xs:element name="phone" type="xs:string" minOccurs="0" />
    <xs:element name="contact-name" type="xs:string" minOccurs="0" />
    <xs:element name="company-name" type="xs:string" minOccurs="0" />
    <xs:element name="fax" type="xs:string" minOccurs="0" />
    <xs:element name="address1" type="xs:string" />
    <xs:element name="address2" type="xs:string" minOccurs="0" />
    <xs:element name="structured-name" type="tns:StructuredName" minOccurs="0" />
    <xs:element name="country-code" type="xs:string" />
    <xs:element name="region" type="xs:string" />
    <xs:element name="city" type="xs:string" />
    <xs:element name="postal-code" type="xs:string" />
  </xs:all>
</xs:complexType>

<xs:complexType name="ShippingRestrictions">
  <xs:all>
    <xs:element name="allowed-areas">
      <xs:complexType>
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="us-state-area" type="tns:USStateArea" />
            <xs:element name="us-zip-area" type="tns:USZipArea" />
            <xs:element name="us-country-area" type="tns:USCountryArea" />
            <xs:element name="postal-area" type="tns:PostalArea" />
            <xs:element name="world-area" type="tns:WorldArea" />
          </xs:choice>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="excluded-areas" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="us-state-area" type="tns:USStateArea" />
            <xs:element name="us-zip-area" type="tns:USZipArea" />
            <xs:element name="us-country-area" type="tns:USCountryArea" />
            <xs:element name="postal-area" type="tns:PostalArea" />
            <xs:element name="world-area" type="tns:WorldArea" />
          </xs:choice>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="allow-us-po-box" type="xs:boolean" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="FlatRateShipping">
  <xs:all>
    <xs:element name="price">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
    <xs:element name="shipping-restrictions" type="tns:ShippingRestrictions" minOccurs="0" />
  </xs:all>
  <xs:attribute name="name" use="required">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1" />
        <xs:maxLength value="255" />
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
</xs:complexType>

<xs:complexType name="MerchantCalculatedShipping">
  <xs:all>
    <xs:element name="address-filters" type="tns:ShippingRestrictions" minOccurs="0" />
    <xs:element name="shipping-restrictions" type="tns:ShippingRestrictions" minOccurs="0" />
    <xs:element name="price">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:all>
  <xs:attribute name="name" use="required">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1" />
        <xs:maxLength value="255" />
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
</xs:complexType>

<xs:complexType name="Pickup">
  <xs:all>
    <xs:element name="price">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:all>
  <xs:attribute name="name" use="required">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1" />
        <xs:maxLength value="255" />
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
</xs:complexType>

<xs:complexType name="CarrierCalculatedShipping">
  <xs:all>
    <xs:element name="shipping-packages">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="shipping-package" type="tns:ShippingPackage" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="carrier-calculated-shipping-options">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="carrier-calculated-shipping-option" type="tns:CarrierCalculatedShippingOption" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="CarrierCalculatedShippingOption">
  <xs:all>
    <xs:element name="price">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
    <xs:element name="shipping-company" type="xs:token" />
    <xs:element name="shipping-type" type="xs:string" />
    <xs:element name="carrier-pickup" type="xs:token" minOccurs="0" />
    <xs:element name="additional-fixed-charge" type="tns:Money" minOccurs="0" />
    <xs:element name="additional-variable-charge-percent" type="xs:double" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="ShippingPackage">
  <xs:all>
    <xs:element name="length" type="tns:Dimension" minOccurs="0" />
    <xs:element name="width" type="tns:Dimension" minOccurs="0" />
    <xs:element name="height" type="tns:Dimension" minOccurs="0" />
    <xs:element name="ship-from" type="tns:AnonymousAddress" />
    <xs:element name="delivery-address-category" type="xs:token" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="Dimension">
  <xs:attribute name="value" use="required">
    <xs:simpleType>
      <xs:restriction base="xs:double">
        <xs:minInclusive value="0.0" />
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="unit" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="ChargeOrderRequest">
  <xs:all>
    <xs:element name="amount" type="tns:Money" minOccurs="0" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="ChargeAndShipOrderRequest">
  <xs:all>
    <xs:element name="amount" type="tns:Money" minOccurs="0" />
    <xs:element name="tracking-data-list" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="tracking-data" type="tns:TrackingData" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="item-shipping-information-list" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="item-shipping-information" type="tns:ItemShippingInformation" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="send-email" type="xs:boolean" minOccurs="0" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="RefundOrderRequest">
  <xs:all>
    <xs:element name="comment" type="xs:string" minOccurs="0" />
    <xs:element name="amount" type="tns:Money" minOccurs="0" />
    <xs:element name="reason" type="xs:string" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="CancelOrderRequest">
  <xs:all>
    <xs:element name="comment" type="xs:string" minOccurs="0" />
    <xs:element name="reason" type="xs:string" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="AuthorizeOrderRequest">
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="ProcessOrderRequest">
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="DeliverOrderRequest">
  <xs:all>
    <xs:element name="tracking-data" type="tns:TrackingData" minOccurs="0" />
    <xs:element name="send-email" type="xs:boolean" minOccurs="0" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="AddTrackingDataRequest">
  <xs:all>
    <xs:element name="tracking-data" type="tns:TrackingData" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="SendBuyerMessageRequest">
  <xs:all>
    <xs:element name="message" type="xs:string" />
    <xs:element name="send-email" type="xs:boolean" minOccurs="0" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="ArchiveOrderRequest">
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="UnarchiveOrderRequest">
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="AddMerchantOrderNumberRequest">
  <xs:all>
    <xs:element name="merchant-order-number" type="xs:string" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="RequestReceivedResponse">
  <xs:all>
    <xs:element name="refund-amount-notification" type="tns:RefundAmountNotification" minOccurs="0" />
    <xs:element name="order-state-change-notification" type="tns:OrderStateChangeNotification" minOccurs="0" />
    <xs:element name="charge-amount-notification" type="tns:ChargeAmountNotification" minOccurs="0" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="TrackingData">
  <xs:all>
    <xs:element name="carrier" type="xs:string" />
    <xs:element name="tracking-number" type="xs:string" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="DigitalContent">
  <xs:all>
    <xs:element name="key" type="xs:string" minOccurs="0" />
    <xs:element name="url" type="xs:anyURI" minOccurs="0" />
    <xs:element name="email-delivery" type="xs:boolean" minOccurs="0" />
    <xs:element name="description" minOccurs="0">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:minLength value="0" />
          <xs:maxLength value="1024" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="display-disposition" type="xs:token" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="TaxTables">
  <xs:all>
    <xs:element name="default-tax-table" type="tns:DefaultTaxTable" minOccurs="0" />
    <xs:element name="alternate-tax-tables" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="alternate-tax-table" type="tns:AlternateTaxTable" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
  <xs:attribute name="merchant-calculated" type="xs:boolean" use="optional" />
</xs:complexType>

<xs:complexType name="DefaultTaxTable">
  <xs:all>
    <xs:element name="tax-rules">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="default-tax-rule" type="tns:DefaultTaxRule" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="AlternateTaxTable">
  <xs:all>
    <xs:element name="alternate-tax-rules">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="alternate-tax-rule" type="tns:AlternateTaxRule" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
  <xs:attribute name="name" use="required">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0" />
        <xs:maxLength value="255" />
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:attribute name="standalone" type="xs:boolean" use="optional" />
</xs:complexType>

<xs:complexType name="DefaultTaxRule">
  <xs:all>
    <xs:element name="shipping-taxed" type="xs:boolean" minOccurs="0" />
    <xs:element name="rate" minOccurs="0">
      <xs:simpleType>
        <xs:restriction base="xs:double">
          <xs:minInclusive value="0.0" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="tax-area" minOccurs="0">
      <xs:complexType>
        <xs:choice>
          <xs:element name="us-state-area" type="tns:USStateArea" />
          <xs:element name="us-zip-area" type="tns:USZipArea" />
          <xs:element name="us-country-area" type="tns:USCountryArea" />
          <xs:element name="postal-area" type="tns:PostalArea" />
          <xs:element name="world-area" type="tns:WorldArea" />
        </xs:choice>
      </xs:complexType>
    </xs:element>
    <xs:element name="tax-areas" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="us-state-area" type="tns:USStateArea" />
            <xs:element name="us-zip-area" type="tns:USZipArea" />
            <xs:element name="us-country-area" type="tns:USCountryArea" />
            <xs:element name="postal-area" type="tns:PostalArea" />
            <xs:element name="world-area" type="tns:WorldArea" />
          </xs:choice>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="AlternateTaxRule">
  <xs:all>
    <xs:element name="rate" minOccurs="0">
      <xs:simpleType>
        <xs:restriction base="xs:double">
          <xs:minInclusive value="0.0" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="tax-area" minOccurs="0">
      <xs:complexType>
        <xs:choice>
          <xs:element name="us-state-area" type="tns:USStateArea" />
          <xs:element name="us-zip-area" type="tns:USZipArea" />
          <xs:element name="us-country-area" type="tns:USCountryArea" />
          <xs:element name="postal-area" type="tns:PostalArea" />
          <xs:element name="world-area" type="tns:WorldArea" />
        </xs:choice>
      </xs:complexType>
    </xs:element>
    <xs:element name="tax-areas" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="us-state-area" type="tns:USStateArea" />
            <xs:element name="us-zip-area" type="tns:USZipArea" />
            <xs:element name="us-country-area" type="tns:USCountryArea" />
            <xs:element name="postal-area" type="tns:PostalArea" />
            <xs:element name="world-area" type="tns:WorldArea" />
          </xs:choice>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="OrderAdjustment">
  <xs:all>
    <xs:element name="merchant-calculation-successful" type="xs:boolean" minOccurs="0" />
    <xs:element name="merchant-codes" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="gift-certificate-adjustment" type="tns:GiftCertificateAdjustment" />
            <xs:element name="coupon-adjustment" type="tns:CouponAdjustment" />
          </xs:choice>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="total-tax" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
    <xs:element name="shipping" minOccurs="0">
      <xs:complexType>
        <xs:choice>
          <xs:element name="merchant-calculated-shipping-adjustment" type="tns:MerchantCalculatedShippingAdjustment" />
          <xs:element name="flat-rate-shipping-adjustment" type="tns:FlatRateShippingAdjustment" />
          <xs:element name="pickup-shipping-adjustment" type="tns:PickupShippingAdjustment" />
          <xs:element name="carrier-calculated-shipping-adjustment" type="tns:CarrierCalculatedShippingAdjustment" />
        </xs:choice>
      </xs:complexType>
    </xs:element>
    <xs:element name="adjustment-total" type="tns:Money" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="MerchantCalculatedShippingAdjustment">
  <xs:all>
    <xs:element name="shipping-name" type="xs:string" />
    <xs:element name="shipping-cost">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="FlatRateShippingAdjustment">
  <xs:all>
    <xs:element name="shipping-name" type="xs:string" />
    <xs:element name="shipping-cost">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="PickupShippingAdjustment">
  <xs:all>
    <xs:element name="shipping-name" type="xs:string" />
    <xs:element name="shipping-cost">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="CarrierCalculatedShippingAdjustment">
  <xs:all>
    <xs:element name="shipping-name" type="xs:string" />
    <xs:element name="shipping-cost">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="NewOrderNotification">
  <xs:all>
    <xs:element name="buyer-billing-address" type="tns:Address" />
    <xs:element name="timestamp" type="xs:dateTime" />
    <xs:element name="google-order-number" type="xs:token" />
    <xs:element name="order-summary" type="tns:OrderSummary" minOccurs="0" />
    <xs:element name="shopping-cart" type="tns:ShoppingCart" />
    <xs:element name="order-adjustment" type="tns:OrderAdjustment" />
    <xs:element name="buyer-shipping-address" type="tns:Address" />
    <xs:element name="buyer-marketing-preferences" type="tns:BuyerMarketingPreferences" />
    <xs:element name="promotions" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="promotion" type="tns:Promotion" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="order-total" type="tns:Money" />
    <xs:element name="fulfillment-order-state" type="tns:FulfillmentOrderState" />
    <xs:element name="financial-order-state" type="tns:FinancialOrderState" />
    <xs:element name="buyer-id" type="xs:long" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="OrderStateChangeNotification">
  <xs:all>
    <xs:element name="new-fulfillment-order-state" type="tns:FulfillmentOrderState" />
    <xs:element name="new-financial-order-state" type="tns:FinancialOrderState" />
    <xs:element name="previous-fulfillment-order-state" type="tns:FulfillmentOrderState" />
    <xs:element name="previous-financial-order-state" type="tns:FinancialOrderState" />
    <xs:element name="reason" type="xs:string" minOccurs="0" />
    <xs:element name="timestamp" type="xs:dateTime" />
    <xs:element name="google-order-number" type="xs:token" />
    <xs:element name="order-summary" type="tns:OrderSummary" minOccurs="0" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="ChargeAmountNotification">
  <xs:all>
    <xs:element name="timestamp" type="xs:dateTime" />
    <xs:element name="latest-charge-amount" type="tns:Money" />
    <xs:element name="latest-charge-fee" type="tns:FeeStructure" minOccurs="0" />
    <xs:element name="total-charge-amount" type="tns:Money" />
    <xs:element name="latest-promotion-charge-amount" type="tns:Money" minOccurs="0" />
    <xs:element name="google-order-number" type="xs:token" />
    <xs:element name="order-summary" type="tns:OrderSummary" minOccurs="0" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="ChargebackAmountNotification">
  <xs:all>
    <xs:element name="timestamp" type="xs:dateTime" />
    <xs:element name="google-order-number" type="xs:token" />
    <xs:element name="latest-fee-refund-amount" type="tns:Money" minOccurs="0" />
    <xs:element name="total-chargeback-amount" type="tns:Money" />
    <xs:element name="latest-chargeback-amount" type="tns:Money" />
    <xs:element name="latest-chargeback-fee-amount" type="tns:Money" minOccurs="0" />
    <xs:element name="latest-promotion-chargeback-amount" type="tns:Money" minOccurs="0" />
    <xs:element name="order-summary" type="tns:OrderSummary" minOccurs="0" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="RefundAmountNotification">
  <xs:all>
    <xs:element name="timestamp" type="xs:dateTime" />
    <xs:element name="latest-refund-amount" type="tns:Money" />
    <xs:element name="latest-fee-refund-amount" type="tns:Money" minOccurs="0" />
    <xs:element name="total-refund-amount" type="tns:Money" />
    <xs:element name="latest-promotion-refund-amount" type="tns:Money" minOccurs="0" />
    <xs:element name="google-order-number" type="xs:token" />
    <xs:element name="order-summary" type="tns:OrderSummary" minOccurs="0" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="RiskInformationNotification">
  <xs:all>
    <xs:element name="timestamp" type="xs:dateTime" />
    <xs:element name="risk-information" type="tns:RiskInformation" />
    <xs:element name="google-order-number" type="xs:token" />
    <xs:element name="order-summary" type="tns:OrderSummary" minOccurs="0" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="AuthorizationAmountNotification">
  <xs:all>
    <xs:element name="avs-response" type="xs:string" />
    <xs:element name="cvn-response" type="xs:string" />
    <xs:element name="authorization-amount" type="tns:Money" />
    <xs:element name="authorization-expiration-date" type="xs:dateTime" />
    <xs:element name="timestamp" type="xs:dateTime" />
    <xs:element name="google-order-number" type="xs:token" />
    <xs:element name="order-summary" type="tns:OrderSummary" minOccurs="0" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="NotificationAcknowledgment">
  <xs:attribute name="serial-number" type="xs:string" use="optional" />
</xs:complexType>

<xs:complexType name="RiskInformation">
  <xs:all>
    <xs:element name="eligible-for-protection" type="xs:boolean" />
    <xs:element name="billing-address" type="tns:Address" />
    <xs:element name="avs-response" type="xs:string" />
    <xs:element name="cvn-response" type="xs:string" />
    <xs:element name="partial-cc-number" type="xs:string" />
    <xs:element name="buyer-account-age" type="xs:int" />
    <xs:element name="ip-address" type="xs:string" />
  </xs:all>
</xs:complexType>

<xs:complexType name="FeeStructure">
  <xs:all>
    <xs:element name="total" type="tns:Money" />
    <xs:element name="percentage" type="xs:double" />
    <xs:element name="flat" type="tns:Money" />
  </xs:all>
</xs:complexType>

<xs:complexType name="BuyerMarketingPreferences">
  <xs:all>
    <xs:element name="email-allowed" type="xs:boolean" />
  </xs:all>
</xs:complexType>

<xs:complexType name="StructuredName">
  <xs:all>
    <xs:element name="first-name" type="xs:string" />
    <xs:element name="last-name" type="xs:string" />
  </xs:all>
</xs:complexType>

<xs:complexType name="Promotion">
  <xs:all>
    <xs:element name="name" type="xs:string" />
    <xs:element name="id" type="xs:long" />
    <xs:element name="description" minOccurs="0">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:minLength value="0" />
          <xs:maxLength value="1024" />
        </xs:restriction>
      </xs:simpleType>
    </xs:element>
    <xs:element name="total-amount" type="tns:Money" />
  </xs:all>
</xs:complexType>

<xs:complexType name="OrderSummary">
  <xs:all>
    <xs:element name="google-order-number" type="xs:token" />
    <xs:element name="merchant-order-number" type="xs:string" minOccurs="0" />
    <xs:element name="total-refund-amount" type="tns:Money" />
    <xs:element name="total-charge-amount" type="tns:Money" />
    <xs:element name="authorization" type="tns:AuthorizationInformation" minOccurs="0" />
    <xs:element name="risk-information" type="tns:RiskInformation" minOccurs="0" />
    <xs:element name="total-chargeback-amount" type="tns:Money" />
    <xs:element name="purchase-date" type="xs:dateTime" />
    <xs:element name="archived" type="xs:boolean" />
    <xs:element name="shopping-cart" type="tns:ShoppingCart" />
    <xs:element name="order-adjustment" type="tns:OrderAdjustment" />
    <xs:element name="buyer-shipping-address" type="tns:Address" />
    <xs:element name="buyer-marketing-preferences" type="tns:BuyerMarketingPreferences" />
    <xs:element name="promotions" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="promotion" type="tns:Promotion" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="order-total" type="tns:Money" />
    <xs:element name="fulfillment-order-state" type="tns:FulfillmentOrderState" />
    <xs:element name="financial-order-state" type="tns:FinancialOrderState" />
    <xs:element name="buyer-id" type="xs:long" />
  </xs:all>
</xs:complexType>

<xs:complexType name="AuthorizationInformation">
  <xs:all>
    <xs:element name="authorization-amount" type="tns:Money" />
    <xs:element name="authorization-expiration-date" type="xs:dateTime" />
  </xs:all>
</xs:complexType>

<xs:complexType name="GiftCertificateAdjustment">
  <xs:all>
    <xs:element name="message" type="xs:string" minOccurs="0" />
    <xs:element name="code" type="xs:string" />
    <xs:element name="calculated-amount" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
    <xs:element name="applied-amount">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="CouponAdjustment">
  <xs:all>
    <xs:element name="message" type="xs:string" minOccurs="0" />
    <xs:element name="code" type="xs:string" />
    <xs:element name="calculated-amount" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
    <xs:element name="applied-amount">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="MerchantCodeString">
  <xs:attribute name="code" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="CouponResult">
  <xs:all>
    <xs:element name="valid" type="xs:boolean" />
    <xs:element name="message" type="xs:string" minOccurs="0" />
    <xs:element name="code" type="xs:string" />
    <xs:element name="calculated-amount" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="GiftCertificateResult">
  <xs:all>
    <xs:element name="valid" type="xs:boolean" />
    <xs:element name="message" type="xs:string" minOccurs="0" />
    <xs:element name="code" type="xs:string" />
    <xs:element name="calculated-amount" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="Method">
  <xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="AnonymousAddress">
  <xs:all>
    <xs:element name="country-code" type="xs:string" />
    <xs:element name="region" type="xs:string" />
    <xs:element name="city" type="xs:string" />
    <xs:element name="postal-code" type="xs:string" />
  </xs:all>
  <xs:attribute name="id" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="Calculate">
  <xs:all>
    <xs:element name="addresses" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="anonymous-address" type="tns:AnonymousAddress" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="tax" type="xs:boolean" />
    <xs:element name="shipping" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="method" type="tns:Method" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="merchant-code-strings" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="merchant-code-string" type="tns:MerchantCodeString" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="MerchantCalculationCallback">
  <xs:all>
    <xs:element name="shopping-cart" type="tns:ShoppingCart" />
    <xs:element name="buyer-id" type="xs:long" minOccurs="0" />
    <xs:element name="buyer-language" type="xs:string" />
    <xs:element name="calculate" type="tns:Calculate" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="Result">
  <xs:all>
    <xs:element name="shippable" type="xs:boolean" minOccurs="0" />
    <xs:element name="total-tax" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
    <xs:element name="shipping-rate" minOccurs="0">
      <xs:complexType>
        <xs:simpleContent>
          <xs:restriction base="tns:Money">
            <xs:minInclusive value="0.0" />
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
    <xs:element name="merchant-code-results" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="coupon-result" type="tns:CouponResult" />
            <xs:element name="gift-certificate-result" type="tns:GiftCertificateResult" />
          </xs:choice>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
  <xs:attribute name="shipping-name" type="xs:string" use="optional" />
  <xs:attribute name="address-id" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="MerchantCalculationResults">
  <xs:all>
    <xs:element name="results">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="result" type="tns:Result" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="ErrorResponse">
  <xs:all>
    <xs:element name="warning-messages" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="error-message" type="xs:string" />
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="DiagnoseResponse">
  <xs:all>
    <xs:element name="input-xml" type="tns:anyType" />
    <xs:element name="warnings" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="OrderProcessingSupport">
  <xs:all>
    <xs:element name="request-initial-auth-details" type="xs:boolean" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="OrderListRequest">
  <xs:all>
    <xs:element name="financial-state" type="tns:FinancialOrderState" minOccurs="0" />
    <xs:element name="fulfillment-state" type="tns:FulfillmentOrderState" minOccurs="0" />
    <xs:element name="date-time-zone" type="xs:string" minOccurs="0" />
  </xs:all>
  <xs:attribute name="start-date" type="xs:dateTime" use="required" />
  <xs:attribute name="end-date" type="xs:dateTime" use="required" />
</xs:complexType>

<xs:complexType name="ShipItemsRequest">
  <xs:all>
    <xs:element name="item-shipping-information-list">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="item-shipping-information" type="tns:ItemShippingInformation" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="send-email" type="xs:boolean" minOccurs="0" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="ResetItemsShippingInformationRequest">
  <xs:all>
    <xs:element name="item-ids">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="item-id" type="tns:ItemId" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="send-email" type="xs:boolean" minOccurs="0" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="CancelItemsRequest">
  <xs:all>
    <xs:element name="comment" type="xs:string" minOccurs="0" />
    <xs:element name="reason" type="xs:string" />
    <xs:element name="item-ids">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="item-id" type="tns:ItemId" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="send-email" type="xs:boolean" minOccurs="0" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="ReturnItemsRequest">
  <xs:all>
    <xs:element name="item-ids">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="item-id" type="tns:ItemId" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="send-email" type="xs:boolean" minOccurs="0" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="BackorderItemsRequest">
  <xs:all>
    <xs:element name="item-ids">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="item-id" type="tns:ItemId" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="send-email" type="xs:boolean" minOccurs="0" />
  </xs:all>
  <xs:attribute name="google-order-number" type="xs:token" use="required" />
</xs:complexType>

<xs:complexType name="ItemId">
  <xs:all>
    <xs:element name="merchant-item-id" type="xs:string" minOccurs="0" />
  </xs:all>
</xs:complexType>

<xs:complexType name="ItemShippingInformation">
  <xs:all>
    <xs:element name="tracking-data-list" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="tracking-data" type="tns:TrackingData" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="item-id" type="tns:ItemId" />
  </xs:all>
</xs:complexType>

<xs:complexType name="NotificationHistoryResponse">
  <xs:all>
    <xs:element name="notifications">
      <xs:complexType>
        <xs:sequence>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="new-order-notification" type="tns:NewOrderNotification" />
            <xs:element name="order-state-change-notification" type="tns:OrderStateChangeNotification" />
            <xs:element name="charge-amount-notification" type="tns:ChargeAmountNotification" />
            <xs:element name="chargeback-amount-notification" type="tns:ChargebackAmountNotification" />
            <xs:element name="refund-amount-notification" type="tns:RefundAmountNotification" />
            <xs:element name="risk-information-notification" type="tns:RiskInformationNotification" />
            <xs:element name="authorization-amount-notification" type="tns:AuthorizationAmountNotification" />
          </xs:choice>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="next-page-token" type="xs:string" minOccurs="0" />
    <xs:element name="invalid-order-numbers" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="google-order-number" type="xs:token" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:complexType name="NotificationHistoryRequest">
  <xs:all>
    <xs:element name="serial-number" type="xs:string" minOccurs="0" />
    <xs:element name="start-time" type="xs:dateTime" minOccurs="0" />
    <xs:element name="next-page-token" type="xs:string" minOccurs="0" />
    <xs:element name="end-time" type="xs:dateTime" minOccurs="0" />
    <xs:element name="order-numbers" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="google-order-number" type="xs:token" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="notification-types" minOccurs="0">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="notification-type" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="OrderSummaryRequest">
  <xs:all>
    <xs:element name="order-numbers">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="google-order-number" type="xs:token" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
</xs:complexType>

<xs:complexType name="OrderSummaryResponse">
  <xs:all>
    <xs:element name="order-summaries">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="order-summary" type="tns:OrderSummary" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:all>
  <xs:attribute name="serial-number" type="xs:string" use="required" />
</xs:complexType>

<xs:simpleType name="RoundingMode">
  <xs:restriction base="xs:token">
    <xs:enumeration value="UP" />
    <xs:enumeration value="DOWN" />
    <xs:enumeration value="CEILING" />
    <xs:enumeration value="FLOOR" />
    <xs:enumeration value="HALF_UP" />
    <xs:enumeration value="HALF_DOWN" />
    <xs:enumeration value="HALF_EVEN" />
    <xs:enumeration value="UNNECESSARY" />
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="RoundingRule">
  <xs:restriction base="xs:token">
    <xs:enumeration value="PER_LINE" />
    <xs:enumeration value="TOTAL" />
  </xs:restriction>
</xs:simpleType>

<xs:complexType name="anyMultiple" mixed="true">
  <xs:sequence>
    <xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded" />
  </xs:sequence>
</xs:complexType>

<xs:complexType name="Money">
  <xs:simpleContent>
    <xs:extension base="xs:decimal">
      <xs:attribute name="currency" type="xs:token" use="required" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:simpleType name="USAreas">
  <xs:restriction base="xs:token">
    <xs:enumeration value="CONTINENTAL_48" />
    <xs:enumeration value="FULL_50_STATES" />
    <xs:enumeration value="ALL" />
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="FulfillmentOrderState">
  <xs:restriction base="xs:token">
    <xs:enumeration value="NEW" />
    <xs:enumeration value="PROCESSING" />
    <xs:enumeration value="DELIVERED" />
    <xs:enumeration value="WILL_NOT_DELIVER" />
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="FinancialOrderState">
  <xs:restriction base="xs:token">
    <xs:enumeration value="REVIEWING" />
    <xs:enumeration value="CHARGEABLE" />
    <xs:enumeration value="CHARGING" />
    <xs:enumeration value="CHARGED" />
    <xs:enumeration value="PAYMENT_DECLINED" />
    <xs:enumeration value="CANCELLED_BY_GOOGLE" />
    <xs:enumeration value="CANCELLED" />
  </xs:restriction>
</xs:simpleType>

<xs:complexType name="anyType">
  <xs:sequence>
    <xs:any namespace="##any" processContents="skip" />
  </xs:sequence>
</xs:complexType>

<xs:element name="hello" type="tns:Hello" />

<xs:element name="bye" type="tns:Bye" />

<xs:element name="demo-failure" type="tns:DemoFailure" />

<xs:element name="checkout-shopping-cart" type="tns:CheckoutShoppingCart" />

<xs:element name="checkout-redirect" type="tns:CheckoutRedirect" />

<xs:element name="charge-order" type="tns:ChargeOrderRequest" />

<xs:element name="charge-and-ship-order" type="tns:ChargeAndShipOrderRequest" />

<xs:element name="refund-order" type="tns:RefundOrderRequest" />

<xs:element name="cancel-order" type="tns:CancelOrderRequest" />

<xs:element name="authorize-order" type="tns:AuthorizeOrderRequest" />

<xs:element name="process-order" type="tns:ProcessOrderRequest" />

<xs:element name="deliver-order" type="tns:DeliverOrderRequest" />

<xs:element name="add-tracking-data" type="tns:AddTrackingDataRequest" />

<xs:element name="send-buyer-message" type="tns:SendBuyerMessageRequest" />

<xs:element name="archive-order" type="tns:ArchiveOrderRequest" />

<xs:element name="unarchive-order" type="tns:UnarchiveOrderRequest" />

<xs:element name="add-merchant-order-number" type="tns:AddMerchantOrderNumberRequest" />

<xs:element name="request-received" type="tns:RequestReceivedResponse" />

<xs:element name="new-order-notification" type="tns:NewOrderNotification" />

<xs:element name="order-state-change-notification" type="tns:OrderStateChangeNotification" />

<xs:element name="charge-amount-notification" type="tns:ChargeAmountNotification" />

<xs:element name="chargeback-amount-notification" type="tns:ChargebackAmountNotification" />

<xs:element name="refund-amount-notification" type="tns:RefundAmountNotification" />

<xs:element name="risk-information-notification" type="tns:RiskInformationNotification" />

<xs:element name="authorization-amount-notification" type="tns:AuthorizationAmountNotification" />

<xs:element name="notification-acknowledgment" type="tns:NotificationAcknowledgment" />

<xs:element name="buyer-marketing-preferences" type="tns:BuyerMarketingPreferences" />

<xs:element name="order-summary" type="tns:OrderSummary" />

<xs:element name="merchant-calculation-callback" type="tns:MerchantCalculationCallback" />

<xs:element name="merchant-calculation-results" type="tns:MerchantCalculationResults" />

<xs:element name="error" type="tns:ErrorResponse" />

<xs:element name="diagnosis" type="tns:DiagnoseResponse" />

<xs:element name="order-list-request" type="tns:OrderListRequest" />

<xs:element name="ship-items" type="tns:ShipItemsRequest" />

<xs:element name="reset-items-shipping-information" type="tns:ResetItemsShippingInformationRequest" />

<xs:element name="cancel-items" type="tns:CancelItemsRequest" />

<xs:element name="return-items" type="tns:ReturnItemsRequest" />

<xs:element name="backorder-items" type="tns:BackorderItemsRequest" />

<xs:element name="notification-history-response" type="tns:NotificationHistoryResponse" />

<xs:element name="notification-history-request" type="tns:NotificationHistoryRequest" />

<xs:element name="order-summary-request" type="tns:OrderSummaryRequest" />

<xs:element name="order-summary-response" type="tns:OrderSummaryResponse" />

</xs:schema>