[ad_1]
My MarkLogic database consists of a couple of sample documents in the folder “patents”:
- /patents/airless_diving.json
- /patents/smart_racket.json
- /patents/tuning_ukulele.json
- /patents/waterski_drone.json
Each document looks like that:
{
"patent": {
"title": "Airless SCUBA diving",
"inventor": "Greg",
"description": "Diving pill that provides airless SCUBA diving for up to 1 hour"
}
}
I am trying to create a template:
const tde = require ('/MarkLogic/tde');
const inventionsTemplate = xdmp.toJSON(
{
'template':{
'context':'patent',
'directories':["patents", "another_patents"],
'rows':[
{
'viewName':'inventions',
'columns':[
{
'name':'title',
'scalarType':'string',
'val':'../title',
'nullable':true
},
{
'name':'inventor',
'scalarType':'string',
'val':'../inventor',
'nullable':true
},
{
'name':'description',
'scalarType':'string',
'val':'../description',
'nullable':true
}
]
}]
}
}
);
tde.templateInsert('/templates/inventionsTemplate.json', inventionsTemplate);
But getting an error:
[javascript] TDE-INVALIDTEMPLATE: (err:FOER0000) tde.templateInsert(‘/templates/inventionsTemplate.json’, inventionsTemplate); — Invalid TDE template: TDE-INVALIDTEMPLATENODE: Invalid extraction template node: fn:doc(“”)/template/array-node(“rows”)/object-node()
Stack Trace
At line 75 column 6:
In tde.templateInsert(‘/templates/inventionsTemplate.json’, inventionsTemplate);
fn:QName(“http://marklogic.com/xdmp/tde”,”templateURI”) = “/templates/inventionsTemplate.json”
fn:QName(“http://marklogic.com/xdmp/tde”,”template”) = document{object-node{“template”:object-node{“context”:text{“patent”}, “directories”:array-node{…}, …}}}
fn:QName(“http://marklogic.com/xdmp/tde”,”permissions”) = ()
fn:QName(“http://marklogic.com/xdmp/tde”,”collections”) = ()
fn:QName(“http://marklogic.com/xdmp/tde”,”testvalid”) = map:map(<map:map xmlns:xs=”http://www.w3.org/2001/XMLSchema” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” …/>)
fn:QName(“http://marklogic.com/xdmp/tde”,”permarray”) = json:array()
fn:QName(“http://marklogic.com/xdmp/tde”,”colsarray”) = json:array()
What is the proper syntax for creating MarkLogic template driven extraction in my case?
Am I missing some preparation step before inserting TDE?
[ad_2]