This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
The functions serialize, format-time, format-date and format-dateTime each have one variant which is marked context-dependent and one which is marked context-independent. e.g. fn:serialize The one-argument form of this function is
For format-date() etc I think it is correct, but for reasons that are difficult to defend. In hte case of format-date(), etc, the two-argument forms of these functions depend on the default language, calendar, etc, but this dependency is described in the spec as "implementation-defined" behaviour rather than "context-dependent" behaviour. If we made default language and calendar properties of the dynamic context, then the functions would become context-dependent. Which would have the unfortunate consequence that you wouldn't be able to partially apply them. For fn:serialize(), I think the spec appears to be wrong: I can't see any reason why the single-argument function is described as context-dependent (though of course the result is in many ways implementation-dependent...)
I'm a little uneasy about this. As you know, I'd like the defaults to be part of the context. Were this to be adopted at some point in the future, it would be a breaking change due to the reasons you outline.
The WG decided that the default language, calendar, and place used by the format-date|time functions should be made explicit properties of the dynamic context. [F+O has been changed accordingly; the definitions are yet to be added to the language book]. The properties of fn:serialize() have been corrected.
Fixed as proposed in the last call draft.
Thanks.