From cd56af030390d814c2fd5ed33417f204644bc80c Mon Sep 17 00:00:00 2001 From: dlichteblau Date: Sun, 27 Nov 2005 16:37:57 +0000 Subject: [PATCH] noch EOF-Pruefungen --- XMLCONF | 41 ++++++----------------------------------- xml/xml-parse.lisp | 27 +++++++++++++++------------ 2 files changed, 21 insertions(+), 47 deletions(-) diff --git a/XMLCONF b/XMLCONF index fb3719c..d8925e4 100644 --- a/XMLCONF +++ b/XMLCONF @@ -112,12 +112,7 @@ xmltest/not-wf/sa/111.xml [not validating:] not-wf [validating:] not-wf xmltest/not-wf/sa/112.xml [not validating:] not-wf [validating:] invalid xmltest/not-wf/sa/113.xml [not validating:] not-wf [validating:] not-wf xmltest/not-wf/sa/114.xml [not validating:] not-wf [validating:] not-wf -xmltest/not-wf/sa/115.xml [not validating:] FAILED: - The value :EOF is not of type NUMBER. -[ - The replacement text of this entity is an illegal character - reference, which must be rejected when it is parsed in the - context of an attribute value.] +xmltest/not-wf/sa/115.xml [not validating:] not-wf [validating:] not-wf xmltest/not-wf/sa/116.xml [not validating:] FAILED: Argument Y is not a REAL: :EOF [ @@ -1167,28 +1162,10 @@ ibm/not-wf/P41/ibm41n07.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P41/ibm41n08.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P41/ibm41n09.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P41/ibm41n10.xml [not validating:] not-wf [validating:] not-wf -ibm/not-wf/P41/ibm41n11.xml [not validating:] FAILED: - For no apparent reason #/< is forbidden in attribute values. You lost -- next time choose SEXPR syntax. -[ - Tests Attribute against WFC "no external entity references". A indirect - references to the external entity "aExternal" is contained in the value of the - attribute "attr1". - ] +ibm/not-wf/P41/ibm41n11.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P41/ibm41n12.xml [not validating:] not-wf [validating:] not-wf -ibm/not-wf/P41/ibm41n13.xml [not validating:] FAILED: - For no apparent reason #/< is forbidden in attribute values. You lost -- next time choose SEXPR syntax. -[ - Tests Attribute against WFC "No (less that) character in Attribute - Values". The character "less than" is contained in the value of the - attribute "attr1". - ] -ibm/not-wf/P41/ibm41n14.xml [not validating:] FAILED: - For no apparent reason #/< is forbidden in attribute values. You lost -- next time choose SEXPR syntax. -[ - Tests Attribute against WFC "No (less than) in Attribute Values". The character - "less than" is contained in the value of the attribute "attr1" through indirect - internal entity reference. - ] +ibm/not-wf/P41/ibm41n13.xml [not validating:] not-wf [validating:] not-wf +ibm/not-wf/P41/ibm41n14.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P42/ibm42n01.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P42/ibm42n02.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P42/ibm42n03.xml [not validating:] not-wf [validating:] not-wf @@ -1302,13 +1279,7 @@ ibm/not-wf/P60/ibm60n04.xml [not validating:] FAILED: ] ibm/not-wf/P60/ibm60n05.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P60/ibm60n06.xml [not validating:] not-wf [validating:] not-wf -ibm/not-wf/P60/ibm60n07.xml [not validating:] FAILED: - For no apparent reason #/< is forbidden in attribute values. You lost -- next time choose SEXPR syntax. -[ - Tests DefaultDecl against WFC of P60. The text replacement of the - entity "avalue" contains the "less than" character in the DefaultDecl in the - AttDef in the AttlistDecl in the DTD. - ] +ibm/not-wf/P60/ibm60n07.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P60/ibm60n08.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P61/ibm61n01.xml [not validating:] not-wf [validating:] not-wf ibm/not-wf/P62/ibm62n01.xml [not validating:] not-wf [validating:] not-wf @@ -1915,4 +1886,4 @@ ibm/valid/P86/ibm86v01.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/P89/ibm89v01.xml [not validating:] input [validating:] input -26/1786 tests failed; 376 tests were skipped \ No newline at end of file +21/1786 tests failed; 376 tests were skipped \ No newline at end of file diff --git a/xml/xml-parse.lisp b/xml/xml-parse.lisp index 5f7fa2e..b70328b 100644 --- a/xml/xml-parse.lisp +++ b/xml/xml-parse.lisp @@ -1435,7 +1435,9 @@ (eox input "EOF")) ((rune= c #/&) (setf c (peek-rune input)) - (cond ((rune= c #/#) + (cond ((eql c :eof) + (eox input)) + ((rune= c #/#) (let ((c (read-character-reference input))) (%put-unicode-char c collect))) (t @@ -1462,8 +1464,11 @@ (map nil (lambda (x) (collect x)) name) (collect #/\; ))))))) ((and (eq mode :ENT) (rune= c #/%)) - (unless (name-start-rune-p (peek-rune input)) - (wf-error "Expecting name after %.")) + (let ((d (peek-rune input))) + (when (eq d :eof) + (eox input)) + (unless (name-start-rune-p d) + (wf-error "Expecting name after %."))) (let ((name (read-name-token input))) (setf c (read-rune input)) (check-rune input c #/\;) @@ -1490,7 +1495,7 @@ (declare (dynamic-extent #'muffle)) (muffle input (or delim (let ((delim (read-rune input))) - (unless (member delim '(#/\" #/\')) + (unless (member delim '(#/\" #/\') :test #'eql) (wf-error "invalid attribute delimiter")) delim)))))) @@ -3224,11 +3229,13 @@ (return)) ((rune= c #/&) (setf c (peek-rune input)) - (cond ((rune= c #/#) + (cond ((eql c :eof) + (eox input)) + ((rune= c #/#) (let ((c (read-character-reference input))) (%put-unicode-char c collect))) (t - (unless (name-start-rune-p (peek-rune input)) + (unless (name-start-rune-p c) (wf-error "Expecting name after &.")) (let ((name (read-name-token input))) (setf c (read-rune input)) @@ -3237,12 +3244,8 @@ zinput name :general (lambda (zinput) (muffle (car (zstream-input-stack zinput))))))))) - ((and (rune= c #/<)) - ;; xxx fix error message - (cerror "Eat them in spite of this." - "For no apparent reason #\/< is forbidden in attribute values. ~ - You lost -- next time choose SEXPR syntax.") - (collect c)) + ((rune= c #/<) + (wf-error "unexpected #\/<")) ((space-rune-p c) (collect #/space)) ((not (data-rune-p c))