我应该指出,虽然我对XQuery了解了一些,XML XSLT等。我是eXist-db的完全新手。
我正在查看遗留的eXist-db应用程序,该应用程序的查询存储在文件结构中。我已经成功地将数据库从1.4转移到2.2,复制了包含XQuery和样式的文件夹,最后我还修复了一些XQuery奇怪(特别是与请求有关:get-parameter现在返回xs:string *而不是xs:string)。因此不再出现编译/运行时错误。
然而,在我努力的地方,似乎1.4中的网络服务器正在做一些它在2.2中没做的转换。因此,在浏览1.4应用程序时,我得到以下响应:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:sidebar="http://exist-db.org/NS/sidebar" xmlns:exist="http://exist.sourceforge.net/NS/exist">
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link href="style.css" type="text/css" rel="stylesheet">
</head>
<body bgcolor="#FFFFFF">
<table style="border-collapse:collapse;table-layout:fixed;width:1288pt" cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="207" valign="top">
<div class="logo">
<span style="color:red">SABRE</span><span style="color:black">-</span><span style="color:blue">DB</span>
</div>
<div class="version">
Version: 2.5.0</div>
<div class="dataset"></div>
<div xmlns:fn="http://exist-db.org/local-functions" class="sidebar"></div>
<div class="banner">
<img xmlns="http://exist-db.org/NS/sidebar" xmlns:xi="http://www.w3.org/2001/XInclude" alt="powered by eXist" border="0" src="../resources/powered.gif"/>
</div>
<div class="authors">
使用2.2版本时,我得到以下内容:
<document xmlns:xi="http://www.w3.org/2001/XInclude"><!--<xi:include href="context::/sabredb/sabre-header.xml"/>--><version>2.5.0</version>,
<dataset/>,
<sidebar xmlns="http://exist-db.org/NS/sidebar" title="Navigation">
<banner>
<img alt="powered by eXist" border="0" src="../resources/powered.gif"/>
</banner>
</sidebar>,
<user>not logged in</user><body><section title="blah"><div class="panel">
所以不知何故,它没有对生成的XML应用任何模板...我认为侧边栏可能是一个1.2特定的功能..但它根本就没有样式化其他节点。我错过了什么?
答案 0 :(得分:1)
eXist-db多年来一直不支持Apache Cocoon。相反,我建议您调查eXist中的URL Rewriting Framework,这将允许您执行以前使用Cocoon执行的任何操作,包括将XSLT转换应用于XQuery的结果。
我还建议从eXist-db 3.0.RC1开始,或者采用最近的每晚构建(这将非常接近eXist-db 3.0.RC2的样子)。