Что мне нужно для запроса базы данных mysql из xsl с помощью Java-инструмента Saxon (командная строка)?
Я хочу запросить базу данных с помощью инструмента Java SAXON
- Используйте соединение ODBC для подключения к базе данных MySQL
- База данных запросов (возможно, информационная схема -читанная схема)
- Экспорт результатов в XML
Это лицензионная функция в саксонии (например, saxon9ee)?
Если да, есть ли другой вариант с открытым исходным кодом для достижения того же уровня функциональности?
Я скачал saxon9ee.jar + saxon9he.jar и немного поигрался.
что я сделал до сих пор:
XSLT: connect.xslt
<?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"
exclude-result-prefixes="#all"
xmlns:sql="http://saxon.sf.net/sql"
extension-element-prefixes="sql"
version="2.0">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:param name="driver" select="'com.mysql.jdbc.Driver'"/>
<xsl:param name="database" select="'jdbc:mysql://localhost/databaename'"/>
<xsl:param name="user" select="'usr'"/>
<xsl:param name="password" select="'pwd'"/>
<xsl:template match="//databaseObjects">
<xsl:message>Connecting to database...</xsl:message>
<!-- The "connection" variable establishes JDBC connection by selecting as its value the SQL connection to the database.!-->
<xsl:variable name="connection" as="java:java.lang.Object" xmlns:java="http://saxon.sf.net/java-type">
<sql:connect driver="{$driver}" database="{$database}" user="{$user}" password="{$password}">
<!-- Used primarily for debugging, if,
for whatever reason, the credentials or something incorrect is passed in the connect statement,
the process will terminate with the following message -->
<xsl:fallback>
<xsl:message terminate="yes">Connection to MySQL failed.</xsl:message>
</xsl:fallback>
</sql:connect>
</xsl:variable>
<sql:close connection="$connection"/>
</xsl:template>
</xsl:stylesheet>
XML: objects.xml
(приблизительное представление)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseObjects>
<object type="triggers"/>
<object type="functions"/>
<object type="procedures"/>
<object type="views"/>
<object type="events"/>
</databaseObjects>
команда:
java -jar ~/saxon/saxon9he.jar objects.xml connect.xslt
выход:
No license file found - running with licensable features disabled
Connecting to database...
Error on line 17 of connect.xslt:
XTDE1450: Unknown extension instruction
in built-in template rule
Transformation failed: Run-time errors were reported
Любая помощь заметна, спасибо
1 ответ
Используйте следующий процесс:
- Установите MySQL Connector/J (официальный драйвер JDBC для MySQL)
- Установите Apache Ant
- Создайте / измените задачу Ant, чтобы:
- подключиться к MySQL
- выполнить запрос
- получить вывод XML
- обрабатывать XML через Saxon
Рекомендации