xsl-list
[Top] [All Lists]

Re: [xsl] user-defined XSLT functions and stylesheet variables?

2021-06-19 19:35:16
On Sun, Jun 20, 2021 at 12:11:50AM -0000, Christophe Marchand 
cmarchand(_at_)oxiane(_dot_)com scripsit:
All the responses given by Eliot and Liam respect Clean Code[1] best
practises. Many principles must be respected if you expect your code may
evolve :

I think this is one of those places where the imperative best practise
and the declarative best practise aren't perfectly congruent.

If you've got a global variable that provides part of the transform
context -- the big map of what the known languages use for quotation
marks, commas, and colons, say -- I think it's quite entirely harmless
to reference that from inside a function.  The testing should be looking
at the list of names in the map and making sure the expected names are
defined for each language, but presence of a transform context with
global constants -- how many of whatever to the EMU, how many points to
the inch, etc. -- is conceptually like amending the static context by
importing module functions.  I don't think it's harmful to use global
variables in this way.

(It does make me hope XSLT 4 allows

<xsl:variable name="bigLookup" as="map(*)">
  <xsl:map>
  ....
  </xsl:map>
</xsl:variable>

to be declared static.)

-- 
Graydon Saunders  | graydonish(_at_)gmail(_dot_)com
Þæs oferéode, ðisses swá mæg.
-- Deor  ("That passed, so may this.")
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>