(in-package #:oh-ducks) (eval-when (:compile-toplevel :load-toplevel :execute) (export 'dom) (export 'xml)) (defclass xml-template (css-selector-template) ()) (add-handler 'dom 'cxml-dom:make-dom-builder) (unless *default-parser* (setf *default-parser* (rcurry #'cxml:parse (get-handler-for-model 'dom)))) (defmethod make-template ((kind (eql 'xml)) (spec cons)) (destructuring-bind (&key parser model) (append (when (%spec-includes-opts spec) (second spec)) (list :model 'dom)) (make-instance 'xml-template :parser (or parser (rcurry #'cxml:parse (get-handler-for-model model))) :spec spec)))