Marklogic 9 在TDE Marklogic中,如何转义空值三元组? /试验 亚表层 "http://www.test.com/resource/test/" objprefix "http://www.test.com/resource/test/" sem:iri($subprefix | | ElemenetName) 忽视 sem:iri('is') sem:iri($objprefix | |全名) 忽视

Marklogic 9 在TDE Marklogic中,如何转义空值三元组? /试验 亚表层 "http://www.test.com/resource/test/" objprefix "http://www.test.com/resource/test/" sem:iri($subprefix | | ElemenetName) 忽视 sem:iri('is') sem:iri($objprefix | |全名) 忽视,marklogic-9,triples,Marklogic 9,Triples,我创建了一个模板来从XML中提取三元组 但是要避开空值三元组(s、p或o)。 我使用的是ignore,但这仅在主语或宾语中没有前缀时有效。如果有前缀,它将创建带有null(仅前缀)的三元组 我们有没有办法在MarkLogic TDE中处理这个问题 可为空的对象/主题问题。您可以更多地使用上下文表达式,尤其是使用子模板时。下面是一个显示子模板的粗略示例,应用于3个示例文档: xquery version "1.0-ml"; let $tde := <template xmlns="http

我创建了一个模板来从XML中提取三元组

但是要避开空值三元组(s、p或o)。 我使用的是ignore,但这仅在主语或宾语中没有前缀时有效。如果有前缀,它将创建带有null(仅前缀)的三元组

我们有没有办法在MarkLogic TDE中处理这个问题


可为空的对象/主题问题。

您可以更多地使用上下文表达式,尤其是使用子模板时。下面是一个显示子模板的粗略示例,应用于3个示例文档:

xquery version "1.0-ml";

let $tde :=
<template xmlns="http://marklogic.com/xdmp/tde">
  <context>/test</context>
  <vars>
    <var>
      <name>subprefix</name>
      <val>"http://www.test.com/resource/test/"</val>
    </var>
    <var>
      <name>objprefix</name>
      <val>"http://www.test.com/resource/test/"</val>
    </var>
  </vars>
  <templates>
    <template>
      <context>FullName</context>
      <triples>
        <triple>
            <subject>
                <val>sem:iri($subprefix || ../ElemenetName)</val>
                <invalid-values>ignore</invalid-values>
            </subject>
            <predicate>
                <val>sem:iri('is')</val>
            </predicate>
            <object>
                <val>sem:iri($objprefix || .)</val>
                <invalid-values>ignore</invalid-values>
            </object>
        </triple>
      </triples>
    </template>
  </templates>
</template>
let $xml1 := <test><ElemenetName>elem</ElemenetName><FullName>full</FullName></test>
let $xml2 := <test><ElemenetName>elem</ElemenetName></test>
let $xml3 := <test><FullName>full</FullName></test>
return tde:node-data-extract(($xml1, $xml2, $xml3), $tde)
xquery版本“1.0-ml”;
让$tde:=
/试验
亚表层
"http://www.test.com/resource/test/"
objprefix
"http://www.test.com/resource/test/"
全名
sem:iri($subprefix | |../ElemenetName)
忽视
sem:iri('is')
sem:iri($objprefix | |)
忽视
设$xml1:=elemfull
让$xml2:=elem
设$xml3:=full
返回tde:节点数据提取($xml1、$xml2、$xml3),$tde)
有关子模板的更多背景信息,请参见: