当使用 BaseX 开发 Web 应用程序时,我想返回 HTML 并包含 HTML5 典型的 DOCTYPE,即
<!DOCTYPE html>
我注意到,如果我设置 RESTXQ 函数并包含 %output:method('html')
注释,没有默认的 DOCTYPE。如果函数返回一个序列,其中第一项是字符串 "<!DOCTYPE html>"
,第二项是 <html>
元素,则 Web 服务器会将尖括号转义为 <!DOCTYPE html>
有没有办法禁用字符转义?如果我包含 %output:doctype-system('html')
那么网络服务器会提供 <!DOCTYPE html SYSTEM "html">
,这不太正确。有没有办法抑制SYSTEM "html"
?
我在 BaseX 文档的 RESTXQ 页面上没有看到任何有关使用 HTML5 DOCTYPE 的内容,以及我在 http://exquery.github.io/exquery/exquery-restxq-specification/restxq- 找到的 RESTXQ 规范草案1.0-specation.html 根本没有提到 DOCTYPE。
最好的解决方案是将结果输出为 HTML5,这可以通过
html-version
序列化参数来完成:
declare
%rest:path('/test')
%output:method('html')
%output:html-version('5')
function local:test() {
<html>Welcome</html>
};