Re: My favourite XSLT enhancement requests

Subject: Re: My favourite XSLT enhancement requests
From: Alexey Gokhberg <alexei@xxxxxxxxxx>
Date: Sat, 16 Sep 2000 11:42:44 +0200
Hello, Steve

Let me put it this way (Q>-question, A>-answer).

Q> | For instance, section 3 of this document called "Requirements for
Q> | *Portable* Extension Function Implemenations" requests, in
Q> |
Q> | - "... Extension function implementations MUST be allowed both
inline as
Q> | well as externally  ..."
Q> | - "...It SHOULD be possible to return an object of any
Q> | type from the extension function ..."
Q> | - "...It SHOULD be possible to pass an object of any host-language
Q> | to an extension function ..."
Q> |
Q> | but, on the other hand,
Q> |
Q> | - "... A processor SHOULD NOT be required to implement the portable
Q> | extension function binding for any particular language ..."
Q> |
Q> | Does it really propose *portable* extension implementations?

A> ... the requirement is
A> that it be *possible* to write a stylesheet requiring extension
A> functions that can be portable across XSLT processor implementations.
A> .........
A> The working group is trying to address portability issues raised
A> by users on the XSL-List about the two most popular languages
A> for extension function implementations which existing XSLT processors
A> implement ...
Q> | In particular, how the XSLT stylesheet that contains an embedded
Java code
Q> | should be ported to the XSLT processor that does not (and SHOULD
NOT be
Q> | required) to support Java?

A> If XSLT 1.1 were to provide an implementation of the requirements
A> above, this would mean the following:
A>   -> A stylesheet that requires extension functions using
A>      one of the specified languages can be run on any
A>      XSLT 1.1-compliant processor that supports the same
A>      language binding for extension functions.

Now I got the following questions:


Let's assume that we have to consider the following platorms for
extension development:

    - Java
    - ECMAScript (JavaScript)
    - C
    - C++ 
    - ActiveX (COM)
    - CORBA

The last two platforms are not programming languages proper, but are
very likely to be used for extension development in the future. Please
note, that first 5 platforms mentioned are already used in various XSLT
implementations that are available now.

Let's assume that we accept principles proposed by W3C (cited and
commented above). According to these principles, there might exist the
following classes of XSLT processors with regards to the bindings

1. Processors that do not support extensions
2. Processors that support Java only
3. Processors that support ECMAScript only
4. Processors that support C only
5. Processors that support C++ only
6. Processors that support Java and ECMAScript only
7. Processors that support Java and C only (why not?)
64. Processors that support bindings for all 6 platforms

Total of 2**6 = 64 different classes, and the number of classes will
grow exponentially if we would consider more platforms (2 power N, where
N - number of platforms supported).

Stylesheets with extensions will be portable only among processors that
belong to the same class. In the example above we might have up to 64
incompatible XSLT dialects! Is this a portability?


I cite again:

"The working group is trying to address portability issues raised ...
about the two most popular languages
for extension function implementations which existing XSLT processors
implement ..."

How implementors that are using "less popular languages" should proceed?
How the popularity was measured? Is there any statistics available? Or
there is some central authority that decides which language should be
treated as popular? And who can predict what will become popular in one

Were *all* existing XSLT processors considered? Or only those developed
by W3C members?


At the first step W3C plans to provide support for Java and ECMAScript
only. I am afraid that there might be no second step (with regards to
the language support) and we might never see binding specifications for
other languages. (By the way: which language bindings are currently
supported by W3C DOM specification?)

Why not to follow the commonly used practice: define the ABSTRACT,
PLATFORM-INDEPENDENT model first, then specify bindings for all
platforms needed by the user community? 

Why not to follow the pattern set by major standartization bodies, which
normaly provide bindings for the variety of languages and platforms?
Consider, for instance, OMG CORBA spec: there exist IDL bindings for
Ada, C, C++, COBOL, Java, Smalltalk as well as mapping to COM.

Why XSLT implementors that are using Java should enjoy more benefits?
Why users that prefer C++ based implementations should suffer from the
lack of standartization?

Thank you for your attention.

Kind regards,


 XSL-List info and archive:

Current Thread