diff --git a/DOMTEST b/DOMTEST index a7c03e7..355a3cc 100644 --- a/DOMTEST +++ b/DOMTEST @@ -556,9 +556,6 @@ implementationAttribute signed not supported, skipping test 526/808 attrgetownerelement03.xml 527/808 attrgetownerelement04.xml 528/808 attrgetownerelement05.xml -TEST FAILED: The assertion (DOMTEST::EQUALSP DOMTEST-TESTS::|ownerElementName| - #(97 100 100 114 101 115 115) - 'DOMTEST::%EQUAL) failed. 529/808 createAttributeNS01.xml 530/808 createAttributeNS02.xml TEST FAILED: expected exception NAMESPACE_ERR @@ -614,7 +611,6 @@ TEST FAILED: expected exception NAMESPACE_ERR 563/808 documentgetelementbyid01.xml 564/808 documentgetelementsbytagnameNS01.xml 565/808 documentgetelementsbytagnameNS02.xml -TEST FAILED: The assertion (EQL (LENGTH DOMTEST::COLLECTION) 6) failed. 566/808 documentgetelementsbytagnameNS03.xml 567/808 documentgetelementsbytagnameNS04.xml 568/808 documentgetelementsbytagnameNS05.xml @@ -623,25 +619,25 @@ TEST FAILED: The assertion (EQL (LENGTH DOMTEST::COLLECTION) 6) failed. 571/808 documentimportnode03.xml 572/808 documentimportnode04.xml 573/808 documentimportnode05.xml -TEST FAILED: The slot DOM-IMPL::NAMESPACE-URI is unbound in the object #. +TEST FAILED: The slot DOM-IMPL::NAMESPACE-URI is unbound in the object #. 574/808 documentimportnode06.xml TEST FAILED: There is no applicable method for the generic function # when called with arguments - (# - # NIL). + (# + # NIL). 575/808 documentimportnode07.xml TEST FAILED: There is no applicable method for the generic function # when called with arguments - (# - # T). + (# + # T). 576/808 documentimportnode08.xml TEST FAILED: There is no applicable method for the generic function # when called with arguments - (# - # T). + (# + # T). 577/808 documentimportnode09.xml 578/808 documentimportnode10.xml 579/808 documentimportnode11.xml @@ -656,7 +652,7 @@ TEST FAILED: There is no applicable method for the generic function 584/808 documentimportnode17.xml 585/808 documentimportnode18.xml 586/808 documentimportnode19.xml -TEST FAILED: The slot DOM-IMPL::NAME is unbound in the object #. +TEST FAILED: The slot DOM-IMPL::NAME is unbound in the object #. 587/808 documentimportnode20.xml implementationAttribute expandEntityReferences not supported, skipping test 588/808 documentimportnode21.xml @@ -699,7 +695,7 @@ TEST FAILED: The assertion DOMTEST-TESTS::|state| failed. 618/808 elementremoveattributens01.xml 619/808 elementsetattributenodens01.xml 620/808 elementsetattributenodens02.xml -TEST FAILED: The slot DOM-IMPL::NAMESPACE-URI is unbound in the object #. +TEST FAILED: The slot DOM-IMPL::NAMESPACE-URI is unbound in the object #. 621/808 elementsetattributenodens03.xml TEST FAILED: expected exception INUSE_ATTRIBUTE_ERR 622/808 elementsetattributenodens04.xml @@ -708,15 +704,6 @@ TEST FAILED: expected exception INUSE_ATTRIBUTE_ERR implementationAttribute expandEntityReferences not supported, skipping test 625/808 elementsetattributens01.xml 626/808 elementsetattributens02.xml -TEST FAILED: There is no applicable method for the generic function - # - when called with arguments - (NIL - #(104 116 116 112 58 47 47 119 119 119 46 119 51 46 111 114 103 - 47 68 79 77 47 84 101 115 116 47 115 101 116 65 116 116 114 - 105 98 117 116 101 78 83) - #(116 104 105 115 58 115 116 114 101 101 116) - #(83 105 108 118 101 114 32 83 116 114 101 101 116)). 627/808 elementsetattributens03.xml 628/808 elementsetattributens04.xml 629/808 elementsetattributens05.xml @@ -740,7 +727,6 @@ TEST FAILED: There is no applicable method for the generic function 640/808 getElementById02.xml 641/808 getElementsByTagNameNS01.xml 642/808 getElementsByTagNameNS02.xml -TEST FAILED: The assertion (EQL (LENGTH DOMTEST::COLLECTION) 5) failed. 643/808 getElementsByTagNameNS03.xml 644/808 getElementsByTagNameNS04.xml 645/808 getElementsByTagNameNS05.xml @@ -748,7 +734,6 @@ TEST FAILED: The assertion (EQL (LENGTH DOMTEST::COLLECTION) 5) failed. 647/808 getElementsByTagNameNS07.xml 648/808 getElementsByTagNameNS08.xml 649/808 getElementsByTagNameNS09.xml -TEST FAILED: The assertion (EQL (LENGTH DOMTEST::COLLECTION) 5) failed. 650/808 getElementsByTagNameNS10.xml 651/808 getElementsByTagNameNS11.xml 652/808 getElementsByTagNameNS12.xml @@ -799,14 +784,14 @@ not implemented TEST FAILED: There is no applicable method for the generic function # when called with arguments - (# - # NIL). + (# + # NIL). 693/808 importNode17.xml TEST FAILED: There is no applicable method for the generic function # when called with arguments - (# - # NIL). + (# + # NIL). 694/808 internalSubset01.xml TEST FAILED: The assertion (NULL DOMTEST-TESTS::|internal|) failed. 695/808 isSupported01.xml @@ -843,7 +828,7 @@ TEST FAILED: There is no applicable method for the generic function 719/808 namednodemapremovenameditemns03.xml 720/808 namednodemapremovenameditemns04.xml TEST FAILED: NOT_FOUND_ERR (8): -#(120 109 108 110 115) not found in # +#(120 109 108 110 115) not found in # 721/808 namednodemapremovenameditemns05.xml 722/808 namednodemapremovenameditemns06.xml 723/808 namednodemapremovenameditemns07.xml @@ -877,7 +862,7 @@ TEST FAILED: expected exception INUSE_ATTRIBUTE_ERR TEST FAILED: There is no applicable method for the generic function # when called with arguments - (#). + (#). 748/808 nodehasattributes03.xml 749/808 nodehasattributes04.xml 750/808 nodeissupported01.xml @@ -959,4 +944,4 @@ TEST FAILED: expected exception INUSE_ATTRIBUTE_ERR 803/808 setNamedItemNS04.xml 804/808 setNamedItemNS05.xml 805/808 systemId01.xml -62/763 tests failed; 45 tests were skipped \ No newline at end of file +57/763 tests failed; 45 tests were skipped \ No newline at end of file diff --git a/dom/dom-builder.lisp b/dom/dom-builder.lisp index 2d0d73a..04486ee 100644 --- a/dom/dom-builder.lisp +++ b/dom/dom-builder.lisp @@ -80,19 +80,22 @@ (defmethod sax:start-element ((handler dom-builder) namespace-uri local-name qname attributes) (with-slots (document element-stack) handler - (let ((element (make-instance 'element + (let* ((nsp sax:*namespace-processing*) + (element (make-instance 'element :tag-name qname :owner document - :namespace-uri namespace-uri - :local-name local-name - :prefix (cxml::split-qname (cxml::rod qname)))) + :namespace-uri (when nsp namespace-uri) + :local-name (when nsp local-name) + :prefix (when nsp (cxml::split-qname (cxml::rod qname))))) (parent (car element-stack)) (anodes '())) (dolist (attr attributes) (let ((anode - (dom:create-attribute-ns document - (sax:attribute-namespace-uri attr) - (sax:attribute-qname attr))) + (if nsp + (dom:create-attribute-ns document + (sax:attribute-namespace-uri attr) + (sax:attribute-qname attr)) + (dom:create-attribute document (sax:attribute-qname attr)))) (text (dom:create-text-node document (sax:attribute-value attr)))) (setf (slot-value anode 'dom-impl::specified-p) diff --git a/dom/dom-impl.lisp b/dom/dom-impl.lisp index 835e77d..fcc89f7 100644 --- a/dom/dom-impl.lisp +++ b/dom/dom-impl.lisp @@ -132,7 +132,8 @@ (etypecase x (null x) (rod x) - (string (string-rod x)))) + (string (string-rod x)) + (vector x))) (defun assert-writeable (node) (when (read-only-p node) diff --git a/test/domtest.lisp b/test/domtest.lisp index ff1db5d..d5d7d00 100644 --- a/test/domtest.lisp +++ b/test/domtest.lisp @@ -615,7 +615,8 @@ (t (push (translate-statement e) code)))) `(lambda () - (let (,@bindings) + (let ((*files-directory* ,*files-directory*) ;fuer copy&paste: + ,@bindings) (declare (ignorable ,@(mapcar #'car bindings))) ,@(reverse code)))))) @@ -699,8 +700,8 @@ (ecase level (1 (merge-pathnames "tests/level1/core/" *directory*)) (2 (merge-pathnames "tests/level2/core/" *directory*)))) - (lisp (slurp-test (merge-pathnames href test-directory))) (*files-directory* (merge-pathnames "files/" test-directory)) + (lisp (slurp-test (merge-pathnames href test-directory))) (cxml::*validate* nil)) (print lisp) (when lisp diff --git a/xml/xml-parse.lisp b/xml/xml-parse.lisp index 4306c47..0cbf1bb 100644 --- a/xml/xml-parse.lisp +++ b/xml/xml-parse.lisp @@ -3351,7 +3351,7 @@ (let ((uri (find-namespace-binding prefix))) (if uri (values uri prefix local-name) - (values nil nil nil))))) + (values nil nil qname))))) (defun find-namespace-binding (prefix)