[
Lists Home |
Date Index |
Thread Index
]
Alex Milowski wrote:
> In smallx you stream info items--not SAX. As such, when you receive
> a start tag you get the name, attributes, and in-scope namespaces.
> In SAX, those are separate callbacks and implementing against that
> is much harder.
>
> From an implementation perspective, I do not want to write
> components based on SAX. It is too cumbersome.
I know what you mean ;-) The OPS XPL engine provides infosets either
as raw SAX, but also as DOM or dom4j documents. It could be
interesting to look at also providing a more Infoset-friendly API,
like you appear to have in smallx, although there is no standard for
such AFAIK.
Note that the XPL spec is designed purely in terms of XML
Infoset. Then implementations are free to translate that into any API
they like.
> The XPL specification for pipelines is very different the smallx
> pipeline specification. XPL and SXPipe share a common "heritage" or
> "architecture" of the Sun Microsystems note on XML Pipelines. That
> is, the conceptual mode of the pipeline language as a sequence of
> orchestrated processors is the same.
Correct.
> smallx XML pipelines follow the idea the pipeline is a specification
> of a transformation and the steps are like XSLT extension elements.
> Each step in the pipeline is really an extension element that has
> its own syntax. That way you can embed specialized syntax or other
> steps without external files. You can also embed steps that have no
> specification other than the element syntax you are using.
[examples cut]
I can see that the approach taken by smallx is quite different from
XPL's.
> Further, if you want to write a custom step, you can declare the
> extension namespace and embed your own syntax with your own schema
> for that element. In this way, the pipeline language is extensible.
>
> Of course, someone has to write the supporting code, but I've tried
> to make that easy by the APIs for the infoset and bootstrapping
> mechanism to get the syntax into the compiler. The implementation
> has a registry which is an XML document. You just have to modify that
> to get your step into the language.
The extension system of XPL is, in a way, similar, except of course
that it is done on an "XML processor" or "XML component" basis. What's
similar is that XPL assumes the existence of a registry mapping names
to XML processors. Practically, the OPS implementation provides an XML
configuration file which is used to associate names and Java
classes. That configuration file is made available to the XPL engine
through a registry class.
Is smallx similar in any way with Apache Jelly?
Thanks for the precisions so far.
-Erik
|