Back in 2008 someone asked on the libxml2 mailing list whether XPath 2.0 and
XSLT 2.0 would be supported. Daniel Veillard responded:
Sorry, no support for 2.0 planned, the spec change is far too big and
intrusive. Look at the EXSLT extensions which are supported by libxslt
and xsltproc, they are likely to provide the needed extensions.
libxml2/libxslt is a fundamental building block for my software, and XSLT 2.0
is very compelling (a lot of the stylesheets that I write need
xsl:for-each-group), so I tried to gather interest in starting a subproject to
do the implementation. A few people responded saying that would love to have
XSLT 2.0 in libxslt, but didn't have the time to commit to getting it done.
After that, I thought if people can't commit their time perhaps they can commit
their money. I started the "LIBX" project as a commercial venture to implement
XPath 2.0 and XSLT 2.0 and (eventually) merge it in to the core library. LIBX
has been setup to sell this as a service, and the plan is to one day produce a
product.
The grand total of contributions so far is $100.00. With my contracting work, I
make that amount of money before I even rub the sleep from my eyes in the
morning ;-) Interesting, I only got that contribution because someone asked to
provide an up-to-date compilation of libxml2 for the iPhone (the Apple supplied
library is a few versions behind).
This experience leads to my conclusion that very few, if any, folks are willing
to pay for base technology. However, they are willing to pay for "solutions".
Accordingly, my current approach is now to develop a product that solves some
sort of high-level problem, but that would benefit from having a C-based XPath
2.0 and XSLT 2.0 implementation. This product is Packaged Press - a DIY ePress.
What it really is is an XProc pipeline controller, implemented on top of
libxml2/libxslt. Currently, the XProc implementation will be restricted to
XPath 1.0; of course, the plan is to add XPath 2.0 to libxml2 at some stage in
the future. My hope is that sales of the product will fund development of the
library changes for XPath 2.0 support.
So, Justin, I don't think lack of garbage collection has anything to do with
the paucity of implementations in C/C++. As Mike Kay has already said, it has
everything to do with commercial realities. In case of libxml2, the people that
really matter believe XSLT 1.0 is good enough and there is a strong perception
that XSLT 2.0 is too difficult (not a viewpoint I share - but it does involve a
non-trivial amount of engineering).
Cheers,
Steve Ball
On 11/12/2009, at 7:12 PM, Justin Johansson wrote:
Hi XSLT people,
I'm wondering just what exactly-one or more (pun intended) obstacles there
are to having XSL-T 2.0, XPath 2.0 and friends implemented in C++.
(I assert that) It is desirable to be able to manipulate XML in both pull and
push fashion. My understanding (please correct me if I am wrong) is that
XQuery is as to pull as XSL-T is as to push. Yes there are many XQuery opi
in progress for a multitude of platforms including Java, .Net and various FP
languages and some with a C/C++ language base. On the other hand, XSL-T 2.0
is as good as still-born (to quote a blog by Elliotte Rusty Harold) given
that there are few if any C++ based XSL-T processors that approach anywhere
near the Gold Standard XSL-T 2.0 processor that is Saxon for Java (and its
.Net translation).
So just what are the obstacles, impediments, show-stoppers etc. for
world-class XSL-T 2.0 processors in the C/C++ space?
I'm very interested in feedback from this list. Perhaps some plausible
issues include:
- Lack of inbuilt garbage collection in C/C++ (which is very much a
requirement when dealing with the list/sequence nature of XPath) makes
implementation difficult
- The spec(s) is(are) difficult to master so no matter what language
prospective implementors are reluctant to take on the Gold Standard
- There are no compelling reasons for business investment in alternative
XSL-T implementations
- XML processing libraries for C/C++ are disparate; where is XOM for C++ for
instance?
- XSL-T 1.0 is sufficient so who cares?
- I'm clueless; please add your input
Thanks for all replies,
Justin Johansson
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--