Мой xsl файл
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:good="xalan://com.epam.laba.model.Good"
xmlns:validator="xalan://com.epam.laba.validator.ValidatorXslGood">
<xsl:include href="parameter.xsl"/>
<xsl:param name="validator"/>
<xsl:param name="good"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/|node()|@*">
<xsl:if test="validator:validateGood($good)">
<xsl:copy>
<xsl:apply-templates
select="node()|@*" />
</xsl:copy>
</xsl:if>
</xsl:template>
......
Java-код, где создается валидатор и устанавливается значение xsl
Good good=fillGood(parameters);
ValidatorXslGood validatorXslGood=new ValidatorXslGood();
Source sourceXSL = new StreamSource(xsltFile);
Transformer transformer = factory.newTransformer(sourceXSL);
transformer.setParameter(SUBCATEGORY_ID_VALUE, subcategoryId);
transformer.setParameter(GOOD, good);
transformer.setParameter(VALIDATOR, validatorXslGood);
transformer.transform(xmlSource, new StreamResult(outWriter));
но
Первый аргумент нестатической функции Java 'validateGood' не является допустимой ссылкой на объект.
Невозможно преобразовать тип данных 'void' в 'логический'.
Можете ли вы объяснить мне, что не так?
UPD:
ValidatorXslGood.java код:
public class ValidatorXslGood {
private Good good;
private Map<String, String> setErrors;
private ResourceBundleManager errorManager;
public ValidatorXslGood() {
errorManager = new ResourceBundleManager();
errorManager.setResourceBundle(RESOURCE_BUNDLE__FOR_ERROR_FILE);
}
public Good getGood() {
return good;
}
public void setGood(Good good) {
this.good = good;
}
public boolean validateGood(Good good) {
if (checkingName(good.getName())) {
return true;
} else {
return false;
}
}
Я пытаюсь создать валидатор в XSL
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:good="xalan://com.epam.laba.model.Good"
xmlns:validator="xalan://com.epam.laba.validator.ValidatorXslGood"
extension-element-prefixes="validator" >
<xsl:include href="parameter.xsl"/>
<xsl:variable name="validatorConstructor" select="validator:new()"/>
<xsl:param name="validator"/>
<xsl:param name="good"/>
........
но у меня новая ошибка, и я не могу понять, где ошибка в пути
Не удается найти класс 'com.epam.laba.validator.ValidatorXslGood'. Не могу
найти внешний конструктор 'com.epam.laba.validator.ValidatorXslGood'.