XSLT с XPAth 2.0 и выражениями Java - PullRequest
3 голосов
/ 31 марта 2012

Я хотел бы использовать XPath 2.0, точнее, функцию distinct-values. Я скачал Saxon Home Edition, потому что он может работать с XPath 2.0 и XSLT 2.0, но теперь он жаловался на то, что не может вызывать java.

Cannot find a matching 1-argument function named {http://xml.apache.org/xslt/java}java.text.SimpleDateFormat.new(). Note that direct calls to Java methods are not available under Saxon-HE;

Встроенный процессор в JRE не имеет проблем с выражениями Java. Есть ли способ смешать Saxon-HE и процессор JRE по умолчанию? Или есть какой-то бесплатный процессор, который может сделать оба?

Дополнительный вопрос: почему XPath 2.0 и XSLT 2.0 применяются так редко? Ему несколько лет, но все большие парики не могут это сделать ... :-(

Ответы [ 2 ]

4 голосов
/ 31 марта 2012

Ответ на второй вопрос (почему XPath 2.0 и XSLT 2.0 реализуются так редко?) Неявен в вашем первом - это связано с экономикой рынка программного обеспечения - так много людей хотели бы иметь все бесплатно, и из-за этого сложно создать экономическое обоснование для разработки программного обеспечения.

Если вы не можете позволить себе £ 50 за лицензию Saxon Professional Edition, у вас есть возможность использовать «встроенные функции расширения», как предлагает Мартин, или придерживаться Saxon-B 9.1, как предлагает Димитр.

4 голосов
/ 31 марта 2012

Если вы хотите использовать функции расширения Saxon 9 и , вам нужно использовать одну из коммерческих редакций или использовать новый механизм интегрированных функций расширения или вам нужно используйте Saxon 9.1 (все еще доступно). Что касается форматирования дат, XSLT и XPath 2.0 имеют поддержку типов данных схемы xs: date и xs: dateTime, и есть функции для их форматирования, такие как http://www.w3.org/TR/xslt20/#format-date. Что касается поддержки XSLT и XPath 2.0, XPath 2.0 является подмножеством XQuery 1.0, у вас должна быть возможность найти реализации для этого, помимо Saxon. XSLT 2.0 - сложная спецификация, и есть другие реализации от IBM и Intel, например, но не как проекты с открытым исходным кодом.

...