Estou tentando testar o uso das extensões sql do Saxon EE através do Oxygen. Estou recebendo um erro que o driver falhou ao carregar:
Nome do mecanismo: Saxon-EE 11.4
Gravidade: fatal
ID do problema: SXSQ0003
Descrição: Falha ao carregar o driver JDBC org.sqlite.JDBC
Local de início: 30:106
URL: http://www.saxonica.com/html/documentation/javadoc/ net/sf/saxon/trans/SaxonErrorCode.html#SXSQ0003
Este é o meu XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:sql="http://saxon.sf.net/sql"
xmlns:saxon="http://saxon.sf.net/"
exclude-result-prefixes="xs"
version="3.0">
<xsl:param name="user"/>
<xsl:param name="password"/>
<xsl:variable name="driver" select="'org.sqlite.JDBC'"/>
<xsl:variable name="database" select="'jdbc:sqlite:S1000D.db'"/>
<xsl:template match="/">
<test-output>
<xsl:apply-templates/>
</test-output>
</xsl:template>
<xsl:template match="xref">
<xsl:variable name="xrefid" select="@xrefid"/>
<xsl:if test="not(element-available('sql:connect'))">
<xsl:message terminate="yes">sql:connect not available</xsl:message>
</xsl:if>
<xsl:message>Connecting to <xsl:value-of select="$database"/>...</xsl:message>
<xsl:variable name="conn" as="java:java.sql.Connection" xmlns:java="http://saxon.sf.net/java-type">
<sql:connect driver="{$driver}" database="{$database}" user="{$user}" password="{$password}">
<xsl:fallback>
<xsl:message terminate="yes">SQL Extensions are not installed</xsl:message>
</xsl:fallback>
<xsl:message>Connected...</xsl:message>
</sql:connect>
</xsl:variable>
<xsl:variable name="q">
<sql:query connection="$conn" table="'DataModule'" column="'*'" where="'LmTask_ID = {$xrefid}'"/>
</xsl:variable>
<xsl:for-each select="$q">
<dmRef>
<dmcode>
<!-- Use values from the query to populate the dmcode attributes -->
</dmcode>
</dmRef>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Este é o arquivo de configuração SaxonEE em nosso projeto:
<configuration edition="EE" xmlns="http://saxon.sf.net/ns/configuration" label="Saxon-EE (no threads)">
<global allowMultiThreading="false"
timing="true"
validationWarnings="true"
validationComments="true"
allowExternalFunctions="true"
compileWithTracing="false"
lineNumbering="true"
traceExternalFunctions="true"
expandAttributeDefaults="true"
allowSyntaxExtensions="true"/>
<xslt>
<extensionElement namespace="http://saxon.sf.net/sql" factory="net.sf.saxon.option.sql.SQLElementFactory"/>
</xslt>
</configuration>
Tentei copiar o jar do driver SQLite mais recente (sqlite-jdbc-3.42.0.0.jar) para a pasta Oxygen lib e ele reclamou. Eu movi para a pasta lib/connectors. Ele não reclamou de estar localizado lá, mas ainda falha. Não tenho certeza de onde localizar o jar para que o Saxon carregue o JDBC.
Qualquer ajuda é muito apreciada.
A documentação https://www.oxygenxml.com/doc/versions/25.1/ug-editor/topics/application-reports-errors-on-startup.html sugere, para permitir que você adicione, por exemplo,
sqlite-jdbc-3.42.0.0.jar
à pasta lib do Oxygen XML e para Se não reclamar, você pode colocar o arquivo na pasta e editar o arquivolibraries.list
lá para adicionar, por exemplo,;sqlite-jdbc-3.42.0.0.jar
no final da lista. Eu testei que oXygen executa o Saxon EE 11 com sucesso fazendo uma conexão sqlite com os elementos de extensão sql. Observe que enquanto eu colocava o jar na pasta lib e editava olibaries.list
oXygen, fechei-o e reiniciei-o para que as alterações entrassem em vigor.No entanto, espere que o suporte do Oxygen diga o que eles consideram a maneira mais fácil/direta de fazer com que o Saxon escolha o driver sqlite jdbc para um cenário XSLT.