I have two keys with the same matching pattern. The pattern is long. The picture itself does not matter; the problem is long duplication:
<xsl:key name="narrow-things-by-columnset" match="p | p-cont | heading[not(parent::section or parent::contents) and not(parent::p)] | language-desc | country-desc | graphic[not(parent::section or parent::contents)] | block-quote | bulleted-list | blank-line | bibliography | language-name-index | language-code-index | country-index | table-of-contents" use="sileth:columnset-id(.)"/> <xsl:key name="narrow-things-by-section" match="p | p-cont | heading[not(parent::section or parent::contents) and not(parent::p)] | language-desc | country-desc | graphic[not(parent::section or parent::contents)] | block-quote | bulleted-list | blank-line | bibliography | language-name-index | language-code-index | country-index | table-of-contents" use="sileth:section-id(.)"/>
DRY main reminds us that when duplicating data there are problems with synchronizing multiple copies. In fact, this happened to me, as a result of which the error was postponed for tracking.
Therefore, I would like to be able to use one common pattern of correspondence between two keys. AFAIK you cannot do this with a variable. Is there any other way to do this?
Larsh source share