[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: user-defined XSLT functions and stylesheet variabl
David,
My general principle in writing a function has been to avoid any global parameters/variables to begin with. When it needs one or two more options, I supply ++-arity variants. But at some point, one might face the problem of function constants that must be either set in stone, or bound to so many function parameters the function might become confusing and not usable. If it cannot be simplified by breaking it up into smaller functions, then I either (1) reluctantly increase the arity options, (2) avoid the pretense of a "function" and make it part of a larger XSLT application, or (3) I bind those constants to global parameters (never global variables). (If I balk it making it a parameter instead of a variable, that normally means I haven't thought the problem through correctly -- do I really want the user control over such-and-such a feature?) I am now also in the habit of always declaring @visibility. With a private function I might be more inclined to #1. The question of global parameters in a user-defined function is akin to the use of functions within functions. If writing a function necessarily uses other functions (a good DRY principle), then I might be more inclined to #3. In either case, I document the decisions and rationale as copiously and best as I can. I have found good reasons to do #1, #2, and #3. Sometimes problems in real-world input-output force me to repent. Above is what I've settled on personally, but I wouldn't suggest it should be named best anything or another. I would adopt Dimitre's advice and convert more functionality to inline XPath if that language supported templates and other unique features of XSLT, and if it did not elicit from me code far more crabbed and less maintainable than what I do in XSLT. With the XPath function fn:transform() I don't consider the issue important. I can (as I sometimes must) write an extensive 30+-parameter XSLT application knowing in peace it can be used in any XPath environment. jk On 2021-06-18 19:26, Dimitre Novatchev dnovatchev@xxxxxxxxx wrote: Is there agreement about Best Practice with respect to usingstylesheet (global) variables inside user-defined functions?
|
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
|