eXist で,XQuery から XML を生成するとデフォルトでは html のDOCTYPE
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
が付いてしまうので,COCOON の $EXIST_HOME/xquery/sitemap.xmap を編集してXML でシリアライズするようにしなければならない.そのためには,sitemap.xmap のなかの,
<map:pipelines> <map:pipeline>
の中に
<map:match pattern="book-query.xq*"> <map:generate src="book-query.xq" type="xquery"> <map:parameter name="create-session" value="true"/> </map:generate> <map:serialize encoding="UTF-8" type="xml"/> </map:match>
を追加する.意味は generate で生成して serialize で UTF-8 の xml にシリアライズすると.
余談として,*.xq だと COCOON (XqueryGenerator) に渡されるらしい. COCOON に渡った後の処理は,各所の sitemap.xmap で記述する. *.xql とかだと XQueryServlet に渡されてHTMLが吐かれる(XMLにできるのかなぁ?) この設定は $EXIST_HOME/WEB-INF/web.xml に書かれている.
さて,一つの問題は解決した.次に移ろう.
- Newer: AWK - はじめ