<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="1.0"
  xmlns:ns1="com.adition.dbt.product.async"
  
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="com.adition.dbt.product.async" schemaLocation="ns1.xsd"/>

  <xs:element name="bannerClick" type="bannerClick"/>
  <xs:element name="client" type="client"/>
  <xs:element name="clientFilterPermission" type="clientFilterPermission"/>
  <xs:element name="beanInformation" type="beanInformation"/>
  <xs:element name="clusterNode" type="clusterNode"/>
  <xs:element name="clusterNodeInformation" type="clusterNodeInformation"/>
  <xs:element name="cacheStats" type="cacheStats"/>
  <xs:element name="configurationEntry" type="configurationEntry"/>
  <xs:element name="configurationEntryDescriptorView" type="configurationEntryDescriptorView"/>
  <xs:element name="entityMemberReferenceOperators" type="entityMemberReferenceOperators"/>
  <xs:element name="fieldOrder" type="fieldOrder"/>
  <xs:element name="filterOperator" type="filterOperator"/>
  <xs:element name="simpleFieldCriteria" type="simpleFieldCriteria"/>
  <xs:element name="simpleQuery" type="simpleQuery"/>
  <xs:element name="entityMemberReference" type="entityMemberReference"/>
  <xs:element name="attributeEntry" type="attributeEntry"/>
  <xs:element name="attributeEntrySimple" type="attributeEntrySimple"/>
  <xs:element name="fileInformation" type="fileInformation"/>
  <xs:element name="localeInformation" type="localeInformation"/>
  <xs:element name="UUIDElement" type="UUIDElement"/>
  <xs:element name="importedMemberReference" type="importedMemberReference"/>
  <xs:element name="histogramEntry" type="histogramEntry"/>
  <xs:element name="histogramView" type="histogramView"/>
  <xs:element name="clientStorageInfo" type="clientStorageInfo"/>
  <xs:element name="weightedCrossSelling" type="weightedCrossSelling"/>
  <xs:element name="weightedCrossSellingImportConfiguration" type="weightedCrossSellingImportConfiguration"/>
  <xs:element name="weightedCrossSellingImportSchedule" type="weightedCrossSellingImportSchedule"/>
  <xs:element name="weightedCrossSellingType" type="weightedCrossSellingType"/>
  <xs:element name="artifactVersion" type="artifactVersion"/>
  <xs:element name="charsetInformation" type="charsetInformation"/>
  <xs:element name="productSelectionRuleType" type="productSelectionRuleType"/>
  <xs:element name="productSelectionRuleTypeParameter" type="productSelectionRuleTypeParameter"/>
  <xs:element name="addOrUpdateCategoryOperation" type="ns1:addOrUpdateCategoryOperation"/>
  <xs:element name="addOrUpdateCustomAttributeOperation" type="ns1:addOrUpdateCustomAttributeOperation"/>
  <xs:element name="addOrUpdateProductOperation" type="ns1:addOrUpdateProductOperation"/>
  <xs:element name="batchOperations" type="batchOperations"/>
  <xs:element name="customAttribute" type="ns1:customAttribute"/>
  <xs:element name="deleteCategoryOperation" type="ns1:deleteCategoryOperation"/>
  <xs:element name="deleteCustomAttributeOperation" type="ns1:deleteCustomAttributeOperation"/>
  <xs:element name="deleteProductOperation" type="ns1:deleteProductOperation"/>
  <xs:element name="updateProductInventoryOperation" type="ns1:updateProductInventoryOperation"/>
  <xs:element name="attributeDefinition" type="attributeDefinition"/>
  <xs:element name="category" type="category"/>
  <xs:element name="product" type="product"/>
  <xs:element name="productAttribute" type="productAttribute"/>
  <xs:element name="productAttributeUnfilterable" type="productAttributeUnfilterable"/>
  <xs:element name="productCatalog" type="productCatalog"/>
  <xs:element name="importConfiguration" type="importConfiguration"/>
  <xs:element name="importMappingAttribute" type="importMappingAttribute"/>
  <xs:element name="importMappingAttributeFilterStatus" type="importMappingAttributeFilterStatus"/>
  <xs:element name="importMappingMember" type="importMappingMember"/>
  <xs:element name="importSchedule" type="importSchedule"/>
  <xs:element name="importStatEntry" type="importStatEntry"/>
  <xs:element name="importStatus" type="importStatus"/>
  <xs:element name="importStatusPeriod" type="importStatusPeriod"/>
  <xs:element name="importJob" type="importJob"/>
  <xs:element name="importJobTimerInfo" type="importJobTimerInfo"/>
  <xs:element name="weightedCrossSellingImportURI" type="weightedCrossSellingImportURI"/>
  <xs:element name="statisticsEntry" type="statisticsEntry"/>
  <xs:element name="statisticsKey" type="statisticsKey"/>
  <xs:element name="bannerClickRequest" type="bannerClickRequest"/>
  <xs:element name="bannerClickResponse" type="bannerClickResponse"/>
  <xs:element name="recommendationResult" type="recommendationResult"/>
  <xs:element name="clientLimitation" type="clientLimitation"/>
  <xs:element name="combinedRule" type="combinedRule"/>
  <xs:element name="limitation" type="limitation"/>
  <xs:element name="rule" type="rule"/>
  <xs:element name="ruleParameter" type="ruleParameter"/>
  <xs:element name="ruleSet" type="ruleSet"/>
  <xs:element name="ruleProductCount" type="ruleProductCount"/>
  <xs:element name="bannerRequest" type="bannerRequest"/>
  <xs:element name="dotValue" type="dotValue"/>
  <xs:element name="genericDotValue" type="genericDotValue"/>
  <xs:element name="productDotValue" type="productDotValue"/>
  <xs:element name="productSelectionPluginEntry" type="productSelectionPluginEntry"/>
  <xs:element name="productSelectionPluginParameter" type="productSelectionPluginParameter"/>
  <xs:element name="productSelectionResult" type="productSelectionResult"/>
  <xs:element name="productViewProductSelectionResult" type="productViewProductSelectionResult"/>
  <xs:element name="jobEntry" type="jobEntry"/>
  <xs:element name="jobStatus" type="jobStatus"/>
  <xs:element name="jobTimerInfo" type="jobTimerInfo"/>
  <xs:element name="schedule" type="schedule"/>
  <xs:element name="assetTemplateAttributeEntries" type="assetTemplateAttributeEntries"/>
  <xs:element name="templateAttributeEntries" type="templateAttributeEntries"/>
  <xs:element name="assetTemplate" type="assetTemplate"/>
  <xs:element name="assetTemplateAttribute" type="assetTemplateAttribute"/>
  <xs:element name="assetTemplateAttributeDefinition" type="assetTemplateAttributeDefinition"/>
  <xs:element name="template" type="template"/>
  <xs:element name="templateAttribute" type="templateAttribute"/>
  <xs:element name="templateAttributeDefinition" type="templateAttributeDefinition"/>
  <xs:element name="templateAttributeDefinitionAnonymous" type="templateAttributeDefinitionAnonymous"/>
<xs:complexType name="bannerClick">
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="dateClicked" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="productId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="externalProductId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="trackingId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="bannerId" type="xs:int" minOccurs="0">
              </xs:element>
              <xs:element name="templateId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="contentUnitId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="campaignId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="userId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="viewId" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="client">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[A client (customer)]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="externalId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id that may be used by the outside world]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the client]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the description of the client]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="catalogSizeLimit" type="xs:int" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the maximum number of products this client is allowed to have in a catalog]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="imageDownloadLimit" type="xs:int" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the maximum number of images this client is allowed to download in an import]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="customAttributeLimit" type="xs:int" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the maximum number of ag.intellishop.adition.product.prodimport.model.ImportMappingAttributes and
ag.intellishop.adition.product.model.AttributeDefinitions the client may create.]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="filterableCustomAttributeLimit" type="xs:int" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the maximum number of filterable ag.intellishop.adition.product.prodimport.model.ImportMappingAttributes and
ag.intellishop.adition.product.model.AttributeDefinitions the client may create.]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="weightedCrossSellingLimit" type="xs:int" minOccurs="0">
              </xs:element>
              <xs:element name="productRuntimeSupport" type="xs:boolean" minOccurs="0">
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="active" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[check if the client is active]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="clientFilterPermission">
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="entity" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="field" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="beanInformation">
       <xs:attribute name="beanClass" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="clusterNode">
       <xs:sequence>
              <xs:element name="id" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="host" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="hostName" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="port" type="xs:int" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="clusterNodeInformation">
       <xs:sequence>
              <xs:element name="clusterNode" type="clusterNode" minOccurs="0">
              </xs:element>
              <xs:element name="beans" type="beanInformation" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:simpleType name="attributeType">
  <xs:restriction base="xs:string">
     
    <xs:enumeration value="BOOLEAN"/>
 
    <xs:enumeration value="BYTE"/>
 
    <xs:enumeration value="SHORT"/>
 
    <xs:enumeration value="INTEGER"/>
 
    <xs:enumeration value="LONG"/>
 
    <xs:enumeration value="FLOAT"/>
 
    <xs:enumeration value="DOUBLE"/>
 
    <xs:enumeration value="BIG_DECIMAL"/>
 
    <xs:enumeration value="CHAR"/>
 
    <xs:enumeration value="STRING"/>
 
    <xs:enumeration value="CLASS"/>
 
    <xs:enumeration value="COLOR"/>
 
    <xs:enumeration value="DATE"/>
 
    <xs:enumeration value="URL"/>
 
    <xs:enumeration value="URI"/>
 
    <xs:enumeration value="UUID"/>
 
    <xs:enumeration value="FILE_NAME"/>
  </xs:restriction>
</xs:simpleType>

<xs:complexType name="cacheStats">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[cache efficiency statistics]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="evictionCount" type="xs:long" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get number of times cache entries have been evicted]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="hitCount" type="xs:long" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get number of times cache entries were available]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="loadExceptionCount" type="xs:long" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get number of exceptions when trying to populate cache]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="loadSuccessCount" type="xs:long" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get number of times entries have been successfully loaded into the cache]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="missCount" type="xs:long" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get number of times no cached entry was available]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="totalLoadTime" type="xs:long" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get time in nanoseconds needed to load entries]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="totalLoadTimeMillis" type="xs:double" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get time in milliseconds needed to load entries]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="tag" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get identifier for cache]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="entryAccessTime" type="xs:double" minOccurs="1">
              </xs:element>
              <xs:element name="entryStoreTime" type="xs:double" minOccurs="1">
              </xs:element>
              <xs:element name="requestCount" type="xs:long" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get number of times cache has been queried]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="size" type="xs:long" minOccurs="1">
              </xs:element>
              <xs:element name="invalidatedSize" type="xs:long" minOccurs="1">
              </xs:element>
              <xs:element name="hitRate" type="xs:double" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get percentage of cache hits]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="missRate" type="xs:double" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get percentage of cache misses]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="averageLoadPenaltyMillis" type="xs:double" minOccurs="1">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="configurationEntry">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="name" type="xs:string">
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:complexType name="configurationEntryDescriptorView">
       <xs:sequence>
              <xs:element name="description" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="name" type="xs:string">
      </xs:attribute>
      <xs:attribute name="type" type="attributeType">
      </xs:attribute>
</xs:complexType>

<xs:simpleType name="criteriaJoin">
  <xs:restriction base="xs:string">
     
    <xs:enumeration value="AND"/>
 
    <xs:enumeration value="OR"/>
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="criteriaOrder">
  <xs:restriction base="xs:string">
     
    <xs:enumeration value="ASC"/>
 
    <xs:enumeration value="DESC"/>
 
    <xs:enumeration value="RANDOM"/>
  </xs:restriction>
</xs:simpleType>

<xs:complexType name="entityMemberReferenceOperators">
       <xs:sequence>
              <xs:element name="member" type="entityMemberReference" minOccurs="0">
              </xs:element>
              <xs:element name="filterOperators" type="filterOperator" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="fieldOrder">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Describes by which field to order the result]]>
    </xs:documentation>
  </xs:annotation>
  <xs:simpleContent>
    <xs:extension base="criteriaOrder">
      <xs:attribute name="field" type="xs:string">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[get the name of the field]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="type" type="xs:string">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[get entity type in which the field resides]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:simpleType name="filterOperator">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[operator with which to match values]]>
    </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:string">
     
    <xs:enumeration value="EQUAL"/>
 
    <xs:enumeration value="NOT_EQUAL"/>
 
    <xs:enumeration value="LESS_THAN"/>
 
    <xs:enumeration value="GREATER_THAN"/>
 
    <xs:enumeration value="LESS_THAN_OR_EQUAL"/>
 
    <xs:enumeration value="GREATER_THAN_OR_EQUAL"/>
 
    <xs:enumeration value="STARTS_WITH"/>
 
    <xs:enumeration value="STARTS_WITH_CASEI"/>
 
    <xs:enumeration value="NOT_STARTS_WITH"/>
 
    <xs:enumeration value="ENDS_WITH"/>
 
    <xs:enumeration value="NOT_ENDS_WITH"/>
 
    <xs:enumeration value="CONTAINS"/>
 
    <xs:enumeration value="CONTAINS_CASEI"/>
 
    <xs:enumeration value="NOT_CONTAINS"/>
 
    <xs:enumeration value="MEMBER_OF"/>
 
    <xs:enumeration value="NOT_MEMBER_OF"/>
 
    <xs:enumeration value="IN"/>
 
    <xs:enumeration value="NOT_IN"/>
  </xs:restriction>
</xs:simpleType>

<xs:complexType name="simpleFieldCriteria">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[field criteria for use in JAX-RS]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get values to match.]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
      <xs:attribute name="field" use="required" type="xs:string">
      </xs:attribute>
      <xs:attribute name="type" type="xs:string">
      </xs:attribute>
      <xs:attribute name="operator" type="filterOperator">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[get the operator with which to match]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
</xs:complexType>

<xs:complexType name="simpleQuery">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Query for use in JAX_RS]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="criterias" type="simpleFieldCriteria" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get contained criterias]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="orderBy" type="fieldOrder" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get order methods]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
      <xs:attribute name="joinMethod" type="criteriaJoin">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[set the join method applied to the SimpleFieldCriteria instances]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="offset" type="xs:int">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[get the offset of the first entity that should be fetched]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="limit" type="xs:int">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[get the maximum number of results]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="distinct" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[check if only distinct entities should be returned]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
</xs:complexType>

<xs:complexType name="entityMemberReference">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Reference to an entity member, usable for JAXB]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="name" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the member]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="declaringClass" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the class declaring the member]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="type" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the type of the member]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="attributeEntry">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Compact version of attribute]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="attributeEntrySimple">
      <xs:attribute name="type" type="attributeType">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[get the type of the attribute]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="attributeEntrySimple">
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:attribute name="name" type="xs:string">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[get the name of the attribute]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

<xs:complexType name="fileInformation">
       <xs:attribute name="path" type="xs:string">
      </xs:attribute>
      <xs:attribute name="size" type="xs:long">
      </xs:attribute>
      <xs:attribute name="name" type="xs:string">
      </xs:attribute>
      <xs:attribute name="lastModified" type="xs:dateTime">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="localeInformation">
       <xs:sequence>
              <xs:element name="decimalSeparator" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="groupingSeparator" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="displayName" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:simpleType name="UUIDElement">
  <xs:restriction base="xs:string"/>
</xs:simpleType>

<xs:complexType name="importedMemberReference">
       <xs:sequence>
              <xs:element name="name" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="declaringClass" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="type" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="required" type="xs:boolean" minOccurs="1">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="histogramEntry">
       <xs:sequence>
              <xs:element name="step" type="xs:int" minOccurs="0">
              </xs:element>
              <xs:element name="count" type="xs:long" minOccurs="0">
              </xs:element>
              <xs:element name="minValue" type="xs:double" minOccurs="0">
              </xs:element>
              <xs:element name="maxValue" type="xs:double" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="histogramView">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[view of histogram]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="histogramEntrys" type="histogramEntry" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
              <xs:element name="min" type="xs:double" minOccurs="0">
              </xs:element>
              <xs:element name="max" type="xs:double" minOccurs="0">
              </xs:element>
              <xs:element name="total" type="xs:double" minOccurs="0">
              </xs:element>
              <xs:element name="totalCount" type="xs:long" minOccurs="1">
              </xs:element>
              <xs:element name="maxCount" type="xs:long" minOccurs="1">
              </xs:element>
              <xs:element name="avg" type="xs:double" minOccurs="1">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="name" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="clientStorageInfo">
       <xs:sequence>
              <xs:element name="size" type="xs:int" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="clientId" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="weightedCrossSelling">
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="productId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="crossSellerProductId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="weight" type="xs:float" minOccurs="1">
              </xs:element>
              <xs:element name="type" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:int">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="weightedCrossSellingImportConfiguration">
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the client this configuration belongs to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="archiveURI" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the download URL for the archive]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="notificationEmailAddress" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get email address where notifications will be sent. Can be multiple comma separated addresses.]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name for import configuration, will be used for the catalog]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the description for configuration]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="charset" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the charset for the import file]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="locale" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the locale Locale#toLanguageTag(), LocaleInformation#getId()]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="fieldDelimiter" type="xs:base64Binary" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the field delimiter for the CSV
<p>
will be marshalled as base64</p>]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="escapeChar" type="xs:base64Binary" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the escape character for the CSV
<p>
will be marshalled as base64</p>]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="quoteChar" type="xs:base64Binary" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the quote character for the CSV
<p>
will be marshalled as base64</p>]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="endOfLine" type="xs:base64Binary" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get end of line for the CSV
<p>
will be marshalled as base64</p>]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="active" type="xs:boolean" minOccurs="1">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="weightedCrossSellingImportSchedule">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Scheduling information for import]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="subscription" type="subscription" minOccurs="0">
              </xs:element>
              <xs:element name="jobParameter" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="active" type="xs:boolean" minOccurs="1">
              </xs:element>
              <xs:element name="scheduleMinute" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="scheduleHour" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="scheduleDayOfMonth" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="scheduleMonth" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="scheduleDayOfWeek" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="weightedCrossSellingType">
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="weight" type="xs:short" minOccurs="1">
              </xs:element>
              <xs:element name="useOrderedProducts" type="xs:boolean" minOccurs="0">
              </xs:element>
              <xs:element name="useViewedProducts" type="xs:boolean" minOccurs="0">
              </xs:element>
              <xs:element name="useCartProducts" type="xs:boolean" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="artifactVersion">
       <xs:sequence>
              <xs:element name="title" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="version" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="commitId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="branch" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="commitDescribe" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="buildTime" type="xs:dateTime" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:simpleType name="charsetInformation">
  <xs:restriction base="xs:string"/>
</xs:simpleType>

<xs:complexType name="productSelectionRuleType">
       <xs:sequence>
              <xs:element name="supportedParameters" type="productSelectionRuleTypeParameter" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="ruleType" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="productSelectionRuleTypeParameter">
       <xs:sequence>
              <xs:element name="validValues" type="xs:string" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="name" type="xs:string">
      </xs:attribute>
      <xs:attribute name="type" type="attributeType">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="batchOperations">
       <xs:sequence>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="AddOrUpdateCategoryOperation" type="ns1:addOrUpdateCategoryOperation"/>
                <xs:element name="AddOrUpdateCustomAttributeOperation" type="ns1:addOrUpdateCustomAttributeOperation"/>
                <xs:element name="AddOrUpdateProductOperation" type="ns1:addOrUpdateProductOperation"/>
                <xs:element name="DeleteCategoryOperation" type="ns1:deleteCategoryOperation"/>
                <xs:element name="DeleteCustomAttributeOperation" type="ns1:deleteCustomAttributeOperation"/>
                <xs:element name="DeleteProductOperation" type="ns1:deleteProductOperation"/>
                <xs:element name="UpdateProductInventoryOperation" type="ns1:updateProductInventoryOperation"/>
              </xs:choice>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="abstractProductAttribute" abstract="true">
       <xs:sequence>
              <xs:element name="productId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="attributeDefinitionId" type="xs:string" minOccurs="1">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="attributeDefinition">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Definition of an ProductAttribute attached to a Product]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="name" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the attribute]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the description]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
      <xs:attribute name="filterable" use="required" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[check if the attribute can be used in a filter]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="catalogId" use="required" type="xs:string">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[get the catalog the attribute is attached to]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="visible" use="required" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[check if the attribute is visible(if it will be served with a banner response)]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="attributeType" use="required" type="attributeType">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[get the type of the attribute]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="id" type="xs:ID">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="category">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[a product category]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="parentId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="catalogId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the catalog this category is attached to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="externalId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id that may be used by the outside world]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="treeLeft" type="xs:int" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the left of the nested set]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="treeRight" type="xs:int" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the right of the nested set]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="treeDepth" type="xs:int" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the level of this category in the tree]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the category]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="product">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[a product]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="catalogId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the catalog this product is attached to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="parentId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="externalId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="ean" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the EAN code]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the description]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="deeplink" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the deeplink for the product]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="price" type="xs:decimal" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the price of the product]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="stock" type="xs:int" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the stock of the product]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="oldPrice" type="xs:decimal" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the previous price of the product]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="image" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the products image]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="topSeller" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[check if this product is a topseller]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="novelty" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[check if this product is a novelty]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="validFrom" type="xs:dateTime" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get date from which this product is valid from]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="validTo" type="xs:dateTime" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the date until which this product is valid]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="productCrossSellingCollection" type="xs:string" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the cross-selling products]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="categoryCollection" type="xs:string" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the categories this product is contained in]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="productAttributeCollection" type="productAttribute" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the products attributes]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="productAttribute">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[attribute of a product]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractProductAttribute">
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="productAttributeUnfilterable">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[attribute of a product]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractProductAttribute">
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="productCatalog">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[a product catalog]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the Client this product catalog is attached to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="active" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[check if this catalog is active]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the catalog]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="externalId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[set the id that may be used by the outside world]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="importConfiguration">
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the client this configuration belongs to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="archiveURI" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the download URL for the archive]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="notificationEmailAddress" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get email address where notifications will be sent. Can be multiple comma separated addresses.]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name for import configuration, will be used for the catalog]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the description for configuration]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="charset" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the charset for the import file]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="locale" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the locale Locale#toLanguageTag(), LocaleInformation#getId()]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="fieldDelimiter" type="xs:base64Binary" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the field delimiter for the CSV
<p>
will be marshalled as base64</p>]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="escapeChar" type="xs:base64Binary" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the escape character for the CSV
<p>
will be marshalled as base64</p>]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="quoteChar" type="xs:base64Binary" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the quote character for the CSV
<p>
will be marshalled as base64</p>]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="endOfLine" type="xs:base64Binary" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get end of line for the CSV
<p>
will be marshalled as base64</p>]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="inlineFieldSeperator" type="xs:base64Binary" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get seperator used inside of fields
<p>
will be marshalled as base64</p>]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="pathSeperator" type="xs:base64Binary" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get path seperator used for category and similar
<p>
will be marshalled as base64</p>]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="plugin" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the plugin used for the import]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="pluginParameter" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[set the plugin parameter]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="fetchImages" type="xs:boolean" minOccurs="0">
              </xs:element>
              <xs:element name="alwaysRefetchImages" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get if images should always be refetched even if the image is already present]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="errorThreshold" type="xs:byte" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the maximum percentage points of rows allowed to contain errors]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="active" type="xs:boolean" minOccurs="1">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="importMappingAttribute">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Mapping of CSV column to ag.intellishop.adition.product.model.AttributeDefinition]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="columnName" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the column in CSV]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="attributeName" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[set the name of the attribute]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="attributeType" type="attributeType" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the type of the attribute]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="optional" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get if field should be optional]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="filterable" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get if field should be filterable]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="visible" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get if field should be visible (exported in banner request)]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="importConfigurationId" type="xs:string" minOccurs="1">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="importMappingAttributeFilterStatus">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Usage of ImportMappingAttribute in filters]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="importMappingAttribute" type="importMappingAttribute" minOccurs="0">
              </xs:element>
              <xs:element name="usedInFilters" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[if ImportMappingAttribute is used in filters]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="importMappingMember">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Mapping of CSV column to entity member]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="columnName" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the column in CSV]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="entityClass" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get entity class it should be mapped to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="entityMember" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the entity member it should be mapped to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="plugin" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="importConfigurationId" type="xs:string" minOccurs="1">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="importSchedule">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Scheduling information for import]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="name" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="active" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[check if this scheduling information is active]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="scheduleMinute" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[One or more minutes within an hour]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="scheduleHour" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[one or more hours within a day]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="scheduleDayOfMonth" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[one or more days within a month]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="scheduleMonth" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[one or more months within a year]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="scheduleDayOfWeek" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[one or more days within a week]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="importConfigurationId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="importStatEntry">
       <xs:sequence>
              <xs:element name="date" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="duration" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="period" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="count" type="xs:int" minOccurs="0">
              </xs:element>
              <xs:element name="failed" type="xs:int" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:simpleType name="importState">
  <xs:restriction base="xs:string">
     
    <xs:enumeration value="STARTED"/>
 
    <xs:enumeration value="READING_CATALOG"/>
 
    <xs:enumeration value="STORING_CATALOG"/>
 
    <xs:enumeration value="FETCHING_IMAGES"/>
 
    <xs:enumeration value="FINISHED"/>
 
    <xs:enumeration value="FAILED"/>
  </xs:restriction>
</xs:simpleType>

<xs:complexType name="importStatus">
       <xs:sequence>
              <xs:element name="dateStarted" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateFinished" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="importState" type="importState" minOccurs="0">
              </xs:element>
              <xs:element name="importConfigurationId" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="importStatusPeriod">
       <xs:sequence>
              <xs:element name="importStatus" type="importStatus" minOccurs="0">
              </xs:element>
              <xs:element name="period" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="importJob">
       <xs:sequence>
              <xs:element name="importConfigurationId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="importScheduleId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="fileName" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="importJobTimerInfo">
       <xs:sequence>
              <xs:element name="importJob" type="importJob" minOccurs="0">
              </xs:element>
              <xs:element name="scheduleExpression" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="nextTimeout" type="xs:dateTime" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="weightedCrossSellingImportURI">
       <xs:attribute name="clientId" use="required" type="xs:string">
      </xs:attribute>
      <xs:attribute name="archiveURI" use="required" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="statisticsEntry">
       <xs:sequence>
              <xs:element name="key" type="statisticsKey" minOccurs="0">
              </xs:element>
              <xs:element name="value" type="xs:long" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="statisticsKey">
       <xs:sequence>
              <xs:element name="resourceName" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="methodName" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="responseCode" type="xs:int" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="bannerClickRequest">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Information transmitted for a clicked banner]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the client id]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="productId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the product]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="trackingId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the tracking id]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="bannerId" type="xs:int" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the banner (combined rule id)]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="templateId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the template]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="contentUnitId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="campaignId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="userId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="viewId" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="bannerClickResponse">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Response to a banner click]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="redirectionUrl" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="recommendationResult">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Result of a recommendation]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="trackingId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="clientId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="clientExternalId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[Get the Client#getExternalId()]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="selectedTemplateId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the used template]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
        <xs:element name="products" minOccurs="0">
          <xs:annotation>
            <xs:documentation>
              <![CDATA[get the selected products]]>
            </xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="product" type="productViewProductSelectionResult" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the selected products]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="attributeEntries" minOccurs="0">
          <xs:annotation>
            <xs:documentation>
              <![CDATA[get the template attributes]]>
            </xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="attributeEntry" type="attributeEntry" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the template attributes]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
              <xs:element name="combinedRuleId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the combined rule from the BannerRequest]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="requestedTemplateId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the template id from the BannerRequest]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="contentUnitId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the contentUnitId id from the BannerRequest]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="campaignId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the campaignId id from the BannerRequest]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="abstractLimitation" abstract="true">
       <xs:sequence>
              <xs:element name="entity" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="filterValue" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="field" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="operator" type="filterOperator" minOccurs="1">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="clientLimitation">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Limitation - Influences the product selection defined by a Rule.

Define a limitating parameter for the product selection, build by executing a Rule in the RulesEngine.]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractLimitation">
      <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the Client this limitation is attached to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="combinedRule">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[CombinedRule - the combination of a RuleSet and a creative-line.

A CombinedRule holds the Information of a given RuleSet and a creative-line. The create-line is modeled by a
Template.]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="name" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the combined rule]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the description of the combined rule]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="templateId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the Template that is attached to this combined rule]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="assetTemplateId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the AssetTemplate that is attached to this combined rule]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="ruleSet" type="ruleSet" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="limitation">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Limitation - Influences the product selection defined by a Rule.

Define a limiting parameter for the product selection, build by executing a Rule in the RulesEngine.]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractLimitation">
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="rule">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Rule - business logic for the product selection.

A Rule contains the business-logic for the product selection. The selection result can be influenced by one or more {see
LimitationRule}s. (The demo web- frontend supports only one LimitationRule an is on a limitation of the frontend).]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="name" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name for the Rule]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the description of the rule]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="ruleType" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the plugin]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="step" type="xs:int" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the step in which the rule should be executed]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="numResults" type="xs:int" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the maximum number of results the rule should return]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="fillUpRule" type="xs:boolean" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get if this rule should act as a fillup rule. Fillup rules will try to fetch the remaining number results to reach the
maximum number of results specified in the RuleSet. If a rule is marked as fillup Rule#getNumResults() will
be ignored.]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="limitationCollection" type="limitation" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the limitations attached to this rule.]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="ruleParameter">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[A parameter to be passed to the ag.intellishop.adition.rulesengine.select.ProductSelectionPlugin]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="name" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the parameter name used by the ag.intellishop.adition.rulesengine.select.ProductSelectionPlugin as returned by
the plugins ag.intellishop.adition.rulesengine.select.ProductSelectionPlugin#getSupportedParameters()]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="parameterValue" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the value of the parameter]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="ruleId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the rule this parameter is attached to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="ruleSet">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[CombinedRule - the combination of a Rules.

This is simply the container for a collection of Rules.]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the Client this ruleset is attached to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="maxResult" type="xs:byte" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the maximum number of results this ruleset should return.]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the ruleset]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the description of the ruleset]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="ruleCollection" type="rule" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the rules attached to this ruleset]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="ruleProductCount">
       <xs:sequence>
              <xs:element name="ruleId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="productCount" type="xs:long" minOccurs="1">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="bannerRequest">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Information required to build a banner response]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="combinedRuleId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the CombinedRule]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="campaignId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the campaign id]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="cartProducts" type="productDotValue" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the products which have been added to the shopping cart]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="genericDotValues" type="genericDotValue" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
              <xs:element name="categories" type="dotValue" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the categories which have been viewed]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="contentUnitId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="orderedProducts" type="productDotValue" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the products which have already been ordered]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="viewedProducts" type="productDotValue" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the products which have been viewed]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="templateId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the id of the Template]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="templateAttributeFilters" type="attributeEntry" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="dotValue">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[A viewed category]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="count" type="xs:int" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the view count]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="timestamp" type="xs:long" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get last viewed unix timestamp]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="categoryId" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the (external) category id]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="genericDotValue">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[TODO: what else is needed?]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="name" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="value" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="productDotValue">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[A viewed product]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="dotValue">
      <xs:sequence>
              <xs:element name="productId" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the (external) product id]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="productSelectionPluginEntry">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Model for exported plugin registry]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="supportedParameters" type="productSelectionPluginParameter" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="plugin" type="xs:string">
      </xs:attribute>
      <xs:attribute name="ruleType" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="productSelectionPluginParameter">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Defines a parameter that can be attached to a ProductSelectionPlugin]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="name" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the name of the parameter. Acts as an identifier and should thus be unique. Ideally prefix with
ProductSelectionPlugin's RuleType name.]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="type" type="attributeType" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the type of the parameter]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="validValues" type="xs:string" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="productSelectionResult">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Container der die Ergebnisse einer ArticleSelection hält, dadurch wird das Ergebnis der Selektion der ursprünglichen Regel
zuordbar.]]>
    </xs:documentation>
  </xs:annotation>
       <xs:sequence>
              <xs:element name="products" type="productViewProductSelectionResult" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[Get the products matching this Rule]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="rule" type="rule" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[Get the Rule associated with this result.]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
      <xs:attribute name="size" use="required" type="xs:int">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[Get the number of products in this result.]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="dateStarted" type="xs:dateTime">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[Time of execution]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="durationMillis" type="xs:double">
        <xs:annotation>
          <xs:documentation>
            <![CDATA[Get the runtime of the Rule]]>
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
</xs:complexType>

<xs:complexType name="productViewProductSelectionResult">
       <xs:sequence>
              <xs:element name="parentId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="externalId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="ean" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="deeplink" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="price" type="xs:decimal" minOccurs="0">
              </xs:element>
              <xs:element name="stock" type="xs:int" minOccurs="0">
              </xs:element>
              <xs:element name="image" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="oldPrice" type="xs:decimal" minOccurs="0">
              </xs:element>
              <xs:element name="topSeller" type="xs:boolean" minOccurs="1">
              </xs:element>
              <xs:element name="novelty" type="xs:boolean" minOccurs="1">
              </xs:element>
              <xs:element name="validFrom" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="validTo" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="productCrossSellingCollection" type="xs:string" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
              <xs:element name="categoryCollection" type="xs:string" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
              <xs:element name="productAttributeCollection" type="attributeEntry" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="jobEntry">
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="subscription" type="subscription" minOccurs="1">
              </xs:element>
              <xs:element name="scheduleId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="jobType" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="jobParameter" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="uniqueTag" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the description]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateStarted" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="startedByWorker" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="dateFinished" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="jobState" type="jobState" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:simpleType name="jobState">
  <xs:restriction base="xs:string">
     
    <xs:enumeration value="QUEUED"/>
 
    <xs:enumeration value="STARTED"/>
 
    <xs:enumeration value="FINISHED"/>
 
    <xs:enumeration value="FAILED"/>
  </xs:restriction>
</xs:simpleType>

<xs:complexType name="jobStatus">
       <xs:sequence>
              <xs:element name="jobEntryId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="workerName" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="jobState" use="required" type="jobState">
      </xs:attribute>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="jobTimerInfo">
       <xs:sequence>
              <xs:element name="scheduleId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="clientId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="subscription" type="subscription" minOccurs="0">
              </xs:element>
              <xs:element name="jobType" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="jobParameter" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="uniqueTag" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="nextTimeout" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="timeRemaining" type="xs:long" minOccurs="1">
              </xs:element>
              <xs:element name="scheduleExpression" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="periodRemaining" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="schedule">
   <xs:complexContent>
    <xs:extension base="scheduleBase">
      <xs:sequence>
              <xs:element name="jobType" type="xs:string" minOccurs="1">
              </xs:element>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="scheduleBase" abstract="true">
       <xs:sequence>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="scheduleDayOfMonth" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="subscription" type="subscription" minOccurs="0">
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="scheduleDayOfWeek" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="active" type="xs:boolean" minOccurs="1">
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="scheduleHour" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="scheduleMinute" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="scheduleMonth" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="jobParameter" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string">
      </xs:attribute>
</xs:complexType>

<xs:simpleType name="subscription">
  <xs:restriction base="xs:string">
     
    <xs:enumeration value="TOPIC"/>
 
    <xs:enumeration value="QUEUE"/>
  </xs:restriction>
</xs:simpleType>

<xs:complexType name="abstractTemplateAttributeEntries" abstract="true">
       <xs:sequence>
              <xs:element name="attributeEntrys" type="attributeEntry" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="assetTemplateAttributeEntries">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[A wrapper including the template and the collection of inherited template attributes]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractTemplateAttributeEntries">
      <xs:sequence>
              <xs:element name="template" type="assetTemplate" minOccurs="0">
              </xs:element>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="templateAttributeEntries">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[A wrapper including the template and the collection of inherited template attributes]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractTemplateAttributeEntries">
      <xs:sequence>
              <xs:element name="template" type="template" minOccurs="0">
              </xs:element>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="abstractTemplate" abstract="true">
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="parentId" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="active" type="xs:boolean" minOccurs="1">
              </xs:element>
              <xs:element name="dateCreated" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="dateModified" type="xs:dateTime" minOccurs="0">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="abstractTemplateAttribute" abstract="true">
       <xs:sequence>
              <xs:element name="attributeValue" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="abstractTemplateAttributeDefinition" abstract="true">
       <xs:sequence>
              <xs:element name="clientId" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="type" type="attributeType" minOccurs="1">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="attributeName" type="xs:string" minOccurs="1">
              </xs:element>
      </xs:sequence>
      <xs:attribute name="id" type="xs:ID">
      </xs:attribute>
</xs:complexType>

<xs:complexType name="assetTemplate">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[A template. Contains various attributes. Templates will inherit attributes from parent templates. Attributes in child templates
will override attributes from parent templates.]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractTemplate">
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="assetTemplateAttribute">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[A Templates attribute]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractTemplateAttribute">
      <xs:sequence>
              <xs:element name="templateAttributeDefinition" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the definition of this attribute]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="template" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the template this attribute is attached to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="assetTemplateAttributeDefinition">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Definition of a template attribute.]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractTemplateAttributeDefinition">
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="template">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[A template. Contains various attributes. Templates will inherit attributes from parent templates. Attributes in child templates
will override attributes from parent templates.]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractTemplate">
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="templateAttribute">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[A Templates attribute]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractTemplateAttribute">
      <xs:sequence>
              <xs:element name="templateAttributeDefinition" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the definition of this attribute]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
              <xs:element name="template" type="xs:string" minOccurs="1">
              <xs:annotation>
                <xs:documentation>
                  <![CDATA[get the template this attribute is attached to]]>
                </xs:documentation>
              </xs:annotation>
              </xs:element>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="templateAttributeDefinition">
  <xs:annotation>
    <xs:documentation>
      <![CDATA[Definition of a template attribute.]]>
    </xs:documentation>
  </xs:annotation>
   <xs:complexContent>
    <xs:extension base="abstractTemplateAttributeDefinition">
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="templateAttributeDefinitionAnonymous">
       <xs:sequence>
              <xs:element name="attributeName" type="xs:string" minOccurs="1">
              </xs:element>
              <xs:element name="type" type="attributeType" minOccurs="1">
              </xs:element>
              <xs:element name="description" type="xs:string" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

</xs:schema>