Функция key () в элементе <key> - PullRequest
4 голосов
/ 03 января 2012

В ключевом элементе является ошибкой значение атрибута use или атрибута match, содержащее ссылку на переменную.

Но может ли атрибут use или match содержать функцию key()?

Это кажется разрешенным, но это имеет смысл, только если элементы key выполняются в порядке документа в таблице стилей. Это гарантировано?

(Если это действительно работает, то иногда можно использовать функцию key() внутри use или match для выполнения работы, которую будет выполнять запрещенная глобальная переменная.)

1 Ответ

4 голосов
/ 03 января 2012

Но может ли атрибут use или match содержать функцию key ()?

В XSLT 1.0 оба эти ошибки .

От ошибок W3C до спецификации XSLT 1.0 :

E13 - По существу.

Раздел 12.2, восьмой абзац.Вызов функции key в match и использование атрибутов в элементах xsl: key могут вызывать циклы.См. http://lists.w3.org/Archives/Member/w3c-xsl-wg/2000Jun/0048.html (только для членов).

Ошибка значения атрибута use или атрибута match, содержащего VariableReference, или вызова ключевой функции

В XSLT 2.0 использование функции key() в этих местах разрешено при условии, что ключ не определен сам по себе (круговые ссылки в определениях не допускаются).

...