<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:mule="http://www.mulesoft.org/schema/mule/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://www.mulesoft.org/schema/mule/quickbooks-windows">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"></xs:import>
  <xs:import schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" namespace="http://www.springframework.org/schema/beans"></xs:import>
  <xs:import schemaLocation="http://www.mulesoft.org/schema/mule/core/current/mule.xsd" namespace="http://www.mulesoft.org/schema/mule/core"></xs:import>
  <xs:import schemaLocation="http://www.mulesoft.org/schema/mule/devkit/current/mule-devkit.xsd" namespace="http://www.mulesoft.org/schema/mule/devkit"></xs:import>
  <xs:simpleType name="integerType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:integer"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="decimalType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:decimal"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="floatType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:float"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="doubleType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:double"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="dateTimeType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:dateTime"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="longType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:long"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="byteType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:byte"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="booleanType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:boolean"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="anyUriType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:anyURI"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="charType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:minLength value="1"></xs:minLength>
          <xs:maxLength value="1"></xs:maxLength>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:complexType name="XmlType">
    <xs:sequence>
      <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
    </xs:sequence>
    <xs:attribute name="ref" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation>The reference object for this parameter</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:element xmlns:devkit="http://www.mulesoft.org/schema/mule/devkit" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="config" substitutionGroup="mule:abstract-extension" devkit:javaClass="org.mule.modules.quickbooks.windows.adapters.QuickBooksWindowsModuleLifecycleAdapter">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mule:abstractExtensionType">
          <xs:annotation>
            <xs:documentation>QuickBooks software provides an interface that allows you to use forms such as checks, deposit slips and invoices,
making the accounting process more comfortable for the average business owner or manager. By using the built-in
functions that pertain to your business, you are able to perform your company accounting by simply recording your
vendor activities, customer activities, banking transactions, payroll checks and taxes. QuickBooks handles the
accounting portion of each transaction behind the scenes.
Read more: QuickBooks Accounting Tutorial | eHow.com http://www.ehow.com/way_5462311_quickbooks-accounting-tutorial.html#ixzz1csaydwxl</xs:documentation>
          </xs:annotation>
          <xs:attribute name="name" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>Give a name to this configuration so it can be later referenced by config-ref.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="client-ref" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>Quick-Books client. By default uses DefaultQuickBooksWindowsClient class.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="baseUri" default="https://services.intuit.com/sb" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>The base uri of the quickbooks endpoint,
used to fetch the company uri.

Quickbooks connector will first use this uri and the realmId to
get a second uri, called company uri,
which is the actual quickbooks endpoint for the connector</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="create" substitutionGroup="mule:abstract-message-processor" type="CreateType">
    <xs:annotation>
      <xs:documentation>Creates.

For details of the supported objects and its fields:
&lt;a href="https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/
0500_QuickBooks_Windows/0500_Supported_Objects"&gt;Supported Objects and Operations&lt;/a&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CreateType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="obj" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>Map that represents the object to be created.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="obj" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                          <xs:attribute name="key" type="xs:string"></xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                </xs:sequence>
              </xs:choice>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The realmID, also known as the Company ID, uniquely identifies the data for a company. In QuickBooks, the Company ID  appears on the My Account page. In Data Services for QuickBooks, the realmID is required in the URL for most calls.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="appKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Application Id.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Realm Id, obtained from the gateway that represents the company.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Auth Id, obtained from the gateway that represents the user.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" name="type" use="required" type="WindowsEntityTypeEnumType">
          <xs:annotation>
            <xs:documentation>WindowsEntityType of the object.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="requestId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the unique request Id</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" name="draft" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Boolean draft &lt;p&gt;Saving an IDS object in a draft state prevents it from being synchronized with Quickbooks. Your app might want to save an object in a draft state if the user has not finished entering data, or for some other reason the user does not want to commit the object for synchronization. You may save an object in draft state during a create or update operation by specifying the draft="true" attribute. By default, the Draft attribute is false, which means that the saved object will be synchronized with Quickbooks.&lt;/p&gt;</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" name="fullResponse" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Boolean fullResponse. If this flag is true, it will return the created object, otherwise, it will return an .</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-object" substitutionGroup="mule:abstract-message-processor" type="GetObjectType">
    <xs:annotation>
      <xs:documentation>Retrieve objects by ID.

For details of the supported objects:
&lt;a href="https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/
0500_QuickBooks_Windows/0500_Supported_Objects"&gt;Supported Objects and Operations&lt;/a&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetObjectType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="id" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>Id which is assigned by Data Services when the object is created.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="id" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                          <xs:attribute name="key" type="xs:string"></xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                </xs:sequence>
              </xs:choice>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The realmID, also known as the Company ID, uniquely identifies the data for a company. In QuickBooks, the Company ID  appears on the My Account page. In Data Services for QuickBooks, the realmID is required in the URL for most calls.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="appKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Application Id.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Realm Id, obtained from the gateway that represents the company.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Auth Id, obtained from the gateway that represents the user.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" name="type" use="required" type="WindowsEntityTypeEnumType">
          <xs:annotation>
            <xs:documentation>WindowsEntityType of the object.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="update" substitutionGroup="mule:abstract-message-processor" type="UpdateType">
    <xs:annotation>
      <xs:documentation>Updates.

&lt;p&gt;Specify all the parameters for the object, not just the new or changed elements.
If you omit an element, it is removed from the object by the update operation.&lt;/p&gt;

For details of the supported objects and its fields:
&lt;a href="https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/
0500_QuickBooks_Windows/0500_Supported_Objects"&gt;Supported Objects and Operations&lt;/a&gt;

&lt;p&gt;When updating transaction objects (such as Estimate or Invoice), note the following:&lt;/p&gt;
&lt;p&gt;* To retain existing line items, specify them in the request XML body and do not change their order. &lt;/p&gt;
&lt;p&gt;* To remove a line item, omit it. &lt;/p&gt;
&lt;p&gt;* To add a new line item, insert a new one in the list.&lt;/p&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="UpdateType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="obj" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>Map that represents the object to be created.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="obj" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                          <xs:attribute name="key" type="xs:string"></xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                </xs:sequence>
              </xs:choice>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The realmID, also known as the Company ID, uniquely identifies the data for a company. In QuickBooks Online, the Company ID  appears on the My Account page. In Data Services for QuickBooks Online, the realmID is required in the URL for most calls.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="appKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Application Id.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Realm Id, obtained from the gateway that represents the company.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Auth Id, obtained from the gateway that represents the user.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" name="type" use="required" type="WindowsEntityTypeEnumType">
          <xs:annotation>
            <xs:documentation>WindowsEntityType of the object.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="requestId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the unique request Id</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" name="draft" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Boolean draft &lt;p&gt;Saving an IDS object in a draft state prevents it from being synchronized with Quickbooks. Your app might want to save an object in a draft state if the user has not finished entering data, or for some other reason the user does not want to commit the object for synchronization. You may save an object in draft state during a create or update operation by specifying the draft="true" attribute. By default, the Draft attribute is false, which means that the saved object will be synchronized with Quickbooks.&lt;/p&gt;</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" name="fullResponse" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Boolean fullResponse. If this flag is true, it will return the created object, otherwise, it will return an .</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="delete" substitutionGroup="mule:abstract-message-processor" type="DeleteType">
    <xs:annotation>
      <xs:documentation>Deletes an object.
&lt;p&gt;Most objects cannot be deleted by calling Data Services.&lt;/p&gt;
&lt;p&gt;If the obj map do not have the MetaData field or the SyncToken, internally, will retrieve the
object at first, to delete it. So be careful, because it will need two request instead of one, which
could make it slower.&lt;/p&gt;
&lt;p&gt;For details of the supported objects and its fields:
&lt;a href="https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/
0500_QuickBooks_Windows/0500_Supported_Objects"&gt;Supported Objects and Operations&lt;/a&gt;&lt;/p&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DeleteType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="obj" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>Map that represents the object to be created.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="obj" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                          <xs:attribute name="key" type="xs:string"></xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                </xs:sequence>
              </xs:choice>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The realmID, also known as the Company ID, uniquely identifies the data for a company. In QuickBooks Online, the Company ID  appears on the My Account page. In Data Services for QuickBooks Online, the realmID is required in the URL for most calls.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="appKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Application Id.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Realm Id, obtained from the gateway that represents the company.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Auth Id, obtained from the gateway that represents the user.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" name="type" use="required" type="WindowsEntityTypeEnumType">
          <xs:annotation>
            <xs:documentation>WindowsEntityType of the object.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="requestId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the unique request Id</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="find-objects" substitutionGroup="mule:abstract-message-processor" type="FindObjectsType">
    <xs:annotation>
      <xs:documentation>Lazily retrieves Objects
For details on how to generate a query see:
&lt;a href="https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/0500_QuickBooks_Windows/
0100_Calling_Data_Services/0015_Retrieving_Objects"&gt;Retrieve Especification&lt;/a&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="FindObjectsType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="query" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Map that represents every filter and sort for the objects retrieved. Each type of object to be retrieved, has a TheObjectQuery class that has the attributes for which it can be filtered &lt;p&gt;(To know which attributes are accepted in every ObjectQuery, you could follow the link in the documentation of the WindowsEntityType that you require, or you can follow the link changing the word OBJECT for the object that you required, for example Account: &lt;p&gt;https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/ 0500_QuickBooks_Windows/0600_Object_Reference/OBJECT&lt;/p&gt;).&lt;/p&gt; &lt;p&gt;Do not complete the fields chunkSize and startPage, because are need it for the "lazily retrieve".&lt;/p&gt; If query is null, it will retrieve all the objects of that WindowsEntityType.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="query" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                          <xs:attribute name="key" type="xs:string"></xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                </xs:sequence>
              </xs:choice>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The realmID, also known as the Company ID, uniquely identifies the data for a company. In QuickBooks Online, the Company ID  appears on the My Account page. In Data Services for QuickBooks Online, the realmID is required in the URL for most calls.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="appKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Application Id.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Realm Id, obtained from the gateway that represents the company.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Auth Id, obtained from the gateway that represents the user.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" name="type" use="required" type="WindowsEntityTypeEnumType">
          <xs:annotation>
            <xs:documentation>WindowsEntityType of the object.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="generate-a-new-request-id" substitutionGroup="mule:abstract-message-processor" type="GenerateANewRequestIdType">
    <xs:annotation>
      <xs:documentation>Generate a new GUID for the requestId</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GenerateANewRequestIdType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="status" substitutionGroup="mule:abstract-message-processor" type="StatusType">
    <xs:annotation>
      <xs:documentation>Retrieve the Status

&lt;p&gt;Retrieves information about the sync status of Quickbooks entities. You can also query
specific entity types for either synchronized or unsynchronized objects with filters. You can get information
on recent synchronizations using the syncActivity operation.&lt;/p&gt;
&lt;p&gt;Note: Sync status information will be maintained for all operations in the cloud up to 30 days old.
Of those operations older than 30 days, only the last operation's synch status will be maintained.&lt;/p&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="StatusType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="sync-status-request" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Map that represents a  object. It has the specifications of the syncStatuses to be retrieved. (like a filter)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="sync-status-request" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                          <xs:attribute name="key" type="xs:string"></xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                </xs:sequence>
              </xs:choice>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The realmID, also known as the Company ID, uniquely identifies the data for a company. In QuickBooks Online, the Company ID  appears on the My Account page. In Data Services for QuickBooks Online, the realmID is required in the URL for most calls.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="appKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Application Id.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Realm Id, obtained from the gateway that represents the company.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Auth Id, obtained from the gateway that represents the user.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/quickbooks-windows" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="sync-activity" substitutionGroup="mule:abstract-message-processor" type="SyncActivityType">
    <xs:annotation>
      <xs:documentation>Retrieve the SyncActivities

&lt;p&gt;The SyncActivity object contains information about Quickbooks for Windows synchronizations. To get the sync
status of another type of object, for example, a customer, use the status operation.  To filter a query based
on whether or not an object  is synchronized, use a filter.&lt;/p&gt;
&lt;p&gt;Note: Sync status information will be maintained for all operations in the cloud up to 30 days old. Of those
operations older than 30 days, only the last operation's synch status will be maintained.&lt;/p&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="SyncActivityType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="sync-activity-request" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Map that represents a  object. It has the specifications of the SyncActivities to be retrieved. (like a filter)</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="sync-activity-request" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                          <xs:attribute name="key" type="xs:string"></xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                </xs:sequence>
              </xs:choice>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The realmID, also known as the Company ID, uniquely identifies the data for a company. In QuickBooks Online, the Company ID  appears on the My Account page. In Data Services for QuickBooks Online, the realmID is required in the URL for most calls.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="appKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Application Id.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="realmIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Realm Id, obtained from the gateway that represents the company.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authIdPseudonym" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>Pseudonym Auth Id, obtained from the gateway that represents the user.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="WindowsEntityTypeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="ACCOUNT"></xs:enumeration>
          <xs:enumeration value="BILL"></xs:enumeration>
          <xs:enumeration value="BILLPAYMENT"></xs:enumeration>
          <xs:enumeration value="BILLPAYMENTCREDITCARD"></xs:enumeration>
          <xs:enumeration value="BOMCOMPONENT"></xs:enumeration>
          <xs:enumeration value="BUILDASSEMBLY"></xs:enumeration>
          <xs:enumeration value="CHARGE"></xs:enumeration>
          <xs:enumeration value="CHECK"></xs:enumeration>
          <xs:enumeration value="CLASS"></xs:enumeration>
          <xs:enumeration value="CREDITCARDCHARGE"></xs:enumeration>
          <xs:enumeration value="CREDITCARDCREDIT"></xs:enumeration>
          <xs:enumeration value="CREDITCARDREFUND"></xs:enumeration>
          <xs:enumeration value="CREDITMEMO"></xs:enumeration>
          <xs:enumeration value="CURRENCYINFO"></xs:enumeration>
          <xs:enumeration value="CUSTOMER"></xs:enumeration>
          <xs:enumeration value="CUSTOMERMSG"></xs:enumeration>
          <xs:enumeration value="CUSTOMERTYPE"></xs:enumeration>
          <xs:enumeration value="DEPOSIT"></xs:enumeration>
          <xs:enumeration value="DISCOUNT"></xs:enumeration>
          <xs:enumeration value="EMPLOYEE"></xs:enumeration>
          <xs:enumeration value="ESTIMATE"></xs:enumeration>
          <xs:enumeration value="FIXEDASSET"></xs:enumeration>
          <xs:enumeration value="INVENTORYADJUSTMENT"></xs:enumeration>
          <xs:enumeration value="INVENTORYSITE"></xs:enumeration>
          <xs:enumeration value="INVENTORYTRANSFER"></xs:enumeration>
          <xs:enumeration value="INVOICE"></xs:enumeration>
          <xs:enumeration value="ITEM"></xs:enumeration>
          <xs:enumeration value="ITEMCONSOLIDATED"></xs:enumeration>
          <xs:enumeration value="ITEMGROUPCOMPONENT"></xs:enumeration>
          <xs:enumeration value="ITEMRECEIPT"></xs:enumeration>
          <xs:enumeration value="JOB"></xs:enumeration>
          <xs:enumeration value="JOBTYPE"></xs:enumeration>
          <xs:enumeration value="JOURNALENTRY"></xs:enumeration>
          <xs:enumeration value="NAMEVALUE"></xs:enumeration>
          <xs:enumeration value="OTHERNAME"></xs:enumeration>
          <xs:enumeration value="PAYMENT"></xs:enumeration>
          <xs:enumeration value="PAYMENTMETHOD"></xs:enumeration>
          <xs:enumeration value="PAYROLLITEM"></xs:enumeration>
          <xs:enumeration value="PAYROLLNONWAGEITEM"></xs:enumeration>
          <xs:enumeration value="PURCHASEORDER"></xs:enumeration>
          <xs:enumeration value="SALESORDER"></xs:enumeration>
          <xs:enumeration value="SALESRECEIPT"></xs:enumeration>
          <xs:enumeration value="SALESREP"></xs:enumeration>
          <xs:enumeration value="SALESTAX"></xs:enumeration>
          <xs:enumeration value="SALESTAXCODE"></xs:enumeration>
          <xs:enumeration value="SALESTAXGROUP"></xs:enumeration>
          <xs:enumeration value="SALESTERM"></xs:enumeration>
          <xs:enumeration value="SHIPMETHOD"></xs:enumeration>
          <xs:enumeration value="TASK"></xs:enumeration>
          <xs:enumeration value="TEMPLATENAME"></xs:enumeration>
          <xs:enumeration value="TIMEACTIVITY"></xs:enumeration>
          <xs:enumeration value="UOM"></xs:enumeration>
          <xs:enumeration value="VENDOR"></xs:enumeration>
          <xs:enumeration value="VENDORCREDIT"></xs:enumeration>
          <xs:enumeration value="VENDORTYPE"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
</xs:schema>