Access Java publi c статика из XSL - PullRequest
0 голосов
/ 31 марта 2020

Я знаю, что можно вызывать методы Java, добавляя пространства имен в XSL. Возможно ли получить доступ к статике без использования геттера, как мы можем в Java?

java:

package com.package;

public class MyClass {

    public static final int myIntThatIUseLotsOfPlacesInJavaAndXSL = 123;

    //other methods, etc

XSL:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:myclass="com.package.MyClass" exclude-result-prefixes="myclass">

...

<xsl:value-of select="myclass:myIntThatIUseLotsOfPlacesInJavaAndXSL"/>

...

edit: Я должен был упомянуть, что использую Xalan, но ответы на другие процессоры будут полезны для других в будущем.

1 Ответ

1 голос
/ 31 марта 2020

Это зависит от процессора XSLT, например, Saxon 9 и 10 в коммерческих изданиях поддерживают

<xsl:value-of select="myclass:myIntThatIUseLotsOfPlacesInJavaAndXSL()" xmlns:myclass="java:com.package.MyClass"/>

Согласно книге http://cafeconleche.org/books/xmljava/chapters/ch17s03.html невозможно "получить доступ" Поля в классе "непосредственно из Xalan, рекомендуется установить метод для возврата значения поля.

...