In this paper I have presented 10 characteristics of the Saxon XQuery implementation that contribute to its performance, and for most of these, I have attempted to quantify the size of that contribution for some selected queries. Few of these mechanisms are unique to Saxon; what makes Saxon distinctive is the deployment of a balanced portfolio of techniques to deliver efficient query execution over a variety of user workloads, coupled with a determination to place other qualities of the product (standards conformance, reliability, usability) ahead of raw performance. In a crowded marketplace with over 50 XQuery implementations competing for user attention, I believe it is this balanced approach that has led many users to make Saxon their preferred choice.
Tag: xslt
XSLT Cache
this might make chregu happy 🙂
XSLT Coordinate Extraction
xslt 0wnz
David Pawson: XSLT Questions and Answers
Quite possibly the best XSL resource bar none. Ready-made recipes for tasty XML snacking.
2022-11-02: With 2 decades of hindsight, what a disaster XML technologies have been. Here’s a funny example where XSLT ownz literally.
I discovered a surprising attack surface hidden deep inside Java’s standard library: A custom JIT compiler processing untrusted XSLT programs, exposed to remote attackers during XML signature verification. This post discusses CVE-2022-34169, an integer truncation bug in this JIT compiler resulting in arbitrary code execution in many Java-based web applications and identity providers that support the SAML single-sign-on standard.
XSLT tunneled variables
interesting new technique in xslt 2.0
momento
Momento is an XML document object model. It is designed to permit large XSLT transforms and XUpdate queries, larger than in memory document object models will allow. In addition, it stores transaction based modifications to XML documents that are recoverable in the event of a system failure.
people are doing more and more work on xml storage. momento looks like it could become quite useful inside cocoon if the author decides to donate it.
Mindmap to outline
continuing with my mindmanager x5 experiments, i wrote XSLT that converts the native mindmanager xml format to OPML. as it turns out,
if you disregard the presentational information that mindmanager stores for each node, the 2 formats are quite alike. it was very easy to convert from one to the other.
i have yet to do the inverse, opml2mindmanager. i guess i could figure out the minimal requirements for the mindmanager xml representation, but i will probably wait until mindjet releases their mindmanager x5 developer docs. you’d want to round trip to make this useful beyond satisfying your inner geek.
i always liked outlines, being very much a list person, but when i discovered mind mapping software, something clicked. i realized that i could harness latent visualization skills to help with retention of ideas. my clumsiness with analog media had prevented me from experimenting with mind maps earlier. not so with mindmanager.
the biggest improvement of mind maps over outlines is the ability to relate nodes in a mind map to each other. also of interest, embellishing a mind map with visual clues. i know that some outliner let you attach links to a node, but unless i am missing something, there can only be one link per node.
i am not yet sure what i will use this XSLT for. here are some ideas:
- export mind maps as outlines (obvious)
- annotate imported OPML blogrolls
- prototype sitemaps (though i am not sure if any CMS besides the userland products uses OPML for that)
- aggregate with other XML data (RSS, FOAF etc)
mindmanager ships with some XML aggregation samples, such as the ability to associate RSS feeds with certain nodes in the mind map. upon first glance, it struck me as a toy, but i am sure they are only scratching the surface there. mac users have had software to correlate feeds, contacts, bookmarks, pictures etc for a while, but i am not sure if these products hit a sweet spot just yet. then again, they exude cool, and that is reason enough 🙂
i am pretty confident that interesting stuff like XTM support will fall into place quickly once mindjet builds upon it’s quite active community and encourages it to innovate. being of the geek tribe, i am not very often prepared to pay for software (with all the open source solutions out there), but i gladly pay for mindmanager.
anyway, let me know if you think this is hot area, or have ideas for exploration.
Semi-structured data pipelines
the cocooners are musing about a filesystem that is aware of semistructured data.
Imagine having an XSL processor in the kernel:
You could “execute” .xsl files, bypassing having to run a processor manually.
prompt$ page2html.xsl < input.xml > output.html
this jibes well with the notion of making xml the default programming model, something i would like to see (i like xml much more than java 🙂 i wrote about this 2 years ago. damn, has it been 2 years already.
in love of functional languages
i’m increasingly falling in love with xslt. i kinda skipped functional languages in school, so i’m happy to pick them up via angle brackets now. some recursive stuff is pretty nasty, but that is more a function (can you pun yourself?) of my lack of understanding..
in other news, saxon now has support for XSLT 2.0. yummy. some of the new features
- regular expressions for text nodes
- a grouping function xsl:for-each-group
- casting via xsl:import-schema
- multiple document output
lisp 0wnz
The enclosed XSLT transformer will take an arbitrary well-formed XML input document and turn it into an arbitrary lisp-style list that can be processed using modern processing tools, such as any scheme implementation after ~1974.