我正在尝试使用Saxon的sql-connect语句来访问保存在我的数据库中的数据映射以执行 XML 转换。
我在 Doug Tidwell 的书“XSLT”(第 334 页)中读到以下内容:“为了使事情进一步复杂化,用户名必须与数据库模式的名称匹配。”
这是否意味着,在使用 Saxon 的开源版本时,我的用户名和数据库模式名称不能不同?或者这可能以某种方式实现?
我还可以将saxon9.jar和saxon9-sql.jar都包含到我的 Java 程序中以使其工作吗?
感谢帮助。
引用撒克逊邮件列表中的 Michael Kay 的话:
“SQL 扩展利用了‘元素可扩展性’机制,该机制仅在 Saxon-PE 及更高版本中可用。
但是,SQL 扩展本身的代码是开源的,因此您可以自由修改和扩展它。换句话说,它是商业产品的开源插件。这或许可以解释为什么你看到了明显相互矛盾的信息。”
所以答案是:不。没有许可证,就不能使用元素可扩展性。
这实际上是可能的,也是我多年来一直在使用的东西。您必须从源代码编译 saxon-sql.jar 或找到一个 jar 并下载它(例如http://www.java2s.com)。将它与兼容的 saxon.jar 放在同一目录中(Saxon HE 工作正常),您可以在包含 saxon 命名空间后使用它
xmlns:saxon="http://saxon.sf.net/"
xmlns:sql="java:/net.sf.saxon.sql.SQLElementFactory"
extension-element-prefixes="saxon sql"
在您的样式表标签中。