Я новичок в преобразованиях Marklogic XSLT, и у меня есть следующие вопросы.
Какой механизм XSLT использует Marklogic для преобразования документа с помощью функции xdmp:xslt-invoke()
? Есть ли способ поддержки версии XSLT 3.0 в Marklogic?
Я пытаюсь использовать версию XSLT 3.0, которая имеет следующую переменную для преобразования
<xsl:variable name="format-map" as="map(xs:string,xs:string)">
и я получаю ошибку ниже при использовании функции xdmp:xslt-invoke() в Marklogic
XSLT-BADSEQTYPE: (err:XTSE0020) /*:stylesheet/*:variable[1] -- Invalid sequence type: /*:stylesheet/*:variable[1]/@as (XDMP-UNEXPECTED: (err:XPST0003) Unexpected token syntax error, unexpected Lpar_, expecting $end)
Пожалуйста, дайте мне знать, как решить эту проблему
xdmp:dialect="1.0-ml"
в корневом элементе таблицы стилей, таким образом вы сможете использовать предоставляемое ими расширение карты, которое, однако, не указано W3C. - person Martin Honnen   schedule 02.09.2020as="map(xs:string,xs:string)"
будет работать, это больше похоже на<xsl:variable name="map" select="map:new() => map:with('foo', 'bar')"/>
, а затем вы можете использовать<xsl:value-of select="map:get($map, 'foo')"/>
. И я думаю, вам нужно объявитьxmlns:map="http://marklogic.com/xdmp/map"
. В настоящее время у меня нет доступа к Marklogic, поэтому вы можете поэкспериментировать самостоятельно или подождать, пока не получите ответ от кого-то более понимающего. - person Martin Honnen   schedule 02.09.2020