ilscipio/scipio-erp

View on GitHub
applications/content/entitydef/entitymodel.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file is subject to the terms and conditions defined in the
files 'LICENSE' and 'NOTICE', which are part of this source
code package.
-->

<entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitymodel.xsd">
  <!-- ========================================================= -->
  <!-- ======================== Defaults ======================= -->
  <!-- ========================================================= -->
    <title>Entity of an Apache OFBiz Component</title>
    <description>None</description>
    <version>1.0</version>

  <!-- ========================================================= -->
  <!-- ======================== Data Model ===================== -->
  <!-- The modules in this file are as follows:                  -->
  <!--  - org.ofbiz.content.compdoc -->
  <!--  - org.ofbiz.content.content -->
  <!--  - org.ofbiz.content.data -->
  <!--  - org.ofbiz.content.document -->
  <!--  - org.ofbiz.content.email -->
  <!--  - org.ofbiz.content.preference -->
  <!--  - org.ofbiz.content.survey -->
  <!--  - org.ofbiz.content.website -->
  <!-- ========================================================= -->

  <!-- ========================================================= -->
  <!-- org.ofbiz.content.compdoc -->
  <!-- ========================================================= -->

    <view-entity entity-name="AssocRevisionItemView"
                package-name="org.ofbiz.content.compdoc"
                title="Latest Revision Children">
      <member-entity entity-alias="CRI" entity-name="ContentRevisionItem"/>
      <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
      <alias entity-alias="CA" name="contentId" group-by="true"/>
      <alias entity-alias="CA" name="contentIdTo" group-by="true"/>
      <alias entity-alias="CA" name="contentAssocTypeId" group-by="true"/>
      <alias entity-alias="CA" name="thruDate" group-by="true"/>
      <alias entity-alias="CA" name="fromDate" group-by="true"/>
      <alias entity-alias="CA" name="sequenceNum" group-by="true"/>
      <alias entity-alias="CRI" name="rootRevisionContentId" field="contentId" group-by="true"/>
      <alias entity-alias="CRI" name="itemContentId" group-by="true"/>
      <alias entity-alias="CRI" name="contentRevisionSeqId" group-by="false"/>
      <alias entity-alias="CRI" name="maxRevisionSeqId" field="contentRevisionSeqId" function="max"/>
      <view-link entity-alias="CA" rel-entity-alias="CRI">
        <key-map field-name="contentId" rel-field-name="itemContentId"/>
      </view-link>
    </view-entity>
    <view-entity entity-name="ContentAssocRevisionItemView"
                package-name="org.ofbiz.content.compdoc"
                title="Latest Revision Children">
      <member-entity entity-alias="C" entity-name="Content"/>
      <member-entity entity-alias="CRI" entity-name="ContentRevisionItem"/>
      <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
      <alias entity-alias="C" name="instanceOfContentId" group-by="true"/>
      <alias entity-alias="C" name="dataResourceId" group-by="true"/>
      <alias entity-alias="CA" name="contentId" group-by="true"/>
      <alias entity-alias="CA" name="contentIdTo" group-by="true"/>
      <alias entity-alias="CA" name="contentAssocTypeId" group-by="true"/>
      <alias entity-alias="CA" name="thruDate" group-by="true"/>
      <alias entity-alias="CA" name="fromDate" group-by="true"/>
      <alias entity-alias="CA" name="sequenceNum" group-by="true"/>
      <alias entity-alias="CRI" name="rootRevisionContentId" field="contentId" group-by="true"/>
      <alias entity-alias="CRI" name="itemContentId" group-by="true"/>
      <alias entity-alias="CRI" name="contentRevisionSeqId" group-by="false"/>
      <alias entity-alias="CRI" name="maxRevisionSeqId" field="contentRevisionSeqId" function="max"/>
      <view-link entity-alias="C" rel-entity-alias="CA">
        <key-map field-name="contentId" rel-field-name="contentId"/>
      </view-link>
      <view-link entity-alias="CA" rel-entity-alias="CRI">
        <key-map field-name="contentId" rel-field-name="itemContentId"/>
      </view-link>
    </view-entity>
    <view-entity entity-name="MaxRevisionItemView"
                package-name="org.ofbiz.content.compdoc"
                title="Latest Revision Children">
      <member-entity entity-alias="CRI" entity-name="ContentRevisionItem"/>
      <alias entity-alias="CRI" name="rootRevisionContentId" field="contentId" group-by="true"/>
      <alias entity-alias="CRI" name="itemContentId" group-by="true"/>
      <alias entity-alias="CRI" name="contentRevisionSeqId" group-by="false"/>
      <alias entity-alias="CRI" name="maxRevisionSeqId" field="contentRevisionSeqId" function="max"/>
    </view-entity>
    <view-entity entity-name="MaxContentApprovalView"
                package-name="org.ofbiz.content.compdoc"
                title="Latest ContentApproval">
      <member-entity entity-alias="C" entity-name="Content"/>
      <member-entity entity-alias="CA" entity-name="ContentApproval"/>
      <alias entity-alias="C" name="contentTypeId"  group-by="true"/>
      <alias entity-alias="CA" name="contentId"  group-by="true"/>
      <alias entity-alias="CA" name="partyId"  group-by="true"/>
      <alias entity-alias="CA" name="roleTypeId" group-by="true"/>
      <alias entity-alias="CA" name="sequenceNum" group-by="false"/>
      <alias entity-alias="CA" name="contentRevisionSeqId" group-by="false"/>
      <alias entity-alias="CA" name="maxContentRevisionSeqId" field="contentRevisionSeqId" function="max"/>
      <view-link entity-alias="C" rel-entity-alias="CA">
        <key-map field-name="contentId" rel-field-name="contentId"/>
      </view-link>
    </view-entity>
    <view-entity entity-name="ContentAssocOptViewFrom"
                package-name="org.ofbiz.content.content"
                title="Main Assoc To">
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="CA" prefix="ca"/>
      <alias entity-alias="CA" name="contentIdStart" field="contentIdTo"/>
      <view-link entity-alias="CA" rel-entity-alias="CO" rel-optional="true">
        <key-map field-name="contentIdTo" rel-field-name="contentId"/>
      </view-link>
    </view-entity>
    <!--
    <view-entity entity-name="ContentRevisionItemAndContentApprovalView"
                package-name="org.ofbiz.content.content"
                title="ContentRevisionItem and ContentApproval">
      <member-entity entity-alias="CRI" entity-name="ContentRevisionItem"/>
      <member-entity entity-alias="CA" entity-name="ContentApproval"/>
      <alias-all entity-alias="CRI"/>
      <alias entity-alias="CA" name="caContentId" field="contentId" group-by="true"/>
      <alias entity-alias="CA" name="caContentRevisionSeqId" name="contentRevisionSeqId" group-by="true"/>
      <alias entity-alias="CA" name="approvalCount" field="contentId" function="count"/>
      <view-link entity-alias="CRI" rel-entity-alias="CA" rel-optional="true">
        <key-map field-name="contentId"/>
        <key-map field-name="contentRevisionSeqId"/>
      </view-link>
    </view-entity>
    -->

  <!-- ========================================================= -->
  <!-- org.ofbiz.content.content -->
  <!-- ========================================================= -->

    <entity entity-name="Content"
            package-name="org.ofbiz.content.content"
            default-resource-name="ContentEntityLabels"
            title="Content">
      <field name="contentId" type="id-ne"></field>
      <field name="contentTypeId" type="id"></field>
      <field name="ownerContentId" type="id"><description>Used for permissions checking</description></field>
      <field name="decoratorContentId" type="id"></field>
      <field name="instanceOfContentId" type="id"></field>
      <field name="dataResourceId" type="id"></field>
      <field name="templateDataResourceId" type="id"></field>
      <field name="dataSourceId" type="id"></field>
      <field name="statusId" type="id"></field>
      <field name="privilegeEnumId" type="id"></field>
      <field name="serviceName" type="long-varchar"><description>Deprecated : use customMethod pattern instead. Kept for backward compatibility</description></field>
      <field name="customMethodId" type="id"></field>
      <field name="contentName" type="value"></field>
      <field name="description" type="description"></field>
      <field name="localeString" type="very-short"></field>
      <field name="mimeTypeId" type="id-vlong"></field>
      <field name="characterSetId" type="id-long"></field>
      <field name="childLeafCount" type="numeric"/>
      <field name="childBranchCount" type="numeric"/>
      <field name="createdDate" type="date-time"></field>
      <field name="createdByUserLogin" type="id-vlong"></field>
      <field name="lastModifiedDate" type="date-time"></field>
      <field name="lastModifiedByUserLogin" type="id-vlong"></field>
      <field name="mediaProfile" type="id"><description>Name of a media profile for the image or media. For images: ImageSizePreset.presetId or media profile name from mediaprofiles.properties (SCIPIO)</description></field>
      <field name="contentPath" type="url"><description>Optional media path (SCIPIO)</description></field>
      <prim-key field="contentId"/>
      <relation type="one" fk-name="CONTENT_TO_TYPE" rel-entity-name="ContentType">
        <key-map field-name="contentTypeId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_TO_DATA" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_TO_TMPDATA" title="Template" rel-entity-name="DataResource">
        <key-map field-name="templateDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_STATUS" rel-entity-name="StatusItem">
        <key-map field-name="statusId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_PRIVENM" title="Privilege" rel-entity-name="Enumeration">
        <key-map field-name="privilegeEnumId" rel-field-name="enumId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_CUSTMET" rel-entity-name="CustomMethod">
        <key-map field-name="customMethodId"/>
      </relation>
      <!-- the relationship to MimeType is one-nofk so that you can still do a lookup on MimeType but a new
      and unexpected mime type would not cause a foreign key constraint violation, so MimeType can store the
      most common mime types instead of an exhaustive list of all possible mime types -->
      <relation type="one-nofk" rel-entity-name="MimeType">
        <key-map field-name="mimeTypeId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_CHST" rel-entity-name="CharacterSet">
        <key-map field-name="characterSetId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentTypeAttr">
        <key-map field-name="contentTypeId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_CB_ULGN" title="CreatedBy" rel-entity-name="UserLogin">
        <key-map field-name="createdByUserLogin" rel-field-name="userLoginId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_LMB_ULGN" title="LastModifiedBy" rel-entity-name="UserLogin">
        <key-map field-name="lastModifiedByUserLogin" rel-field-name="userLoginId"/>
      </relation>
      <relation type="many" rel-entity-name="ProductFeatureDataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_DTSRC" rel-entity-name="DataSource">
        <key-map field-name="dataSourceId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_DCNTNT" title="Decorator" rel-entity-name="Content">
        <key-map field-name="decoratorContentId" rel-field-name="contentId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_PCNTNT" title="Owner" rel-entity-name="Content">
        <key-map field-name="ownerContentId" rel-field-name="contentId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_IOFCNT" title="InstanceOf" rel-entity-name="Content">
          <key-map field-name="instanceOfContentId" rel-field-name="contentId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewFrom">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewTo">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <!-- Scipio: Experimental index
      <index name="CONTENT_JLC">
        <index-field name="contentId"/>
        <index-field name="dataResourceId"/>
        <index-field name="localeString"/>
      </index>-->
      <index name="CONTENT_PATH_SCP">
        <index-field name="contentPath"/>
      </index>
    </entity>
    <view-entity entity-name="ContentAndRole" package-name="org.ofbiz.content.content" title="Content And Role View">
        <member-entity entity-alias="CNT" entity-name="Content"/>
        <member-entity entity-alias="CRLE" entity-name="ContentRole"/>
        <alias-all entity-alias="CNT"/>
        <alias-all entity-alias="CRLE"/>
        <view-link entity-alias="CNT" rel-entity-alias="CRLE">
            <key-map field-name="contentId"/>
        </view-link>
        <relation type="one-nofk" rel-entity-name="DataResource">
            <key-map field-name="dataResourceId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="ContentType">
            <key-map field-name="contentTypeId"/>
        </relation>
    </view-entity>
    <entity entity-name="ContentApproval"
        package-name="org.ofbiz.content.content"
        title="Content Approval">
        <field name="contentApprovalId" type="id-ne"></field>
        <field name="contentId" type="id-ne"></field>
        <field name="contentRevisionSeqId" type="id-ne"></field>
        <field name="partyId" type="id-ne"></field>
        <field name="roleTypeId" type="id-ne"></field>
        <field name="approvalStatusId" type="id-ne"></field>
        <field name="approvalDate" type="date-time"></field>
        <field name="sequenceNum" type="numeric"></field>
        <field name="comments" type="comment"></field>
        <prim-key field="contentApprovalId"/>
        <relation type="one" fk-name="CNTNTAPPR_CNT" rel-entity-name="Content">
            <key-map field-name="contentId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="ContentRevision">
            <key-map field-name="contentId"/>
            <key-map field-name="contentRevisionSeqId"/>
        </relation>
        <relation type="one" fk-name="CNTNTAPPR_PTY" rel-entity-name="Party">
            <key-map field-name="partyId"/>
        </relation>
        <relation type="one" fk-name="CNTNTAPPR_RLTP" rel-entity-name="RoleType">
            <key-map field-name="roleTypeId"/>
        </relation>
        <relation type="one" fk-name="CNTNTAPPR_APSI" title="Approval" rel-entity-name="StatusItem">
            <key-map field-name="approvalStatusId" rel-field-name="statusId"/>
        </relation>
    </entity>
    <entity entity-name="ContentAssoc"
            package-name="org.ofbiz.content.content"
            title="Content Association">
      <field name="contentId" type="id-ne"><description>"parent" content</description></field>
      <field name="contentIdTo" type="id-ne"><description>"child" or "sub" content</description></field>
      <field name="contentAssocTypeId" type="id"></field>
      <field name="fromDate" type="date-time"></field>
      <field name="thruDate" type="date-time"></field>
      <field name="contentAssocPredicateId" type="id"></field>
      <field name="dataSourceId" type="id"></field>
      <field name="sequenceNum" type="numeric"></field>
      <field name="mapKey" type="name"></field>
      <field name="upperCoordinate" type="numeric"></field>
      <field name="leftCoordinate" type="numeric"></field>
      <field name="createdDate" type="date-time"></field>
      <field name="createdByUserLogin" type="id-vlong"></field>
      <field name="lastModifiedDate" type="date-time"></field>
      <field name="lastModifiedByUserLogin" type="id-vlong"></field>
      <prim-key field="contentId"/>
      <prim-key field="contentIdTo"/>
      <prim-key field="contentAssocTypeId"/>
      <prim-key field="fromDate"/>
      <relation type="one" fk-name="CONTENTASSC_FROM" title="From" rel-entity-name="Content">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="one" fk-name="CONTENTASSC_TO" title="To" rel-entity-name="Content">
        <key-map field-name="contentIdTo" rel-field-name="contentId"/>
      </relation>
      <relation type="one" fk-name="CONTENTASSC_TYP" rel-entity-name="ContentAssocType">
        <key-map field-name="contentAssocTypeId"/>
      </relation>
      <relation type="one" fk-name="CONTENTASSC_CBUSR" title="CreatedBy" rel-entity-name="UserLogin">
        <key-map field-name="createdByUserLogin" rel-field-name="userLoginId"/>
      </relation>
      <relation type="one" fk-name="CONTENTASSC_LMBUR" title="LastModifiedBy" rel-entity-name="UserLogin">
        <key-map field-name="lastModifiedByUserLogin" rel-field-name="userLoginId"/>
      </relation>
      <relation type="one" fk-name="CONTENTASSC_PRED" rel-entity-name="ContentAssocPredicate">
        <key-map field-name="contentAssocPredicateId"/>
      </relation>
      <relation type="one" fk-name="CONTENTASSC_DTSRC" rel-entity-name="DataSource">
        <key-map field-name="dataSourceId"/>
      </relation>
        <index name="CONTENTASSC_TOQRY">
            <index-field name="contentIdTo"/>
            <index-field name="contentAssocTypeId"/>
            <index-field name="thruDate"/>
        </index>
      <!-- Scipio: Experimental index
      <index name="CONTENTASSC_JPCC">
        <index-field name="fromDate"/>
        <index-field name="contentId"/>
        <index-field name="contentIdTo"/>
        <index-field name="contentAssocTypeId"/>
      </index>-->
    </entity>
    <view-entity entity-name="ContentAssocDataResourceViewFrom"
                package-name="org.ofbiz.content.content"
                title="Main Assoc From and DataResource View">
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
      <member-entity entity-alias="DR" entity-name="DataResource"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="CA" prefix="ca"/>
      <alias-all entity-alias="DR" prefix="dr"/>
      <alias entity-alias="CA" name="contentIdStart" field="contentIdTo"/>
      <view-link entity-alias="CA" rel-entity-alias="CO" rel-optional="true">
        <key-map field-name="contentId" rel-field-name="contentId"/>
      </view-link>
      <view-link entity-alias="CO" rel-entity-alias="DR" rel-optional="true">
        <key-map field-name="dataResourceId" rel-field-name="dataResourceId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="ElectronicText">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="ImageDataResource">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="OtherDataResource">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewFrom">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewTo">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentPurpose">
          <key-map field-name="contentId" rel-field-name="contentId"/>
      </relation>
      <relation type="many" title="From" rel-entity-name="ContentAssoc">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="many" title="To" rel-entity-name="ContentAssoc">
        <key-map field-name="contentId" rel-field-name="contentIdTo"/>
      </relation>
      <relation type="many" rel-entity-name="ContentRole">
        <key-map field-name="contentId"/>
      </relation>
    </view-entity>
    <view-entity entity-name="ContentAssocDataResourceViewTo"
                package-name="org.ofbiz.content.content"
                title="Main Assoc To and DataResource View">
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
      <member-entity entity-alias="DR" entity-name="DataResource"/>
      <alias-all entity-alias="CA" prefix="ca"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="DR" prefix="dr"/>
      <alias entity-alias="CA" name="contentIdStart" field="contentId"/>
      <view-link entity-alias="CA" rel-entity-alias="CO" rel-optional="true">
        <key-map field-name="contentIdTo" rel-field-name="contentId"/>
      </view-link>
      <view-link entity-alias="CO" rel-entity-alias="DR" rel-optional="true">
        <key-map field-name="dataResourceId" rel-field-name="dataResourceId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="ElectronicText">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="ImageDataResource">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="OtherDataResource">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewFrom">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewTo">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentPurpose">
          <key-map field-name="caContentIdTo" rel-field-name="contentId"/>
      </relation>
      <relation type="many" title="From" rel-entity-name="ContentAssoc">
        <key-map field-name="caContentIdTo" rel-field-name="contentId"/>
      </relation>
      <relation type="many" title="To" rel-entity-name="ContentAssoc">
        <key-map field-name="caContentIdTo" rel-field-name="contentIdTo"/>
      </relation>
      <relation type="many" rel-entity-name="ContentRole">
        <key-map field-name="caContentIdTo" rel-field-name="contentId"/>
      </relation>
    </view-entity>
    <view-entity entity-name="ContentAssocDataResourceViewToReq"
                package-name="org.ofbiz.content.content"
                title="Main Assoc To and DataResource View Required"><!-- SCIPIO: Same as ContentAssocDataResourceViewTo but links required -->
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
      <member-entity entity-alias="DR" entity-name="DataResource"/>
      <alias-all entity-alias="CA" prefix="ca"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="DR" prefix="dr"/>
      <alias entity-alias="CA" name="contentIdStart" field="contentId"/>
      <view-link entity-alias="CA" rel-entity-alias="CO" rel-optional="false">
        <key-map field-name="contentIdTo" rel-field-name="contentId"/>
      </view-link>
      <view-link entity-alias="CO" rel-entity-alias="DR" rel-optional="false">
        <key-map field-name="dataResourceId" rel-field-name="dataResourceId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="ElectronicText">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="ImageDataResource">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="OtherDataResource">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewFrom">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewTo">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentPurpose">
          <key-map field-name="caContentIdTo" rel-field-name="contentId"/>
      </relation>
      <relation type="many" title="From" rel-entity-name="ContentAssoc">
        <key-map field-name="caContentIdTo" rel-field-name="contentId"/>
      </relation>
      <relation type="many" title="To" rel-entity-name="ContentAssoc">
        <key-map field-name="caContentIdTo" rel-field-name="contentIdTo"/>
      </relation>
      <relation type="many" rel-entity-name="ContentRole">
        <key-map field-name="caContentIdTo" rel-field-name="contentId"/>
      </relation>
    </view-entity>
    <entity entity-name="ContentAssocPredicate"
            package-name="org.ofbiz.content.content"
            default-resource-name="ContentEntityLabels"
            title="Content Association Predicate">
      <field name="contentAssocPredicateId" type="id-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="contentAssocPredicateId"/>
    </entity>
    <entity entity-name="ContentAssocType"
            package-name="org.ofbiz.content.content"
            default-resource-name="ContentEntityLabels"
            title="Content Association Type">
      <field name="contentAssocTypeId" type="id-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="contentAssocTypeId"/>
    </entity>
   <view-entity entity-name="ContentAssocViewFrom"
                package-name="org.ofbiz.content.content"
                title="Main Assoc From View">
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="CA" prefix="ca"/>
      <alias entity-alias="CA" name="contentIdStart" field="contentIdTo"/>
      <alias entity-alias="CA" name="fromDate" field="fromDate"/>
      <alias entity-alias="CA" name="thruDate" field="thruDate"/>
      <view-link entity-alias="CA" rel-entity-alias="CO">
        <key-map field-name="contentId"/>
      </view-link>
    </view-entity>
    <view-entity entity-name="ContentAssocViewTo"
                package-name="org.ofbiz.content.content"
                title="Main Assoc To View">
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="CA" prefix="ca"/>
      <alias entity-alias="CA" name="contentIdStart" field="contentId"/>
      <alias entity-alias="CA" name="fromDate" field="fromDate"/>
      <alias entity-alias="CA" name="thruDate" field="thruDate"/>
      <view-link entity-alias="CA" rel-entity-alias="CO">
        <key-map field-name="contentIdTo" rel-field-name="contentId"/>
      </view-link>
    </view-entity>
    <entity entity-name="ContentAttribute"
            package-name="org.ofbiz.content.content"
            title="Content Attribute">
      <field name="contentId" type="id-ne"></field>
      <field name="attrName" type="id-long-ne"></field>
      <field name="attrValue" type="value"></field>
      <field name="attrDescription" type="description"></field>
      <prim-key field="contentId"/>
      <prim-key field="attrName"/>
      <relation type="one" fk-name="CONTENT_ATTR" rel-entity-name="Content">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentTypeAttr">
        <key-map field-name="attrName"/>
      </relation>
    </entity>
    <view-entity entity-name="ContentDataResourceView"
                package-name="org.ofbiz.content.content"
                title="Content and DataResource View">
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="DR" entity-name="DataResource"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="DR" prefix="dr"/>
      <view-link entity-alias="CO" rel-entity-alias="DR" rel-optional="true">
        <key-map field-name="dataResourceId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="ElectronicText">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="ImageDataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="VideoDataResource"><!-- SCIPIO: 2017-08-01: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="AudioDataResource"><!-- SCIPIO: 2017-08-01: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="DocumentDataResource"><!-- SCIPIO: 2017-08-01: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="OtherDataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewFrom">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewTo">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" title="From" rel-entity-name="ContentAssoc">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="many" title="To" rel-entity-name="ContentAssoc">
        <key-map field-name="contentId" rel-field-name="contentIdTo"/>
      </relation>
      <relation type="many" rel-entity-name="ContentPurpose">
          <key-map field-name="contentId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentRole">
        <key-map field-name="contentId"/>
      </relation>
    </view-entity>
    <!-- SCIPIO: 2017-08-01: Same as ContentDataResourceView, but DataResource is required -->
    <view-entity entity-name="ContentDataResourceRequiredView"
                package-name="org.ofbiz.content.content"
                title="Content and DataResource Required View">
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="DR" entity-name="DataResource"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="DR" prefix="dr"/>
      <view-link entity-alias="CO" rel-entity-alias="DR" rel-optional="false">
        <key-map field-name="dataResourceId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="ElectronicText">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="ImageDataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="VideoDataResource"><!-- SCIPIO: 2017-08-01: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="AudioDataResource"><!-- SCIPIO: 2017-08-01: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="DocumentDataResource"><!-- SCIPIO: 2017-08-01: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="OtherDataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewFrom">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewTo">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" title="From" rel-entity-name="ContentAssoc">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="many" title="To" rel-entity-name="ContentAssoc">
        <key-map field-name="contentId" rel-field-name="contentIdTo"/>
      </relation>
      <relation type="many" rel-entity-name="ContentPurpose">
          <key-map field-name="contentId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentRole">
        <key-map field-name="contentId"/>
      </relation>
    </view-entity>
    <entity entity-name="ContentMetaData"
            package-name="org.ofbiz.content.content"
            title="Content Meta-Data Predicate">
      <field name="contentId" type="id-ne"></field>
      <field name="metaDataPredicateId" type="id-ne"></field>
      <field name="metaDataValue" type="value"></field>
      <field name="dataSourceId" type="id"></field>
      <prim-key field="contentId"/>
      <prim-key field="metaDataPredicateId"/>
      <relation type="one" fk-name="CONTENTMD_CNTNT" rel-entity-name="Content">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="one" fk-name="CONTENTMD_DMDPRD" rel-entity-name="MetaDataPredicate">
        <key-map field-name="metaDataPredicateId"/>
      </relation>
      <relation type="one" fk-name="CONTENTMD_DTSRC" rel-entity-name="DataSource">
        <key-map field-name="dataSourceId"/>
      </relation>
    </entity>
    <entity entity-name="ContentOperation"
            package-name="org.ofbiz.content.content"
            default-resource-name="ContentEntityLabels"
            title="Content Operation">
      <field name="contentOperationId" type="id-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="contentOperationId"/>
    </entity>
    <entity entity-name="ContentPurpose"
            package-name="org.ofbiz.content.content"
            title="Content Purpose">
      <field name="contentId" type="id-ne"></field>
      <field name="contentPurposeTypeId" type="id-ne"></field>
      <field name="sequenceNum" type="numeric"></field>
      <prim-key field="contentId"/>
      <prim-key field="contentPurposeTypeId"/>
      <relation type="one" fk-name="CONTENT_PRP" rel-entity-name="Content">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_PRP_TYPE" rel-entity-name="ContentPurposeType">
        <key-map field-name="contentPurposeTypeId"/>
      </relation>
    </entity>
    <entity entity-name="ContentPurposeOperation"
            package-name="org.ofbiz.content.content"
            title="Content Purpose">
      <field name="contentPurposeTypeId" type="id-ne"></field>
      <field name="contentOperationId" type="id-ne"></field>
      <field name="roleTypeId" type="id-ne"></field>
      <field name="statusId" type="id-ne"></field>
      <field name="privilegeEnumId" type="id-ne"></field>
      <prim-key field="contentPurposeTypeId"/>
      <prim-key field="contentOperationId"/>
      <prim-key field="roleTypeId"/>
      <prim-key field="statusId"/>
      <prim-key field="privilegeEnumId"/>
      <relation type="one" fk-name="CONTENT_PRO_TYPE" rel-entity-name="ContentPurposeType">
        <key-map field-name="contentPurposeTypeId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_PRO_OPER" rel-entity-name="ContentOperation">
        <key-map field-name="contentOperationId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_PRO_RLT" rel-entity-name="RoleType">
        <key-map field-name="roleTypeId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_PRO_STI" rel-entity-name="StatusItem">
        <key-map field-name="statusId"/>
      </relation>
      <relation type="one" fk-name="CONTENT_PRO_PEI" rel-entity-name="Enumeration">
        <key-map field-name="privilegeEnumId" rel-field-name="enumId"/>
      </relation>
    </entity>
    <entity entity-name="ContentPurposeType"
            package-name="org.ofbiz.content.content"
            default-resource-name="ContentEntityLabels"
            title="Content Purpose Type">
      <field name="contentPurposeTypeId" type="id-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="contentPurposeTypeId"/>
    </entity>
    <entity entity-name="ContentRevision"
        package-name="org.ofbiz.content.content"
        title="Content Revision">
        <field name="contentId" type="id-ne"></field>
        <field name="contentRevisionSeqId" type="id-ne"></field>
        <field name="committedByPartyId" type="id-ne"></field>
        <field name="comments" type="comment"></field>
        <prim-key field="contentId"/>
        <prim-key field="contentRevisionSeqId"/>
        <relation type="one" fk-name="CNTNTREV_CNT" rel-entity-name="Content">
            <key-map field-name="contentId"/>
        </relation>
        <relation type="one" fk-name="CNTNTREV_CBPTY" title="CommittedBy" rel-entity-name="Party">
            <key-map field-name="committedByPartyId" rel-field-name="partyId"/>
        </relation>
    </entity>
    <entity entity-name="ContentRevisionItem"
        package-name="org.ofbiz.content.content"
        title="Content Revision">
        <field name="contentId" type="id-ne"></field>
        <field name="contentRevisionSeqId" type="id-ne"></field>
        <field name="itemContentId" type="id-ne"></field>
        <field name="oldDataResourceId" type="id-ne"></field>
        <field name="newDataResourceId" type="id-ne"></field>
        <prim-key field="contentId"/>
        <prim-key field="contentRevisionSeqId"/>
        <prim-key field="itemContentId"/>
        <relation type="one" fk-name="CNTNTREVIT_CNTREV" rel-entity-name="ContentRevision">
            <key-map field-name="contentId"/>
            <key-map field-name="contentRevisionSeqId"/>
        </relation>
        <relation type="one" fk-name="CNTNTREVIT_OLDDR" title="Old" rel-entity-name="DataResource">
            <key-map field-name="oldDataResourceId" rel-field-name="dataResourceId"/>
        </relation>
        <relation type="one" fk-name="CNTNTREVIT_NEWDR" title="New" rel-entity-name="DataResource">
            <key-map field-name="newDataResourceId" rel-field-name="dataResourceId"/>
        </relation>
    </entity>
    <entity entity-name="ContentRole"
            package-name="org.ofbiz.content.content"
            title="Content Role">
      <field name="contentId" type="id-ne"></field>
      <field name="partyId" type="id-ne"></field>
      <field name="roleTypeId" type="id-ne"></field>
      <field name="fromDate" type="date-time"></field>
      <field name="thruDate" type="date-time"></field>
      <prim-key field="contentId"/>
      <prim-key field="partyId"/>
      <prim-key field="roleTypeId"/>
      <prim-key field="fromDate"/>
      <relation type="one" fk-name="CNTNT_RL_CNTNT" rel-entity-name="Content">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="Party">
        <key-map field-name="partyId"/>
      </relation>
      <relation type="one" fk-name="CNTNT_RL_PTRL" rel-entity-name="PartyRole">
        <key-map field-name="partyId"/>
        <key-map field-name="roleTypeId"/>
      </relation>
    </entity>
    <entity entity-name="ContentType"
            package-name="org.ofbiz.content.content"
            default-resource-name="ContentEntityLabels"
            title="Content Type">
      <field name="contentTypeId" type="id-ne"></field>
      <field name="parentTypeId" type="id"></field>
      <field name="hasTable" type="indicator"></field>
      <field name="description" type="description"></field>
      <field name="sequenceId" type="id"></field><!-- SCIPIO: 2017-04-31: new sequenceId field for ordering in display -->
      <prim-key field="contentTypeId"/>
      <relation type="one" fk-name="CNTNT_TYPE_PARENT" title="Parent" rel-entity-name="ContentType">
        <key-map field-name="parentTypeId" rel-field-name="contentTypeId"/>
      </relation>
    </entity>
    <entity entity-name="ContentTypeAttr"
            package-name="org.ofbiz.content.content"
            title="Content Type Attribute">
      <field name="contentTypeId" type="id-ne"></field>
      <field name="attrName" type="id-long-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="contentTypeId"/>
      <prim-key field="attrName"/>
      <relation type="one" fk-name="CONTENT_TPAT_TYP" rel-entity-name="ContentType">
        <key-map field-name="contentTypeId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAttribute">
        <key-map field-name="attrName"/>
      </relation>
      <relation type="many" rel-entity-name="Content">
        <key-map field-name="contentTypeId"/>
      </relation>
    </entity>
    <view-entity entity-name="SubContentDataResourceView"
                package-name="org.ofbiz.content.content"
                title="Content and DataResource for SubContent View">
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="DR" entity-name="DataResource"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="DR" prefix="dr"/>
      <view-link entity-alias="CO" rel-entity-alias="DR" rel-optional="true">
        <key-map field-name="dataResourceId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="ElectronicText">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="ImageDataResource">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="OtherDataResource">
        <key-map field-name="drDataResourceId" rel-field-name="dataResourceId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewFrom">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentAssocDataResourceViewTo">
        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
      </relation>
      <relation type="many" rel-entity-name="ContentPurpose">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="many" rel-entity-name="ContentRole">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="many" title="From" rel-entity-name="ContentAssoc">
        <key-map field-name="contentId"/>
      </relation>
      <relation type="many" title="To" rel-entity-name="ContentAssoc">
        <key-map field-name="contentId" rel-field-name="contentIdTo"/>
      </relation>
    </view-entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.content.data -->
  <!-- ========================================================= -->

    <entity entity-name="AudioDataResource"
            package-name="org.ofbiz.content.data"
            title="Audio Data Object">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="audioData" type="byte-array"></field>
      <prim-key field="dataResourceId"/>
      <relation type="one" fk-name="DATA_REC_AUDIO" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
    </entity>
    <entity entity-name="CharacterSet"
            package-name="org.ofbiz.content.data"
            default-resource-name="ContentEntityLabels"
            title="Character Set">
      <field name="characterSetId" type="id-long-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="characterSetId"/>
    </entity>
    <entity entity-name="DataCategory"
            package-name="org.ofbiz.content.data"
            default-resource-name="ContentEntityLabels"
            title="Data Category">
      <field name="dataCategoryId" type="id-ne"></field>
      <field name="parentCategoryId" type="id"></field>
      <field name="categoryName" type="name"></field>
      <prim-key field="dataCategoryId"/>
      <relation type="one" fk-name="DATA_CAT_PARENT" title="Parent" rel-entity-name="DataCategory">
        <key-map field-name="parentCategoryId" rel-field-name="dataCategoryId"/>
      </relation>
      <relation type="many" title="Sibling" rel-entity-name="DataCategory">
        <key-map field-name="parentCategoryId"/>
      </relation>
    </entity>
    <entity entity-name="DataResource"
            package-name="org.ofbiz.content.data"
            title="Data Object">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="dataResourceTypeId" type="id"></field>
      <field name="dataTemplateTypeId" type="id"></field>
      <field name="dataCategoryId" type="id-ne"></field>
      <field name="dataSourceId" type="id"></field>
      <field name="statusId" type="id"></field>
      <field name="dataResourceName" type="value"></field>
      <field name="localeString" type="very-short"></field>
      <field name="mimeTypeId" type="id-vlong"></field>
      <field name="characterSetId" type="id-long"></field>
      <field name="objectInfo" type="long-varchar"><description>For Short Text the text goes here.</description></field>
      <field name="surveyId" type="id"></field>
      <field name="surveyResponseId" type="id"></field>
      <field name="relatedDetailId" type="id"><description>Depending on the dataResourceTypeId this can point to other entities, like: Survey, SurveyResponse, etc.</description></field>
      <field name="isPublic" type="indicator"><description>If this is set to Y then anyone can download it, otherwise the download is restricted.</description></field>
      <field name="createdDate" type="date-time"></field>
      <field name="createdByUserLogin" type="id-vlong"></field>
      <field name="lastModifiedDate" type="date-time"></field>
      <field name="lastModifiedByUserLogin" type="id-vlong"></field>
      <!-- SCIPIO: NOTE: scpWidth & scpHeight are added to DataResource instead of as DataResourceAttribute because the latter is guaranteed to be too slow for future queries. -->
      <field name="scpWidth" type="numeric"><description>Image or video width (px) (optimization; originally added for auto-resized images, contentAssocTypeId IMGSZ_*; may be null for other purposes) (SCIPIO)</description></field>
      <field name="scpHeight" type="numeric"><description>Image or video width (px) (optimization; originally added for auto-resized images, contentAssocTypeId IMGSZ_*; may be null for other purposes) (SCIPIO)</description></field>
      <field name="sizeId" type="id-ne"><description>Represents an image dimension with its common fields (height and width) and other fields used for responsive images. NOTE: configuration may not necessarily reflect current image (SCIPIO)</description></field>
      <field name="srcPresetJson" type="very-long"><description>Json map describing the preset/format data used to generate this media, regardless of whether the configuration presets were changed; for resized variant images, usually contains 'width', 'height', 'format', 'upscaleMode' (corresponds to ImageVariantConfig.VariantInfo without name) (SCIPIO)</description></field>
      <field name="srcMimeTypeId" type="id-vlong"><description>mimeTypeId for the source image, for product image URLs, as mimeTypeId is set to text/html for these by stock (SCIPIO)</description></field>
      <prim-key field="dataResourceId"/>
      <relation type="one" fk-name="DTRSRC_STATUS" rel-entity-name="StatusItem">
        <key-map field-name="statusId"/>
      </relation>
      <relation type="one" fk-name="DATA_REC_TO_TYPE" rel-entity-name="DataResourceType">
        <key-map field-name="dataResourceTypeId"/>
      </relation>
      <relation type="one" fk-name="DATA_REC_TO_TTP" rel-entity-name="DataTemplateType">
        <key-map field-name="dataTemplateTypeId"/>
      </relation>
      <relation type="one" fk-name="DATA_REC_TO_CAT" rel-entity-name="DataCategory">
        <key-map field-name="dataCategoryId"/>
      </relation>
      <relation type="one" fk-name="DATA_REC_DTSRC" rel-entity-name="DataSource">
        <key-map field-name="dataSourceId"/>
      </relation>
      <!-- see comment above for Content.mimeTypeId -->
      <relation type="one-nofk" rel-entity-name="MimeType">
        <key-map field-name="mimeTypeId"/>
      </relation>
      <relation type="one" fk-name="DATA_REC_CHST" rel-entity-name="CharacterSet">
        <key-map field-name="characterSetId"/>
      </relation>
      <relation type="many" rel-entity-name="DataResourceTypeAttr">
        <key-map field-name="dataResourceTypeId"/>
      </relation>
      <relation type="one" fk-name="DATA_REC_CB_ULGN" title="CreatedBy" rel-entity-name="UserLogin">
        <key-map field-name="createdByUserLogin" rel-field-name="userLoginId"/>
      </relation>
      <relation type="one" fk-name="DATA_REC_LMB_ULGN" title="LastModifiedBy" rel-entity-name="UserLogin">
        <key-map field-name="lastModifiedByUserLogin" rel-field-name="userLoginId"/>
      </relation>
        <relation type="one" fk-name="DATA_REC_SURVEY" rel-entity-name="Survey">
            <key-map field-name="surveyId"/>
        </relation>
        <relation type="one" fk-name="DATA_REC_SVRSP" rel-entity-name="SurveyResponse">
            <key-map field-name="surveyResponseId"/>
        </relation>
        <relation type="one" fk-name="DATA_REC_DIM" rel-entity-name="ImageSizeDimension">
            <key-map field-name="sizeId"/>
        </relation>
    </entity>
    <entity entity-name="DataResourceAttribute"
            package-name="org.ofbiz.content.data"
            title="Data Object Attribute">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="attrName" type="id-long-ne"></field>
      <field name="attrValue" type="value"></field>
      <field name="attrDescription" type="description"></field>
      <prim-key field="dataResourceId"/>
      <prim-key field="attrName"/>
      <relation type="one" fk-name="DATA_REC_ATTR" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="many" rel-entity-name="DataResourceTypeAttr">
        <key-map field-name="attrName"/>
      </relation>
    </entity>
    <view-entity entity-name="DataResourceContentView"
                package-name="org.ofbiz.content.content"
                title="DataResource and Content View">
      <member-entity entity-alias="DR" entity-name="DataResource"/>
      <member-entity entity-alias="CO" entity-name="Content"/>
      <alias-all entity-alias="DR"/>
      <alias-all entity-alias="CO"  prefix="co"/>
      <view-link entity-alias="DR" rel-entity-alias="CO" rel-optional="true">
        <key-map field-name="dataResourceId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="ElectronicText">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="ImageDataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="VideoDataResource"><!-- SCIPIO: 2017-07-31: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="AudioDataResource"><!-- SCIPIO: 2017-07-31: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="DocumentDataResource"><!-- SCIPIO: 2017-07-31: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="OtherDataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one" rel-entity-name="DataResourceType">
        <key-map field-name="dataResourceTypeId"/>
      </relation>
      <relation type="one" rel-entity-name="DataCategory">
        <key-map field-name="dataCategoryId"/>
      </relation>
      <relation type="one" rel-entity-name="DataSource">
        <key-map field-name="dataSourceId"/>
      </relation>
      <relation type="one" rel-entity-name="MimeType">
        <key-map field-name="mimeTypeId"/>
      </relation>
      <relation type="one" rel-entity-name="CharacterSet">
        <key-map field-name="characterSetId"/>
      </relation>
      <relation type="many" rel-entity-name="DataResourceTypeAttr">
        <key-map field-name="dataResourceTypeId"/>
      </relation>
      <relation type="many" rel-entity-name="DataResourceAttribute">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="many" rel-entity-name="DataResourceRole">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one" title="CreatedBy" rel-entity-name="UserLogin">
        <key-map field-name="createdByUserLogin" rel-field-name="userLoginId"/>
      </relation>
      <relation type="one" title="LastModifiedBy" rel-entity-name="UserLogin">
        <key-map field-name="lastModifiedByUserLogin" rel-field-name="userLoginId"/>
      </relation>
    </view-entity>
    <!-- SCIPIO: 2017-07-31: Variant of DataResourceContentView that requires the Content relation -->
    <view-entity entity-name="DataResourceContentRequiredView"
                package-name="org.ofbiz.content.content"
                title="DataResource and Content Required View">
      <member-entity entity-alias="DR" entity-name="DataResource"/>
      <member-entity entity-alias="CO" entity-name="Content"/>
      <alias-all entity-alias="DR"/>
      <alias-all entity-alias="CO" prefix="co"/>
      <view-link entity-alias="DR" rel-entity-alias="CO" rel-optional="false">
        <key-map field-name="dataResourceId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="ElectronicText">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="ImageDataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="VideoDataResource"><!-- SCIPIO: 2017-07-31: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="AudioDataResource"><!-- SCIPIO: 2017-07-31: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="DocumentDataResource"><!-- SCIPIO: 2017-07-31: new relations -->
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="OtherDataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one" rel-entity-name="DataResourceType">
        <key-map field-name="dataResourceTypeId"/>
      </relation>
      <relation type="one" rel-entity-name="DataCategory">
        <key-map field-name="dataCategoryId"/>
      </relation>
      <relation type="one" rel-entity-name="DataSource">
        <key-map field-name="dataSourceId"/>
      </relation>
      <relation type="one" rel-entity-name="MimeType">
        <key-map field-name="mimeTypeId"/>
      </relation>
      <relation type="one" rel-entity-name="CharacterSet">
        <key-map field-name="characterSetId"/>
      </relation>
      <relation type="many" rel-entity-name="DataResourceTypeAttr">
        <key-map field-name="dataResourceTypeId"/>
      </relation>
      <relation type="many" rel-entity-name="DataResourceAttribute">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="many" rel-entity-name="DataResourceRole">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one" title="CreatedBy" rel-entity-name="UserLogin">
        <key-map field-name="createdByUserLogin" rel-field-name="userLoginId"/>
      </relation>
      <relation type="one" title="LastModifiedBy" rel-entity-name="UserLogin">
        <key-map field-name="lastModifiedByUserLogin" rel-field-name="userLoginId"/>
      </relation>
    </view-entity>
    <!-- SCIPIO: 2017-10-27: new entity that covers all 3, most useful for simple text content values -->
    <view-entity entity-name="ContentAndElectronicText"
                package-name="org.ofbiz.content.content"
                title="Content and DataResource and ElectronicText Required View">
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="DR" entity-name="DataResource"/>
      <member-entity entity-alias="EL" entity-name="ElectronicText"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="DR" prefix="dr"/>
      <alias-all entity-alias="EL"/>
      <view-link entity-alias="CO" rel-entity-alias="DR" rel-optional="false">
        <key-map field-name="dataResourceId"/>
      </view-link>
      <view-link entity-alias="CO" rel-entity-alias="EL" rel-optional="false">
        <key-map field-name="dataResourceId"/>
      </view-link>
    </view-entity>
    <!-- SCIPIO: 2017-10-27: new entity that covers 4 entities, most useful for simple text content values e.g. ALTERNATE_TEXT -->
    <view-entity entity-name="ContentAssocToElectronicText"
                package-name="org.ofbiz.content.content"
                title="ContentAssoc To Content and DataResource and ElectronicText Required View">
      <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
      <member-entity entity-alias="CO" entity-name="Content"/>
      <member-entity entity-alias="DR" entity-name="DataResource"/>
      <member-entity entity-alias="EL" entity-name="ElectronicText"/>
      <alias-all entity-alias="CA" prefix="ca"/>
      <alias-all entity-alias="CO"/>
      <alias-all entity-alias="DR" prefix="dr"/>
      <alias-all entity-alias="EL"/>
      <alias entity-alias="CA" name="contentIdStart" field="contentId"/>
      <alias entity-alias="CA" name="contentAssocTypeId" field="contentAssocTypeId"/>
      <alias entity-alias="CA" name="fromDate" field="fromDate"/>
      <alias entity-alias="CA" name="thruDate" field="thruDate"/>
      <view-link entity-alias="CA" rel-entity-alias="CO" rel-optional="false">
        <key-map field-name="contentIdTo" rel-field-name="contentId"/>
      </view-link>
      <view-link entity-alias="CO" rel-entity-alias="DR" rel-optional="false">
        <key-map field-name="dataResourceId"/>
      </view-link>
      <view-link entity-alias="CO" rel-entity-alias="EL" rel-optional="false">
        <key-map field-name="dataResourceId"/>
      </view-link>
    </view-entity>
    <entity entity-name="DataResourceMetaData"
            package-name="org.ofbiz.content.data"
            title="Data Resource Meta-Data Predicate">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="metaDataPredicateId" type="id-ne"></field>
      <field name="metaDataValue" type="value"></field>
      <field name="dataSourceId" type="id"></field>
      <prim-key field="dataResourceId"/>
      <prim-key field="metaDataPredicateId"/>
      <relation type="one" fk-name="DATA_MD_DATREC" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one" fk-name="DATA_MD_DMDPRD" rel-entity-name="MetaDataPredicate">
        <key-map field-name="metaDataPredicateId"/>
      </relation>
      <relation type="one" fk-name="DATA_MD_DTSRC" rel-entity-name="DataSource">
        <key-map field-name="dataSourceId"/>
      </relation>
    </entity>
    <entity entity-name="DataResourcePurpose"
            package-name="org.ofbiz.content.data"
            title="Data Object Purpose">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="contentPurposeTypeId" type="id-ne"></field>
      <prim-key field="dataResourceId"/>
      <prim-key field="contentPurposeTypeId"/>
      <relation type="one" fk-name="DATA_REC_PRP" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one" fk-name="DATA_REC_PRP_TYPE" rel-entity-name="ContentPurposeType">
        <key-map field-name="contentPurposeTypeId"/>
      </relation>
    </entity>
    <entity entity-name="DataResourceRole"
            package-name="org.ofbiz.content.data"
            title="DataResource Role">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="partyId" type="id-ne"></field>
      <field name="roleTypeId" type="id-ne"></field>
      <field name="fromDate" type="date-time"></field>
      <field name="thruDate" type="date-time"></field>
      <prim-key field="dataResourceId"/>
      <prim-key field="partyId"/>
      <prim-key field="roleTypeId"/>
      <prim-key field="fromDate"/>
      <relation type="one" fk-name="DATARECRL_DATREC" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="Party">
        <key-map field-name="partyId"/>
      </relation>
      <relation type="one" fk-name="DATARECRL_PTRL" rel-entity-name="PartyRole">
        <key-map field-name="partyId"/>
        <key-map field-name="roleTypeId"/>
      </relation>
    </entity>
    <entity entity-name="DataResourceType"
            package-name="org.ofbiz.content.data"
            default-resource-name="ContentEntityLabels"
            title="Data Object Type">
      <field name="dataResourceTypeId" type="id-ne"></field>
      <field name="parentTypeId" type="id-ne"></field>
      <field name="hasTable" type="indicator"></field>
      <field name="description" type="description"></field>
      <prim-key field="dataResourceTypeId"/>
      <relation type="one" fk-name="DATA_OBTYPE_PARENT" title="Parent" rel-entity-name="DataResourceType">
        <key-map field-name="parentTypeId" rel-field-name="dataResourceTypeId"/>
      </relation>
    </entity>
    <entity entity-name="DataResourceTypeAttr"
            package-name="org.ofbiz.content.data"
            title="Data Object Type Attribute">
      <field name="dataResourceTypeId" type="id-ne"></field>
      <field name="attrName" type="id-long-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="dataResourceTypeId"/>
      <prim-key field="attrName"/>
      <relation type="one" fk-name="DATA_OBTYPE_ATTR" rel-entity-name="DataResourceType">
        <key-map field-name="dataResourceTypeId"/>
      </relation>
      <relation type="many" rel-entity-name="DataResourceAttribute">
        <key-map field-name="attrName"/>
      </relation>
      <relation type="many" rel-entity-name="DataResource">
        <key-map field-name="dataResourceTypeId"/>
      </relation>
    </entity>
    <entity entity-name="DataTemplateType"
            package-name="org.ofbiz.content.data"
            default-resource-name="ContentEntityLabels"
            title="Data Template Type">
      <field name="dataTemplateTypeId" type="id-ne"></field>
      <field name="description" type="description"></field>
      <field name="extension" type="short-varchar"></field>
      <prim-key field="dataTemplateTypeId"/>
    </entity>
    <entity entity-name="ElectronicText"
            package-name="org.ofbiz.content.data"
            title="Electronic Text">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="textData" type="very-long"></field>
      <prim-key field="dataResourceId"/>
      <relation type="one" fk-name="DATA_REC_TEXT" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
    </entity>
    <entity entity-name="FileExtension"
            package-name="org.ofbiz.content.data"
            title="File Extension">
      <field name="fileExtensionId" type="id-long-ne"></field>
      <field name="mimeTypeId" type="id-vlong-ne"></field>
      <prim-key field="fileExtensionId"/>
      <relation type="one" fk-name="FILEEXT_MMTYP" rel-entity-name="MimeType">
        <key-map field-name="mimeTypeId"/>
      </relation>
    </entity>
    <entity entity-name="ImageDataResource"
            package-name="org.ofbiz.content.data"
            title="Image Data Object">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="imageData" type="byte-array"></field>
      <prim-key field="dataResourceId"/>
      <relation type="one" fk-name="DATA_REC_IMAGE" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
    </entity>
    <entity entity-name="MetaDataPredicate"
            package-name="org.ofbiz.content.data"
            default-resource-name="ContentEntityLabels"
            title="Data Meta-Data Predicate">
      <field name="metaDataPredicateId" type="id-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="metaDataPredicateId"/>
    </entity>
    <entity entity-name="MimeType"
            package-name="org.ofbiz.content.data"
            default-resource-name="ContentEntityLabels"
            title="Mime Type">
      <field name="mimeTypeId" type="id-vlong-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="mimeTypeId"/>
    </entity>
    <entity entity-name="MimeTypeHtmlTemplate"
            package-name="org.ofbiz.content.data"
            default-resource-name="ContentEntityLabels"
            title="Mime Text Template">
      <field name="mimeTypeId" type="id-vlong-ne"></field>
      <field name="templateLocation" type="long-varchar"></field>
      <prim-key field="mimeTypeId"/>
      <relation type="one" fk-name="MIMETYPE_TPL_MT" rel-entity-name="MimeType">
          <key-map field-name="mimeTypeId"/>
      </relation>
    </entity>
    <entity entity-name="OtherDataResource"
            package-name="org.ofbiz.content.data"
            title="Other Data Object">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="dataResourceContent" type="byte-array"></field>
      <prim-key field="dataResourceId"/>
      <relation type="one" fk-name="DATA_REC_OTHER" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
    </entity>
    <entity entity-name="VideoDataResource"
            package-name="org.ofbiz.content.data"
            title="Video Data Object">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="videoData" type="byte-array"></field>
      <prim-key field="dataResourceId"/>
      <relation type="one" fk-name="DATA_REC_VIDEO" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
    </entity>
    <!-- SCIPIO: 2017-07-31: new DocumentDataResource -->
    <entity entity-name="DocumentDataResource"
            package-name="org.ofbiz.content.data"
            title="Document Data Object">
      <field name="dataResourceId" type="id-ne"></field>
      <field name="documentData" type="byte-array"></field>
      <prim-key field="dataResourceId"/>
      <relation type="one" fk-name="DATA_REC_DOCUMENT" rel-entity-name="DataResource">
        <key-map field-name="dataResourceId"/>
      </relation>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.content.document -->
  <!-- ========================================================= -->

    <entity entity-name="Document"
            package-name="org.ofbiz.content.document"
            title="Document">
      <field name="documentId" type="id-ne"></field>
      <field name="documentTypeId" type="id"></field>
      <field name="dateCreated" type="date-time"></field>
      <field name="comments" type="comment"></field>
      <field name="documentLocation" type="long-varchar"></field>
      <field name="documentText" type="long-varchar"></field>
      <field name="imageData" type="object"></field>
      <prim-key field="documentId"/>
      <relation type="one" fk-name="DOCUMENT_TO_TYPE" rel-entity-name="DocumentType">
        <key-map field-name="documentTypeId"/>
      </relation>
      <relation type="many" rel-entity-name="DocumentTypeAttr">
        <key-map field-name="documentTypeId"/>
      </relation>
    </entity>
    <entity entity-name="DocumentAttribute"
            package-name="org.ofbiz.content.document"
            title="Document Attribute">
      <field name="documentId" type="id-ne"></field>
      <field name="attrName" type="id-long-ne"></field>
      <field name="attrValue" type="value"></field>
      <field name="attrDescription" type="description"></field>
      <prim-key field="documentId"/>
      <prim-key field="attrName"/>
      <relation type="one" fk-name="DOCUMENT_ATTR" rel-entity-name="Document">
        <key-map field-name="documentId"/>
      </relation>
      <relation type="many" rel-entity-name="DocumentTypeAttr">
        <key-map field-name="attrName"/>
      </relation>
    </entity>
    <entity entity-name="DocumentType"
            package-name="org.ofbiz.content.document"
            default-resource-name="ContentEntityLabels"
            title="Document Type">
      <field name="documentTypeId" type="id-ne"></field>
      <field name="parentTypeId" type="id-ne"></field>
      <field name="hasTable" type="indicator"></field>
      <field name="description" type="description"></field>
      <prim-key field="documentTypeId"/>
      <relation type="one" fk-name="DOC_TYPE_PARENT" title="Parent" rel-entity-name="DocumentType">
        <key-map field-name="parentTypeId" rel-field-name="documentTypeId"/>
      </relation>
    </entity>
    <entity entity-name="DocumentTypeAttr"
            package-name="org.ofbiz.content.document"
            title="Document Type Attribute">
      <field name="documentTypeId" type="id-ne"></field>
      <field name="attrName" type="id-long-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="documentTypeId"/>
      <prim-key field="attrName"/>
      <relation type="one" fk-name="DOC_TYPE_ATTR" rel-entity-name="DocumentType">
        <key-map field-name="documentTypeId"/>
      </relation>
      <relation type="many" rel-entity-name="DocumentAttribute">
        <key-map field-name="attrName"/>
      </relation>
      <relation type="many" rel-entity-name="Document">
        <key-map field-name="documentTypeId"/>
      </relation>
    </entity>
    
  <!-- ========================================================= -->
  <!-- com.ilscipio.scipio.image -->
  <!-- ========================================================= -->
    <entity entity-name="ImageSizePreset" package-name="com.ilscipio.scipio.cms.media"
        title="Image sizes preset" author="Ilscipio GmbH" version="1.0">
        <field name="presetId" type="id-ne"><description>The preset ID, now stored as Content.mediaProfile for associated images (only since 2020-09-21)</description></field>
        <field name="presetName" type="name"></field>
        <field name="parentProfile" type="id"><description>Parent mediaProfile or ImageSizePreset.presetId - used for type checking and specialization (default: IMAGE_MEDIA)</description></field>
        <field name="variantConfigProfile" type="id"><description>Name of another profile to use for base ImageVariantConfig (even if no ImageSize definitions) (TODO)</description></field>
        <field name="variantConfigLocation" type="id"><description>Location of an ImageProperties.xml file (TODO)</description></field>
        <prim-key field="presetId" />
    </entity>

    <!-- WARN: Despite schema, each ImageSizeDimension must be associated to a single ImageSizePreset only
         otherwise image regeneration will not work for data created prior to 2020-09-21. -->
    <entity entity-name="ImageSize" package-name="com.ilscipio.scipio.cms.media"
        title="Image size dimension preset" author="Ilscipio GmbH" version="1.0">
        <field name="presetId" type="id-ne"></field>
        <field name="sizeId" type="id-ne"></field>

        <prim-key field="presetId" />
        <prim-key field="sizeId"/>

        <relation type="one" fk-name="IS_PRESET" rel-entity-name="ImageSizePreset">
            <key-map field-name="presetId"/>
        </relation>
        <relation type="one" fk-name="IS_DIMENSION" rel-entity-name="ImageSizeDimension">
            <key-map field-name="sizeId"/>
        </relation>
    </entity>

    <entity entity-name="ImageSizeDimension" package-name="com.ilscipio.scipio.cms.media"
        title="Image dimensions" author="Ilscipio GmbH" version="1.0">
        <field name="sizeId" type="id-ne"></field>
        <field name="sizeName" type="name"></field>
        <field name="dimensionWidth" type="numeric"></field>
        <field name="dimensionHeight" type="numeric"></field>
        <field name="sequenceNum" type="numeric" not-null="true"/>
        <field name="format" type="name"><description>File format extension, e.g: jpg, webp; see FileExtension entity; default: same as original</description></field>
        <field name="upscaleMode" type="id"><description>(on|off|omit, default: on) What to do when both dimensions are larger than original</description></field>
        <prim-key field="sizeId"/>
    </entity>

    <entity entity-name="ResponsiveImage" package-name="com.ilscipio.scipio.image"
        title="Responsive Image" author="Ilscipio GmbH" version="1.0">
        <field name="contentId" type="id-ne"><description>Meant to be used with parent content</description></field>
        <!-- <field name="viewPortSizeId" type="id-ne"></field> -->
        <field name="srcsetModeEnumId" type="id"><description><![CDATA[
            (12/31/2018): As of now the spec allows device-pixel-ratio and viewport based selection. 
            See https://w3c.github.io/html/semantics-embedded-content.html#embedded-content-introduction
        ]]></description></field>

        <prim-key field="contentId" />
        <!-- <prim-key field="viewPortSizeId"/> -->

        <relation type="many" fk-name="CONTENT_VP" rel-entity-name="Content">
            <key-map field-name="contentId"/>
        </relation>
       <!--  <relation type="one" fk-name="IWP_VW_SZ" rel-entity-name="ImageViewPortSize">
            <key-map field-name="viewPortSizeId"/>
        </relation> -->
        <relation type="one" fk-name="ISD_SRCSET" title="ImgSrcset" rel-entity-name="Enumeration">
            <key-map field-name="srcsetModeEnumId" rel-field-name="enumId"/>
        </relation>
    </entity>

    <entity entity-name="ResponsiveImageVP" package-name="com.ilscipio.scipio.image"
        title="Responsive Image view port size" author="Ilscipio GmbH" version="1.0">
        <description>This is only valid for viewport based selection</description>
        <field name="contentId" type="id-ne"></field>
        <field name="viewPortMediaQuery" type="long-varchar"/>
        <field name="viewPortLength" type="numeric"/>
        <field name="sequenceNum" type="numeric" not-null="true"/>
        <prim-key field="contentId"/>
        <prim-key field="sequenceNum"/>
        <relation type="one" fk-name="RESIMG_C" rel-entity-name="ResponsiveImage">
            <key-map field-name="contentId"/>
        </relation>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.content.preference -->
  <!-- ========================================================= -->

    <entity entity-name="WebPreferenceType"
            package-name="org.ofbiz.content.preference"
            title="Web Preference Type">
      <field name="webPreferenceTypeId" type="id-ne"></field>
      <field name="description" type="description"></field>
      <prim-key field="webPreferenceTypeId"/>
    </entity>
    <entity entity-name="WebUserPreference"
            package-name="org.ofbiz.content.preference"
            title="Web User Preference">
      <field name="userLoginId" type="id-vlong-ne"></field>
      <field name="partyId" type="id-ne"></field>
      <field name="visitId" type="id-ne"><description>To be able to keep preferences for a non loggin in user for the current session</description></field>
      <field name="webPreferenceTypeId" type="id-ne"></field>
      <field name="webPreferenceValue" type="long-varchar"/>
      <prim-key field="userLoginId"/>
      <prim-key field="partyId"/>
      <prim-key field="visitId"/>
      <prim-key field="webPreferenceTypeId"/>
      <relation type="one" fk-name="WEB_PREF_TYPE" rel-entity-name="WebPreferenceType">
        <key-map field-name="webPreferenceTypeId"/>
      </relation>
      <relation type="one" fk-name="WEB_PREF_USER" rel-entity-name="UserLogin">
        <key-map field-name="userLoginId"/>
      </relation>
      <relation type="one" fk-name="WEB_PREF_PARTY" rel-entity-name="Party">
        <key-map field-name="partyId"/>
      </relation>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.content.survey -->
  <!-- ========================================================= -->

    <entity entity-name="Survey"
            package-name="org.ofbiz.content.survey"
            title="Survey">
      <field name="surveyId" type="id-ne"/>
      <field name="surveyName" type="name"/>
      <field name="description" type="description"/>
      <field name="comments" type="comment"/>
      <field name="submitCaption" type="short-varchar"/>
      <field name="responseService" type="long-varchar"/>
      <field name="isAnonymous" type="indicator"><description>Allow response to the survey without login?</description></field>
      <field name="allowMultiple" type="indicator"><description>Allow multiple responses to this survey (if Y), or just a single answer (if N)?</description></field>
      <field name="allowUpdate" type="indicator"><description>Allow change to responses?</description></field>
      <field name="acroFormContentId" type="id-ne"><description>Points to PDF with AcroForm</description></field>
      <field name="showOnInvoice" type="indicator"><description>SCIPIO: Show brief survey results on invoices and/or in shopping cart (if Y; default N). Added 2019-03-14.</description></field>
      <prim-key field="surveyId"/>
    </entity>
    <entity entity-name="SurveyApplType"
            package-name="org.ofbiz.content.survey"
            default-resource-name="ContentEntityLabels"
            title="Survey Application Type">
      <field name="surveyApplTypeId" type="id-ne"/>
      <field name="description" type="description"/>
      <prim-key field="surveyApplTypeId"/>
    </entity>
    <entity entity-name="SurveyMultiResp"
        package-name="org.ofbiz.content.survey"
        title="Survey Multi-Response Group">
        <field name="surveyId" type="id-ne"/>
        <field name="surveyMultiRespId" type="id-ne"/>
        <field name="multiRespTitle" type="name"/>
        <prim-key field="surveyId"/>
        <prim-key field="surveyMultiRespId"/>
        <relation type="one" fk-name="SRVYMRSP_SRVY" rel-entity-name="Survey">
            <key-map field-name="surveyId"/>
        </relation>
    </entity>
    <entity entity-name="SurveyMultiRespColumn"
        package-name="org.ofbiz.content.survey"
        title="Survey Multi-Response Group Column/Category">
        <field name="surveyId" type="id-ne"/>
        <field name="surveyMultiRespId" type="id-ne"/>
        <field name="surveyMultiRespColId" type="id-ne"/>
        <field name="columnTitle" type="name"/>
        <field name="sequenceNum" type="numeric"/>
        <prim-key field="surveyId"/>
        <prim-key field="surveyMultiRespId"/>
        <prim-key field="surveyMultiRespColId"/>
        <relation type="one" fk-name="SRVYMRSPCL_SMRESP" rel-entity-name="SurveyMultiResp">
            <key-map field-name="surveyId"/>
            <key-map field-name="surveyMultiRespId"/>
        </relation>
    </entity>
    <entity entity-name="SurveyPage"
        package-name="org.ofbiz.content.survey"
        title="Survey Page Type">
        <field name="surveyId" type="id-ne"/>
        <field name="surveyPageSeqId" type="id-ne"/>
        <field name="pageName" type="name"/>
        <field name="sequenceNum" type="numeric"/>
        <prim-key field="surveyId"/>
        <prim-key field="surveyPageSeqId"/>
        <relation type="one" fk-name="SRVYPAGE_SRVY" rel-entity-name="Survey">
            <key-map field-name="surveyId"/>
        </relation>
    </entity>
    <entity entity-name="SurveyQuestion"
            package-name="org.ofbiz.content.survey"
            title="Survey Question">
      <field name="surveyQuestionId" type="id-ne"/>
      <field name="surveyQuestionCategoryId" type="id-ne"/>
      <field name="surveyQuestionTypeId" type="id-ne"/>
      <field name="description" type="description"/>
      <field name="question" type="very-long"/>
      <field name="hint" type="very-long"/>
      <field name="enumTypeId" type="id"></field>
      <field name="geoId" type="id"></field>
      <field name="formatString" type="value"></field>
      <prim-key field="surveyQuestionId"/>
      <relation type="one" fk-name="SRVYQST_SRVYQTP" rel-entity-name="SurveyQuestionType">
        <key-map field-name="surveyQuestionTypeId"/>
      </relation>
      <relation type="one" fk-name="SRVYQST_SRVYQTCT" rel-entity-name="SurveyQuestionCategory">
        <key-map field-name="surveyQuestionCategoryId"/>
      </relation>
      <relation type="one" fk-name="SRVYQST_GEO" rel-entity-name="Geo">
        <key-map field-name="geoId"/>
      </relation>
      <relation type="many" fk-name="SRVYQST_ENUM" rel-entity-name="Enumeration">
        <key-map field-name="enumTypeId"/>
      </relation>
    </entity>
    <view-entity entity-name="SurveyQuestionAndAppl"
            package-name="org.ofbiz.content.survey"
            title="Survey Question And Application View">
      <member-entity entity-alias="SQ" entity-name="SurveyQuestion"/>
      <member-entity entity-alias="SA" entity-name="SurveyQuestionAppl"/>
      <alias-all entity-alias="SQ"/>
      <alias-all entity-alias="SA"/>
      <view-link entity-alias="SQ" rel-entity-alias="SA">
        <key-map field-name="surveyQuestionId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="SurveyQuestionCategory">
        <key-map field-name="surveyQuestionCategoryId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="SurveyQuestionType">
        <key-map field-name="surveyQuestionTypeId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="Survey">
        <key-map field-name="surveyId"/>
      </relation>
      <relation type="many" rel-entity-name="SurveyQuestionOption">
        <key-map field-name="surveyQuestionId"/>
      </relation>
      <relation type="many" rel-entity-name="Enumeration">
        <key-map field-name="enumTypeId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="Geo">
        <key-map field-name="geoId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="SurveyPage">
        <key-map field-name="surveyId"/>
        <key-map field-name="surveyPageSeqId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="SurveyMultiResp">
        <key-map field-name="surveyId"/>
        <key-map field-name="surveyMultiRespId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="SurveyMultiRespColumn">
        <key-map field-name="surveyId"/>
        <key-map field-name="surveyMultiRespId"/>
        <key-map field-name="surveyMultiRespColId"/>
      </relation>
    </view-entity>
    <entity entity-name="SurveyQuestionAppl"
            package-name="org.ofbiz.content.survey"
            title="Survey Question Application">
      <field name="surveyId" type="id-ne"/>
      <field name="surveyQuestionId" type="id-ne"/>
      <field name="fromDate" type="date-time"/>
      <field name="thruDate" type="date-time"/>
      <field name="surveyPageSeqId" type="id-ne"/>
      <field name="surveyMultiRespId" type="id-ne"/>
      <field name="surveyMultiRespColId" type="id"><description>Used to optionally associate this question to a specific column in the Multi-Response set; with this you can associate a single question to each cell in the question/column grid; this is useful for AcroForm round trips where the target PDF needs a question associated with each cell, or even the same question applied with different externalFieldRef values.</description></field>
      <field name="requiredField" type="indicator"/>
      <field name="sequenceNum" type="numeric"/>
      <field name="externalFieldRef" type="long-varchar"><description>External field ID/reference; for AcroForms used to track the field ID</description></field>
      <field name="withSurveyQuestionId" type="id"><description>These two with* fields are used to specify that this question should only appear if the with option has been selected for the with question.</description></field>
      <field name="withSurveyOptionSeqId" type="id"/>
      <prim-key field="surveyId"/>
      <prim-key field="surveyQuestionId"/>
      <prim-key field="fromDate"/>
      <relation type="one" fk-name="SRVYQSTAPL_SRVY" rel-entity-name="Survey">
        <key-map field-name="surveyId"/>
      </relation>
      <relation type="one" fk-name="SRVYQSTAPL_SRVYQ" rel-entity-name="SurveyQuestion">
        <key-map field-name="surveyQuestionId"/>
      </relation>
      <relation type="one" fk-name="SRVYQSTAPL_SVQO" title="With" rel-entity-name="SurveyQuestionOption">
        <key-map field-name="withSurveyQuestionId" rel-field-name="surveyQuestionId"/>
        <key-map field-name="withSurveyOptionSeqId" rel-field-name="surveyOptionSeqId"/>
      </relation>
        <relation type="one-nofk" rel-entity-name="SurveyPage">
            <description>This does not have a foreign key because the surveyId will never be null, and we want the surveyPageSeqId to be optional.</description>
            <key-map field-name="surveyId"/>
            <key-map field-name="surveyPageSeqId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="SurveyMultiResp">
            <description>This does not have a foreign key because the surveyId will never be null, and we want the surveyMultiRespId to be optional.</description>
            <key-map field-name="surveyId"/>
            <key-map field-name="surveyMultiRespId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="SurveyMultiRespColumn">
            <key-map field-name="surveyId"/>
            <key-map field-name="surveyMultiRespId"/>
            <key-map field-name="surveyMultiRespColId"/>
        </relation>
    </entity>
    <entity entity-name="SurveyQuestionCategory"
            package-name="org.ofbiz.content.survey"
            title="Survey Question Category">
      <field name="surveyQuestionCategoryId" type="id-ne"/>
      <field name="parentCategoryId" type="id"/>
      <field name="description" type="description"/>
      <prim-key field="surveyQuestionCategoryId"/>
      <relation type="one" fk-name="SRVYQSTCT_PAR" title="Parent" rel-entity-name="SurveyQuestionCategory">
        <key-map field-name="parentCategoryId" rel-field-name="surveyQuestionCategoryId"/>
      </relation>
    </entity>
    <entity entity-name="SurveyQuestionOption"
            package-name="org.ofbiz.content.survey"
            title="Survey Question Option">
      <field name="surveyQuestionId" type="id-ne"/>
      <field name="surveyOptionSeqId" type="id-ne"/>
      <field name="description" type="description"/>
      <field name="sequenceNum" type="numeric"/>
      <field name="amountBase" type="currency-amount"/>
      <field name="amountBaseUomId" type="id"/>
      <field name="weightFactor" type="floating-point"/>
      <field name="duration" type="numeric"/>
      <field name="durationUomId" type="id"/>
      <prim-key field="surveyQuestionId"/>
      <prim-key field="surveyOptionSeqId"/>
      <relation type="one" fk-name="SRVYQSTOP_SRVYQ" rel-entity-name="SurveyQuestion">
        <key-map field-name="surveyQuestionId"/>
      </relation>
    </entity>
    <entity entity-name="SurveyQuestionType"
            package-name="org.ofbiz.content.survey"
            default-resource-name="ContentEntityLabels"
            title="Survey Question Type">
      <field name="surveyQuestionTypeId" type="id-ne"/>
      <field name="description" type="description"/>
      <prim-key field="surveyQuestionTypeId"/>
    </entity>
    <entity entity-name="SurveyResponse"
            package-name="org.ofbiz.content.survey"
            title="Survey Response">
      <field name="surveyResponseId" type="id-ne"></field>
      <field name="surveyId" type="id-ne"></field>
      <field name="partyId" type="id"></field>
      <field name="responseDate" type="date-time"></field>
      <field name="lastModifiedDate" type="date-time"></field>
      <field name="referenceId" type="id-vlong"></field>
      <field name="generalFeedback" type="very-long"></field>
      <field name="orderId" type="id"></field>
      <field name="orderItemSeqId" type="id"></field>
      <field name="statusId" type="id"></field>
      <prim-key field="surveyResponseId"/>
      <relation type="one-nofk" rel-entity-name="Party">
        <key-map field-name="partyId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="OrderItem">
        <key-map field-name="orderId"/>
        <key-map field-name="orderItemSeqId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="OrderHeader">
        <key-map field-name="orderId"/>
      </relation>
      <relation type="one" fk-name="SRVYRSP_SRVY" rel-entity-name="Survey">
        <key-map field-name="surveyId"/>
      </relation>
      <relation type="one" fk-name="SRVYRSP_STTS" rel-entity-name="StatusItem">
        <key-map field-name="statusId"/>
      </relation>
    </entity>
    <view-entity entity-name="SurveyResponseAndAnswer"
            package-name="org.ofbiz.content.survey"
            title="Survey Response And Answer View">
      <member-entity entity-alias="SR" entity-name="SurveyResponse"/>
      <member-entity entity-alias="SRA" entity-name="SurveyResponseAnswer"/>
      <alias-all entity-alias="SR"/>
      <alias-all entity-alias="SRA"/>
      <view-link entity-alias="SR" rel-entity-alias="SRA">
        <key-map field-name="surveyResponseId"/>
      </view-link>
      <relation type="one-nofk" rel-entity-name="Survey">
        <key-map field-name="surveyId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="SurveyQuestion">
        <key-map field-name="surveyQuestionId"/>
      </relation>
      <relation type="one-nofk" rel-entity-name="SurveyQuestionOption">
        <key-map field-name="surveyQuestionId"/>
        <key-map field-name="surveyOptionSeqId"/>
      </relation>
        <relation type="one-nofk" rel-entity-name="SurveyResponse">
            <key-map field-name="surveyResponseId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="Content">
            <key-map field-name="contentId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="SurveyMultiRespColumn">
            <key-map field-name="surveyId"/>
            <key-map field-name="surveyMultiRespId"/>
            <key-map field-name="surveyMultiRespColId"/>
        </relation>
    </view-entity>
    <entity entity-name="SurveyResponseAnswer"
            package-name="org.ofbiz.content.survey"
            title="Survey Response Answer">
      <field name="surveyResponseId" type="id-ne"></field>
      <field name="surveyQuestionId" type="id-ne"></field>
      <field name="surveyMultiRespColId" type="id-ne"><description>This is needed to support multiple responses for different MultiResp Columns; if not part of a MultiResp will be _NA_</description></field>
      <field name="surveyMultiRespId" type="id-ne"><description>This is not part of the primary key, but should be populated so that the SurveyMultiRespColumn can be more easily looked up.</description></field>
      <field name="booleanResponse" type="indicator"></field>
      <field name="currencyResponse" type="currency-amount"></field>
      <field name="floatResponse" type="floating-point"></field>
      <field name="numericResponse" type="numeric"></field>
      <field name="textResponse" type="very-long"></field>
      <field name="surveyOptionSeqId" type="id"></field>
      <field name="contentId" type="id"></field>
      <field name="answeredDate" type="date-time"></field>
      <field name="amountBase" type="currency-amount"/>
      <field name="amountBaseUomId" type="id"/>
      <field name="weightFactor" type="floating-point"/>
      <field name="duration" type="numeric"/>
      <field name="durationUomId" type="id"/>
      <field name="sequenceNum" type="numeric"/>
      <prim-key field="surveyResponseId"/>
      <prim-key field="surveyQuestionId"/>
      <prim-key field="surveyMultiRespColId"/>
      <relation type="one" fk-name="SRVYRSPA_SVRSP" rel-entity-name="SurveyResponse">
        <key-map field-name="surveyResponseId"/>
      </relation>
      <relation type="one" fk-name="SRVYRSPA_SVQU" rel-entity-name="SurveyQuestion">
        <key-map field-name="surveyQuestionId"/>
      </relation>
      <relation type="one" fk-name="SRVYRSPA_OPT" rel-entity-name="SurveyQuestionOption">
        <key-map field-name="surveyQuestionId"/>
        <key-map field-name="surveyOptionSeqId"/>
      </relation>
      <relation type="one" fk-name="SRVYRSPA_CONT" rel-entity-name="Content">
        <key-map field-name="contentId"/>
      </relation>
    </entity>
    <entity entity-name="SurveyTrigger"
            package-name="org.ofbiz.content.survey"
            title="Survey Trigger">
      <field name="surveyId" type="id-ne"/>
      <field name="surveyApplTypeId" type="id-ne"/>
      <field name="fromDate" type="date-time"/>
      <field name="thruDate" type="date-time"/>
      <prim-key field="surveyId"/>
      <prim-key field="surveyApplTypeId"/>
      <prim-key field="fromDate"/>
      <relation type="one" fk-name="SRVYTRG_SRVY" rel-entity-name="Survey">
        <key-map field-name="surveyId"/>
      </relation>
      <relation type="one" fk-name="SRVYTRG_SRVYAPT" rel-entity-name="SurveyApplType">
        <key-map field-name="surveyApplTypeId"/>
      </relation>
    </entity>

  <!-- ========================================================= -->
  <!-- org.ofbiz.content.website -->
  <!-- ========================================================= -->

    <extend-entity entity-name="WebPage">
        <field name="contentId" type="id-ne"></field>
        <relation type="one" fk-name="WEB_PAGE_CONTENT" rel-entity-name="Content">
            <key-map field-name="contentId"/>
        </relation>
    </extend-entity>
    <entity entity-name="WebSiteContent"
        package-name="org.ofbiz.content.website"
        title="Web Site Content Associations">
        <field name="webSiteId" type="id-ne"></field>
        <field name="contentId" type="id-ne"></field>
        <field name="webSiteContentTypeId" type="id-ne"></field>
        <field name="fromDate" type="date-time"></field>
        <field name="thruDate" type="date-time"></field>
        <prim-key field="webSiteId"/>
        <prim-key field="contentId"/>
        <prim-key field="webSiteContentTypeId"/>
        <prim-key field="fromDate"/>
        <relation type="one" fk-name="WSCTNT_WEBSITE" rel-entity-name="WebSite">
            <key-map field-name="webSiteId"/>
        </relation>
        <relation type="one" fk-name="WSCTNT_CONTENT" rel-entity-name="Content">
            <key-map field-name="contentId"/>
        </relation>
        <relation type="one" fk-name="WSCTNT_WSCTTYPE" rel-entity-name="WebSiteContentType">
            <key-map field-name="webSiteContentTypeId"/>
        </relation>
    </entity>
    <view-entity entity-name="WebSiteAndContent"
        package-name="org.ofbiz.content.website"
        title="Web Sites by contentId">
      <member-entity entity-alias="WS" entity-name="WebSite"/>
      <member-entity entity-alias="WSCT" entity-name="WebSiteContent"/>
      <alias-all entity-alias="WS"/>
      <alias-all entity-alias="WSCT">
        <exclude field="webSiteId"/>
      </alias-all>
      <view-link entity-alias="WS" rel-entity-alias="WSCT">
        <key-map field-name="webSiteId"/>
      </view-link>
    </view-entity>
    <entity entity-name="WebSiteContentType"
        package-name="org.ofbiz.content.website"
        default-resource-name="ContentEntityLabels"
        title="Web Site Content Type">
        <field name="webSiteContentTypeId" type="id-ne"></field>
        <field name="description" type="description"></field>
        <field name="parentTypeId" type="id-ne"></field>
        <field name="hasTable" type="indicator"></field>
        <prim-key field="webSiteContentTypeId"/>
        <relation type="one" fk-name="WSCT_TYPE_PARENT" title="Parent" rel-entity-name="WebSiteContentType">
            <key-map field-name="parentTypeId" rel-field-name="webSiteContentTypeId"/>
        </relation>
    </entity>
    <entity entity-name="WebSitePathAlias"
        package-name="org.ofbiz.content.website"
        title="Web Site Path Alias">
        <field name="webSiteId" type="id-ne"></field>
        <field name="pathAlias" type="id-vlong"></field>
        <field name="aliasTo" type="long-varchar"></field>
        <field name="contentId" type="id"></field>
        <field name="mapKey" type="name"></field>
        <prim-key field="webSiteId"/>
        <prim-key field="pathAlias"/>
        <relation type="one" fk-name="WSPATH_WEBSITE" rel-entity-name="WebSite">
            <key-map field-name="webSiteId"/>
        </relation>
        <relation type="one" fk-name="WSPATH_CONTENT" rel-entity-name="Content">
            <key-map field-name="contentId"/>
        </relation>
    </entity>
    <entity entity-name="WebSitePublishPoint"
        package-name="org.ofbiz.content.website"
        title="Web Site Publish Point">
        <field name="contentId" type="id-ne"></field>
        <field name="templateTitle" type="long-varchar"></field>
        <field name="styleSheetFile" type="long-varchar"></field>
        <field name="logo" type="long-varchar"></field>
        <field name="medallionLogo" type="long-varchar"></field>
        <field name="lineLogo" type="long-varchar"></field>
        <field name="leftBarId" type="id"></field>
        <field name="rightBarId" type="id"></field>
        <field name="contentDept" type="id"></field>
        <field name="aboutContentId" type="id"></field>
        <prim-key field="contentId"/>
        <relation type="one" fk-name="WBSTPP_CONTENT" rel-entity-name="Content">
            <key-map field-name="contentId"/>
        </relation>
    </entity>
    <entity entity-name="WebSiteRole" package-name="org.ofbiz.party.party" title="WebSite Role Association">
        <field name="partyId" type="id-ne"></field>
        <field name="roleTypeId" type="id-ne"></field>
        <field name="webSiteId" type="id-ne"></field>
        <field name="fromDate" type="date-time"></field>
        <field name="thruDate" type="date-time"></field>
        <field name="sequenceNum" type="numeric"></field>
        <prim-key field="partyId"/>
        <prim-key field="roleTypeId"/>
        <prim-key field="webSiteId"/>
        <prim-key field="fromDate"/>
        <relation type="one-nofk" rel-entity-name="Party">
            <key-map field-name="partyId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="RoleType">
            <key-map field-name="roleTypeId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="Person">
            <key-map field-name="partyId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="PartyGroup">
            <key-map field-name="partyId"/>
        </relation>
        <relation type="one" fk-name="WSRLE_PTYRLE" rel-entity-name="PartyRole">
            <key-map field-name="partyId"/>
            <key-map field-name="roleTypeId"/>
        </relation>
        <relation type="one" fk-name="WSRLE_WSITE" rel-entity-name="WebSite">
            <key-map field-name="webSiteId"/>
        </relation>
    </entity>
    <view-entity entity-name="ContentAssocAndContentPurpose"
            package-name="org.ofbiz.content.compdoc"
            title="ContentAssoc and ContentPurpose View">
        <member-entity entity-alias="CNTA" entity-name="ContentAssoc"/>
        <member-entity entity-alias="CNTP" entity-name="ContentPurpose"/>
        <alias entity-alias="CNTA" name="contentId"/>
        <alias entity-alias="CNTA" name="contentIdTo"/>
        <alias entity-alias="CNTA" name="contentAssocTypeId"/>
        <alias entity-alias="CNTA" name="fromDate"/>
        <alias entity-alias="CNTA" name="thruDate"/>
        <alias entity-alias="CNTA" name="dataSourceId"/>
        <alias entity-alias="CNTA" name="mapKey"/>
        <alias entity-alias="CNTP" name="contentPurposeTypeId"/>
        <alias entity-alias="CNTP" name="sequenceNum"/>
        <view-link entity-alias="CNTA" rel-entity-alias="CNTP">
            <key-map field-name="contentIdTo" rel-field-name="contentId"/>
        </view-link>
    </view-entity>

    <!-- defined as an extend and not directly in common to avoid dependencies between common and content -->
    <extend-entity entity-name="PortalPage">
        <field name="helpContentId" type="id"><description>Used to give contentId which will be shown when help on this page will be called</description></field>
        <relation type="one" fk-name="PORTPAL_HELP_CONT" rel-entity-name="Content">
            <key-map field-name="helpContentId" rel-field-name="contentId"/>
        </relation>
    </extend-entity>
    
    <entity entity-name="ContentKeyword" package-name="org.ofbiz.content.content" title="Content Keyword" never-cache="true">
      <field name="contentId" type="id-ne"></field>
      <field name="keyword" type="short-varchar"></field>
      <field name="relevancyWeight" type="numeric"></field>
      <prim-key field="contentId"/>
      <prim-key field="keyword"/>
      <relation type="one" fk-name="CNT_KWD_CNT" rel-entity-name="Content">
        <key-map field-name="contentId"/>
      </relation>
      <index name="CNT_KWD_KWD">
        <index-field name="keyword"/>
      </index>
    </entity>
    <entity entity-name="ContentSearchConstraint" package-name="org.ofbiz.content.content" never-cache="true" title="Content Search Result Constraint">
      <field name="contentSearchResultId" type="id-ne"></field>
      <field name="constraintSeqId" type="id-ne"></field>
      <field name="constraintName" type="long-varchar"></field>
      <field name="infoString" type="long-varchar"></field>
      <field name="includeSubCategories" type="indicator"></field>
      <field name="isAnd" type="indicator"></field>
      <field name="anyPrefix" type="indicator"></field>
      <field name="anySuffix" type="indicator"></field>
      <field name="removeStems" type="indicator"></field>
      <field name="lowValue" type="short-varchar"></field>
      <field name="highValue" type="short-varchar"></field>
      <prim-key field="contentSearchResultId"/>
      <prim-key field="constraintSeqId"/>
      <relation type="one" fk-name="CNT_SCHRSI_RES" rel-entity-name="ContentSearchResult">
        <key-map field-name="contentSearchResultId"/>
      </relation>
    </entity>
    <entity entity-name="ContentSearchResult"
            package-name="org.ofbiz.content.content"
            never-cache="true"
            title="Content Search Result">
      <field name="contentSearchResultId" type="id-ne"></field>
      <field name="visitId" type="id"></field>
      <field name="orderByName" type="long-varchar"></field>
      <field name="isAscending" type="indicator"></field>
      <field name="numResults" type="numeric"></field>
      <field name="secondsTotal" type="floating-point"></field>
      <field name="searchDate" type="date-time"></field>
      <prim-key field="contentSearchResultId"/>
    </entity>
    
    <entity entity-name="WebAnalyticsConfig"
            package-name="org.ofbiz.content.website"
            title="Web Analytics Configuration">
        <field name="webSiteId" type="id-ne"></field>
        <field name="webAnalyticsTypeId" type="id-ne"></field>
        <field name="webAnalyticsCode" type="very-long"><description>copy in here the analitics javascript code without the beginning- and end&lt;script&gt; tags</description></field>
        <prim-key field="webSiteId"/>
        <prim-key field="webAnalyticsTypeId"/>
        <relation type="one-nofk" rel-entity-name="WebAnalyticsType">
          <key-map field-name="webAnalyticsTypeId"/>
        </relation>
        <relation type="one-nofk" rel-entity-name="WebSite">
            <key-map field-name="webSiteId"/>
        </relation>
    </entity>

    <entity entity-name="WebAnalyticsType" package-name="org.ofbiz.content.website"
        title="Web Analytics Type">
        <field name="webAnalyticsTypeId" type="id-ne"></field>
        <field name="parentTypeId" type="id"></field>
        <field name="hasTable" type="indicator"></field>
        <field name="description" type="description"></field>
        <prim-key field="webAnalyticsTypeId"/>
        <relation type="one" fk-name="WANA_TYP_PARENT" title="Parent" rel-entity-name="WebAnalyticsType">
            <key-map field-name="parentTypeId" rel-field-name="webAnalyticsTypeId"/>
        </relation>
    </entity>
</entitymodel>