2012-01-28 6 views
0

Я хотел бы поэкспериментировать с функциями карты в Saxon (http://www.saxonica.com/documentation/expressions/xpath30maps.xml), но я не могу получить компиляцию запроса. Возможно, мне не хватает какого-либо параметра или я использую неправильное пространство имен, но я просто не могу найти правильный ответ. Это мой код запроса:XQuery 3.0 и карты в Saxon

xquery version "3.0"; 

(: i have also tried http://www.w3.org/2005/xpath-functions/map, no difference :) 
import module namespace map = "http://ns.saxonica.com/map"; 

map:get(map { 1 := 'aaa'}, 1) 

вызывается из командной строки:

"c:\Program Files\Saxonica\SaxonEE9.4N\bin\Query.exe" -s:play.xml -q:play2.xq" -qversion:3.0 

Эти команды завершается с ошибкой не удается найти модуль для пространства имен «http://ns.saxonica.com/map» Когда Я не указываю объявление карты пространства имен модуля, ошибка - это префиксная карта, которая не была объявлена, поэтому я предполагаю, что она должна быть.

+0

Я вижу, что функция карты реализована только в Saxon 9.4. Вы подтвердили, что версия саксона, которую вы используете, действительно 9.4? –

+0

Если у вас действительно есть Saxon 9.4, ознакомьтесь с этим примером кода: http://www.saxonica.com/documentation/extensions/map.xml. Хотя это XSLT, вы можете легко преобразовать его в эквивалентный код XQuery. –

ответ

0

Незнайка, если это помогает, но процессор Basex XQuery также предлагает реализацию карты предложений Майкла Кея (по-прежнему будет доработаны в W3): http://docs.basex.org/wiki/Map_Module

1

Вы должны использовать declare namespace вместо import module namespace для доступа к встроенным функциям , Насколько я понимаю, импорт модуля предназначен только для модулей, поставляемых пользователем.

Файл map.xq:

declare namespace map="http://www.w3.org/2005/xpath-functions/map"; 
map:get(map { 1 := 'aaa'}, 1) 

работает просто отлично:

> "C:\Program Files\Saxonica\SaxonEE9.4N\bin\Query.exe" -qversion:3.0 map.xq 
<?xml version="1.0" encoding="UTF-8"?>aaa 

Я попробовал его с Saxon-EE 9.4.0.2J (версия Java) тоже, с тем же эффектом.

 Смежные вопросы

  • Нет связанных вопросов^_^