- From: Jeff Rafter <lists@jeffrafter.com>
- Date: Thu, 03 Mar 2005 10:07:30 -0800
- To: public-xml-testsuite@w3.org
I recently went through the conformance output of the AElfred C# parser
and actually spent the time looking at the negative tests to compare the
messages. I was surprised by what I found. I took notes about typos, bad
messages, and test suite problems as I went. The following are my
results (formatted in the most confusing way imaginable):
o-p58fail3 (This test claims "A parser that reports error positions
should report an error at the AttlistDecl on line 6, before reaching the
notation declaration." However, the ATTLIST declaration appears on line
11, column 31 seems more appropriate)
ibm-not-wf-P62-ibm62n05.xml (in the message "]" should be "[")
ibm-not-wf-P63-ibm63n05.xml (in the message "]" should be "[")
ibm-not-wf-P64-ibm64n01.xml (In the test itself the comment "Negative
test. Pattern2(Wrong character '?' instead of '[')" appears... it should
end with "'!')")
ibm-not-wf-P65-ibm65n02.xml (Isn't the "<![" before this permissible?
This is actually a test showing that ignoreSect contents containing
"<![" must be processed and matched. I am not sure if the test is wrong
or the wording of the message.)
not-wf-sa-083 (
The test:
<!DOCTYPE doc [
<!ENTITY e SYSTEM "nul" NDATA n>
]>
<doc>&e;</doc>
Contains two errors, allowing it to be mistakenly failed for the
wrong reason. It would be better to do:
<!DOCTYPE doc [
<!ENTITY e SYSTEM "nul" NDATA n>
<!ATTLIST doc test ENTITY #IMPLIED>
]>
<doc test="e"></doc>
Of course, then this is testing the VC: Entity Declared, not a WFC.It
seems that the real intent of this test is not:
"Undefined NOTATION n."
As the message indicates (which would be a VC not a WFC as well VC:
Notation Declared)-- perhaps the intent was to test that production [76]
is applied:
"If the NDataDecl is present, this is a general unparsed entity;
otherwise it is a parsed entity."
In which case the reference to the entity is invalid because it
becomes a reference to an external GE. If this is the case, the message
should be changed to reflect this and the test should be modified to:
<!DOCTYPE doc [
<!NOTATION n SYSTEM "nul">
<!ENTITY e SYSTEM "nul" NDATA n>
]>
<doc>&e;</doc>
This makes the message clear, and also eliminates that possibility
that a validating process will fail the test mistakenly by
producing a non-fatal error for the missing notation declaration.
)
rmt-ns10-014 (This test should be changed to:
<?xml version="1.0"?>
<!-- Bad QName syntax: colon at end -->
<foo: xmlns:foo="http://bar"/>
Currently, it is possible that a parser will fail because of an
undelcared prefix
and not check the qName syntax as intended)
ibm-not-wf-P14-ibm14n01.xml (typo in test text,
The test message reads: character "[[>"
But should read: character "]]>"
)
ibm-not-wf-P15-ibm15n01.xml (should "-" be "--" or "--------"?)
ibm-not-wf-P16-ibm16n01.xml (
The test messages reads: Tests PI. The content of the PI includes
the sequence "(less than)?".
But should read: Tests PI. The content of the PI includes the
sequence "?(greater than)".
)
ibm-not-wf-P20-ibm20n01.xml (
The test message reads: the string "[[>"
But should read: the string "]]>"
)
ibm-not-wf-P28-ibm28n07.xml (
The test message reads: The opening bracket "}" occurs
But should read: The opening bracket "{" occurs
)
not-wf-sa-048 (typo "roor element")
ibm-not-wf-P41-ibm41n10.xml (grammatical "A direct references" should be
"A direct reference")
ibm-not-wf-P41-ibm41n11.xml (grammatical "A indirect references" should
be "An indirect reference")
ibm-not-wf-P41-ibm41n12.xml (grammatical "A direct references" should be
"A direct reference")
ibm-not-wf-P41-ibm41n13.xml (typo: "No (less that) character" should be
"No (less than) character")
ibm-not-wf-P43-ibm43n02.xml (grammatical "A elementdecl is used" should
be "An elementdecl is used")
ibm-not-wf-P43-ibm43n04.xml (
The test message reads: An elementdecl is used as the content of the
element "root".
But should read: An entitydecl is used as the content of the element
"root".
)
o-p41fail2 (
strange wording for test-- seems like it is meant for an elementdecl
test,
not an attribute test. The test:
<!DOCTYPE doc
[
<!ELEMENT doc att (val|val2)>
]>
<doc val></doc>
Should probably remove the improper ElementDecl or change the test
wording.
)
ibm-not-wf-P56-ibm56n01.xml (grammatical:
The test reads: The "id" is used in the
But should read: The type "id" is used in the
)
ibm-not-wf-P56-ibm56n02.xml (grammatical:
The test reads: The "Idref" is used in the
But should read: The type "Idref" is used in the
)
ibm-not-wf-P56-ibm56n03.xml (grammatical:
The test reads: The "Idrefs" is used in the
But should read: The type "Idrefs" is used in the
)
ibm-not-wf-P56-ibm56n04.xml (grammatical:
The test reads: The "EntitY" is used in the
But should read: The type "EntitY" is used in the
)
ibm-not-wf-P56-ibm56n05.xml (grammatical:
The test reads: The "nmTOKEN" is used in the
But should read: The type "nmTOKEN" is used in the
)
ibm-not-wf-P56-ibm56n06.xml (grammatical:
The test reads: The "NMtokens" is used in the
But should read: The type "NMtokens" is used in the
)
ibm-not-wf-P56-ibm56n07.xml (grammatical:
The test reads: The "#ID" is used in the
But should read: The type "#ID" is used in the
)
ibm-not-wf-P57-ibm57n01.xml (grammatical:
The test reads: The "NMTOKEN (a|b)" is used
But should read: The string "NMTOKEN (a|b)" is used
)
ibm-not-wf-P59-ibm59n05.xml (test and message seem different, the test is
almost identical to ibm-not-wf-P59-ibm59n06.xml which seems to test the
exact same thing. What was most likely intended was an initial test
of the opening bracket and a second test of the closing bracket.
not-wf-sa-111 (typo "entiry ref...")
not-wf-sa-125 (grammatical "parenthesis" should be "parentheses")
o-p52fail2 (technically, the error will be about whitespace not the name:
<!DOCTYPE doc
[
<!ELEMENT doc EMPTY>
<!ATTLIST>
]>
<doc/>
The parser will report missing whitespace. To test what the message
actually
says, it would need to be:
<!DOCTYPE doc
[
<!ELEMENT doc EMPTY>
<!ATTLIST >
]>
<doc/>
)
ibm-not-wf-P69-ibm69n06.xml (test is inaccurate, this should fail
because there is a PE reference within a decl in the internal subset. In
order to test this accurately, the dtd needs to be moved to an external
file)
ibm-not-wf-P69-ibm69n07.xml (test is inaccurate, this should fail
because there is a PE reference within a decl in the internal subset. In
order to test this accurately, the dtd needs to be moved to an external
file)
ibm-not-wf-P71-ibm70n01.xml (message incomplete, I am not sure what this
is intended to test, most likely a MARKUP decl after the root element?
Or maybe the first ENTITY decl was meant to not close?)
ibm-not-wf-P72-ibm72n09.xml (test is in error, needs whitespace between
ENTITY and %)
not-wf-sa-109 (message could be more clear, this is actually testing the
use of a general entity as the root element. Technically, tags *Are*
allowed in entity decls)
o-p70fail1 (incomplete message, should read: This is neither a general
or parameter entity declaration (ampersand not allowed as part of
general entity declaration))
not-wf-sa-089 (grammatical, why is "are" in quote marks?)
not-wf-sa-091 (grammatical, why is "are" in quote marks?)
ibm-not-wf-P80-ibm80n03.xml (grammatical "are" -> "is")
o-p58fail6 (grammatical, should be "parentheses are required")
ibm-not-wf-P83-ibm83n01.xml (typo NotationDcl)
ibm-not-wf-P83-ibm83n02.xml (typo NotationDcl)
ibm-not-wf-P83-ibm83n03.xml (typo NotationDcl)
ibm-not-wf-P83-ibm83n04.xml (typo NotationDcl)
ibm-not-wf-P83-ibm83n05.xml (typo NotationDcl)
ibm-not-wf-P83-ibm83n06.xml (typo NotationDcl)
ibm-not-wf-P83-ibm83n02.xml (test invalid, file contains "r")
ibm-not-wf-P85-ibm85n181.xml (test message typo should be 1F7E)
ibm-not-wf-P85-ibm85n72.xml (test message typo should be A5D)
ibm-not-wf-P85-ibm85n75.xml (missing character number in test message
should be A84)
ibm-not-wf-P29-ibm29n05.xml (strange wording for test and what it
actually tests, the test claims to be for WFC PEs in internal subset,
but I don't think that PEs are ever processed inside of a PI, in the
internal or external subset)
ibm-not-wf-P29-ibm29n06.xml (strange wording for test and what it
actually tests, the test claims to be for WFC PEs in internal subset,
but I don't think that PEs are ever processed inside of a PI, in the
internal or external subset)
ibm-not-wf-P19-ibm19n01.xml (The CDATA section for testing should be
within the root element, not before it)
ibm-not-wf-P19-ibm19n02.xml (The CDATA section for testing should be
within the root element, not before it)
ibm-not-wf-P19-ibm19n03.xml (The CDATA section for testing should be
within the root element, not before it)
ibm-not-wf-P20-ibm20n01.xml (The CDATA section for testing should be
within the root element, not before it)
ibm-not-wf-P21-ibm21n01.xml (Message: Tests CDEnd. One "]" is missing in
the CDEnd.
<?xml version="1.0"?>
<!DOCTYPE student [
<!ELEMENT student (#PCDATA)>
]>
<!-- testing invalid CDEnd -->
<![[CDATA[This is a test]>
<student>My Name is SnowMan. </student>
The test is actually testing the CDStart. There is an extra "[" at
the start of
the CDATA section that should be removed. Additionally, The CDATA
section for testing
should be within the root element, not before it)
ibm-not-wf-P21-ibm21n02.xml(Message: Tests CDEnd. An extra "]" is
placed in the CDEnd.
<?xml version="1.0"?>
<!DOCTYPE student [
<!ELEMENT student (#PCDATA)>
]>
<!-- testing invalid CDEnd -->
<![cdata[This is a test]]]>
<student>My Name is SnowMan. </student>
This test is actually testing CDStart. The "CDATA" is written "cdata" and
should be corrected. Additionally, The CDATA section for testing
should be within the root element, not before it)
ibm-not-wf-P21-ibm21n03.xml (The CDATA section for testing should be
within the root element, not before it)
ibm-valid-P10-ibm10v07.xml (in the entitydecl for "mylast", "mymiddle;"
is referenced without an "&")
Thanks for any comments,
Jeff Rafter
Received on Thursday, 3 March 2005 21:27:13 UTC