Update of /project/cxml/cvsroot/cxml/xml In directory common-lisp.net:/tmp/cvs-serv13237/xml
Modified Files: xml-parse.lisp Log Message: auch qname "xmlns" hat einen namespace, falls sax:*sowieso* an ist. und im dom-builder nicht den namen des doctypes pruefen
Date: Mon Dec 5 00:20:27 2005 Author: dlichteblau
Index: cxml/xml/xml-parse.lisp diff -u cxml/xml/xml-parse.lisp:1.52 cxml/xml/xml-parse.lisp:1.53 --- cxml/xml/xml-parse.lisp:1.52 Sun Dec 4 23:18:37 2005 +++ cxml/xml/xml-parse.lisp Mon Dec 5 00:20:27 2005 @@ -3466,15 +3466,19 @@
(defun set-attribute-namespace (attribute) (let ((qname (sax:attribute-qname attribute))) - (multiple-value-bind (prefix local-name) (split-qname qname) - (declare (ignorable local-name)) - (when (and prefix ;; default namespace doesn't apply to attributes - (or (not (rod= #"xmlns" prefix)) sax:*use-xmlns-namespace*)) - (multiple-value-bind (uri prefix local-name) - (decode-qname qname) - (declare (ignore prefix)) - (setf (sax:attribute-namespace-uri attribute) uri) - (setf (sax:attribute-local-name attribute) local-name)))))) + (if (and sax:*use-xmlns-namespace* (rod= qname #"xmlns")) + (setf (sax:attribute-namespace-uri attribute) + #"http://www.w3.org/2000/xmlns/") + (multiple-value-bind (prefix local-name) (split-qname qname) + (declare (ignorable local-name)) + (when (and prefix ;; default namespace doesn't apply to attributes + (or (not (rod= #"xmlns" prefix)) + sax:*use-xmlns-namespace*)) + (multiple-value-bind (uri prefix local-name) + (decode-qname qname) + (declare (ignore prefix)) + (setf (sax:attribute-namespace-uri attribute) uri) + (setf (sax:attribute-local-name attribute) local-name)))))))
;;;;;;;;;;;;;;;;;