xsl-list
[Top] [All Lists]

RE: user-defined types in something other than Schema?

2005-01-04 11:06:40

Is it possible to declare user-defined types for 
XSLT 2.0 with something other than XML Schema?

As I read http://www.w3.org/TR/xslt20/ , the
xsl:import-schema statement supports only XML Schema. 

XML Schema defines an abstract model of types, as well as a concrete syntax.
XSLT is dependent on the abstract model, but not on the concrete syntax. The
specification of xsl:import-schema is essentially that you supply a
namespace and a location hint and the system returns a set of type
definitions in that namespace. Implementations are allowed to innovate in
how that works in detail.

Saxon, for example, is starting to map Java classes onto the type system so
that any Java class can be regarded as an XSLT/XPath type. The detail of
this isn't well fleshed out yet, but it can be done.


For instance, one can't provide an adapter for
xsl:import-schema statement that implements 
non-Schema typing such as ooRelaxNG or DTLL.

Yes, I think you can - provided the implementor gives you the right hooks,
and provided you can express the relevant types in terms of the XML Schema
model (e.g. you have to say whether they are simple types or complex types,
what their lexical space and value space is, and so on).

Would it be conceivable for a DITA implementer 
to create a DITA adapter for xsl:import-schema 
that could populate the type annotation based 
on the DITA class attribute?  Or, could a DITA
implementer provide templates that add type annotation
to the tree and declare the type hierarchy prior
to firing templates that match the tree based
on the type?

In principle the language is designed to have the architectural flexibility
to allow this. Time will tell whether implementations choose to exploit all
this freedom.

As a workaround for non-Schema type definitions,
might one generate a Schema in which each element 
has the correct type and each type has the correct 
base type but each type can contain any element or
attribute?

Certainly one way of coping with any product limitations is to translate the
types you want to use into XML Schema notation.

In Saxon you could in principle construct the schema object model
programmatically. In practice, I don't think I would recommend it, because
the processor doesn't (yet) provide any way to check the consistency of the
model unless it's being built from source schema documents.

If this is a direction you want to explore, however, get in touch off-list.

Michael Kay
http://www.saxonica.com/


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>