2015-10-23 3 views
0

Имея файл, как это:XSLT 2.0 - Saxon Result-document пропустить ошибку?

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    exclude-result-prefixes="xs"> 

    <xsl:import href="file0.xsl"/> 
    <xsl:import href="file1.xsl"/> 
    <xsl:import href="file2.xsl"/> 

    <xsl:output indent="yes"/> 

    <xsl:template match="/"> 
     <root> 
      <xsl:result-document href="../xml/file0.xml" method="xml"> 
       <xsl:call-template name="file0"/> 
      </xsl:result-document> 

      <xsl:result-document href="../xml/file1.xml" method="xml"> 
       <xsl:call-template name="file1"/> 
      </xsl:result-document> 

      <xsl:result-document href="../xml/file2.xml" method="xml"> 
       <xsl:call-template name="file2"/> 
      </xsl:result-document> 
     </root> 
    </xsl:template> 

</xsl:stylesheet> 

Q: Я бродил, если есть способ, чтобы продолжить преобразование, если один из элементов result-document не удалось выполнить.

например. file1.xsl выдает ошибку в файле шаблона1, будет ли шаблон файла2 выполнен? ???

+0

Какая ошибка вы имеете в виду? try/catch - это функция XSLT 3.0, а не 2.0. –

+0

Я знаю о функциях XSLT 3.0. Я использую Saxon 9.6 HE прямо сейчас, и у меня нет возможности перейти на 3.0. Я просто хочу заверить, что даже если один из файлов не удастся, все остальное будет записано. Возможно, есть какой-либо Java-способ для обработки ошибки без остановки всего решения. Пример выше - всего лишь макет, у меня есть около 30 файлов, на которые я пишу, все работает нормально прямо сейчас, но что, если что-то пойдет не так. \ –

+0

Я добавил тег для Saxon, возможно, у Майкла Кей есть идея, которая может вам помочь в дальнейшем. –

ответ

1

В XSLT 2.0 или в Saxon-HE нет возможности попробовать/поймать. Объект присутствует в XSLT 3.0 (и как расширение Saxon для XSLT 2.0), но в обоих случаях это недоступно в бесплатной версии продукта.

Смежные вопросы