无法通过 MarkLogic Corb 工具获取 XML 文件
Not able to get XML file via MarkLogic Corb Tool
我想通过 MarkLogic CoRB 工具获取 xml 输入文件以继续下一步,但无法通过 CoRB 工具获取此文件:
ML 配置属性文件:
THREAD-COUNT=16
MODULE-ROOT=/
MODULES-DATABASE=.\37074\XQuery\PROD-MetadataModules
XML-FILE=.\37074\input\asme_module_v3.xml
XML-NODE=rdf:RDF
PROCESS-MODULE=.\37074\XQuery\upload-skos-file.xqy|ADHOC
EXPORT-FILE-DIR=.\37074\Report
EXPORT-FILE-NAME=update-Non-member-price-report.xml
EXPORT-FILE-TOP-CONTENT="Record"
URIS-LOADER=com.marklogic.developer.corb.FileUrisXMLLoader
PROCESS-TASK=com.marklogic.developer.corb.ExportBatchToFileTask
DECRYPTER=com.marklogic.developer.corb.JasyptDecrypter
XML 输入文件('asme_module_v3.xml'),我想通过 MarkLogic Corb 工具 'upload-skos-file.xqy' 获得:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#">
<skos:ConceptScheme rdf:about="http://www.bsigroup.com/asme/">
<skos:hasTopConcept rdf:resource="http://www.bsigroup.com/asme/A112"/>
<skos:hasTopConcept rdf:resource="http://www.bsigroup.com/asme/A120"/>
</skos:ConceptScheme>
</rdf:RDF>
'upload-skos-file.xqy' 文件中的代码:
xquery version "1.0-ml";
declare variable $URI external;
let $skos-number := $URI
let $_ := xdmp:log("=========================skos-number===========================")
return xdmp:log($skos-number)
MarkLogic corb 工具执行成功但未在 Marklogic 日志文件中获取任何条目,我不确定哪里出错了。
CoRB StreamingXPath 当前无法注册和利用命名空间和命名空间前缀,因此以符合命名空间的元素为目标的 XPath 无法利用命名空间前缀。
通过 local-name()
过滤谓词对文档元素进行更通用的匹配将起作用。它有点难看,需要输入更多内容,但有效:
XML-NODE=*[local-name()='RDF' and namespace-uri()='http://www.w3.org/1999/02/22-rdf-syntax-ns#']
或者如果 RDF local-name()
足够好:
XML-NODE=*[local-name()='RDF']
我想通过 MarkLogic CoRB 工具获取 xml 输入文件以继续下一步,但无法通过 CoRB 工具获取此文件:
ML 配置属性文件:
THREAD-COUNT=16
MODULE-ROOT=/
MODULES-DATABASE=.\37074\XQuery\PROD-MetadataModules
XML-FILE=.\37074\input\asme_module_v3.xml
XML-NODE=rdf:RDF
PROCESS-MODULE=.\37074\XQuery\upload-skos-file.xqy|ADHOC
EXPORT-FILE-DIR=.\37074\Report
EXPORT-FILE-NAME=update-Non-member-price-report.xml
EXPORT-FILE-TOP-CONTENT="Record"
URIS-LOADER=com.marklogic.developer.corb.FileUrisXMLLoader
PROCESS-TASK=com.marklogic.developer.corb.ExportBatchToFileTask
DECRYPTER=com.marklogic.developer.corb.JasyptDecrypter
XML 输入文件('asme_module_v3.xml'),我想通过 MarkLogic Corb 工具 'upload-skos-file.xqy' 获得:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#">
<skos:ConceptScheme rdf:about="http://www.bsigroup.com/asme/">
<skos:hasTopConcept rdf:resource="http://www.bsigroup.com/asme/A112"/>
<skos:hasTopConcept rdf:resource="http://www.bsigroup.com/asme/A120"/>
</skos:ConceptScheme>
</rdf:RDF>
'upload-skos-file.xqy' 文件中的代码:
xquery version "1.0-ml";
declare variable $URI external;
let $skos-number := $URI
let $_ := xdmp:log("=========================skos-number===========================")
return xdmp:log($skos-number)
MarkLogic corb 工具执行成功但未在 Marklogic 日志文件中获取任何条目,我不确定哪里出错了。
CoRB StreamingXPath 当前无法注册和利用命名空间和命名空间前缀,因此以符合命名空间的元素为目标的 XPath 无法利用命名空间前缀。
通过 local-name()
过滤谓词对文档元素进行更通用的匹配将起作用。它有点难看,需要输入更多内容,但有效:
XML-NODE=*[local-name()='RDF' and namespace-uri()='http://www.w3.org/1999/02/22-rdf-syntax-ns#']
或者如果 RDF local-name()
足够好:
XML-NODE=*[local-name()='RDF']