<?xml version="1.0"?>

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

      <namespace prefix="xml" namespace="urn:x-commerceone:document:com:commerceone:xml:xmllang.sox$1.0"/>
      <elementtype name="Product">
         <model>
            <sequence>
               <element type="Action" occurs="?"/>
               <element type="ProductID"/>
               <element type="string" occurs="?" name="ProductIDExtension"/>
               <element type="ProductIDStandard" occurs="?"/>
               <element type="ProductName" occurs="*"/>
               <element type="UOM" occurs="?"/>
               <element type="Manufacturer" occurs="?"/>
               <element type="string" occurs="?" name="ManuPartNumber"/>
               <element type="string" occurs="?" name="LeadTime"/>
               <element type="UOM" occurs="?" name="LeadTimeUOM"/>
               <element type="date" occurs="?" name="ValidFrom"/>
               <element type="date" occurs="?" name="ValidUntil"/>
               <element type="Country" occurs="?" name="CountryOfOrigin"/>
               <element type="int" occurs="?" name="MinOrder"/>
               <element type="int" occurs="?" name="LotSize"/>
               <element type="string" occurs="*" name="ExternalCategory"/>
               <element type="ShortDescription" occurs="*"/>
               <element type="LongDescription" occurs="*"/>
               <element type="CatalogContract" occurs="*"/>
               <element type="ProductPrice" occurs="*"/>
               <element type="ProductVendorData" occurs="*"/>
               <element type="ProductAttachment" occurs="*"/>
               <element type="RelatedProduct" occurs="*"/>
               <element type="ObjectAttribute" occurs="*"/>
            </sequence>
         </model>
         <attdef datatype="ProductTypeCoded" name="Type">
            <default>Good</default>
         </attdef>
         <attdef datatype="IDREFS" name="SchemaCategoryRef">
            <implied/>
         </attdef>
      </elementtype>

      <elementtype name="Action">
         <empty/>
         <attdef datatype="ActionValueCode" name="Value">
            <default>Add</default>
         </attdef>
      </elementtype>

      <datatype name="ActionValueCode">
         <enumeration datatype="NMTOKEN">
            <option>Add</option>
            <option>Update</option>
            <option>Delete</option>
         </enumeration>
      </datatype>

      <elementtype name="ProductID">
         <model>
            <string/>
         </model>
         <attdef datatype="BuyerSupplierCode" name="Type">
            <default>Supplier</default>
         </attdef>
      </elementtype>

      <elementtype name="ProductIDStandard">
         <model>
            <string/>
         </model>
         <attdef datatype="ProductIDStandardCode" name="Agency">
            <default>Other</default>
         </attdef>
      </elementtype>

      <elementtype name="ProductName">
         <model>
            <string/>
         </model>
         <attdef datatype="xmllang" name="lang" prefix="xml">
            <default>en</default>
         </attdef>
      </elementtype>

      <elementtype name="Manufacturer">
         <model>
            <string/>
         </model>
         <attdef datatype="IDREF" name="PartnerRef">
            <implied/>
         </attdef>
      </elementtype>

      <elementtype name="RelatedProduct">
         <model>
            <string/>
         </model>
         <attdef datatype="TargetTypeCode" name="TargetType">
            <default>Component</default>
         </attdef>
      </elementtype>

      <datatype name="ProductTypeCoded">
         <enumeration datatype="NMTOKEN">
            <option>Other</option>
            <option>Good</option>
            <option>Service</option>
         </enumeration>
      </datatype>

      <datatype name="ProductIDStandardCode">
         <enumeration datatype="NMTOKEN">
            <option>Other</option>
            <option>GTIN</option>
            <option>EAN</option>
            <option>UCC</option>
         </enumeration>
      </datatype>

      <datatype name="TargetTypeCode">
         <enumeration datatype="NMTOKEN">
            <option>Component</option>
            <option>Substitute</option>
            <option>Alternative</option>
            <option>Accessory</option>
         </enumeration>
      </datatype>

      <elementtype name="UOM">
         <model>
            <sequence>
               <element type="UOMCode" name="UOMCoded"/>
               <element type="string" occurs="?" name="UOMCodedOther"/>
            </sequence>
         </model>
      </elementtype>

   </schema>