sink reorganization

This commit is contained in:
dlichteblau
2005-12-28 23:11:18 +00:00
parent a6a31873a8
commit b5bd89f643
15 changed files with 778 additions and 338 deletions

View File

@ -973,7 +973,7 @@
(rod-stream-buf stream)))
(defmethod write-attribute-child ((node node) stream)
(write-rod (dom:node-value node) stream))
(put-rod (dom:node-value node) stream))
(defmethod write-attribute-child ((node entity-reference) stream)
(dovector (child (dom:child-nodes node))
@ -988,7 +988,7 @@
(buf nil)
(position 0))
(defun write-rod (rod rod-stream)
(defun put-rod (rod rod-stream)
(let ((buf (rod-stream-buf rod-stream)))
(when buf
(move rod buf 0 (rod-stream-position rod-stream) (length rod)))
@ -1210,10 +1210,12 @@
;; dass ein leeres internal subset nicht vorhanden ist und
;; wir daher nil liefern sollen. bittesehr!
(dom::%internal-subset node))
(with-output-to-string (stream)
(let ((sink (cxml:make-character-stream-sink stream)))
(dolist (def (dom::%internal-subset node))
(apply (car def) sink (cdr def)))))
(let ((sink
#+rune-is-character (cxml:make-string-sink)
#-rune-is-character (cxml:make-string-sink/utf8)))
(dolist (def (dom::%internal-subset node))
(apply (car def) sink (cdr def)))
(sax:end-document sink))
nil))
;;; NOTATION -- nix

View File

@ -1,19 +0,0 @@
(in-package :cxml)
(defun %unparse-document (sink doc canonical)
(dom:map-document sink
doc
:include-doctype (if (and canonical (>= canonical 2))
:canonical-notations
nil)
:include-default-values t))
(defun unparse-document-to-octets (doc &rest initargs &key canonical)
(%unparse-document (apply #'make-octet-vector-sink initargs)
doc
canonical))
(defun unparse-document (doc stream &rest initargs &key canonical)
(%unparse-document (apply #'make-character-stream-sink stream initargs)
doc
canonical))