xsl-list
[Top] [All Lists]

Re: XSLT 2.0 *and* XSLT 1.0 validation -- how to?

2004-10-23 15:07:07
Hi Jeni,

Thanks for the good explanation. 



You're talking as if there is a single schema for XSLT 1.0 and a
single schema for XSLT 2.0. The reality is that there are lots of
schemas that you could use to validate either version (or both
versions) of the language: schemas in different schema languages, of
course, but also schemas with different internal designs.

For example, I could design an XSLT 1.0 schema in W3C XML Schema that
allowed any element in the XSLT namespace anywhere, but checked that
those that are defined in XSLT 1.0 followed the XSLT 1.0 rules for
their content. This would let through some XSLT 1.0 stylesheets that
weren't legal XSLT 1.0, but it would also let through XSLT 2.0 (and
beyond) stylesheets.

Alternatively, I could design an XSLT 1.0 schema in W3C XML Schema
that only allowed the elements and attributes defined in XSLT 1.0;
obviously, such a schema would say that XSLT 2.0 stylesheets weren't
valid.


Yes. 

My question was, could there be a single schema that has both the
rules for XSLT 1.0 and the rules for XSLT 2.0 and that, dependent on
the value of the "version" attribute of an instance behaves exactly as
an XSLT 1.0 schema only or exactly as an XSLT 2.0 schema only.

I can imagine doing this with a pre-processor, which only reads and
analyzes the xsl:stylesheet instruction, then depending on the version
attribute it validates with only one of two schemas. Or, if rules in
the schema can be based on a condition, it will set the condition to
true or false and then validate with a single combined schema passing
to it (e.g. setting this in DOM) the value of this condition.

Can this be done?

Cheers,

Dimitre.