Здравствуйте, Аноним, Вы писали:
А>Поскольку generate-id с nodeset-ом в аргументе равнозначен generate-id(nodeset[1]), то вызов ключа для потомков items2 будет находить элементы из items2 только в том случае, если элементов с соответствующим src нет в items1 (document order и все такое), а поскольку они там есть, то мы имеем то, что имеем. В данном случае можно делать составной ключ — use="concat(ancestor::items/@name, '|', @src)" — это даст возможность использовать ключ в нужном контексте.
Не надо этого делать, это плохой подход — завтра у вас окажется, что items встречается палка в атрибуте name и все, приплыли.
Правильный подход описан двумя постами ниже.