<owb:definition xmlns:owb="http://www.oracle.com/owb/">

    <PrimitiveType 
        persistent="true"
        name="String"
        Comparator="PrimitiveValueComparator"
        Formator="StringFormator"
        UOID="82E322B741582E5BE034080020F013C0" 
        LogicalName="String"
        DefaultValueString="">        
    </PrimitiveType>

    <PrimitiveType 
        persistent="true" 
        name="Integer"
        Comparator="PrimitiveValueComparator"
        Formator="IntegerFormator"
        UOID="82E322B741592E5BE034080020F013C0" 
        LogicalName="Integer"
        DefaultValueString="0">        
    </PrimitiveType>

    <PrimitiveType 
        persistent="true"
        name="Long"
        Comparator="PrimitiveValueComparator"
        Formator="LongFormator"
        UOID="82E322B741752E5BE034080020F013C0" 
        LogicalName="Long"
        DefaultValueString="0">        
    </PrimitiveType>

    <PrimitiveType 
        persistent="true"
        name="Float"
        Comparator="PrimitiveValueComparator"
        Formator="FloatFormator"
        UOID="82E322B741762E5BE034080020F013C0" 
        LogicalName="Float"
        DefaultValueString="0">        
    </PrimitiveType>

    <PrimitiveType 
        persistent="true"
        name="Double"
        Comparator="PrimitiveValueComparator"
        Formator="DoubleFormator"
        UOID="82E322B741772E5BE034080020F013C0" 
        LogicalName="Double"
        DefaultValueString="0">        
    </PrimitiveType>

    <PrimitiveType 
        persistent="true"
        name="Timestamp"
        Comparator="PrimitiveValueComparator"
        Formator="TimestampFormator"
        UOID="82E322B741782E5BE034080020F013C0" 
        LogicalName="Timestamp"
        DefaultValueString="1970-01-01 00:00:00.000000000">        
    </PrimitiveType>

    <PrimitiveType 
        persistent="true"
        name="Date"
        Comparator="PrimitiveValueComparator"
        Formator="DateFormator"
        UOID="82E322B7415A2E5BE034080020F013C0" 
        LogicalName="Date"
        DefaultValueString="1970-01-01">
    </PrimitiveType>

    <PrimitiveType 
        persistent="true"
        name="Boolean"
        Comparator="PrimitiveValueComparator"
        Formator="BooleanFormator"
        UOID="82E322B7415B2E5BE034080020F013C0" 
        LogicalName="Boolean"
        DefaultValueString="false">
    </PrimitiveType>
 
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.PropertyType"
        abstract="false"
        stereotype="2"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.extended.PropertyOwner"
        abstract="true"
        stereotype="0"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.DefinitionElement"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.extended.PropertyOwner"/>
    
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.domain.WBAbstractType"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>
    
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.domain.WBDomain"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.domain.WBAbstractType"/>
    
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.domain.WBScalarType"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.domain.WBAbstractType"/>
    
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.domain.WBPrimitiveType"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.domain.WBScalarType"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.domain.WBCollectionType"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.domain.WBAbstractType"/>
    
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.domain.WBArrayType"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.domain.WBCollectionType"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.domain.WBRange"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>
    
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.AssociationDefinition"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.ClassInheritanceDefinition"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.ClassUsageDefinition"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.ComponentDefinition"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.InterestSet"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.InterestUsage"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.InterestingObject"
        abstract="true"
        stereotype="0"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.PropertyDefinition"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.PropertyGroupOwner"
        abstract="true"
        stereotype="0"/>
    
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.PropertyGroupDefinition"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement,oracle.wh.repos.sdk.metaModel.PropertyGroupOwner"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.ClassDefinition"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.domain.WBScalarType,oracle.wh.repos.sdk.metaModel.PropertyGroupOwner"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.PropertySetDefinition"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.PropertyUsageDefinition"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.PropertyDefinition"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.metaModel.RoleDefinition"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.metaModel.DefinitionElement"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.extended.WBProperty"
        abstract="true"
        stereotype="0"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.extended.WBCollectionProperty"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.extended.WBProperty"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.extended.WBExtensibleProperty"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.extended.WBCollectionProperty"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.extended.WBScalarProperty"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.extended.WBProperty"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.extended.WBPrimitiveProperty"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.extended.WBScalarProperty"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.extended.WBArrayProperty"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.extended.WBCollectionProperty"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.sdk.extended.WBReferenceArrayProperty"
        abstract="true"
        stereotype="0"
        extends="oracle.wh.repos.sdk.extended.WBArrayProperty"/>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        abstract="true"
        stereotype="2"
        implements="oracle.wh.repos.sdk.metaModel.DefinitionElement">
        <PropertyDefinition
            name="LOGICAL_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="LogicalName"/>
        <PropertyDefinition
            name="PHYSICAL_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="PhysicalName"/>
        <PropertyDefinition
            name="NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="Name"/>
        <PropertyDefinition
            name="CUSTOMER_DELETABLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="CustomerDeletable"/>
        <PropertyDefinition
            name="CUSTOMER_RENAMABLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="CustomerRenamable"/>
        <PropertyDefinition
            name="UOID"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="UOID"/>
        <PropertyDefinition
            name="SEEDED"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Seeded"/>
        <PropertyDefinition
            name="EDITABLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Editable"/>
        <PropertyDefinition
            name="RENAMABLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Renamable"/>
        <PropertyDefinition
            name="DELETABLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Deletable"/>
        <PropertyDefinition
            name="DESCRIPTION"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="Description"/>
        <PropertyDefinition
            name="PERSISTENT"
            type="BooleanType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="Persistent"/>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.domain.WBAbstractTypeImpl"
        abstract="true"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.domain.WBAbstractType"
        >
        <PropertyDefinition
            name="COMPARATOR"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="Comparator"/>       
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.domain.WBDomainImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.domain.WBAbstractTypeImpl"
        implements="oracle.wh.repos.sdk.domain.WBDomain">
        <PropertyDefinition
            name="BASE_TYPE_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="BaseTypeName"/>
        <PropertyDefinition
            name="DATA_TYPE"
            type="getType('oracle.wh.repos.sdk.domain.WBAbstractType')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="DataType"/>
        <PropertyDefinition
            name="VALUE_INTERPRETER"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="ValueInterpreter"/>
        <PropertyDefinition
            name="CHOOSER"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="Chooser"/>        
        <PropertyDefinition
            name="CHOICES"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="Choices"/>
        <PropertyDefinition
            name="DEFAULT_VALUE_STRING"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="DefaultValueString"/>
        <PropertyDefinition
            name="MAX_LENGTH"
            type="integerType"
            PropertyType="CorePropertyType"
            DefinitionKey="MaxLength"/>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="DATA_TYPE"/>            
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="BASE_TYPE_NAME"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="VALUE_INTERPRETER"/>
            <PropertyUsageDefinition name="CHOOSER"/>
            <PropertyUsageDefinition name="CHOICES"/>
            <PropertyUsageDefinition name="DEFAULT_VALUE_STRING"/>
            <PropertyUsageDefinition name="MAX_LENGTH"/>
            <PropertyUsageDefinition name="BASE_TYPE_NAME"/>
        </PropertySetDefinition>

    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.domain.WBScalarTypeImpl"
        abstract="true"
        stereotype="2"
        extends="oracle.wh.repos.impl.domain.WBAbstractTypeImpl"
        implements="oracle.wh.repos.sdk.domain.WBScalarType">
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.domain.WBPrimitiveTypeImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.domain.WBScalarTypeImpl"
        implements="oracle.wh.repos.sdk.domain.WBPrimitiveType">
        <PropertyDefinition
            name="FORMATOR"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="Formator"/>
        <PropertyDefinition
            name="DEFAULT_VALUE_STRING"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="DefaultValueString"/>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="NAME"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="DEFAULT_VALUE_STRING"/>
            <PropertyUsageDefinition name="FORMATOR"/>
        </PropertySetDefinition>
    </ClassDefinition>
    
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.domain.WBCollectionTypeImpl"
        abstract="true"
        stereotype="2"
        extends="oracle.wh.repos.impl.domain.WBAbstractTypeImpl"
        implements="oracle.wh.repos.sdk.domain.WBCollectionType">
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.domain.WBArrayTypeImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.domain.WBCollectionTypeImpl"
        implements="oracle.wh.repos.sdk.domain.WBArrayType">
        <PropertyDefinition
            name="ELEMENT_TYPE_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ElementTypeName"/>
        <PropertyDefinition
            name="BASE_ELEMENT_TYPE"
            type="getType('oracle.wh.repos.sdk.domain.WBAbstractType')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="BaseElementType"/>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="BASE_ELEMENT_TYPE"/>            
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="ELEMENT_TYPE_NAME"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="ELEMENT_TYPE_NAME"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.domain.WBRangeImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.domain.WBRange">
        <PropertyDefinition
            name="MIN_VALUE_STRING"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="MinValueString"/>
        <PropertyDefinition
            name="MAX_VALUE_STRING"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="MaxValueString"/>
        <PropertyDefinition
            name="MIN_VALUE_INCLUSIVE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="MinValueInclusive"/>
        <PropertyDefinition
            name="MAX_VALUE_INCLUSIVE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="MaxValueInclusive"/>
        <PropertyDefinition
            name="DOMAIN"
            type="getType('oracle.wh.repos.sdk.domain.WBDomain')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="Domain">   
            <PrimitiveProperty persistent="true" name="IS_PARENT_ROLE"
                type="BooleanType" ValueByString="true"/>
        </PropertyDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="DOMAIN"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="MIN_VALUE_STRING"/>
            <PropertyUsageDefinition name="MAX_VALUE_STRING"/>
            <PropertyUsageDefinition name="MIN_VALUE_INCLUSIVE"/>
            <PropertyUsageDefinition name="MAX_VALUE_INCLUSIVE"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.extended.WBPropertyImpl"
        abstract="true"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.extended.WBProperty">
        <PropertyDefinition
            name="HAS_POSITION"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="HasPosition"/>
        <PropertyDefinition
            name="POSITION"
            type="integerType"
            PropertyType="CorePropertyType"
            DefinitionKey="Position"/>
        <PropertyDefinition
            name="OWNER"
            type="getType('oracle.wh.repos.sdk.extended.PropertyOwner')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="Owner">
            <PrimitiveProperty persistent="true" name="IS_PARENT_ROLE"
                type="BooleanType" ValueByString="true"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="TYPE"
            type="getType('oracle.wh.repos.sdk.domain.WBAbstractType')"
            PropertyType="CorePropertyType"
            DefinitionKey="Type"/>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.extended.WBScalarPropertyImpl"
        abstract="true"
        stereotype="2"
        extends="oracle.wh.repos.impl.extended.WBPropertyImpl"
        implements="oracle.wh.repos.sdk.extended.WBScalarProperty">
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.extended.WBCollectionPropertyImpl"
        abstract="true"
        stereotype="2"
        extends="oracle.wh.repos.impl.extended.WBPropertyImpl"
        implements="oracle.wh.repos.sdk.extended.WBCollectionProperty">
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.extended.WBArrayPropertyImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.extended.WBCollectionPropertyImpl"
        implements="oracle.wh.repos.sdk.extended.WBArrayProperty">
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="TYPE"/>            
        </PropertySetDefinition>
        <PropertySetDefinition owb:InternalName="WBArrayPropertyImpl.CONSTRUCTOR"
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="OWNER"/>
            <PropertyUsageDefinition name="TYPE"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.extended.WBPrimitivePropertyImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.extended.WBScalarPropertyImpl"
        implements="oracle.wh.repos.sdk.extended.WBPrimitiveProperty">
        <PropertyDefinition
            name="VALUE_BY_STRING"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="ValueByString"/>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="TYPE"/>            
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="OWNER"/>
            <PropertyUsageDefinition name="TYPE"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType"
            parentSet="WBArrayPropertyImpl.CONSTRUCTOR">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="POSITION"/>
            <PropertyUsageDefinition name="OWNER"/>
            <PropertyUsageDefinition name="TYPE"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="VALUE_BY_STRING"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.AssociationDefinitionImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.metaModel.AssociationDefinition">
        <PropertyDefinition
            name="ROLE_1"
            type="getType('oracle.wh.repos.sdk.metaModel.RoleDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="RoleA"/>
        <PropertyDefinition
            name="ROLE_2"
            type="getType('oracle.wh.repos.sdk.metaModel.RoleDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="RoleB"/>
        <PropertyDefinition
            name="CLASS_1"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ClassA"/>
        <PropertyDefinition
            name="CLASS_2"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ClassB"/>
        <PropertyDefinition
            name="CLASS_1_Name"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ClassAName"/>
        <PropertyDefinition
            name="CLASS_2_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ClassBName"/>
        <PropertyDefinition
            name="ROLE_1_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="RoleAName"/>
        <PropertyDefinition
            name="ROLE_2_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="RoleBName"/>
        <PropertyDefinition
            name="ASSOCIATION_TYPE"
            type="integerType"
            PropertyType="CorePropertyType"
            DefinitionKey="AssociationType"/>
        <PropertyDefinition
            name="WEAKLY_TYPED"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="WeaklyTyped"/>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="CLASS_1"/>            
            <PropertyUsageDefinition name="CLASS_2"/>
        </PropertySetDefinition>
        <PropertySetDefinition owb:InternalName="AssociationDefinitionImpl.CONSTRUCTOR"
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="ROLE_1_NAME"/>
            <PropertyUsageDefinition name="CLASS_1_Name"/>
            <PropertyUsageDefinition name="ROLE_2_NAME"/>
            <PropertyUsageDefinition name="CLASS_2_NAME"/>
        </PropertySetDefinition>                
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="ASSOCIATION_TYPE"/>
            <PropertyUsageDefinition name="CLASS_1_NAME"/>
            <PropertyUsageDefinition name="CLASS_2_NAME"/>
            <PropertyUsageDefinition name="ROLE_1_NAME"/>
            <PropertyUsageDefinition name="ROLE_2_NAME"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.ClassDefinitionImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.domain.WBScalarTypeImpl"
        implements="oracle.wh.repos.sdk.metaModel.ClassDefinition">
        <PropertyDefinition
            name="EXTENSIBLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Extensible"/>
        <PropertyDefinition
            name="DISPLAY_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="DisplayName"/>
        <PropertyDefinition
            name="PLURAL_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="PluralName"/>
        <PropertyDefinition
            name="CORE_EXTENSIBLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="CoreExtensible"/>
        <PropertyDefinition
            name="LOGICAL_EXTENSIBLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="LogicalExtensible"/>
        <PropertyDefinition
            name="CONFIGURATION_EXTENSIBLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="ConfigurationExtensible"/>
        <PropertyDefinition
            name="UDP_EXTENSIBLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="UDPExtensible"/>
        <PropertyDefinition
            name="CLASS_PERSISTENT"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="ClassPersistent"/>
        <PropertyDefinition
            name="EXTENDS"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="Extends"/>
        <PropertyDefinition
            name="IMPLEMENTS"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="Implements"/>
        <PropertyDefinition
            name="WEAKLY_TYPED"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="WeaklyTyped"/>
        <PropertyDefinition
            name="STEREOTYPE"
            type="integerType"
            PropertyType="CorePropertyType"
            DefinitionKey="Stereotype"/>
        <PropertyDefinition
            name="GENERATABLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Generatable"/>
        <PropertyDefinition
            name="ABSTRACT"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Abstract"/>
        <PropertyDefinition
            name="PACKAGE_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="PackageName"/>
        <PropertyDefinition
            name="PROPERTY_PARENT"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="PropertyParent"/>
        <PropertyDefinition
            name="NAMESPACE_PARENT"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="NamespaceParent"/>
        <PropertyDefinition
            name="NAMESPACE_DOMAIN"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="NamespaceDomain"/>
        <PropertyDefinition
            name="COMPONENT_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.ComponentDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="ComponentDefinition">
            <PrimitiveProperty 
                persistent="true"
                name="DEFINED_AFTER"
                type="BooleanType"
                ValueByString="true"/>
        </PropertyDefinition>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="COMPONENT_DEFINITION"/>            
        </PropertySetDefinition>
        <PropertySetDefinition owb:InternalName="ClassDefinitionImpl.CONSTRUCTOR"
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="NAME"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="DISPLAY_NAME"/>
            <PropertyUsageDefinition name="PLURAL_NAME"/>
            <PropertyUsageDefinition name="NAMESPACE_PARENT"/>
            <PropertyUsageDefinition name="NAMESPACE_DOMAIN"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.ClassInheritanceDefinitionImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.metaModel.ClassInheritanceDefinition">
        <PropertyDefinition
            name="INHERITANCE_PARENT"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="InheritanceParent"/>
        <PropertyDefinition
            name="INHERITANCE_CHILD"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="InheritanceChild">
            <PrimitiveProperty 
                persistent="true"
                name="DEFINED_AFTER"
                type="BooleanType"
                ValueByString="true"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="PARENT"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="Parent"/>
        <PropertyDefinition
            name="CHILD"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="Child">
            <PrimitiveProperty 
                persistent="true"
                name="DEFINED_AFTER"
                type="BooleanType"
                ValueByString="true"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="PARENT_CLASS_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ParentClassName"/>
        <PropertyDefinition
            name="CHILD_CLASS_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ChildClassName"/>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PARENT"/>            
            <PropertyUsageDefinition name="CHILD"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="PARENT_CLASS_NAME"/>
            <PropertyUsageDefinition name="CHILD_CLASS_NAME"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.ClassUsageDefinitionImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.metaModel.ClassUsageDefinition">
        <PropertyDefinition
            name="CLASS_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="ClassDefinition"/>
        <PropertyDefinition
            name="USAGE_TYPE"
            type="integerType"
            PropertyType="CorePropertyType"
            DefinitionKey="UsageType"/>
        <PropertyDefinition
            name="COMPONENT_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.ComponentDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ComponentDefinition">
            <PrimitiveProperty persistent="true" name="IS_PARENT_ROLE"
                type="BooleanType" ValueByString="true"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="TARGET_CLASS_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="TargetClassName"/>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="CLASS_DEFINITION"/>            
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="COMPONENT_DEFINITION"/>
            <PropertyUsageDefinition name="TARGET_CLASS_NAME"/>
            <PropertyUsageDefinition name="USAGE_TYPE"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.ComponentDefinitionImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.metaModel.ComponentDefinition">
        <PropertyDefinition
            name="COMPONENT_CLASS"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ComponentClass"/>
        <PropertyDefinition
            name="CLASS_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ClassDefinition"/>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="CLASS_DEFINITION"/>            
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="COMPONENT_CLASS"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
        </PropertySetDefinition>
    </ClassDefinition>
    
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.PropertyGroupDefinitionImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.metaModel.PropertyGroupDefinition">
        <PropertyDefinition
            name="HIDDEN"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Hidden"/>
        <PropertyDefinition
            name="DEFINITION_KEY"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="DefinitionKey"/>
        <PropertyDefinition
            name="OWNER"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertyGroupOwner')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="Owner">
            <PrimitiveProperty persistent="true" name="IS_PARENT_ROLE"
                type="BooleanType" ValueByString="true"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="PROPERTY_GROUP_OWNER"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertyGroupOwner')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="PropertyGroupOwner">
            <PrimitiveProperty persistent="true" name="IS_PARENT_ROLE"
                type="BooleanType" ValueByString="true"/>
        </PropertyDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="OWNER"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="DEFINITION_KEY"/>
            <PropertyUsageDefinition name="HIDDEN"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.PropertySetDefinitionImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.metaModel.PropertySetDefinition">
        <PropertyDefinition
            name="CLASS_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ClassDefinition">
            <PrimitiveProperty persistent="true" name="IS_PARENT_ROLE"
                type="BooleanType" ValueByString="true"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="OWNING_CLASS"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="OwningClass">
            <PrimitiveProperty persistent="true" name="IS_PARENT_ROLE"
                type="BooleanType" ValueByString="true"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="DEFINITION_KEY"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="DefinitionKey"/>
        <PropertyDefinition
            name="PROPERTY_TYPE"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertyType')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="PropertyType">
            <PrimitiveProperty persistent="true" name="EXCLUSIVE_PROPERTIES"
                type="stringType" ValueByString="PARENT_SET"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="PARENT_SET"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertySetDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="ParentSet">
            <PrimitiveProperty persistent="true" name="EXCLUSIVE_PROPERTIES"
                type="stringType" ValueByString="PROPERTY_TYPE"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="PARENT_PROPERTY_SET_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertySetDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="ParentPropertySetDefinition"/>
        <PropertyDefinition
            name="REAL_PROPERTY_SET_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertySetDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="RealPropertySetDefinition"/>
        <PropertyDefinition
            name="SUPER_PROPERTY_SET_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertySetDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="SuperPropertySetDefinition"/>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PARENT_SET"/>            
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PERSISTENT"/>
            <PropertyUsageDefinition name="OWNING_CLASS"/>
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="PARENT_SET"/>
            <PropertyUsageDefinition name="PROPERTY_TYPE"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="DEFINITION_KEY"/>
        </PropertySetDefinition>
    </ClassDefinition>
    
    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.PropertyUsageDefinitionImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.metaModel.PropertyUsageDefinition">
        <PropertyDefinition
            name="PROPERTY_SET_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertySetDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="PropertySetDefinition">
            <PrimitiveProperty persistent="true" name="IS_PARENT_ROLE"
                type="BooleanType" ValueByString="true"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="DEFINITION_KEY"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="DefinitionKey"/>
        <PropertyDefinition
            name="PROPERTY_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertyDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="PropertyDefinition"/>
        <PropertyDefinition
            name="DEFAULT_VALUE_STRING"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="DefaultValueString"/>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="PROPERTY_DEFINITION"/>            
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="PROPERTY_SET_DEFINITION"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="DEFINITION_KEY"/>
            <PropertyUsageDefinition name="DEFAULT_VALUE_STRING"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.PropertyDefinitionImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.metaModel.PropertyDefinition">
        <PropertyDefinition
            name="DEFINITION_KEY"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="DefinitionKey"/>
        <PropertyDefinition
            name="DEFAULT_VALUE_STRING"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="DefaultValueString"/>
        <PropertyDefinition
            name="PROPERTY_TYPE"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertyType')"
            PropertyType="CorePropertyType"
            DefinitionKey="PropertyType"/>
        <PropertyDefinition
            name="TYPE"
            type="getType('oracle.wh.repos.sdk.domain.WBAbstractType')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="Type"/>
        <PropertyDefinition
            name="POSITION"
            type="integerType"
            PropertyType="CorePropertyType"
            DefinitionKey="Position"/>
        <PropertyDefinition
            name="CLASS_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ClassDefinition">
            <PrimitiveProperty persistent="true" name="IS_PARENT_ROLE"
                type="BooleanType" ValueByString="true"/>
        </PropertyDefinition>
        <PropertyDefinition
            name="EXPORT_CONTROL"
            type="integerType"
            PropertyType="CorePropertyType"
            DefinitionKey="ExportControl"/>
        <PropertyDefinition
            name="OVERRIDE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Override"/>
        <PropertyDefinition
            name="IS_ROLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="IsRole"/>
        <PropertyDefinition
            name="PROPERTY_GROUP_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertyGroupDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="PropertyGroupDefinition"/>
        <PropertyDefinition
            name="ROLE_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.RoleDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="RoleDefinition"/>
        <PropertyDefinition
            name="TRANSLATABLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Translatable"/>
        <PropertyDefinition
            name="PASSWORD"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Password"/>
        <PropertyDefinition
            name="HIDDEN"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Hidden"/>
        <PropertyDefinition
            name="PROPERTY_READ_ONLY"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="PropertyReadOnly"/>
        <PropertyDefinition
            name="NAME_CHECKED"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="NameChecked"/>
        <PropertyDefinition
            name="USER_CHOICE_ALLOWED"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="UserChoiceAllowed"/>
        <PropertyDefinition
            name="DYNAMIC_DEFAULT"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="DynamicDefault"/>
        <PropertyDefinition
            name="IN_PLACE_EDITOR"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="InPlaceEditor"/>
        <PropertyDefinition
            name="CUSTOM_EDITOR"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="CustomEditor"/>
        <PropertySetDefinition
            name="ROLES"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="TYPE"/>            
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="CLASS_DEFINITION"/>
            <PropertyUsageDefinition name="TYPE"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="DEFINITION_KEY"/>
            <PropertyUsageDefinition name="DEFAULT_VALUE_STRING"/>
            <PropertyUsageDefinition name="PROPERTY_TYPE"/>
            <PropertyUsageDefinition name="POSITION"/>
            <PropertyUsageDefinition name="HIDDEN"/>
            <PropertyUsageDefinition name="IN_PLACE_EDITOR"/>
            <PropertyUsageDefinition name="USER_CHOICE_ALLOWED"/>
        </PropertySetDefinition>
    </ClassDefinition>

    <ClassDefinition
        persistent="true"
        name="oracle.wh.repos.impl.metaModel.RoleDefinitionImpl"
        abstract="false"
        stereotype="2"
        extends="oracle.wh.repos.impl.metaModel.DefinitionElementImpl"
        implements="oracle.wh.repos.sdk.metaModel.RoleDefinition">
        <PrimitiveProperty 
            persistent="true"
            name="MDL_PARENT"
            type="stringType"
            ValueByString="oracle.wh.repos.sdk.metaModel.AssociationDefinition"/>
        <PropertyDefinition
            name="AGGREGATE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Aggregate"/>
        <PropertyDefinition
            name="NAVIGABLE"
            type="BooleanType"
            PropertyType="CorePropertyType"
            DefinitionKey="Navigable"/>
        <PropertyDefinition
            name="MIN_CARDINALITY"
            type="integerType"
            PropertyType="CorePropertyType"
            DefinitionKey="MinCardinality"/>
        <PropertyDefinition
            name="MAX_CARDINALITY"
            type="integerType"
            PropertyType="CorePropertyType"
            DefinitionKey="MaxCardinality"/>
        <PropertyDefinition
            name="CLASS_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.ClassDefinition')"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="ClassDefinition"/>
        <PropertyDefinition
            name="PROPERTY_DEFINITION"
            type="getType('oracle.wh.repos.sdk.metaModel.PropertyDefinition')"
            PropertyType="CorePropertyType"
            DefinitionKey="PropertyDefinition"/>
        <PropertyDefinition
            name="PROPERTY_DEFINITION_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            DefinitionKey="PropertyDefinitionName"/>
        <PropertyDefinition
            name="OWNING_CLASS_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="OwningClassName"/>
        <PropertyDefinition
            name="TARGET_CLASS_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="TargetClassName"/>
        <PropertyDefinition
            name="TARGET_ROLE_NAME"
            type="stringType"
            PropertyType="CorePropertyType"
            PropertyReadOnly="true"
            DefinitionKey="TargetRoleName"/>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            parentSet="ClassDefinitionImpl.CONSTRUCTOR">
            <PropertyUsageDefinition name="NAME"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="CONSTRUCTOR"
            parentSet="AssociationDefinitionImpl.CONSTRUCTOR">
            <PropertyUsageDefinition name="NAME"/>
            <PropertyUsageDefinition name="OWNING_CLASS_NAME"/>
            <PropertyUsageDefinition name="TARGET_CLASS_NAME"/>
            <PropertyUsageDefinition name="TARGET_ROLE_NAME"/>
        </PropertySetDefinition>
        <PropertySetDefinition
            name="SCRIPTING"
            PropertyType="LogicalPropertyType">
            <PropertyUsageDefinition name="LOGICAL_NAME"/>
            <PropertyUsageDefinition name="DESCRIPTION"/>
            <PropertyUsageDefinition name="AGGREGATE"/>
            <PropertyUsageDefinition name="NAVIGABLE"/>
            <PropertyUsageDefinition name="MIN_CARDINALITY"/>
            <PropertyUsageDefinition name="MAX_CARDINALITY"/>
        </PropertySetDefinition>
    </ClassDefinition>

</owb:definition>
