Changes to XInclude test suite

I have made some changes to the test suite; several of these resolve
issues that Elliotte Rusty Harold raised.  I have checked the changes
into the CVS repository, but there is not a new tar or zip file yet.

Nist-include-24 and Nist-include-25

These were intended to test the inclusion of comments and PIs at the
top level, but in fact included files containing only a comment or PI,
which were therefore not-well-formed.  I have changed them to use an
xpointer-scheme xpointer to do this correctly.

Nist-include-23

This had not been updated to use the new xpointer attribute instead of
a fragment.

Nist-include-52

This had xpointer() missing around the xpointer.

Nist-include-17

I changed this to use the element() scheme so that it did not rely on
the xpointer() scheme.

Nist-include-57

I deleted this test.  It was intended to test the use of an IRI - a URI
containing non-ascii characters.  But since there is no portable way to
create a filename with such a character, and no portable mapping between
file: IRIs and file names (because it would depend on the encoding used
in the filesystem), it's not useful.

Optional features:

I have added a "features" attribute to the testcase element.  It's a list
of optional features required by the test.  So far there are two optional
features: xpointer-scheme (obvious) and unexpanded-entities, which means
that the test expects the documents to be read without external entities
being expanded (the tests that rely on this are Nist-include-48 and -49).

I had hoped to replace several of the tests requiring xpointer-scheme
with ones that didn't, but almost all of them fall into one of the
following categories, so I didn't:

 (1) they select more than one element (can't be done with element()
     or barenames)

 (2) they select something other than an element (comment, pi, attribute)

 (3) they are part of a group of tests including (1) or (2) and the
     parallelism between the tests would be lost if they were changed.

I had also planned to remove DOCTYPEs where possible from the result
files.  But in several cases these appear to be intended to provide
definitions of general entities (to make them well-formed, where the
test uses the unexpanded-entities feature), or unparsed entities which
could be used to check that unparsed-entity fixup is done correctly.
Rather than examine each one to see whether it was justified on these
grounds, I left them unchanged, and testers should ignore the
resulting DTD infoitem when comparing with the result infoset.

Test Nist-include-27, which currently includes the entire XML 1.0 spec
in Japanese, and relies on not processing the external subset, will be
(but hasn't yet been) replaced by a simpler test.

-- Richard

Received on Wednesday, 16 June 2004 12:32:17 UTC