auch qname "xmlns" hat einen namespace, falls sax:*sowieso* an ist.

und im dom-builder nicht den namen des doctypes pruefen
This commit is contained in:
dlichteblau
2005-12-04 23:20:22 +00:00
parent 1b31540480
commit 194a220a35
4 changed files with 25 additions and 21 deletions

View File

@ -217,9 +217,7 @@
(or (string-equal (rod-string version) "1.0")
(string-equal (rod-string version) "2.0"))))
(defmethod dom:create-document-type
((factory (eql 'implementation)) name publicid systemid)
(safe-split-qname name #"")
(defun %create-document-type (name publicid systemid)
(make-instance 'dom-impl::document-type
:name name
:notations (make-instance 'dom-impl::named-node-map
@ -231,6 +229,11 @@
:public-id publicid
:system-id systemid))
(defmethod dom:create-document-type
((factory (eql 'implementation)) name publicid systemid)
(safe-split-qname name #"")
(%create-document-type name publicid systemid))
(defmethod dom:create-document
((factory (eql 'implementation)) uri qname doctype)
(let ((document (make-instance 'dom-impl::document)))
@ -363,6 +366,9 @@
(defmethod dom:create-attribute-ns ((document document) uri qname)
(setf uri (%rod uri))
(setf qname (%rod qname))
(when (and (rod= qname #"xmlns")
(not (rod= uri #"http://www.w3.org/2000/xmlns/")))
(dom-error :NAMESPACE_ERR "invalid uri for qname `xmlns'"))
(multiple-value-bind (prefix local-name)
(safe-split-qname qname uri)
(make-instance 'attribute