фрагмент дерева результатов для узла -набор :общий подход для всех механизмов xsl

Отвечая на другой поток (см. stackoverflow :генерировать цветовые схемы css)я столкнулся с описанная ниже проблема заключается в том, что для разных механизмов xsl требуются разные подходы к преобразованию фрагментов результирующего дерева в наборы узлов -.

Упрощение проблемы (, но см. ссылку выше для полной истории, стоящей за этим ), я хочу иметь встроенное дерево, содержащее список значений цвета. Поскольку это должно использоваться в выражениях Xpath, мне пришлось создать из него набор узлов -специально для механизма MSXML xx xsl (, созданного XML Spy -, чтобы было меньше проблем с интерпретацией выражений Xpath, содержащих переменные, созданные как rtf ).
Еще один поток stackoverflow :автоматизация -exsltnode -set помог мне в этом. Результирующий набор узлов -используется для создания новой переменной rtf из входного XML.
Опять же, MSXML ругается, когда новая переменная используется в выражениях Xpath, поэтому я использовал функцию набора узлов -, чтобы создать из нее набор узлов -.
Пока все хорошо, и MSXML x.x больше не выдает ошибок.
Но когда я запускаю то же самое в XML Spy, встроенном -в Saxon 9he, я получаю другую ошибку :кажется, что функция установки узла -неизвестна:

Cannot find a matching 1-argument function named {urn:schemas-microsoft-com:xslt}node-set() in variable colorList

Обратите внимание, что этот двухэтапный -подход в этом конкретном примере это не требуется, но, как я уже сказал, я упростил ситуацию;Я просто хочу знать, как написать преобразование XSLT 1.0, которое будет работать во всех механизмах xsl.

XSLT, который я использовал:




    

    
        #0000FF
        #FF0000
    

    

    
        
            
            
                
                
            
        
    

    

    
        
            
        
   


Входной файл:



  
    111
  
  
    999
  

Результат в MSXML 3.0/4.0/6.0:



#FF0000
#0000FF

Результат в Saxon9he:

Cannot find a matching 1-argument function named {urn:schemas-microsoft-com:xslt}node-set()
in variable colorList

результат в XML Spy, встроенный -в механизме xsl:

Error in XPath expression
Unknown function - Name and number of arguments do not match any function signature in the static context - 'urn:schemas-microsoft-com:xslt:node-set'

5
задан Community 23 May 2017 в 11:52
поделиться