Это второй вопрос, связанный с утилитой MarkLogic content pump.Marklogic Content Pump создает несколько документов с помощью преобразования XSLT
Я глотаю единый агрегированный XML-документ с несколькими записями в насосе MarkLogic Content. Я ожидаю, что совокупный XML-документ будет преобразован в другой формат, а также утилиту накачки содержимого для создания нескольких XML-документов из одного большого XML-документа ввода.
Пример: Сводные входной XML-документ:
<root>
<data>Bob</data>
<data>Vishal></data>
</root>
Ожидаемый результат от содержания насоса: два документа с другой формат:
документ 1:
<data1>Bob</data1>
документ 2
<data1>Vishal</data1>
Я использую следующий XSLT разделить вышеуказанный документ на два узла:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:template match="root">
<xsl:apply-templates select="data"></xsl:apply-templates>
</xsl:template>
<xsl:template match="data">
<data1><xsl:value-of select="."/></data1>
</xsl:template>
</xsl:stylesheet>
выход:
<?xml version="1.0" encoding="UTF-8"?>
<data1>Bob</data1>
<data1>Vishal</data1>
Ниже приводится преобразование XQuery, который вызывает над «XSLT-файла» для создания двух узлов :
xquery version "1.0-ml";
module namespace example = "http://marklogic.com/example";
declare function example:transform(
$content as map:map,
$context as map:map
) as map:map*
{
let $attr-value :=
(map:get($context, "transform_param"), "UNDEFINED")[1]
let $the-doc := map:get($content, "value")
let $let-output:= xdmp:xslt-invoke("/marklogic.rest.transform/simple-xsl/assets/transform.xsl", $the-doc)
return (map:put(
$content, "value",
$let-output
),$content)
};
Приведенные выше преобразования XQuery не удались и возвратили ошибку. Итак, как мне изменить вышеупомянутую программу XQuery, чтобы она генерировала и индексировала несколько преобразованных XML-документов из одного документа?
МЛКП Команда:
mlcp.sh import -host localhost -port 8040 \
-username admin -password admin \
-input_file_path ./parent-form.xml \
-transform_module /example/parent-transform.xqy \
-transform_namespace "http://marklogic.com/example" \
-transform_param "my-value" \
-output_collections people \
-output_permissions my-app-role,read,my-app-role,update
Большое спасибо. Это спасатель жизни. Пожалуйста, продолжайте помогать –