diff --git a/DOMTEST b/DOMTEST index 20a3e5e..2a22049 100644 --- a/DOMTEST +++ b/DOMTEST @@ -812,7 +812,6 @@ No entity resolver registered. 775/808 prefix07.xml 776/808 prefix08.xml 777/808 prefix09.xml -TEST FAILED: expected exception NAMESPACE_ERR 778/808 prefix10.xml 779/808 prefix11.xml 780/808 publicId01.xml @@ -846,4 +845,4 @@ implementationAttribute expandEntityReferences not supported, skipping test 803/808 setNamedItemNS04.xml 804/808 setNamedItemNS05.xml 805/808 systemId01.xml -4/763 tests failed; 45 tests were skipped \ No newline at end of file +3/763 tests failed; 45 tests were skipped \ No newline at end of file diff --git a/dom/dom-impl.lisp b/dom/dom-impl.lisp index ff94042..489a7d3 100644 --- a/dom/dom-impl.lisp +++ b/dom/dom-impl.lisp @@ -50,6 +50,10 @@ (dom:namespace-uri node))) (setf (slot-value node 'prefix) newval)) +(defmethod (setf dom:prefix) :before (newval (node attribute)) + (when (rod= (dom:node-name node) #"xmlns") + (dom-error :NAMESPACE_ERR "must not change xmlns attribute prefix"))) + (defmethod (setf dom:prefix) :after (newval (node attribute)) (setf (slot-value node 'name) (concatenate 'rod newval #":" (dom:local-name node))))