<?xml version="1.0"?>

   <schema uri="urn:x-commerceone:document:com:commerceone:XCBL30:XCBL30.sox$1.0">

      <elementtype name="AllowOrCharge">
         <model>
            <sequence>
               <element type="IndicatorCode" name="IndicatorCoded"/>
               <element type="string" name="IndicatorCodedOther" occurs="?"/>
               <element type="BasisCode" name="BasisCoded" occurs="?"/>
               <element type="string" name="BasisCodedOther" occurs="?"/>
               <element type="MethodOfHandlingCode" name="MethodOfHandlingCoded"/>
               <element type="string" name="MethodOfHandlingCodedOther" occurs="?"/>
               <element type="AllowOrChgDesc" name="AllowanceOrChargeDescription"/>
               <element type="ValidityDates" occurs="?"/>
               <choice occurs="?">
                  <element type="Quantity" name="BasisQuantityRange"/>
                  <element type="BasisMonetaryRange"/>
               </choice>
               <element type="TypeOfAllowanceOrCharge"/>
               <element type="Tax" occurs="*"/>
            </sequence>
         </model>
         <attdef datatype="int" name="SeqNo">
            <default>1</default>
         </attdef>
      </elementtype>

      <datatype name="BasisCode">
         <enumeration datatype="NMTOKEN">
            <option>Other</option>
            <option>None</option>
            <option>Quantity</option>
            <option>Percent</option>
            <option>MonetaryAmount</option>
         </enumeration>
      </datatype>

      <elementtype name="PercentageAllowanceOrCharge">
         <model>
            <sequence>
               <element type="PercentQualifier"/>
               <element type="Decimal10_4" name="Percent"/>
               <element type="MonetaryValue" name="PercentageMonetaryValue" occurs="?"/>
            </sequence>
         </model>
      </elementtype>

      <elementtype name="PercentQualifier">
         <model>
            <sequence>
               <element type="PercentQualifierCode" name="PercentQualifierCoded"/>
               <element type="string" name="PercentQualifierCodedOther" occurs="?"/>
            </sequence>
         </model>
      </elementtype>

      <datatype name="PercentQualifierCode">
         <enumeration datatype="NMTOKEN">
            <option>Other</option>
            <option>ItemListCost</option>
            <option>ItemNetCost</option>
            <option>Discount-Gross</option>
            <option>Discount-Net</option>
            <option>BasePriceperUnit</option>
            <option>BasePriceAmount</option>
            <option>BasePriceAmountLessPreviousDiscount</option>
            <option>NetMonthlyOnAllInvoicesPastDue</option>
            <option>LatePaymentChargeBaseAmount</option>
            <option>FuelRate</option>
         </enumeration>
      </datatype>

      <elementtype name="QuantityAllowanceOrCharge">
         <model>
            <sequence>
               <element type="Quantity"/>
               <element type="Rate"/>
               <element type="MonetaryValue" name="QuantityMonetaryValue" occurs="?"/>
            </sequence>
         </model>
      </elementtype>

      <elementtype name="Rate">
         <model>
            <sequence>
               <element type="UnitPrice" name="RatePerUnit"/>
               <element type="Decimal18_3" name="UnitPriceBasis"/>
               <element type="UnitOfMeasurement" occurs="?"/>
            </sequence>
         </model>
      </elementtype>

      <elementtype name="ListOfAllowOrCharge">
         <model>
            <element type="AllowOrCharge" occurs="+"/>
         </model>
      </elementtype>

      <elementtype name="TypeOfAllowanceOrCharge">
         <model>
            <choice>
               <element type="QuantityAllowanceOrCharge"/>
               <element type="PercentageAllowanceOrCharge"/>
               <element type="MonetaryValue"/>
            </choice>
         </model>
      </elementtype>

   </schema>