<?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/vertex">
  <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.vertex.config.VertexModuleLifecycleAdapter">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mule:abstractExtensionType">
          <xs:annotation>
            <xs:documentation>Provides Vertex connectivity to mule.
&lt;p&gt;
Vertex provides tax data, technology, services, and expertise to help you manage
every stage of the corporate tax lifecycle -- from tax accounting to calculation,
compliance, audit support, and planning.
&lt;/p&gt;</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="username" use="required" type="xs:string">
            <xs:annotation>
              <xs:documentation>The User ID of the individual initiating the login</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="password" use="required" type="xs:string">
            <xs:annotation>
              <xs:documentation>The password associated with the User ID of the individual initiating the
login</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="trustedId" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>An identifier supplied by an ERP</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-accrual-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateAccrualTaxType">
    <xs:annotation>
      <xs:documentation>&lt;p&gt;
Use the Accrual schema in self-accrual situations. These situations occur when
the buyer must remit tax on tangible personal property or services (used or
consumed) when tax is due but has not been paid. Accrual transactions are
written to the Tax Journal unless you set the postToJournal attribute to
false.
&lt;/p&gt;
&lt;p&gt;
Some examples of self-accrual situations include:
&lt;ul&gt;
&lt;li&gt;When a seller does not have nexus in the buyer's state and does not
collect tax&lt;/li&gt;
&lt;li&gt;When a buyer purchases non-exempt tangible personal property without tax
and subsequently uses it in a taxable manner (and the buyer has provided the
seller a direct pay permit)&lt;/li&gt;
&lt;li&gt;When a company uses items from inventory in a taxable manner (and the
buyer has provided the seller a resale certificate)&lt;/li&gt;
&lt;li&gt;When a buyer in a VAT situation is required to collect and remit the tax,
as in the case of intra-EU transactions as well as imports to EU and non-EU
countries&lt;/li&gt;
&lt;li&gt;When a country's Place of Supply rules require a buyer to self-accrue in a
VAT situation&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateAccrualTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="buyer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The buyer for the transaction. The buyer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="buyer" 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:element name="vendor" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The vendor for the transaction. The vendor is described by the child elements and attributes</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="vendor" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="charged-tax" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This value is used when the buyer has paid a portion of the tax due on the invoice but an undercharge scenario occurs that required a partial accrual of tax or additional use tax may be due depending on the jurisdiction and usage of the Purchase. The amount paid from the invoice verification process should be passed so that partial accrual can be applied. Additional consumer use tax will be automatically accrued.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="charged-tax" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="required" type="ProcurementTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="simplificationCode" use="optional" type="SimplificationCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>A code that indicates a special action on the transaction being processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="recoverableDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date used to calculate Recoverable Input VAT.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postToJournal" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the results of the transaction are written to the Tax Journal. Defaults to true.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-invoice-verification" substitutionGroup="mule:abstract-message-processor" type="CalculateInvoiceVerificationType">
    <xs:annotation>
      <xs:documentation>Use the Invoice Verification schema to verify sales or seller use tax on
incoming invoices to the buyer for tangible personal property, rentals,
leases, and services. The invoice is recreated from the seller's perspective
to validate that the proper tax has been applied. The interface verifies the
total tax amount on the original invoice versus the calculated amount.
User-defined thresholds for tolerance are validated at the transaction level
or line-item level, and an indicator is returned for undercharges and
overcharges outside these settings. No tax may be on the invoice if the buyer
has filed a direct pay permit with the vendor. Invoice Verification
transactions are written to the Tax Journal unless you set the postToJournal
attribute to false. Invoice Verification transactions are not part of most
standard reports. If the Invoice Verification transaction falls within the
user-defined threshold, the Calculation Engine automatically determines if
additional taxes are due in any jurisdictions. If additional taxes are due,
the amount is returned with the AdditionalTaxesDue element in the response
message. The result of this additional tax calculation is not written to the
Tax Journal. If you require this detail to be recorded in the Tax Journal,
pass a separate Accrual transaction.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateInvoiceVerificationType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="buyer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The buyer for the transaction. The buyer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="buyer" 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:element name="vendor" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The vendor for the transaction. The vendor is described by the child elements and attributes</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="vendor" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="charged-tax" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This value is used when the buyer has paid a portion of the tax due on the invoice but an undercharge scenario occurs that required a partial accrual of tax or additional use tax may be due depending on the jurisdiction and usage of the Purchase. The amount paid from the invoice verification process should be passed so that partial accrual can be applied. Additional consumer use tax will be automatically accrued.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="charged-tax" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="required" type="ProcurementTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="simplificationCode" use="optional" type="SimplificationCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>A code that indicates a special action on the transaction being processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="recoverableDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date used to calculate Recoverable Input VAT.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postToJournal" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the results of the transaction are written to the Tax Journal. Defaults to true.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-buyer-input-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateBuyerInputTaxType">
    <xs:annotation>
      <xs:documentation>Use the Buyer Input Tax schema to record any input or import VAT paid on
purchases, and to calculate the recoverable amounts on these taxes. Buyer
Input Tax transactions are written to the Tax Journal unless you set the
postToJournal attribute to false.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateBuyerInputTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="buyer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The buyer for the transaction. The buyer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="buyer" 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:element name="vendor" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The vendor for the transaction. The vendor is described by the child elements and attributes</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="vendor" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="recoverableDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date used to calculate Recoverable Input VAT.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postToJournal" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the results of the transaction are written to the Tax Journal. Defaults to true.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-e-r-s-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateERSTaxType">
    <xs:annotation>
      <xs:documentation>Use the ERS schema to calculate tax when a formalized agreement exists between
the buyer and seller that places the tax calculation burden on the buyer. In
these situations, no invoice is actually issued by the seller; rather, the
buyer relies on pre-established terms (represented in a purchase order or
other agreement) to calculate his or her obligation and remit payment directly
to the seller. A current knowledge of the seller's tax status (for example,
where the seller has nexus) must be maintained to assess tax at the proper
rate. ERS transactions are written to the Tax Journal unless you set the
postToJournal attribute to false.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateERSTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="buyer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The buyer for the transaction. The buyer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="buyer" 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:element name="vendor" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The vendor for the transaction. The vendor is described by the child elements and attributes</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="vendor" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="required" type="ProcurementTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="simplificationCode" use="optional" type="SimplificationCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>A code that indicates a special action on the transaction being processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="recoverableDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date used to calculate Recoverable Input VAT.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="calculateSelfAccrualIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>When set to TRUE, causes the buyer's self-accrual liability to be processed when determining the vendor-charged liability.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postToJournal" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the results of the transaction are written to the Tax Journal. Defaults to true.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-asset-movement-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateAssetMovementTaxType">
    <xs:annotation>
      <xs:documentation>Use the Asset Movement schema to calculate consumer use tax on movement of
fixed assets from one tax jurisdiction to another. Whenever an asset is moved,
the use tax rates and rules for the new location must be compared with the use
tax rates and rules for the old location. Various reciprocity rules, which
vary by tax jurisdiction, may need to be applied in these situations. Two
factors that can be used to determine reciprocity are duration at a location
and the number of times that an asset was moved. Unless you set the
postToJournal attribute to false, Asset Movement transactions are written to
the Tax Journal when additional use tax must be accrued at the new location.
You can also use the Asset Movement schema to calculate the VAT on movement of
fixed assets from one tax jurisdiction to another. A Call Off or Consignment
indicator may be passed in the simplificationCode attribute on Asset Movement
transactions to allow for the deferment of VAT when appropriate.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateAssetMovementTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="owner" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The owner of the goods in the transaction. Required (1) at either the Transaction level or the Line Item level. If Owner information is provided at both levels, the Line Item level information supersedes the Transaction level information.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="owner" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postToJournal" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the results of the transaction are written to the Tax Journal. Defaults to true.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="movementMethod" use="optional" type="MovementMethodCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>Indicates how assets are moved. If no value is provided, the Calculation Engine defaults to REGULAR.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="recoverableDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date used to calculate Recoverable Input VAT.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-inventory-removal-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateInventoryRemovalTaxType">
    <xs:annotation>
      <xs:documentation>Use the Inventory Removal schema to calculate consumer use tax when
withdrawing inventory for a specific internal project or task. Consumer use
tax that results from an Inventory Removal transaction should be accrued at
the final destination location of the inventory. Inventory Removal
transactions are written to the Tax Journal unless you set the postToJournal
attribute to false.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateInventoryRemovalTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="owner" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The owner of the goods in the transaction. Required (1) at either the Transaction level or the Line Item level. If Owner information is provided at both levels, the Line Item level information supersedes the Transaction level information.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="owner" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postToJournal" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the results of the transaction are written to the Tax Journal. Defaults to true.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-invoice-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateInvoiceTaxType">
    <xs:annotation>
      <xs:documentation>Use the Invoice schema to calculate tax at the time of shipping, billing, or
invoicing from the seller's perspective. Because tax liability is typically
incurred at the point of invoicing, Invoice transactions are written to the
Tax Journal.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateInvoiceTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="seller" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The Seller for the transaction. The Seller is described by the child elements and attributes. Required (1) at either the Transaction level or the Line Item level. If information is provided at both levels, the Line Item level information supersedes the Transaction level information.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="seller" 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:element name="customer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The Customer for the transaction. The Customer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="customer" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="discount" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the discount. To pass Discount information, pass either DiscountPercent or DiscountAmount, but not both.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="discount" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="required" type="SaleTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="simplificationCode" use="optional" type="SimplificationCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>A code that indicates a special action on the transaction being processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-purchase-order-tax" substitutionGroup="mule:abstract-message-processor" type="CalculatePurchaseOrderTaxType">
    <xs:annotation>
      <xs:documentation>Use the Purchase Order schema to estimate the sales tax or value added tax on
intended purchases made by a buyer. The intended purchase of goods or
services, including the estimated tax, is used as input to generate the
purchase order. For sales tax, the ultimate use of the goods or services
typically determines the taxability of the purchase. Note that because these
events are used to estimate tax, no transactions are stored in the Tax
Journal.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculatePurchaseOrderTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="buyer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The buyer for the transaction. The buyer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="buyer" 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:element name="vendor" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The vendor for the transaction. The vendor is described by the child elements and attributes</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="vendor" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="required" type="ProcurementTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="simplificationCode" use="optional" type="SimplificationCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>A code that indicates a special action on the transaction being processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="recoverableDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date used to calculate Recoverable Input VAT.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="calculateVendorTaxIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>When set to TRUE, causes the vendor-charged liability to be processed when determining the buyer's self-accrual liability.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-quotation-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateQuotationTaxType">
    <xs:annotation>
      <xs:documentation>Use the Quotation schema to estimate taxes on the proposed sale, rental, or
lease of goods or services by the seller. Quotations may be called from a CRM,
Mobile Sale, Order Entry, or Internet Sale application. Because Quotation
transactions are subject to change until an invoice is finalized, they are not
written to the Tax Journal.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateQuotationTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="seller" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The seller for the transaction. The seller is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="seller" 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:element name="customer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The customer for the transaction. The customer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="customer" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="discount" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the discount. To pass Discount information, pass either DiscountPercent or DiscountAmount, but not both.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="discount" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="required" type="SaleTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="simplificationCode" use="optional" type="SimplificationCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>A code that indicates a special action on the transaction being processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-distribute-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateDistributeTaxType">
    <xs:annotation>
      <xs:documentation>Use the Distribute Sales Tax (Distribute Previously Calculated Tax) schema to
accept a combined total tax amount for a purchase and distribute that tax to
the appropriate jurisdictions. The combined rates for the taxing jurisdictions
are used with the total tax amount to determine the taxable base and then to
redistribute the calculated taxes to each level for remittance. Distribute
Sales Tax transactions are written to the Tax Journal unless you set the
postToJournal attribute to false. You can also use the Distribute Sales Tax
schema to process a tax-only credit (to receive credit for an overpayment to
taxing jurisdictions) or debit (to report tax that should have been remitted
to a taxing jurisdiction) on a sales tax transaction. You do this by setting
the isTaxOnlyAdjustmentIndicator attribute on the Request message. The total
tax amount that you provide is distributed across the taxing jurisdiction
locations you identified, debiting or crediting the tax amount in the Tax
Journal. The Distribute Sales Tax transaction uses Vertex Central rules that
are in effect as of the date in the documentDate attribute. If records for
jurisdiction registration, product exception, or customer exception or
exemption are dated on or before that date, they override information in the
transaction.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateDistributeTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="seller" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The seller for the transaction. The seller is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="seller" 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:element name="customer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The customer for the transaction. The customer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="customer" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="discount" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the discount. To pass Discount information, pass either DiscountPercent or DiscountAmount, but not both.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="discount" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="required" type="SaleTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="simplificationCode" use="optional" type="SimplificationCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>A code that indicates a special action on the transaction being processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="isTaxOnlyAdjustmentIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether or not the transaction is a tax-only adjustment. If this indicator is set, the total tax amount passed is distributed across the specified taxing jurisdictions, debiting or crediting the tax amount in the Tax Journal. Tax-only adjustment transactions do not impact revenue.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postToJournal" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the results of the transaction are written to the Tax Journal. Defaults to true.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-distribute-tax-procurement" substitutionGroup="mule:abstract-message-processor" type="CalculateDistributeTaxProcurementType">
    <xs:annotation>
      <xs:documentation>Use the Distribute Tax Procurement (Distribute Previously Calculated Tax)
schema to accept a combined total tax amount for a purchase and distribute
that tax to the appropriate jurisdictions. The combined rates for the taxing
jurisdictions are used with the total tax amount to determine the taxable base
and then to redistribute the calculated taxes to each level for remittance.
Distribute Tax Procurement transactions are written to the Tax Journal unless
you set the postToJournal attribute to false. You can also use the Distribute
Tax Procurement schema to process a tax-only credit (to receive credit for an
overpayment to taxing jurisdictions) or debit (to report tax that should have
been remitted to a taxing jurisdiction) on a consumer use tax transaction. You
do this by setting the isTaxOnlyAdjustmentIndicator attribute on the Request
message. The total tax amount that you provide is distributed across the
taxing jurisdiction locations you identified, debiting or crediting the tax
amount in the Tax Journal. The Distribute Tax Procurement transaction uses
Vertex Central rules that are in effect as of the date in the documentDate
attribute. If records for jurisdiction registration, product exception, or
customer exception or exemption are dated on or before that date, they
override information in the transaction.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateDistributeTaxProcurementType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="buyer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The buyer for the transaction. The buyer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="buyer" 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:element name="vendor" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The vendor for the transaction. The vendor is described by the child elements and attributes</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="vendor" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="charged-tax" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This value is used when the buyer has paid a portion of the tax due on the invoice but an undercharge scenario occurs that required a partial accrual of tax or additional use tax may be due depending on the jurisdiction and usage of the Purchase. The amount paid from the invoice verification process should be passed so that partial accrual can be applied. Additional consumer use tax will be automatically accrued.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="charged-tax" 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:element name="line-items" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="required" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="required" type="ProcurementTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="simplificationCode" use="optional" type="SimplificationCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>A code that indicates a special action on the transaction being processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="recoverableDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date used to calculate Recoverable Input VAT.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postToJournal" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the results of the transaction are written to the Tax Journal. Defaults to true.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="isTaxOnlyAdjustmentIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether or not the transaction is a tax-only adjustment. If this indicator is set, the total tax amount passed is distributed across the specified taxing jurisdictions, debiting or crediting the tax amount in the Tax Journal. Tax-only adjustment transactions do not impact revenue.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-reversal-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateReversalTaxType">
    <xs:annotation>
      <xs:documentation>Use the Reversal schema to post a new transaction to the Tax Journal, using
values that are numerically opposite the values in the original transaction.
Note that no calculations are performed; instead, the values from the original
transaction are used.
&lt;p&gt;
&lt;b&gt;Restrictions&lt;/b&gt;&lt;br&gt;
Note the following restrictions on Reversal transactions:
&lt;ul&gt;
&lt;li&gt;You cannot reverse a transaction unless it was posted to the Tax Journal
and given a unique user-defined identifier.&lt;/li&gt;
&lt;li&gt;Once a transaction has been reversed, you cannot reverse the original
transaction again. However, you can reverse the reversal transaction itself.&lt;/li&gt;
&lt;li&gt;You can reverse active synchronization transactions but not inactive
synchronization transactions. If you reverse a rolled-back active
synchronization transaction, no exception is returned.&lt;/li&gt;
&lt;li&gt;Transaction Tester does not allow you to test transaction reversals.&lt;/li&gt;
&lt;li&gt;Point of sale transactions cannot be reversed. An exception is returned if
you try to reverse a point of sale transaction.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateReversalTaxType">
    <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:attribute name="originalTransactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The Transaction ID of the transaction to be reversed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="transaction-exists" substitutionGroup="mule:abstract-message-processor" type="TransactionExistsType">
    <xs:annotation>
      <xs:documentation>Use the Transaction Exists schema to find out whether a transaction with a
unique user-defined identifier exists in the Tax Journal. The identifier is
transactionId in the XML message and transSyncIdCode in the Tax Journal. Note
that transactions that have been deleted from the Tax Journal (that is,
flagged as Deleted) return False on the Transaction Exists query.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="TransactionExistsType">
    <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:attribute name="transactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes. Stored in the Tax Journal as transSyncIdCode.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-accrual-sync-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateAccrualSyncTaxType">
    <xs:annotation>
      <xs:documentation>Use the Synchronization Services schema to reconcile transactions between
Vertex O Series and your host system. Any changes made to a financial document
can impact previously calculated transactions already written to the Tax
Journal. The Synchronization Service schema enable you to accept changes made
to a financial document and update the transaction in the Tax Journal
accordingly. In addition, schema are provided that enable you to delete a
transaction or to roll back a transaction to its previous state.
&lt;p&gt;
Note the following restrictions on synchronization services:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;A synchronization transaction fails if attempted on a reversal
transaction.&lt;/li&gt;
&lt;li&gt;You cannot use this transaction on point of sale transactions. If you do,
an exception is returned.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateAccrualSyncTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="buyer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The buyer for the transaction. The buyer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="buyer" 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:element name="vendor" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The vendor for the transaction. The vendor is described by the child elements and attributes</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="vendor" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="charged-tax" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This value is used when the buyer has paid a portion of the tax due on the invoice but an undercharge scenario occurs that required a partial accrual of tax or additional use tax may be due depending on the jurisdiction and usage of the Purchase. The amount paid from the invoice verification process should be passed so that partial accrual can be applied. Additional consumer use tax will be automatically accrued.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="charged-tax" 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:element name="line-items" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="optional" type="ProcurementTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="recoverableDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date used to calculate Recoverable Input VAT.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-a-p-invoice-sync-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateAPInvoiceSyncTaxType">
    <xs:annotation>
      <xs:documentation>Use the Synchronization Services schema to reconcile transactions between
Vertex O Series and your host system. Any changes made to a financial document
can impact previously calculated transactions already written to the Tax
Journal. The Synchronization Service schema enable you to accept changes made
to a financial document and update the transaction in the Tax Journal
accordingly. In addition, schema are provided that enable you to delete a
transaction or to roll back a transaction to its previous state. &lt;br&gt;
Note the following restrictions on synchronization services:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;A synchronization transaction fails if attempted on a reversal
transaction.&lt;/li&gt;
&lt;li&gt;You cannot use this transaction on point of sale transactions. If you do,
an exception is returned.&lt;/li&gt;
&lt;/ul&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateAPInvoiceSyncTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="buyer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The buyer for the transaction. The buyer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="buyer" 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:element name="vendor" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The vendor for the transaction. The vendor is described by the child elements and attributes</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="vendor" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="charged-tax" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This value is used when the buyer has paid a portion of the tax due on the invoice but an undercharge scenario occurs that required a partial accrual of tax or additional use tax may be due depending on the jurisdiction and usage of the Purchase. The amount paid from the invoice verification process should be passed so that partial accrual can be applied. Additional consumer use tax will be automatically accrued.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="charged-tax" 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:element name="line-items" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="optional" type="ProcurementTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="recoverableDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date used to calculate Recoverable Input VAT.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="calculate-a-r-billing-sync-tax" substitutionGroup="mule:abstract-message-processor" type="CalculateARBillingSyncTaxType">
    <xs:annotation>
      <xs:documentation>Use the Synchronization Services schema to reconcile transactions between
Vertex O Series and your host system. Any changes made to a financial document
can impact previously calculated transactions already written to the Tax
Journal. The Synchronization Service schema enable you to accept changes made
to a financial document and update the transaction in the Tax Journal
accordingly. In addition, schema are provided that enable you to delete a
transaction or to roll back a transaction to its previous state. &lt;br&gt;
Note the following restrictions on synchronization services:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;A synchronization transaction fails if attempted on a reversal
transaction.&lt;/li&gt;
&lt;li&gt;You cannot use this transaction on point of sale transactions. If you do,
an exception is returned.&lt;/li&gt;
&lt;/ul&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CalculateARBillingSyncTaxType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Default unit of currency for the entire transaction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="currency" 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:element name="original-currency" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>This represents the currency in which the original business transaction took place.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="original-currency" 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:element name="seller" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The Seller for the transaction. The Seller is described by the child elements and attributes. Required (1) at either the Transaction level or the Line Item level. If information is provided at both levels, the Line Item level information supersedes the Transaction level information.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="seller" 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:element name="customer" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The Customer for the transaction. The Customer is described by the child elements and attributes.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="customer" 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:element name="tax-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the tax override.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-override" 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:element name="impositions-to-process" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Limits the taxes calculated for the transaction to a specific jurisdiction level and imposition type.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="impositions-to-proces" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-impositions-to-proces" 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="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:element name="jurisdiction-overrides" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the jurisdiction overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="jurisdiction-override" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-jurisdiction-override" 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="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:element name="situs-override" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the situs determination overrides.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="situs-override" 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:element name="discount" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Details on the discount. To pass Discount information, pass either DiscountPercent or DiscountAmount, but not both.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="discount" 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:element name="line-items" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The header for a component of a transaction. A line item is required for each component of the transaction. Each transaction requires at least one line item. Note that a line item can contain child line items.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="line-item" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-line-item" 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="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="documentNumber" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document number in the host application that references the event.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="postingDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The date when the transaction is posted for auditing and reporting purposes. If no date is provided, the Calculation Engine uses the date when the transaction was processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="locationCode" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A value that can be used for tax return filing in jurisdictions that require taxes to be filed for individual retail locations.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnAssistedParametersIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>Indicates whether the response message should contain an additional structure that shows the elements/attributes that were changed by Tax Assist. This is for informational purposes only and contains no tax results.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="returnGeneratedLineItemsIndicator" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>If this indicator is set, the response message returns child line items that were generated by the Tax Assist allocation feature. Otherwise, these line items are deleted after the transaction is written to the Tax Journal and only the primary line item, which contains the combined tax results of the child line items, is passed back to the host system.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="deliveryTerm" use="optional" type="DeliveryTermCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier that determines the vendor or customer jurisdiction in which the title transfer of a supply takes place. This is also known as Shipping Terms. Delivery Terms information could be critical to determine the place of supply, for example, in distance selling.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="documentDate" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The actual date of the requested action. The calculation engine uses this date to determine the valid tax rates and rules.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="transactionType" use="optional" type="SaleTransactionTypeEnumType">
          <xs:annotation>
            <xs:documentation>An identifier for the specific transaction type to be used by the transaction and/or line item. If transactionType is not set at the line item level, the line item uses the transaction level value.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/vertex" name="simplificationCode" use="optional" type="SimplificationCodeTypeEnumType">
          <xs:annotation>
            <xs:documentation>A code that indicates a special action on the transaction being processed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="delete-transaction-sync" substitutionGroup="mule:abstract-message-processor" type="DeleteTransactionSyncType">
    <xs:annotation>
      <xs:documentation>Use the Synchronization Services schema to reconcile transactions between
Vertex O Series and your host system. Any changes made to a financial document
can impact previously calculated transactions already written to the Tax
Journal. The Synchronization Service schema enable you to accept changes made
to a financial document and update the transaction in the Tax Journal
accordingly. In addition, schema are provided that enable you to delete a
transaction or to roll back a transaction to its previous state. &lt;br&gt;
Note the following restrictions on synchronization services:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;A synchronization transaction fails if attempted on a reversal
transaction.&lt;/li&gt;
&lt;li&gt;You cannot use this transaction on point of sale transactions. If you do,
an exception is returned.&lt;/li&gt;
&lt;/ul&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DeleteTransactionSyncType">
    <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:attribute name="transactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="rollback-transaction-sync" substitutionGroup="mule:abstract-message-processor" type="RollbackTransactionSyncType">
    <xs:annotation>
      <xs:documentation>Use the Synchronization Services schema to reconcile transactions between
Vertex O Series and your host system. Any changes made to a financial document
can impact previously calculated transactions already written to the Tax
Journal. The Synchronization Service schema enable you to accept changes made
to a financial document and update the transaction in the Tax Journal
accordingly. In addition, schema are provided that enable you to delete a
transaction or to roll back a transaction to its previous state. &lt;br&gt;
Note the following restrictions on synchronization services:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;A synchronization transaction fails if attempted on a reversal
transaction.&lt;/li&gt;
&lt;li&gt;You cannot use this transaction on point of sale transactions. If you do,
an exception is returned.&lt;/li&gt;
&lt;/ul&gt;</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="RollbackTransactionSyncType">
    <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:attribute name="transactionId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier that further defines the document and corresponds to the transaction stored in the host system. The Transaction ID is used for synchronization services, but is not used for reporting purposes.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="find-changed-tax-area-ids" substitutionGroup="mule:abstract-message-processor" type="FindChangedTaxAreaIdsType">
    <xs:annotation>
      <xs:documentation>Use the Find Changed Tax Area schema to identify Tax Area IDs that have
changed within a specified date period.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="FindChangedTaxAreaIdsType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="date-period" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The date range to be searched.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="date-period" 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:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="is-tax-area-changed" substitutionGroup="mule:abstract-message-processor" type="IsTaxAreaChangedType">
    <xs:annotation>
      <xs:documentation>Use the Is Tax Area Changed schema to indicate whether a specified Tax Area ID
has changed within a specified date period.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="IsTaxAreaChangedType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="date-period" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The date range to be searched.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="date-period" 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="taxAreaId-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>A Vertex-specific number that identifies a tax area.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="tax-area-lookup" substitutionGroup="mule:abstract-message-processor" type="TaxAreaLookupType">
    <xs:annotation>
      <xs:documentation>Use the Tax Area schema to send a single query to retrieve jurisdictional
information. For example, you could use this to retrieve the Tax Area ID for a
single postal address.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="TaxAreaLookupType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="tax-area-lookup" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The criteria to use in looking up the tax area. Use one of the following: TaxAreaId, PostalAddress, or ExternalJurisdiction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="tax-area-lookup" 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:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/vertex" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="find-tax-areas" substitutionGroup="mule:abstract-message-processor" type="FindTaxAreasType">
    <xs:annotation>
      <xs:documentation>Use the Find Tax Areas schema to send a batch of queries to retrieve
jurisdictional information. For example, you could use this to retrieve the
Tax Area IDs for multiple postal addresses.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="FindTaxAreasType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="tax-area-lookups" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>The criteria to use in looking up the tax area. Use one of the following: TaxAreaId, PostalAddress, or ExternalJurisdiction.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="tax-area-lookup" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:choice>
                      <xs:sequence>
                        <xs:element name="inner-tax-area-lookup" 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="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:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="DeliveryTermCodeTypeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="EXW"></xs:enumeration>
          <xs:enumeration value="FCA"></xs:enumeration>
          <xs:enumeration value="FAS"></xs:enumeration>
          <xs:enumeration value="FOB"></xs:enumeration>
          <xs:enumeration value="CFR"></xs:enumeration>
          <xs:enumeration value="CIF"></xs:enumeration>
          <xs:enumeration value="CPT"></xs:enumeration>
          <xs:enumeration value="CIP"></xs:enumeration>
          <xs:enumeration value="DAF"></xs:enumeration>
          <xs:enumeration value="DES"></xs:enumeration>
          <xs:enumeration value="DEQ"></xs:enumeration>
          <xs:enumeration value="DDU"></xs:enumeration>
          <xs:enumeration value="DDP"></xs:enumeration>
          <xs:enumeration value="DAP"></xs:enumeration>
          <xs:enumeration value="DAT"></xs:enumeration>
          <xs:enumeration value="SUP"></xs:enumeration>
          <xs:enumeration value="CUS"></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:simpleType name="ProcurementTransactionTypeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="RENTAL"></xs:enumeration>
          <xs:enumeration value="LEASE"></xs:enumeration>
          <xs:enumeration value="PURCHASE"></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:simpleType name="SimplificationCodeTypeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CONSIGNMENT"></xs:enumeration>
          <xs:enumeration value="CALL_OFF"></xs:enumeration>
          <xs:enumeration value="TRIANGULATION"></xs:enumeration>
          <xs:enumeration value="REGISTRATION_GROUP"></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:simpleType name="MovementMethodCodeTypeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="CONSIGNMENT"></xs:enumeration>
          <xs:enumeration value="CALL_OFF"></xs:enumeration>
          <xs:enumeration value="REGULAR"></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:simpleType name="SaleTransactionTypeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="SALE"></xs:enumeration>
          <xs:enumeration value="RENTAL"></xs:enumeration>
          <xs:enumeration value="LEASE"></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>