Mapping Definition File
Information in a mapping definition.
A mapping defines the correspondence between the fields of the source dataset and the properties of the entity model. The mapping definition file is used by the mapping step in a flow.
All mapping definition files are stored as JSON in the directory your-project-root/mappings/yourflowname-yourmappingstepname. The filename must be in the format yourflowname-yourmappingstepname-version.mapping.json. For example, the first version of a mapping called ProductMapping is stored as your-project-root/mappings/MyFlow-ProductMapping/MyFlow-ProductMapping-0.mapping.json.
See About Mapping.
Mapping Definition File Template
{
"language" : "zxx",
"name" : "MyFlow-MyMappingStep",
"description" : "",
"version" : 1,
"targetEntityType" : "http://example.org/MyEntity-0.0.1/MyEntity",
"sourceContext" : "/",
"sourceURI" : "/q/data-hub/....json",
"properties" : {
"my-entity-property-1": {
"sourcedFrom": "my-source-field-1"
},
"my-entity-property-2": {
"sourcedFrom": "myFunction( my-source-field-X, my-source-field-Y )"
}
}
}
"relatedEntityMappings": [
{
"relatedEntityMappingId": "Customer.customerId:Order",
"collections": ["mapCustomersWithRelatedEntitiesJSON", "Order"],
"expressionContext": "/Orders",
"uriExpression": "hubURI('Order')",
"permissions": "data-hub-common,read,data-hub-common,update",
"properties": {
"orderId": {
"sourcedFrom": "OrderId"
},
"orderDateTime": {
"sourcedFrom": "parseDateTime(DateAndTime, 'YYYY/MM/DD-hh:mm:ss')"
},
"orderedBy": {
"sourcedFrom": "/CustomerID"
},
"deliveredTo": {
"sourcedFrom": "SendToID"
},
"lineItems": {
"sourcedFrom": "Products",
"properties": {
"quantity": {
"sourcedFrom": "Quantity"
},
"includes": {
"sourcedFrom": "ProductId"
}
},
"targetEntityType": "#/definitions/LineItem"
}
},
"targetEntityType": "http://marklogic.com/example/Order-0.0.1/Order"
},
Field | Description |
---|---|
language | The language of the source records, if defined. Otherwise, zxx . |
name | The name of the mapping. |
description | (Optional) A description of the mapping. |
version | The zero-based version of the mapping. This value must match the version component of the filename. |
targetEntityType | The URI to the entity to map against. |
sourceContext | The root where the source fields are located in the source JSON. |
sourceURI | The URI of the source record from which to extract the source fields. |
properties | Key-value pairs where:
The value of
sourcedFrom can be:
|
sourcedFrom Expressions
Expressions in the sourcedFrom
must conform to the XPath 2.0 standards. Examples:
Expression | Example | Description |
---|---|---|
for ... in ... return ... |
|
The entity property is assigned the last item in items/* . |
if (...) then ... else ... |
|
The entity property is assigned either the string "high" or the string "low". |
The following operators are allowed in the expressions:
Mathematical operators |
+ ,
- ,
* ,
idiv ,
div ,
mod
|
Comparison operators |
is ,
eq ,
ne ,
lt ,
le ,
gt ,
ge ,
= ,
!= ,
< ,
<= ,
> ,
>= ,
<< ,
>>
|
Logical operators | AND , OR |