eof im pi content korrekt pruefen

This commit is contained in:
dlichteblau
2005-11-27 12:06:28 +00:00
parent 36c951241c
commit 13faa2c953
2 changed files with 55 additions and 101 deletions

80
XMLCONF
View File

@ -1,14 +1,8 @@
xmltest/not-wf/sa/001.xml [not validating:] not-wf [validating:] invalid xmltest/not-wf/sa/001.xml [not validating:] not-wf [validating:] invalid
xmltest/not-wf/sa/002.xml [not validating:] not-wf [validating:] invalid xmltest/not-wf/sa/002.xml [not validating:] not-wf [validating:] invalid
xmltest/not-wf/sa/003.xml [not validating:] not-wf [validating:] invalid xmltest/not-wf/sa/003.xml [not validating:] not-wf [validating:] invalid
xmltest/not-wf/sa/004.xml [not validating:] FAILED: xmltest/not-wf/sa/004.xml [not validating:] not-wf [validating:] invalid
The value :EOF is not of type NUMBER. xmltest/not-wf/sa/005.xml [not validating:] not-wf [validating:] invalid
[
SGML-ism: processing instructions end in '?>' not '>'. ]
xmltest/not-wf/sa/005.xml [not validating:] FAILED:
The value :EOF is not of type NUMBER.
[
Processing instructions end in '?>' not '?'. ]
xmltest/not-wf/sa/006.xml [not validating:] not-wf [validating:] invalid xmltest/not-wf/sa/006.xml [not validating:] not-wf [validating:] invalid
xmltest/not-wf/sa/007.xml [not validating:] not-wf [validating:] invalid xmltest/not-wf/sa/007.xml [not validating:] not-wf [validating:] invalid
xmltest/not-wf/sa/008.xml [not validating:] not-wf [validating:] invalid xmltest/not-wf/sa/008.xml [not validating:] not-wf [validating:] invalid
@ -40,10 +34,7 @@ xmltest/not-wf/sa/027.xml [not validating:] FAILED:
The value :EOF is not of type NUMBER. The value :EOF is not of type NUMBER.
[ [
Comments must be terminated with "-->".] Comments must be terminated with "-->".]
xmltest/not-wf/sa/028.xml [not validating:] FAILED: xmltest/not-wf/sa/028.xml [not validating:] not-wf [validating:] invalid
The value :EOF is not of type NUMBER.
[
Processing instructions must end with '?>'. ]
xmltest/not-wf/sa/029.xml [not validating:] not-wf [validating:] invalid xmltest/not-wf/sa/029.xml [not validating:] not-wf [validating:] invalid
xmltest/not-wf/sa/030.xml [not validating:] FAILED: xmltest/not-wf/sa/030.xml [not validating:] FAILED:
well-formedness violation not detected well-formedness violation not detected
@ -281,10 +272,7 @@ xmltest/not-wf/sa/171.xml [not validating:] FAILED:
well-formedness violation not detected well-formedness violation not detected
[ [
Character FFFF is not legal anywhere in an XML document. ] Character FFFF is not legal anywhere in an XML document. ]
xmltest/not-wf/sa/172.xml [not validating:] FAILED: xmltest/not-wf/sa/172.xml [not validating:] not-wf [validating:] not-wf
The value :EOF is not of type NUMBER.
[
Character FFFF is not legal anywhere in an XML document. ]
xmltest/not-wf/sa/173.xml [not validating:] not-wf [validating:] not-wf xmltest/not-wf/sa/173.xml [not validating:] not-wf [validating:] not-wf
xmltest/not-wf/sa/174.xml [not validating:] FAILED: xmltest/not-wf/sa/174.xml [not validating:] FAILED:
The value :EOF is not of type NUMBER. The value :EOF is not of type NUMBER.
@ -987,11 +975,7 @@ oasis/p23fail1.xml [not validating:] not-wf [validating:] not-wf
oasis/p23fail2.xml [not validating:] not-wf [validating:] not-wf oasis/p23fail2.xml [not validating:] not-wf [validating:] not-wf
oasis/p23fail3.xml [not validating:] not-wf [validating:] not-wf oasis/p23fail3.xml [not validating:] not-wf [validating:] not-wf
oasis/p23fail4.xml [not validating:] not-wf [validating:] not-wf oasis/p23fail4.xml [not validating:] not-wf [validating:] not-wf
oasis/p23fail5.xml [not validating:] FAILED: oasis/p23fail5.xml [not validating:] not-wf [validating:] not-wf
The value :EOF is not of type NUMBER.
[
no SGML-type PIs
]
oasis/p24fail1.xml [not validating:] not-wf [validating:] not-wf oasis/p24fail1.xml [not validating:] not-wf [validating:] not-wf
oasis/p24fail2.xml [not validating:] not-wf [validating:] not-wf oasis/p24fail2.xml [not validating:] not-wf [validating:] not-wf
oasis/p25fail1.xml [not validating:] FAILED: oasis/p25fail1.xml [not validating:] FAILED:
@ -1021,10 +1005,7 @@ oasis/p39fail3.xml [not validating:] FAILED:
at least 1 expected, but 0 found at least 1 expected, but 0 found
[ [
XML documents contain one or more elements] XML documents contain one or more elements]
oasis/p39fail4.xml [not validating:] FAILED: oasis/p39fail4.xml [not validating:] not-wf [validating:] not-wf
The value :EOF is not of type NUMBER.
[
XML declarations must be correctly terminated ]
oasis/p39fail5.xml [not validating:] not-wf [validating:] not-wf oasis/p39fail5.xml [not validating:] not-wf [validating:] not-wf
oasis/p40fail1.xml [not validating:] not-wf [validating:] not-wf oasis/p40fail1.xml [not validating:] not-wf [validating:] not-wf
oasis/p40fail2.xml [not validating:] not-wf [validating:] not-wf oasis/p40fail2.xml [not validating:] not-wf [validating:] not-wf
@ -1350,16 +1331,8 @@ ibm/not-wf/P16/ibm16n01.xml [not validating:] FAILED:
"(less than)?". "(less than)?".
] ]
ibm/not-wf/P16/ibm16n02.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P16/ibm16n02.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P16/ibm16n03.xml [not validating:] FAILED: ibm/not-wf/P16/ibm16n03.xml [not validating:] not-wf [validating:] not-wf
The value :EOF is not of type NUMBER. ibm/not-wf/P16/ibm16n04.xml [not validating:] not-wf [validating:] not-wf
[
Tests PI. The PI has a wrong closing sequence ">".
]
ibm/not-wf/P16/ibm16n04.xml [not validating:] FAILED:
The value :EOF is not of type NUMBER.
[
Tests PI. The closing sequence is missing in the PI.
]
ibm/not-wf/P17/ibm17n01.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P17/ibm17n01.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P17/ibm17n02.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P17/ibm17n02.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P17/ibm17n03.xml [not validating:] FAILED: ibm/not-wf/P17/ibm17n03.xml [not validating:] FAILED:
@ -1459,11 +1432,7 @@ ibm/not-wf/P23/ibm23n01.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P23/ibm23n02.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P23/ibm23n02.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P23/ibm23n03.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P23/ibm23n03.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P23/ibm23n04.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P23/ibm23n04.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P23/ibm23n05.xml [not validating:] FAILED: ibm/not-wf/P23/ibm23n05.xml [not validating:] not-wf [validating:] not-wf
The value :EOF is not of type NUMBER.
[
Tests XMLDecl with a wrong closing sequence ">".
]
ibm/not-wf/P23/ibm23n06.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P23/ibm23n06.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P24/ibm24n01.xml [not validating:] FAILED: ibm/not-wf/P24/ibm24n01.xml [not validating:] FAILED:
Argument X is not a REAL: :EOF Argument X is not a REAL: :EOF
@ -1504,23 +1473,13 @@ ibm/not-wf/P28/ibm28n04.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P28/ibm28n05.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P28/ibm28n05.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P28/ibm28n06.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P28/ibm28n06.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P28/ibm28n07.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P28/ibm28n07.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P28/ibm28n08.xml [not validating:] FAILED: ibm/not-wf/P28/ibm28n08.xml [not validating:] not-wf [validating:] not-wf
The value :EOF is not of type NUMBER.
[
Tests doctypedecl with wrong opening sequence. The opening sequence
"(less than)?DOCTYPE" occurs in the DTD.
]
ibm/not-wf/p28a/ibm28an01.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/p28a/ibm28an01.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P29/ibm29n01.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P29/ibm29n01.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P29/ibm29n02.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P29/ibm29n02.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P29/ibm29n03.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P29/ibm29n03.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P29/ibm29n04.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P29/ibm29n04.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P29/ibm29n05.xml [not validating:] FAILED: ibm/not-wf/P29/ibm29n05.xml [not validating:] not-wf [validating:] not-wf
The value :EOF is not of type NUMBER.
[
Tests WFC "PEs in Internal Subset". A PE reference occurs inside a PI in
the DTD.
]
ibm/not-wf/P29/ibm29n06.xml [not validating:] FAILED: ibm/not-wf/P29/ibm29n06.xml [not validating:] FAILED:
The value :EOF is not of type NUMBER. The value :EOF is not of type NUMBER.
[ [
@ -1903,19 +1862,8 @@ ibm/not-wf/P76/ibm76n06.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P76/ibm76n07.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P76/ibm76n07.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P77/ibm77n01.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P77/ibm77n01.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P77/ibm77n02.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P77/ibm77n02.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P77/ibm77n03.xml [not validating:] FAILED: ibm/not-wf/P77/ibm77n03.xml [not validating:] not-wf [validating:] not-wf
The value :EOF is not of type NUMBER. ibm/not-wf/P77/ibm77n04.xml [not validating:] not-wf [validating:] not-wf
[
Tests TextDecl with wrong closing sequence. The character "greater
than" is used as the closing sequence in the TextDecl in the file
"ibm77n03.ent".
]
ibm/not-wf/P77/ibm77n04.xml [not validating:] FAILED:
The value :EOF is not of type NUMBER.
[
Tests TextDecl with a required field missing. The closing sequence
is missing in the TextDecl in the file "ibm77n04.ent".
]
ibm/not-wf/P78/ibm78n01.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P78/ibm78n01.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P78/ibm78n02.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P78/ibm78n02.xml [not validating:] not-wf [validating:] not-wf
ibm/not-wf/P79/ibm79n01.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P79/ibm79n01.xml [not validating:] not-wf [validating:] not-wf
@ -2424,4 +2372,4 @@ ibm/valid/P86/ibm86v01.xml [not validating:] input [validating:] input
ibm/valid/P87/ibm87v01.xml [not validating:] input [validating:] input ibm/valid/P87/ibm87v01.xml [not validating:] input [validating:] input
ibm/valid/P88/ibm88v01.xml [not validating:] input [validating:] input ibm/valid/P88/ibm88v01.xml [not validating:] input [validating:] input
ibm/valid/P89/ibm89v01.xml [not validating:] input [validating:] input ibm/valid/P89/ibm89v01.xml [not validating:] input [validating:] input
141/1786 tests failed; 376 tests were skipped 128/1786 tests failed; 376 tests were skipped

View File

@ -647,14 +647,19 @@
(defun validity-error (x &rest args) (defun validity-error (x &rest args)
(error 'validity-error (error 'validity-error
:format-control "Validity constraint violated: ~@?" :format-control "Validity constraint violated: ~?"
:format-arguments (list x args))) :format-arguments (list x args)))
(defun wf-error (x &rest args) (defun wf-error (x &rest args)
(error 'well-formedness-violation (error 'well-formedness-violation
:format-control "Well-formedness violated: ~@?" :format-control "Well-formedness violated: ~?"
:format-arguments (list x args))) :format-arguments (list x args)))
(defun eox (stream &optional x &rest args)
(error 'end-of-xstream
:format-control "End of file on ~A~@[: ~?~]"
:format-arguments (list stream x args)))
(defvar *validate* t) (defvar *validate* t)
(defvar *markup-declaration-external-p* nil) (defvar *markup-declaration-external-p* nil)
@ -1230,7 +1235,7 @@
(defun read-token-after-|<| (zinput input) (defun read-token-after-|<| (zinput input)
(let ((d (read-rune input))) (let ((d (read-rune input)))
(cond ((eq d :eof) (cond ((eq d :eof)
(wf-error "EOF after '<'")) (eox input "EOF after '<'"))
((rune= #/! d) ((rune= #/! d)
(read-token-after-|<!| input)) (read-token-after-|<!| input))
((rune= #/? d) ((rune= #/? d)
@ -1259,7 +1264,7 @@
(defun read-token-after-|<!| (input) (defun read-token-after-|<!| (input)
(let ((d (read-rune input))) (let ((d (read-rune input)))
(cond ((eq d :eof) (cond ((eq d :eof)
(wf-error "EOF after \"<!\".")) (eox input "EOF after \"<!\"."))
((name-start-rune-p d) ((name-start-rune-p d)
(unread-rune d input) (unread-rune d input)
(let ((name (read-name-token input))) (let ((name (read-name-token input)))
@ -1311,7 +1316,7 @@
The initial #\\& is considered to be consumed already." The initial #\\& is considered to be consumed already."
(let ((c (peek-rune input))) (let ((c (peek-rune input)))
(cond ((eq c :eof) (cond ((eq c :eof)
(wf-error "EOF after '&'")) (eox input "EOF after '&'"))
((rune= c #/#) ((rune= c #/#)
(values :NUMERIC (read-numeric-entity input))) (values :NUMERIC (read-numeric-entity input)))
(t (t
@ -1411,7 +1416,7 @@
(cond ((eql delim c) (cond ((eql delim c)
(return)) (return))
((eq c :eof) ((eq c :eof)
(wf-error "EOF")) (eox input "EOF"))
((rune= c #/&) ((rune= c #/&)
(setf c (peek-rune input)) (setf c (peek-rune input))
(cond ((rune= c #/#) (cond ((rune= c #/#)
@ -1526,33 +1531,34 @@
(wf-error "malformed processing instruction")) (wf-error "malformed processing instruction"))
(values name ""))))) (values name "")))))
(defun read-pi-content (input &aux d) (defun read-pi-content (input)
(read-S? input) (read-S? input)
(with-rune-collector (collect) (let (d)
(block nil (with-rune-collector (collect)
(tagbody (block nil
state-1 (tagbody
(setf d (read-rune input)) state-1
(unless d (setf d (read-rune input))
(error 'end-of-xstream)) (when (eq d :eof)
(unless (data-rune-p d) (eox input))
(wf-error "Illegal char: ~S." d)) (unless (data-rune-p d)
(when (rune= d #/?) (go state-2)) (wf-error "Illegal char: ~S." d))
(collect d) (when (rune= d #/?) (go state-2))
(go state-1) (collect d)
state-2 ;; #/? seen (go state-1)
(setf d (read-rune input)) state-2 ;; #/? seen
(unless d (setf d (read-rune input))
(error 'end-of-xstream)) (when (eq d :eof)
(unless (data-rune-p d) (eox input))
(wf-error "Illegal char: ~S." d)) (unless (data-rune-p d)
(when (rune= d #/>) (return)) (wf-error "Illegal char: ~S." d))
(when (rune= d #/?) (when (rune= d #/>) (return))
(collect #/?) (when (rune= d #/?)
(go state-2)) (collect #/?)
(collect #/?) (go state-2))
(collect d) (collect #/?)
(go state-1))))) (collect d)
(go state-1))))))
(defun read-comment-content (input &aux d) (defun read-comment-content (input &aux d)
(with-rune-collector (collect) (with-rune-collector (collect)
@ -1922,7 +1928,7 @@
(loop (loop
(let ((c (read-rune (car (zstream-input-stack input))))) (let ((c (read-rune (car (zstream-input-stack input)))))
(cond ((eq c :eof) (cond ((eq c :eof)
(wf-error "EOF in system literal.")) (eox input "EOF in system literal."))
((rune= c delim) ((rune= c delim)
(return)) (return))
(t (t
@ -2275,7 +2281,7 @@
((= level -1)) ((= level -1))
(declare (type fixnum level)) (declare (type fixnum level))
(cond ((eq c1 :eof) (cond ((eq c1 :eof)
(wf-error "EOF in <![IGNORE ... >"))) (eox input "EOF in <![IGNORE ... >")))
(cond ((and (rune= c3 #/<) (rune= c2 #/!) (rune= c1 #/\[)) (cond ((and (rune= c3 #/<) (rune= c2 #/!) (rune= c1 #/\[))
(incf level))) (incf level)))
(cond ((and (rune= c3 #/\]) (rune= c2 #/\]) (rune= c1 #/>)) (cond ((and (rune= c3 #/\]) (rune= c2 #/\]) (rune= c1 #/>))
@ -3230,7 +3236,7 @@
(loop (loop
(let ((c (read-rune input))) (let ((c (read-rune input)))
(cond ((eq c :eof) (cond ((eq c :eof)
(wf-error "EOF")) (eox input "EOF"))
((rune= c delim) ((rune= c delim)
(return)) (return))
((rune= c #/<) ((rune= c #/<)