Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Привязать коллекцию Java к последовательности xQuery из xQuery

Автор вопроса: jtzeroОтветов: 1
declare function Error:toString($this as javaObject) as xs:string external;

предыдущий связывает возвращаемую String() с xs:string. можно ли вернуть коллекцию и привязать ее к последовательности xQuery, скажем, следующее

declare function Error:toList($this as javaObject) as squenceType external;

чтобы его можно было запустить через flwr?

  • (я использую процессоры Saxon, Qizx и DDXQ), в итоге я передал его как строку (подобную json) и просто использовал tokenize и тому подобное для разделения данных. я надеялся, что смогу отобразить его напрямую, но нет встроенного ORM jtzero 14.10.2010

javacollectionsxquery

Ответы

Ответ 1 · kadalamittai

XQuery - это язык программирования для Xml World. W3C определяет стандарт XQuery 1.0 для языка.

в том, что по умолчанию XQuery поддерживает основные типы данных, такие как (целые, плавающие, десятичные, логические типы) и сложные типы данных, такие как узел, элемент, текст, комментарий и т. д.

после этого "внешнее" ключевое слово для функции и переменной в основном предназначено для разработчиков XQuery Engine.

Объявление типа внешней переменной тесно связано с контекстом и пользовательской реализацией, специфичной для движка. например)

declare external variable $employeJavaObject as javaObject.
                               or
declare function Error:toString($this as javaObject) as xs:string external;

это означает, что объект javaObject должен быть определен механизмом XQuery и обеспечивает его маршаллинг.

Я работал с MarkLogic (4.x), Zorba (1.4), Saxxon Xquery engine. До сих пор я не нашел каких-либо строгих привязок, связанных с языком программирования.

переходя к вашей проблеме - если ваша коллекция имеет тип String, вы можете просто отправить их в виде последовательности строк и получить ее обратно.

если вам нужна какая-то надежная система сопоставления объектов, вам необходимо разработать такую инфраструктуру на основе стандартных оболочек механизма XQuery, например

"http://developer.marklogic.com/pubs/4.1/javadoc/com/marklogic/xcc/types/package-frame.html"

или используйте какой-нибудь XmlBeans Mapper, например XmlBeans или Castor.

##--- Редактирование после поиска Looks liks XBird (code.google.com) содержит несколько интересных сценариев сопоставления http://code.google.com/p/xbird/wiki/XmlObjectBinding

Я начал изучать это. мой опыт в основном связан с marklogic.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы