Alex Brown wrote:
> The other thing I mentioned (namespace adaptation) is another clear case
> of the validator favouring OpenOffice.org. If the user submits a certain
> type file, produced by OO.o, which is *not* valid against an ODF schema,
> the code will detect the namespace
> "http://openoffice.org/2001/manifest" and modify the instance so that
> the correct namespace is used instead. The user is informed that their
> submitted file *is* valid, when in fact it is not.
>
> There are other instances of this in the code. So far as I can see, they
> are all addressed to faults in documents emitted by OO.o
> implementations.
>
Rather than just saying the ODF validator fakes it, perhaps this shows
that there is a gap between what people may need and what current
validators and schemas can achieve.
I don't just mean Schematron is all-singing-all-dancing and the
grammar-based validators are crap.
But I see two deeper issues here:
* First, is that the issues of validation and repair are intimately
linked. Many grammar-based validators will continue on bravely in the
face of an error, to give the user more indication of what also might be
wrong. In this particular case, a DSRL schema could formalize the
namespace mapping. And a Schematron schema could provide a specific
message to the user, such as "An obsolete namespace is being used." (The
updates to ISO Schematron in preparation now include more ability to add
properties to validation results, to drive automated repair better.)
* Second, is that our schema languages do not have any mechanisms to
support obsolescence. (Well, Schematron has phases and parameters.) So
when they are faced with lifecycle problems, of course they cannot cope.
Recently I proposed that there should be a namespace history schema
language, which would allow fallback and fallforward in the presence of
unknown namespaces, like a looser ISO DSRL.
This was an issue I brought up at the OOXML BRM, and it is common to all
the XML-in-ZIP formats and indeed any maintained format, especially ones
coming in to the standards fold after an independent history. I think
that the XML-in-ZIP packaging mechanisms should have built-in support
for ISO DSRL, which is a simple language for specifying various kinds of
string remapping (namespaces, names, values), as part of loading the XML
pars of a ZIP file.
This provides the formalism and technology which a standards commitee
can say "When you find this obsolete namespace, map it first to the
standard one on import, using this DSRL schema." Of course, Alex is
right that silently fixing namespaces compromises validity, but I think
this is an example of a class of needs that should be met as part of the
XML-in-ZIP packaging regime. (Certainly, until then a validator should
at least report that fixes are being applied.)
Cheers
Rick Jelliffe