Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是';java:class';XSL名称空间的标准使用?_Java_Xslt_Saxon - Fatal编程技术网

是';java:class';XSL名称空间的标准使用?

是';java:class';XSL名称空间的标准使用?,java,xslt,saxon,Java,Xslt,Saxon,我一直在尝试将一些XSLT国际化,并让它使用属性文件。 我已经到了我认为我的代码应该可以工作的地步,但是我发现了一个错误,我在这里找到了原因: 正如它所说,我正在使用saxon(版本8),并试图确定是否使用如下代码: xmlns:lcl=“java:com.mycode.localization.LocaleUtilities”xmlns:resource=“java:java.util.ResourceBundle.getBundle('taskStrings',lcl:getCurren

我一直在尝试将一些XSLT国际化,并让它使用属性文件。 我已经到了我认为我的代码应该可以工作的地步,但是我发现了一个错误,我在这里找到了原因:

正如它所说,我正在使用saxon(版本8),并试图确定是否使用如下代码:

xmlns:lcl=“java:com.mycode.localization.LocaleUtilities”xmlns:resource=“java:java.util.ResourceBundle.getBundle('taskStrings',lcl:getCurrentLocale())”>
...

是“标准”XSL的一部分或仅由某些解析器支持的非官方/专有扩展。我需要知道这一点,因为我需要在所使用的解析器中提供一定程度的灵活性,并且只有在saxon不支持这一点的情况下才能证明不支持saxon,因为它不完全符合标准

顺便说一下,它造成的错误是这样的

Cannot find a matching 1-argument function named
{java:java.util.ResourceBundle.getBundle('taskStrings', lcl:getCurrentLocale())}getString()

如果您试图国际化XSLT,可以使用key()函数和元素。您可能需要将属性文件转换为XML


当然,如果您确实需要保持属性文件的原样,您可以使用saxon编写自己的属性文件,它可以读取属性文件并将其作为xml返回XSL。

进一步挖掘表明,saxon确实支持我想要的内容,而问题是由于使用实例方法而产生的,这会导致复杂性。现在,我只使用静态方法调用来重新完成所有工作,使事情变得简单,并且一切正常

进一步挖掘表明,saxon确实支持我想要的东西,而问题是由于使用实例方法而产生的,这会导致复杂性。现在,我只使用静态方法调用重新完成了所有工作,以保持简单且一切正常。正如您所建议的,java:x.y.z URI格式不是标准格式,而是一些基于java的XSLT处理器用于定义java方法绑定的约定。不同处理器的详细规则差别很大。如果您找到类似于此处的解决方案,您可以为自己的问题添加答案。