Revision: 4326 Author: hans URL: http://bknr.net/trac/changeset/4326
Add xmlns keyword argument to WITH-XML-RESPONSE macro
U trunk/bknr/web/src/web/web-macros.lisp
Modified: trunk/bknr/web/src/web/web-macros.lisp =================================================================== --- trunk/bknr/web/src/web/web-macros.lisp 2009-03-02 17:19:33 UTC (rev 4325) +++ trunk/bknr/web/src/web/web-macros.lisp 2009-03-03 21:36:05 UTC (rev 4326) @@ -104,7 +104,7 @@
(defvar *xml-sink*)
-(defmacro with-xml-response ((&key (content-type "text/xml; charset=utf-8") root-element xsl-stylesheet-name) +(defmacro with-xml-response ((&key (content-type "text/xml; charset=utf-8") root-element xsl-stylesheet-name xmlns) &body body) `(with-http-response (:content-type ,content-type) (with-query-params (download) @@ -114,10 +114,12 @@ (with-output-to-string (s) (let ((*xml-sink* (cxml:make-character-stream-sink s :canonical nil))) (cxml:with-xml-output *xml-sink* - ,(when xsl-stylesheet-name - `(sax:processing-instruction *xml-sink* "xml-stylesheet" - ,(format nil "type="text/xsl" href="~A"" xsl-stylesheet-name))) + ,@(when xsl-stylesheet-name + `((sax:processing-instruction *xml-sink* "xml-stylesheet" + ,(format nil "type="text/xsl" href="~A"" xsl-stylesheet-name)))) ,(if root-element `(cxml:with-element ,root-element + ,@(when xmlns + `((attribute "xmlns" ,xmlns))) ,@body) `(progn ,@body))))))) \ No newline at end of file