RE: [xsl] Schema-awareness clarification

Subject: RE: [xsl] Schema-awareness clarification
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 28 Feb 2007 12:14:18 -0000
> 1)
> Is it correct to say that schema-awareness is only about type 
> annotation, about validation of input files using XML Schema 
> schemas, about validation of temporary XML trees and of 
> output trees before the tree/file has been generated, that is 
> the validation can stop the transformation or even give you 
> warnings before you attempt a transformation.

I'm not sure what you mean by "only". There are a few other things one could
add, for example static and dynamic type checking and the use of
user-defined data types in variables, parameters, and function signatures.
> 2)
> Schema-awareness means XML Schema schema awareness, period. 
> Even when other schema languages like RELAX NG make use of 
> XML Schema's data types, such schemas can not be imported 
> into XSLT using the import-schema element. This element's 
> true name is "import an XML Schema schema".

Yes, in W3C specs you can usually assume that "schema" means "W3C Schema"
unless otherwise specified.

> When we talk about the input document nothing disallows an 
> XSLT processor, XSLT 2.0 or XSLT 1.0, schema-aware or not, to 
> have some extension option validating such input file. If a 
> processor has such an option, the input file could be of any 
> schema language the processor has been made to support in 
> this sense. But such a feature has nothing to do with 
> schema-awareness in the XSLT 2.0 sense or with the XSLT specs 
> as such. It is an extension.

Arguably it's not even an extension. It's just another component of the
system. An XSLT 2.0 processor is one component of a system, but it is
expected that there will be other components such as parsers, serializers,
validators, forms processors, pipeline processors, and so on. These
shouldn't be regarded as extensions of the XSLT processor - they are all
separate components that interwork with each other. A software product from
a particular vendor will typically bundle a collection of such components
into one product, and provide ways for them to be used together as part of
your application. Different vendors will choose different selections of
> 4)
> Likewise nothing disallows an XSLT processor to have some 
> extension feature that can validate an output files against 
> any schema language supported in this sense. But such a 
> feature has nothing to do with "schema-awareness" in the XSLT 
> 2.0 sense, and is so to speak outside the XSLT spec.


Michael Kay

Current Thread