RE: [xsl] Saxon 8.0b and NOTATIONs

Subject: RE: [xsl] Saxon 8.0b and NOTATIONs
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Tue, 13 Jul 2004 15:35:08 +0100
> Now, you're using a Basic XSLT processor (Saxon 8.0B). When using a
> Basic XSLT processor, all attributes must have the type
> xdt:untypedAtomic, but Saxon 8.0B is annotating the bar attribute with
> the type xs:NOTATION.

Actually, I haven't yet removed the vestiges of schema-aware functionality
that were present in Saxon 7.9 from the open source product. This is partly
because I thought people might get upset if things suddenly stopped working,
and partly because I'm not convinced the conformance rules for a Basic XSLT
Processor are 100% finalized yet. Eventually, though, I do intend to align
the functionality of Saxon-B 8.0 with the "Basic XSLT" conformance level.

I document xs:NOTATION as being not supported. "Not supported" means the
effects of doing it are unpredictable and untested. This is why the error
message is fairly meaningless: you're in uncharted waters.

But in fact Saxon is getting it wrong for a different reason. Looking at the
Data Model spec, it says that when generating the Data Model from an
InfoSet, the DTD types ID, IDREF, ENTITY, ENTITIES, NMTOKEN, and NMTOKENS
should be translated into corresponding type annotations on the attribute
node. NOTATION is missing from this list, so it appears that the node
shouldn't have been annotated as an xs:NOTATION. Presumably the reason for
this is that xs:NOTATION is an abstract type - a node can only belong to one
of its subtypes. So I've now changed the code so that DTD-defined NOTATION
attributes will in future be treated just like CDATA.

Michael Kay

Current Thread