Невозможно получить XML-файл с помощью MarkLogic Corb Tool
Я хочу получить входной файл xml с помощью инструмента MarkLogic CoRB, чтобы продолжить, но не могу получить этот файл с помощью инструмента 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'), который я хочу получить через 'upload-skos-file.xqy' с помощью MarkLogic Corb Tool:
<?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)
Инструмент Corb MarkLogic работает успешно, но не получает никакой записи в файле журнала Marklogic, я не уверен, где там была ошибка.
1 ответ
CoRB StreamingXPath в настоящее время не может регистрировать и использовать пространства имен и префиксы пространств имен, поэтому элементы с указанием пространства имен таргетинга XPath не могут использовать префиксы пространства имен.
Тем не менее, более общее сопоставление элемента документа с фильтрацией по предикату будет работать. Это немного некрасиво и намного сложнее печатать, но работает:
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']