fixed DTD serialization bugs, thanks to _3b for the report
This commit is contained in:
@ -286,6 +286,8 @@
|
|||||||
(%write-rod "EMPTY" sink))
|
(%write-rod "EMPTY" sink))
|
||||||
((eq m :PCDATA)
|
((eq m :PCDATA)
|
||||||
(%write-rod "#PCDATA" sink))
|
(%write-rod "#PCDATA" sink))
|
||||||
|
((eq m :ANY)
|
||||||
|
(%write-rod "ANY" sink))
|
||||||
((atom m)
|
((atom m)
|
||||||
(unparse-string m sink))
|
(unparse-string m sink))
|
||||||
(t
|
(t
|
||||||
@ -306,13 +308,13 @@
|
|||||||
(%write-rune #/\) sink))
|
(%write-rune #/\) sink))
|
||||||
(*
|
(*
|
||||||
(walk (second m))
|
(walk (second m))
|
||||||
(%write-rod #/* sink))
|
(%write-rune #/* sink))
|
||||||
(+
|
(+
|
||||||
(walk (second m))
|
(walk (second m))
|
||||||
(%write-rod #/+ sink))
|
(%write-rune #/+ sink))
|
||||||
(?
|
(?
|
||||||
(walk (second m))
|
(walk (second m))
|
||||||
(%write-rod #/? sink)))))))
|
(%write-rune #/? sink)))))))
|
||||||
(walk model))
|
(walk model))
|
||||||
(%write-rune #/> sink)
|
(%write-rune #/> sink)
|
||||||
(%write-rune #/U+000A sink))
|
(%write-rune #/U+000A sink))
|
||||||
|
|||||||
@ -1098,7 +1098,8 @@
|
|||||||
(prog1
|
(prog1
|
||||||
(setf (gethash element-name (dtd-elements dtd))
|
(setf (gethash element-name (dtd-elements dtd))
|
||||||
(make-elmdef :name element-name :content content-model))
|
(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)
|
((null content-model)
|
||||||
e)
|
e)
|
||||||
(t
|
(t
|
||||||
@ -2101,8 +2102,7 @@
|
|||||||
(wf-error input "Malformed or invalid content model: ~S." (mu content)))
|
(wf-error input "Malformed or invalid content model: ~S." (mu content)))
|
||||||
(p/S? input)
|
(p/S? input)
|
||||||
(expect input :\>)
|
(expect input :\>)
|
||||||
(when *validate*
|
(define-element (dtd *ctx*) name content)
|
||||||
(define-element (dtd *ctx*) name content))
|
|
||||||
(list :element name content)))
|
(list :element name content)))
|
||||||
|
|
||||||
(defun maybe-compile-cspec (e)
|
(defun maybe-compile-cspec (e)
|
||||||
|
|||||||
Reference in New Issue
Block a user