Re: [exsl] EXSL "1.0" RDDL and Implementation
Hi Uche, > I have placed the RDDL resource glosses for the EXSLT 1.0 NSRefs (I > scare-quote in the title because I assume there are more iterations to come > before a blessed "1.0"). To check them out, just resolve the namespaces > > http://xmlns.opentechnology.org/xslt-extensions/common > http://xmlns.opentechnology.org/xslt-extensions/sets > http://xmlns.opentechnology.org/xslt-extensions/math > http://xmlns.opentechnology.org/xslt-extensions/functions Thanks very much, Uche :) > I have written an extension module for users of 4XSLT 0.10.2 implementing > EXSLT 1.0 common, math and sets. Approx total implementation time: 2 hours (I > love Python), even though node-set is the only one I had implemented before > and even that needed a tweak. Great :) > Notes from implementation: > > * Jeni, could you add anchor names for each function in your specs? > It would make it easy to provide links from the implementation docs. Actually, they were, but the EXSLT implementations were also anchors for the same thing, so they were breaking. Thanks for pointing that out. The latest versions (just to be announced) should work fine. > * "The set:distinct function returns the nodes within the node set > passed as the first argument that have different values. The 'value' > of a node is calculated by evaluating the expression held in the > string passed as the second argument with the current node equal to > the node whose value is being calculated." and so on for the set > functions. Is the rest of the context (esp. the var bindings) just > the context at the time set:distinct is invoked? This is how I > implemented it: node position and size = 1, context=node whose value > is being computed, all else untouched. > > * I assumed the string parameters passed to those set functions must > be a string and can't just be an object to be coerced. Is this what > we want? I now throw an exception if non-string is passed In the latest version, I've taken out all the dynamic evaluation stuff because I think it would be better to get a relatively uncontentious set of extension functions together first. > * Just for the sake of consistency, maybe we should use "math" > rather than "num" for the example prefix for the Math extensions. Done. > * For num:min and num:max, I assumed the ordering is identical to > that used by the XPath ">" operator. Added clarification to indicate that this is the case. > * What do min and max return for an empty argument node set? I just > assumed boolean false, which is so arbitrary I probably should have > just raised an exception I think that it should give NaN? > * I assume for num:sum that all nodes are converted to numbers as if > with number() Added clarification to indicate that this is the case with the other numerical functions. Thanks very much for doing that implementation - it's really helpful to have input from real experience :) Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format