This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: What is XSLT? ( very long )


Hi,

I haven't formed an opinion on Paul's view yet, but I think it's interesting
to consider what other kinds of processor optimization hints could be
defined. If, as Paul says, we regard XSLT as a highly optimizable language
with by-value data interchange, much thought needs to be given to compiler
optimizations, analogous to defining indices and query plans in databases.

If key is considered one type of such hint, it would be an equivalent of a
non-unique index. Other hints I can think of (I'm not in a position to tell
which would are feasible or would actually result in any performance
improvements) would be:

- UNIQUE -- Specifies that there should not be duplicate nodes in a nodeset.
Node equivalence should be described (similar to overriding equals() )

- ORDERED -- indicate if the nodes in a nodeset are sorted by a specific
ordering. Node comparison should be described (similar to overriding
compare() )

- UNUSED -- ignore a nodeset completely while constructing the OM, it is not
used in transformation.

- DISCARD-AFTER-USE -- nodeset is only used by one template, can be
discarded from the OM after usage.

The last two are particularly important because they could perform "simple"
transformations on streaming XML data.

Some of these are somewhat dangerous because they are actually assertions
that would cause the transformation to break should the data not satisfy
them, which is not exactly the same thing as a hint...

Don't know how this fits into the trax initiative... Is there a way to do
this in compiler-indenpendent fasion? Is there a way to do it at all? Does
this make any sense at all? Comments welcome.

Thanks,

- Eugene


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]