Dear Isabelle,
You should remove this block from within the content completion configuration file:
Code: Select all
<match elementName="property" attributeName="value">
<xslt href="get_values.xsl" useCache="false" action="replace"/>
</match>
No matter what you do, this XSLT will be executed with the built-in Saxon HE. What you need to do is to implement your own
SchemaManagerFilter. In its
filterAttributeValues method you will execute the XSLT with your own Saxon-PE processor. The XSLT needs some external parameters that you can obtain and pass like this:
Code: Select all
/**
* @see ro.sync.contentcompletion.xml.SchemaManagerFilter#filterAttributeValues(java.util.List, ro.sync.contentcompletion.xml.WhatPossibleValuesHasAttributeContext)
*/
@Override
public List<CIValue> filterAttributeValues(List<CIValue> attributeValues,
final WhatPossibleValuesHasAttributeContext context) {
((net.sf.saxon.jaxp.TransformerImpl) transformer).setInitialTemplate("start");
// Give parameters. systemID and location path.
transformer.setParameter("documentSystemID", context.getSystemID());
String contextXPathExpression = context.computeContextXPathExpression();
if (contextXPathExpression != null) {
transformer.setParameter("contextElementXPathExpression", contextXPathExpression);
}
transformer.transform(null, outputTarget);
Once you have this class, you pack it into a Jar, you put the Jar inside the Classpath of the framework and you specify the Schema Manager in the
Extensions tab.
Please let me know if you need any additional details.
Best regards,
Alex