H XML Schema Files for ADF Mapping Customizations

This appendix describes the app_segment_rule.xsd and mapping_rules.xsd XML schema files. XML files based on these XML validation schemas define mapping rules that control the physical to logical mapping behavior for ADF data source objects.

This appendix contains the following sections:

app_segment_rule.xsd XML Schema File

The XML schema file app_segment_rule.xsd contains mapping rules that define the physical table to logical table mapping. This section provides an annotated version of the app_segment_rule.xsd XML schema file.

Example H-1 app_segment_rule.xsd

<?xml version="1.0" encoding="utf-8" ?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:complexType name="alias_t">
  <xs:attribute name="aliasTableName" type="xs:string" use="required" /> 
 </xs:complexType>
 <xs:complexType name="aliasTableList_t">
  <xs:sequence>
   <xs:element name="AliasTable" type="alias_t" minOccurs="1" maxOccurs=
   "unbounded" /> 
  </xs:sequence>
 </xs:complexType>
 <xs:complexType name="subjectArea_t">
  <xs:attribute name="subjectAreaName" type="xs:string" use="required" />
  <xs:attribute name="table" type="xs:string" use="optional" /> 
 </xs:complexType>
 <xs:complexType name="subjectAreaList_t">
  <xs:sequence>
   <xs:element name="OTBISubjectArea" type="subjectArea_t" minOccurs="1"
   maxOccurs="unbounded" /> 
  </xs:sequence>
 </xs:complexType>
 <xs:complexType name="columnmapping_t">

<!-- voColumnName specifies the ADF view object column name -->

  <xs:attribute name="voColumnName" type="xs:string" use="required" />

<!-- logicalDimColumnName specifies the logical column name -->

  <xs:attribute name="logicalDimColumnName" type="xs:string" use="required" />
 </xs:complexType>
 <xs:complexType name="columnMappingsList_t">
  <xs:sequence>

<!-- ColumnMapping specifies the set of column mappings -->

   <xs:element name="ColumnMapping" type="columnmapping_t" minOccurs="1"
   maxOccurs="unbounded" /> 
  </xs:sequence>
 </xs:complexType>
 <xs:complexType name="tableName_t">
  <xs:attribute name="name" type="xs:string" /> 
 </xs:complexType>
 <xs:complexType name="relatedLogicalTablesList_t">
  <xs:sequence>
   <xs:element name="LogicalTable" type="tableName_t" minOccurs="1"
   maxOccurs="unbounded" /> 
  </xs:sequence>
 </xs:complexType>
 <xs:complexType name="labelToDimMap_t">
  <xs:sequence>

<!-- For mapping the _ and _c suffixed value and value set columns in the code,
combine flattened fact view objectS corresponding to the segment mapped to the
logical table -->

   <xs:element name="FlattenedFlexVOColumnMappings" type="columnMappingsList_t"
   minOccurs="0" maxOccurs="1" />

<!-- TableSpecificColumnMappingOverrides is for future use -->

   <xs:element name="TableSpecificColumnMappingOverrides"
   type="columnMappingsList_t" minOccurs="0" maxOccurs="1" />

<!-- TableSpecificOTBISubjectAreas specifies the Oracle Transactional Business
Intelligence subjects areas. The unqualified segment Logical Tables Dim - GL
Segment 1 - 10 are dragged to these subject areas. For other use cases, specify
your own repository subject areas. -->

   <xs:element name="TableSpecificOTBISubjectAreas" type="subjectAreaList_t"
   minOccurs="0" maxOccurs="1" />

<!-- DFFBaseVOAliases specifies the alias view objects of the base view object
mapped to the same logical table. For each of these view objects, the
Administration Tool creates an alias of the DFF view object and joins it to the
base view object alias. -->

   <xs:element name="DFFBaseVOAliases" type="aliasTableList_t" minOccurs="0"
   maxOccurs="1" />
  </xs:sequence>

<!-- RelatedLogicalTables specifies the list of logical tables to which the DFF
view object must be mapped in addition to the logical table mentioned in the 
logicalDimTableName attribute. --> 
 
   <xs:element name="RelatedLogicalTables" type="relatedLogicalTablesList_t"
   minOccurs="0" maxOccurs="1" /> 
  </xs:sequence>

<!-- segmentLabelName is for future use -->

  <xs:attribute name="segmentLabelName" type="xs:string" use="optional" />

<!-- logicalDimTableName specifies the logical table to which the ADF view object
is mapped. ADF database properties contain the mapping between the ADF view object 
("BIObject_'ADF VO Name'") and logical table mentioned here. -->

  <xs:attribute name="logicalDimTableName" type="xs:string" use="required" />

<!-- In role playing dimensions, the logical table specified in the
roleMasterLogicalTableName attribute is used as the master logical table. Whenever
the master logical table is mapped to a view object, the alias of this view object
is created and joined to the table referenced in the flattenedFlexVORoleAlias
attribute. The alias table name is "{ADF_VO_Name}_{Role_Playing_Logical_Table_
Name}". Logical columns are mapped to the columns of this alias table. -->

  <xs:attribute name="roleMasterLogicalTableName" type="xs:string"
  use="optional" />

<!-- flattenedFlexVORoleAlias specifies the flattened view object alias that needs
to be joined with the role playing view object alias table. -->

  <xs:attribute name="flattenedFlexVORoleAlias" type="xs:string" use="optional" /> 
 </xs:complexType>

<!-- The root element for the mapping rule document -->

 <xs:complexType name="mappingRules_t">
  <xs:sequence>

<!-- GlobalColumnMappings is for future use -->

   <xs:element name="GlobalColumnMappings" type="columnMappingsList_t"
   minOccurs="0" maxOccurs="1" />

<!-- GlobalOTBISubjectAreas specifies the Oracle Transactional Business
Intelligence subject areas. The unqualified segment Logical Tables Dim - GL
Segment 1 - 10 are dragged to these subject areas. The rules specified here apply
to all logical tables. For other use cases, specify your own subject areas. -->

   <xs:element name="GlobalOTBISubjectAreas" type="subjectAreaList_t"
   minOccurs="0" maxOccurs="1" />

<!-- LabelToDimensionMappings specifies the rules for a logical table -->

   <xs:element name="LabelToDimensionMappings" type="labelToDimMap_t"
   minOccurs="0" maxOccurs="unbounded" />
  </xs:sequence>

<!-- appName is the ADF Module Name from where the ADF view objects are imported. It is also used as a key for reading the properties from the ADF database. It is
sometimes known as the Category or Module Name. -->

  <xs:attribute name="appName" type="xs:string" use="required" />

<!-- businessModelName specifies the business model in the Business Model and
Mapping layer. The ADF view objects are mapped to the logical tables in this
business model. The default business model is "Core." -->

  <xs:attribute name="businessModelName" type="xs:string" default="Core"
   use="optional" />

<!-- flattenedFlexLogicalTable specifies the logical table to which the flattened
fact view object for the KFF needs to map -->

  <xs:attribute name="flattenedFlexLogicalTable" type="xs:string"
  use="optional" /> 
 </xs:complexType>

<!-- This is the actual element declaration for the entire Document. -->
 
 <xs:element name="document">
  <xs:complexType>
   <xs:sequence>

<!--  MappingRules specifies the set of rules. -->

    <xs:element name="MappingRules" type="mappingRules_t" minOccurs="0"
    maxOccurs="unbounded" /> 
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

app_segment_rules_*.xml Example

This section provides an example of an app_segment_rules_*.xml file, based on the validation rules contained in app_segment_rules.xsd. Note that the actual file has been shortened.

Example H-2 app_segment_rules_*.xml example

<?xml version="1.0" encoding="UTF-8" ?>
<document>
<!--  Begin Finance -->
<MappingRules appName="FscmTopModelAM.AccountBIAM" businessModelName="Core"
flattenedFlexLogicalTable="Dim - GL Account">
 <GlobalOTBISubjectAreas>
  <OTBISubjectArea subjectAreaName="General Ledger - Journals Real Time" /> 
  <OTBISubjectArea subjectAreaName="General Ledger - Transactional Balances Real Time" /> 
  <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions Real
  Time" />
  <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" /> 
  <OTBISubjectArea subjectAreaName="Payables Invoices - Trial Balance Real Time" />
...
 </GlobalOTBISubjectAreas>
 <LabelToDimensionMappings logicalDimTableName="Dim - Balancing Segment">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Balancing Segment Code" /> 
   <ColumnMapping voColumnName="_c" logicalDimColumnName="Balancing Segment Value Set
   Code" /> 
  </FlattenedFlexVOColumnMappings>
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="General Ledger - Journals Real Time" table="- Balancing
   Segment" /> 
   <OTBISubjectArea subjectAreaName="General Ledger - Transactional Balances Real Time"
   table="Balancing Segment" /> 
   <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions
   Real Time" table="- Balancing Segment" /> 
   <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table=
   "- Balancing Segment" /> 
   <OTBISubjectArea subjectAreaName="Payables Invoices - Trial Balance Real Time"
   table="Balancing Segment" /> 
...
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
 <LabelToDimensionMappings logicalDimTableName="Dim - Cost Center">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Cost Center Segment Code" /> 
   <ColumnMapping voColumnName="_c" logicalDimColumnName="Cost Center Segment Value Set Code"
   /> 
  </FlattenedFlexVOColumnMappings>
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="General Ledger - Journals Real Time" table="- Cost
   Center Segment" /> 
   <OTBISubjectArea subjectAreaName="General Ledger - Transactional Balances Real Time"
   table="Cost Center Segment" />
   <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions
   Real Time" table="- Cost Center" />
   <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table="-
   Cost Center" /> 
   <OTBISubjectArea subjectAreaName="Payables Invoices - Trial Balance Real Time" table="Cost
 Center" />
...
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
 <LabelToDimensionMappings logicalDimTableName="Dim - Natural Account Segment">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Natural Account Segment Code" /> 
   <ColumnMapping voColumnName="_c" logicalDimColumnName="Natural Account Segment Value Set
   Code" /> 
  </FlattenedFlexVOColumnMappings>
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="General Ledger - Journals Real Time" table="- Natural
   Account Segment" /> 
   <OTBISubjectArea subjectAreaName="General Ledger - Transactional Balances Real Time"
   table="Natural Account Segment" /> 
   <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions
   Real Time" table="- Natural Account" />
   <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table=
   "- Natural Account" /> 
   <OTBISubjectArea subjectAreaName="Payables Invoices - Trial Balance Real Time"
   table="Natural Account" /> 
...
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
 <LabelToDimensionMappings logicalDimTableName="Dim - GL Segment1">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Account Segment1 Code" /> 
   <ColumnMapping voColumnName="_c" logicalDimColumnName="Account Segment1 Value Set Code" /> 
  </FlattenedFlexVOColumnMappings>
 </LabelToDimensionMappings>
 <LabelToDimensionMappings logicalDimTableName="Dim - GL Segment2">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Account Segment2 Code" /> 
   <ColumnMapping voColumnName="_c" logicalDimColumnName="Account Segment2 Value Set Code" /> 
  </FlattenedFlexVOColumnMappings>
 </LabelToDimensionMappings>
...
 <LabelToDimensionMappings logicalDimTableName="Dim - AP Account Balancing Segment"
 roleMasterLogicalTableName="Dim - Balancing Segment" flattenedFlexVORoleAlias="Dim_FLEX_BI_
 Account_VI_APAccount">
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions
   Real Time" table="- Distribution Balancing Segment Value" /> 
   <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table="-
   Distribution Balancing Segment Value" /> 
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
 <LabelToDimensionMappings logicalDimTableName="Dim - AP Account Cost Center"
 roleMasterLogicalTableName="Dim - Cost Center" flattenedFlexVORoleAlias="Dim_FLEX_BI_
 Account_VI_APAccount">
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="Payables Invoices - Prepayment Invoice Distributions
   Real Time" table="- Distribution Cost Center Segment Value" /> 
   <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table="-
   Distribution Cost Center Segment Value" /> 
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
...
</MappingRules>
<MappingRules appName="FscmTopModelAM.LocationBIAM" businessModelName="Core"
flattenedFlexLogicalTable="Dim - Asset Location">
 <LabelToDimensionMappings logicalDimTableName="Segment1">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Segment1" /> 
  </FlattenedFlexVOColumnMappings>
 </LabelToDimensionMappings>
 <LabelToDimensionMappings logicalDimTableName="Segment2">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Segment2" /> 
  </FlattenedFlexVOColumnMappings>
 </LabelToDimensionMappings>
...
</MappingRules>
<MappingRules appName="FscmTopModelAM.CategoryBIAM" businessModelName="Core" 
flattenedFlexLogicalTable="Dim - Asset Category">
 <LabelToDimensionMappings logicalDimTableName="Segment1">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Segment1" /> 
  </FlattenedFlexVOColumnMappings>
 </LabelToDimensionMappings>
 <LabelToDimensionMappings logicalDimTableName="Segment2">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Segment2" /> 
  </FlattenedFlexVOColumnMappings>
 </LabelToDimensionMappings>
...
 <LabelToDimensionMappings logicalDimTableName="Major Category">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Major Category" /> 
  </FlattenedFlexVOColumnMappings>
 </LabelToDimensionMappings>
 <LabelToDimensionMappings logicalDimTableName="Minor Category">
  <FlattenedFlexVOColumnMappings>
   <ColumnMapping voColumnName="_" logicalDimColumnName="Minor Category" /> 
  </FlattenedFlexVOColumnMappings>
 </LabelToDimensionMappings>
</MappingRules>
...
<MappingRules appName="FscmTopModelAM.ExternalTransactionBIAM" businessModelName="Core"
flattenedFlexLogicalTable="">
<!-- Use the below tag if you want any one of the following use cases for the "base logical
table" your DFF is mapped to in ATG --> 
<!-- (a) need to expose the base logical table DFF attributes to specific presentation
subject area and table --> 
<!-- (b) you have additional VO aliases mapped to the base logical table in addition to the
base VO itself -->
<!-- (c) you have additional "related logical tables" that you want automapped when the base
logical table is mapped in ATG -->
 <LabelToDimensionMappings logicalDimTableName="Dim - CE External Cash Transaction Details">
<!-- Use the below tag to indicate the presentation subject area and table where the DFF
attributes need to be exposed -->
<!-- Repeat the OTBISubjectArea tag to expose them in multiple subject areas or tables -->
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="Cash Management - External Cash Transactions Real Time"
   table="External Cash Transaction Detail" /> 
  </TableSpecificOTBISubjectAreas>
<!-- Use the below tag to give the VO alias names, if any, that are mapped to the base
logical table in addition to the base VO -->
<!-- Repeat the AliasTable tag if you have multiple VO aliases -->
  <DFFBaseVOAliases>
   <AliasTable aliasTableName="Fact_ExternalTransactionsPVO_JournalEntryLine" /> 
  </DFFBaseVOAliases>
 </LabelToDimensionMappings>
</MappingRules>
...
<MappingRules appName="FscmTopModelAM.CalendarTypeDFFBIAM" businessModelName="Core"
flattenedFlexLogicalTable="">
...
 <LabelToDimensionMappings logicalDimTableName="Dim - Date Fixed Assets Calendar">
...
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Transactions Real Time"
   table="Transaction Effective Date" />
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
<!-- Use the below tag if you have any "role-playing logical tables" for the base logical
table. -->
 <LabelToDimensionMappings logicalDimTableName="Dim - Date Placed in Service Fixed Asset
 Calendar" roleMasterLogicalTableName="Dim - Date Fixed Assets Calendar"
 flattenedFlexVORoleAlias="Dim_CalendarDayPVO_DatePlacedInService">
<!-- Use the below tag to indicate the presentation subject area and table where the DFF
attributes from the role-playig logical table need to be exposed -->
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Financial Information Real Time"
   table="Date Placed in Service" /> 
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
 <LabelToDimensionMappings logicalDimTableName="Dim - Transaction Date Fixed Asset Calendar"
 roleMasterLogicalTableName="Dim - Date Fixed Assets Calendar" flattenedFlexVORoleAlias="Dim_
 CalendarDayPVO_TransactionDate">
<!-- Use the below tag to indicate the presentation subject area and table where the DFF
attributes from the role-playig logical table need to be exposed -->
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Assignments Real Time"
   table="Transaction Date" /> 
   <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Financial Information Real Time"
   table="Transaction Date" /> 
   <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Retirements and Reinstatements Real
   Time" table="Transaction Date" /> 
   <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Transactions Real Time"
   table="Transaction Date" /> 
   <OTBISubjectArea subjectAreaName="Fixed Assets - Asset Transfer Real Time"
   table="Transaction Date" /> 
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
...
</MappingRules>
...
<!-- Rule file for AP_TERMS_B -->
<MappingRules appName="FscmTopModelAM.PaymentTermHeaderDffBIAM" businessModelName="Core"
flattenedFlexLogicalTable="">
 <LabelToDimensionMappings logicalDimTableName="Dim - AP Terms">
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="Payables Invoices - Transactions Real Time" table=
   "- Header Information" /> 
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
</MappingRules>
<!-- Rule file for AP_PAYMENT_SCHEDULES -->
<MappingRules appName="FscmTopModelAM.InstallmentsDffBIAM" businessModelName="Core"
flattenedFlexLogicalTable="">
 <LabelToDimensionMappings logicalDimTableName="Dim - AP Payment Schedule Details">
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="Payables Invoices - Installments Real Time"
   table="Invoices Installment Details" /> 
  </TableSpecificOTBISubjectAreas>
  <DFFBaseVOAliases>
   <AliasTable aliasTableName="Fact_InvoicePaymentSchedulePVO_Disbursement" /> 
  </DFFBaseVOAliases>
 </LabelToDimensionMappings>
</MappingRules>
...
<!-- Rule file for DFF AP_HOLDS -->
<MappingRules appName="FscmTopModelAM.HoldsDffBIAM" businessModelName="Core"
flattenedFlexLogicalTable="">
 <LabelToDimensionMappings logicalDimTableName="Dim - AP Hold Details">
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="Payables Invoices - Holds Real Time" table="Invoices
   Hold Details" /> 
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
</MappingRules>
<!-- End Finance -->

<!-- Rule file for JobAM EFF -->
</MappingRules>
<MappingRules appName="HcmTopModelAnalyticsGlobalAM.JobAM.PER_JOBS_LEG_EFF" businessModelName="Core" flattenedFlexLogicalTable="">
 <LabelToDimensionMappings logicalDimTableName="Dim - Job">
  <TableSpecificOTBISubjectAreas>
   <OTBISubjectArea subjectAreaName="Workforce Management - Worker Assignment Real Time" table="Job" />
  </TableSpecificOTBISubjectAreas>
 </LabelToDimensionMappings>
</MappingRules>
...
</document>

mapping_rules.xsd XML Schema File

The XML schema file mapping_rules.xsd contains mapping rules that define the physical column to logical column mapping. This section provides an annotated version of the mapping_rules.xsd XML schema file.

Example H-3 mapping_rules.xsd

<?xml version="1.0" encoding="utf-8" ?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<!-- This XML validation schema defines data extensibility rules that determine
how objects imported at the Physical layer are mapped to the Business
Model and Mapping layer. -->

 <xs:simpleType name="yes_no_t">
  <xs:restriction base="xs:string">
   <xs:enumeration value="yes" /> 
   <xs:enumeration value="no" /> 
  </xs:restriction>
 </xs:simpleType>

<!-- Description of one mapping -->

 <xs:complexType name="mapping_t">

<!-- The source attribute specifies the physical ADF view object column -->

  <xs:attribute name="source" type="xs:string" use="required" />

<!-- The target attribute specifies the target logical column suffix or complete
name -->

  <xs:attribute name="target" type="xs:string" use="required" />

<!-- The addprefix attribute specifies whether or not the prefix specified in the
"rule" must be prefixed with the target to get the logical table column name
before performing the mapping -->

  <xs:attribute name="addprefix" type="yes_no_t" default="no" use="optional" /> 
 </xs:complexType>
 <xs:complexType name="rule_t">
  <xs:sequence>

<!-- List of mappings that define the rule -->

   <xs:element name="mapping" type="mapping_t" minOccurs="1" maxOccurs="unbounded"
   /> 
  </xs:sequence>

<!-- The name attribute specifies the rule name. This name is used by the instance
to specify which rule to apply. -->

  <xs:attribute name="name" type="xs:string" use="required" /> 
 </xs:complexType>
 <xs:complexType name="rules_t">
  <xs:sequence>

<!-- Each rule defines the source (physical) to target (logical) mapping. It
is used by the Import Metadata Wizard during the Physical to Logical Mapping
phase. Each mapping in a rule can specify whether the default prefix for an
instance should be added. -->

   <xs:element name="rule" type="rule_t" minOccurs="1" maxOccurs="unbounded" />
  </xs:sequence>
 </xs:complexType>
 <xs:complexType name="apply_t">

<!-- The rule attribute specifies which rule to apply for the logical table
mentioned in the instance. -->

  <xs:attribute name="rule" type="xs:string" use="required" />

<!-- The prefix attribute specifies the string that might or might not be
prepended when performing the mapping between the ADF view object column and the
logical table column. -->

  <xs:attribute name="prefix" type="xs:string" default="" use="optional" /> 
 </xs:complexType>
 <xs:complexType name="instance_t">
  <xs:sequence>

<!-- apply specifies what rule to apply to the logical table -->

   <xs:element name="apply" type="apply_t" minOccurs="1" maxOccurs="unbounded" /> 
  </xs:sequence>

<!-- The logicaltable attribute specifies the logical table to which the rule is
applied -->

  <xs:attribute name="logicaltable" type="xs:string" use="required" /> 
 </xs:complexType>
 <xs:complexType name="instances_t">
  <xs:sequence>

<!-- Each instance is associated with a single logical table. It applies any
number of rules, with an optional prefix. The rules are applied in order. Note
that the prefix includes a space at the end. It merely concatenates with the
target logical column to determine the right logical column to map to. -->

   <xs:element name="instance" type="instance_t" minOccurs="1" maxOccurs="unbounded" /> 
  </xs:sequence>

<!-- appName is the ADF Module Name from which ADF view objects are imported -->

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

<!-- The document element is the element declaration for the entire document -->

 <xs:element name="document">
  <xs:complexType>
   <xs:sequence>

<!-- The rules element specifies the set of rules -->

    <xs:element name="rules" type="rules_t" minOccurs="1" maxOccurs="1" />

<!-- The instances element specifies the set of instances related to a single ADF
module. -->

    <xs:element name="instances" type="instances_t" minOccurs="1" maxOccurs="1" />
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

mapping_rules_*.xml Example

This section provides an example of a mapping_rules_*.xml file, based on the validation rules contained in mapping_rules.xsd. Note that the actual file has been shortened.

Example H-4 mapping_rules_*.xml

<?xml version="1.0" encoding="UTF-8" ?>
<document>
<rules>

<!-- Each Rule defines the source (physical) to target (logical) mapping. It is
used by the Import Metadata Wizard during the Physical to Logical Mapping phase.
Each mapping in a rule can specify whether it should add the default prefix for an
instance. -->

 <rule name="GL Segment Tree Rule">
  <mapping source="TreeCode" target="Tree Code" addprefix="no" /> 
  <mapping source="TreeVersionId" target="Tree Version ID" addprefix="no" /> 
  <mapping source="VersionName" target="Tree Version Name" addprefix="no" /> 
  <mapping source="Dep0Pk2Value" target="Segment Value Set Code" addprefix="yes" />
  <mapping source="Dep0Value" target="Segment Code" addprefix="yes" />
  <mapping source="Dep0Description" target="Segment Description" addprefix="yes" />
  <mapping source="Dep1Value" target="Level 1 Code" addprefix="yes" />
  <mapping source="Dep1Description" target="Level 1 Description" addprefix="yes" />
  <mapping source="Dep2Value" target="Level 2 Code" addprefix="yes" />
  <mapping source="Dep2Description" target="Level 2 Description" addprefix="yes" />
  <mapping source="Dep3Value" target="Level 3 Code" addprefix="yes" />
  <mapping source="Dep3Description" target="Level 3 Description" addprefix="yes" />
...
  <mapping source="Distance" target="Fixed Hierarchy Level" addprefix="no" />
  <mapping source="VersionEffectiveStartDate" target="Effective From" addprefix="no" />
  <mapping source="VersionEffectiveEndDate" target="Effective To" addprefix="no" />
 </rule>
 <rule name="GL Segment Non-Tree Rule">
  <mapping source="Value" target="Segment Code" addprefix="yes" />
  <mapping source="ValueSetCode" target="Segment Value Set Code" addprefix="yes" />
  <mapping source="Description" target="Segment Description" addprefix="yes" />
 </rule>
 <rule name="Qualified Segment Tree Rule">
  <mapping source="TreeCode" target="Tree Code" addprefix="no" />
  <mapping source="TreeVersionId" target="Tree Version ID" addprefix="no" />
  <mapping source="VersionName" target="Tree Version Name" addprefix="no" />
  <mapping source="Dep0Pk2Value" target="Value Set Code" addprefix="yes" />
  <mapping source="Dep0Value" target="Code" addprefix="yes" />
  <mapping source="Dep0Description" target="Description" addprefix="yes" />
  <mapping source="Dep1Value" target="Level 1 Code" addprefix="yes" />
  <mapping source="Dep1Description" target="Level 1 Description" addprefix="yes" />
  <mapping source="Dep2Value" target="Level 2 Code" addprefix="yes" />
  <mapping source="Dep2Description" target="Level 2 Description" addprefix="yes" />
  <mapping source="Dep3Value" target="Level 3 Code" addprefix="yes" />
  <mapping source="Dep3Description" target="Level 3 Description" addprefix="yes" />
...
  <mapping source="Distance" target="Fixed Hierarchy Level" addprefix="no" /> 
  <mapping source="VersionEffectiveStartDate" target="Effective From" addprefix="no" /> 
  <mapping source="VersionEffectiveEndDate" target="Effective To" addprefix="no" /> 
  <mapping source="Dep0FlexValueAttribute6" target="Group Account Number" addprefix="no" /> 
 </rule>
 <rule name="Qualified Segment Non-Tree Rule">
  <mapping source="Value" target="Code" addprefix="yes" /> 
  <mapping source="ValueSetCode" target="Value Set Code" addprefix="yes" /> 
  <mapping source="Description" target="Description" addprefix="yes" /> 
  <mapping source="FlexValueAttribute6" target="Group Account Number" addprefix="no" /> 
 </rule>
 <rule name="Role Playing KFF Tree Rule 1">
  <mapping source="TreeCode" target="Tree Code" addprefix="no" /> 
  <mapping source="TreeVersionId" target="Tree Version ID" addprefix="no" /> 
  <mapping source="Dep0Description" target="Description" addprefix="yes" /> 
  <mapping source="Dep0Pk2Value" target="Value Set Code" addprefix="yes" /> 
  <mapping source="Dep0Value" target="Code" addprefix="yes" /> 
  <mapping source="Value" target="Code" addprefix="yes" /> 
  <mapping source="ValueSetCode" target="Value Set Code" addprefix="yes" /> 
  <mapping source="Description" target="Description" addprefix="yes" /> 
 </rule>
 <rule name="Role Playing KFF Tree Rule 2">
  <mapping source="TreeCode" target="Tree Code" addprefix="no" /> 
  <mapping source="TreeVersionId" target="Tree Version ID" addprefix="no" /> 
  <mapping source="Dep0Description" target="Desscription" addprefix="yes" /> 
  <mapping source="Dep0Pk2Value" target="Value Set Code" addprefix="yes" /> 
  <mapping source="Dep0Value" target="Code" addprefix="yes" /> 
  <mapping source="Value" target="Code" addprefix="yes" /> 
  <mapping source="ValueSetCode" target="Value Set Code" addprefix="yes" /> 
  <mapping source="Description" target="Desscription" addprefix="yes" /> 
 </rule>
...
</rules>
<instances appName="FscmTopModelAM.AccountBIAM">

<!-- Each instance is associated with the a single logical table. It applies any number of
rules, with an optional prefix. The rules are applied in order. Note that the prefix includes
a space at the end. It merely concatenates with the target logical column to determine the
right logical column to map to. -->

 <instance logicaltable="Dim - Balancing Segment">
  <apply rule="Qualified Segment Tree Rule" prefix="Balancing Segment" /> 
  <apply rule="Qualified Segment Non-Tree Rule" prefix="Balancing Segment" /> 
 </instance>
 <instance logicaltable="Dim - Cost Center">
  <apply rule="Qualified Segment Tree Rule" prefix="Cost Center" /> 
  <apply rule="Qualified Segment Non-Tree Rule" prefix="Cost Center" /> 
 </instance>
 <instance logicaltable="Dim - Natural Account Segment">
  <apply rule="Qualified Segment Tree Rule" prefix="Account" /> 
  <apply rule="Qualified Segment Non-Tree Rule" prefix="Account" /> 
 </instance>
 <instance logicaltable="Dim - GL Segment1">
  <apply rule="GL Segment Tree Rule" /> 
  <apply rule="GL Segment Non-Tree Rule" /> 
 </instance>
 <instance logicaltable="Dim - GL Segment2">
  <apply rule="GL Segment Tree Rule" /> 
  <apply rule="GL Segment Non-Tree Rule" /> 
 </instance>
 <instance logicaltable="Dim - GL Segment3">
  <apply rule="GL Segment Tree Rule" /> 
  <apply rule="GL Segment Non-Tree Rule" /> 
 </instance>
...
 <instance logicaltable="Dim - AP Account Balancing Segment">
  <apply rule="Role Playing KFF Tree Rule 1" prefix="Balancing Segment" /> 
 </instance>
 <instance logicaltable="Dim - AP Asset Account Balancing Segment">
  <apply rule="Role Playing KFF Tree Rule 1" prefix="Balancing Segment" />
 </instance>
 <instance logicaltable="Dim - AP Pay Account Balancing Segment">
  <apply rule="Role Playing KFF Tree Rule 1" prefix="Balancing Segment" />
 </instance>
 <instance logicaltable="Dim - Asset From Balancing Segment">
  <apply rule="Role Playing KFF Tree Rule 3" prefix="Asset From Balancing Segment" />
 </instance>
 <instance logicaltable="Dim - Asset To Balancing Segment">
  <apply rule="Role Playing KFF Tree Rule 3" prefix="Asset To Balancing Segment" />
 </instance>
 <instance logicaltable="Dim - Asset Balancing Segment">
  <apply rule="Role Playing KFF Tree Rule 3" prefix="Asset Balancing Segment" />
 </instance>
 <instance logicaltable="Dim - Distribution Balancing Segment">
  <apply rule="Role Playing KFF Tree Rule 3" prefix="Distribution Balancing Segment" />
 </instance>
 <instance logicaltable="Dim - SLA Balancing Segment">
  <apply rule="Role Playing KFF Tree Rule 3" prefix="Balancing Segment" />
 </instance>
 <instance logicaltable="Dim - CE Asset Balancing Segment Value">
  <apply rule="Role Playing KFF Tree Rule 1" prefix="Balancing Segment" />
 </instance>
 <instance logicaltable="Dim - CE Offset Balancing Segment Value">
  <apply rule="Role Playing KFF Tree Rule 1" prefix="Balancing Segment" />
 </instance>
...
</instances>
</document>