Как выполнить XSLT 2.0 с муравьем?

1 имеет тип int.

1> 0 имеет тип boolean.

^ означает XOR; и вы не можете XOR boolean и int.

Другими словами: первое выражение «1» оценивается как число; второе выражение "1> 0" оценивается как логическая логика. Причиной этого является оператор предопределения .

8
задан paulgreg 28 May 2009 в 07:53
поделиться

3 ответа

Проблема в том, что, хотя Saxon добавлен в путь к классам, механизм JAXP по умолчанию для определения того, какой TransformerFactory используется, и он будет использовать значение по умолчанию - Xalan. Вам необходимо либо:

  • Установить системную переменную javax.xml.transform.TransformerFactory на net.sf.saxon.TransformerFactoryImpl ,
  • Добавить saxon9.jar в ] CLASSPATH системная переменная или
  • Используйте внутри элемента xslt
19
ответ дан 5 December 2019 в 05:34
поделиться

Это руководство, кажется, дает пошаговые инструкции о том, как сделать то, что вы просите:

http://www.abbeyworkshop.com/howto/xslt/ant-saxon/index .html

Судя по всему, вы поступаете правильно. Вы уверены, что вам нужны двойные обратные косые черты?

Обновление: в документации xslt Ant упоминается свойство 'factory', которое может помочь вам приблизиться:

http://ant.apache.org/manual/Tasks/style .html

3
ответ дан 5 December 2019 в 05:34
поделиться

РЕДАКТИРОВАТЬ: Dr. Майкл Кей указал, что AntTransform больше не поддерживается и не рекомендуется.

Создайте taskdef из класса Saxon AntTransform :

  <taskdef name="saxon-xslt" classname="net.sf.saxon.ant.AntTransform" classpath="${basedir}/lib/saxon/saxon9.jar;${basedir}/lib/saxon/saxon9-ant.jar"/>

   <saxon-xslt
     in="${source.xml}"
     out="${out.dir}/${output.xml}"
     style="${basedir}/${stylesheet.xsl}"
     force="true">
   </saxon-xslt>


Я начал использовать стандарт < xslt> с saxon jar, указанным в , но столкнулись с проблемами производительности. Казалось, немного "зависло" при вызове задачи. Я обнаружил, что добавление processor = "trax" и указание помогает ему работать намного быстрее.

 <xslt in="${source.xml}"
       out="${out.dir}/${output.xml}"
       style="${basedir}/${stylesheet.xsl}"
       processor="trax">
       <factory name="net.sf.saxon.TransformerFactoryImpl"/>
       <classpath refid="saxon-classpath" />
 </xslt>  
1
ответ дан 5 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: