Невозможно получить 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']
Другие вопросы по тегам