Use of the match attribute on cs:if, cs:if-else

As earlier noted on the csl-docs issue tracker (
http://bitbucket.org/bdarcus/csl-docs/issue/1/specification-match-attribute-on-cs-choose-also-acts-between),
the CSL 1.0 specification doesn’t describe the effect of the match attribute
on cs:if and cs:if-else attributes with multiple conditions (e.g. ). Please let me know if you
agree with the following modified description of cs:choose, which now
describes the current Zotero behavior (the most important bit consists of
the last four lines):—

Similarly to the conditional statements encountered in programming
languages, the cs:choose element allows for the conditional rendering of
rendering elements. An example is shown below:

[XML example]

cs:choose requires a cs:if child element, which may be followed by one or
more cs:else-if child elements, and an optional closing cs:else child
element. The cs:if and cs:else-if elements may contain any number of
rendering elements (except for cs:layout). As an empty cs:else element would
be superfluous, cs:else must contain at least one rendering element. cs:if
and cs:else-if elements must each hold at least one condition, which are
expressed as attributes. The different types of conditions available are:

[list of condition attributes: variable, type, disambiguate, etc]

With the exception of “disambiguate”, all conditions allow for multiple test
values (separated with spaces, e.g. “book thesis”).

The cs:if and cs:if-else elements may include the match attribute to control
the testing logic, with possible values:

“all” (default): the element only tests “true” when all conditions test
"true" for all given test values
"any": the element tests “true” when any condition tests “true” for any
given test value
"none": the element only tests “true” when none of the conditions test
"true" for any given test value


The original can be found at
http://citationstyles.org/downloads/specification.html#choose

Rintze

As earlier noted on the csl-docs issue tracker
(http://bitbucket.org/bdarcus/csl-docs/issue/1/specification-match-attribute-on-cs-choose-also-acts-between),
the CSL 1.0 specification doesn’t describe the effect of the match attribute
on cs:if and cs:if-else attributes with multiple conditions (e.g. ). Please let me know if you
agree with the following modified description of cs:choose, which now
describes the current Zotero behavior (the most important bit consists of
the last four lines):

Looks good to me, apart from one small typo (cs:if-else for
cs:else-if, noted below).


Similarly to the conditional statements encountered in programming
languages, the cs:choose element allows for the conditional rendering of
rendering elements. An example is shown below:

[XML example]

cs:choose requires a cs:if child element, which may be followed by one or
more cs:else-if child elements, and an optional closing cs:else child
element. The cs:if and cs:else-if elements may contain any number of
rendering elements (except for cs:layout). As an empty cs:else element would
be superfluous, cs:else must contain at least one rendering element. cs:if
and cs:else-if elements must each hold at least one condition, which are
expressed as attributes. The different types of conditions available are:

[list of condition attributes: variable, type, disambiguate, etc]

With the exception of “disambiguate”, all conditions allow for multiple test
values (separated with spaces, e.g. “book thesis”).

The cs:if and cs:if-else elements may include the match attribute to control

Minor typo, should be cs:else-if