Update of /project/cxml/cvsroot/cxml/xml In directory clnet:/tmp/cvs-serv31472
Modified Files: unparse.lisp xml-parse.lisp Log Message: fixed DTD serialization bugs, thanks to _3b for the report
--- /project/cxml/cvsroot/cxml/xml/unparse.lisp 2007/11/18 18:43:11 1.23 +++ /project/cxml/cvsroot/cxml/xml/unparse.lisp 2007/11/24 00:04:16 1.24 @@ -286,6 +286,8 @@ (%write-rod "EMPTY" sink)) ((eq m :PCDATA) (%write-rod "#PCDATA" sink)) + ((eq m :ANY) + (%write-rod "ANY" sink)) ((atom m) (unparse-string m sink)) (t @@ -306,13 +308,13 @@ (%write-rune #/) sink)) (* (walk (second m)) - (%write-rod #/* sink)) + (%write-rune #/* sink)) (+ (walk (second m)) - (%write-rod #/+ sink)) + (%write-rune #/+ sink)) (? (walk (second m)) - (%write-rod #/? sink))))))) + (%write-rune #/? sink))))))) (walk model)) (%write-rune #/> sink) (%write-rune #/U+000A sink)) --- /project/cxml/cvsroot/cxml/xml/xml-parse.lisp 2007/10/14 18:40:26 1.74 +++ /project/cxml/cvsroot/cxml/xml/xml-parse.lisp 2007/11/24 00:04:16 1.75 @@ -1098,7 +1098,8 @@ (prog1 (setf (gethash element-name (dtd-elements dtd)) (make-elmdef :name element-name :content content-model)) - (sax:element-declaration (handler *ctx*) element-name content-model))) + (when content-model + (sax:element-declaration (handler *ctx*) element-name content-model)))) ((null content-model) e) (t @@ -2101,8 +2102,7 @@ (wf-error input "Malformed or invalid content model: ~S." (mu content))) (p/S? input) (expect input :>) - (when *validate* - (define-element (dtd *ctx*) name content)) + (define-element (dtd *ctx*) name content) (list :element name content)))
(defun maybe-compile-cspec (e)