我需要通过调用java类的非静态方法来验证xsl中的一些字段

我需要通过调用java类的非静态方法来验证xsl中的一些字段,java,xslt,Java,Xslt,我需要通过调用java类的非静态方法验证xsl中的一些字段。 我想创建这个类的对象并将其传递给xsl。之后-我想检查是否发现错误 如果我将类的方法设置为Valifator静态-所有方法都可以正常工作。 或: 如果我在xsl中创建类验证器的对象,那么所有这些都可以正常工作 但是如何使用非静态方法呢 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:validatorns="

我需要通过调用java类的非静态方法验证xsl中的一些字段。 我想创建这个类的对象并将其传递给xsl。之后-我想检查是否发现错误

如果我将类的方法设置为Valifator静态-所有方法都可以正常工作。 或: 如果我在xsl中创建类验证器的对象,那么所有这些都可以正常工作

但是如何使用非静态方法呢

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
xmlns:validatorns="xalan://project.xmlxsl.xml.Validator"
extension-element-prefixes="validatorns">

<xsl:output method="xml" indent="yes"/>
<xsl:param name="name" />
<xsl:param name="validator" />

<xsl:variable name="checkName" select="validatorns:checkName($validator,$name)" />
...
<xsl:choose>
<xsl:when test="$checkName">
...
</xsl:when>
</xsl:choose>

</xsl:stylesheet>

...
...

从XSLT返回一个值,而不是转换后的文档,这听起来有点奇怪。但是我想您可以使用
ThreadLocal

如果您在XSL中有某种unqiue对象标识符,那么您可以为您的验证器类使用静态注册表

因此,您创建一个验证器,为文档注册它,当使用正确的ID调用
checkName
时,注册表将找到匹配的验证器并使用它


转换文档后,您可以注销验证程序。确保使用对注册表哈希映射的同步访问来获得线程安全。

我很难理解您的问题。请重新措辞。也可以和我们分享一些Java代码。对不起。我正在重新措辞我的问题