=> Главная База Знаний Xslt Элемент <xsl:fallback>


Элемент <xsl:fallback>

Элемент <xsl:fallback>

При помощи элемента XSLT 1.0

<xsl:fallback>
можно указать, что следует делать в случае отсутствия элемента расширения. Этот элемент заключается в элемент расширения и используется в случае его недоступности.

У элемента

<xsl:fallback>
нет атрибутов, он содержит тело шаблона.

В следующем примере я создам элемент

<xsl:fallback>
внутри элемента
<redirect:write>
из предыдущего примера. В случае отсутствия элемента
<redirect:write>
элемент
<xsl:fallback>
прекратит обработку и выдаст сообщение:

<xsl:stylesheet

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 version="1.0"

 xmlns:lxslt="http://xml.apache.org/xslt"

 xmlns:redirect="org.apache.xalan.lib.Redirect"

 extension-element-prefixes="redirect">

 <lxslt:component prefix="redirect" elements="write open close" functions="">

  <lxslt:script lang="javaclass" src="/org.apache.xalan.lib.Redirect"/>

 </lxslt:component>

 <xsl:output method="xml"/>


 <xsl:template match="/">

  <xsl:apply-templates/>

 </xsl:template>


 <xsl:template match="PLANETS">

  <redirect:write select="@file">

   <PLANETS>

    <xsl:apply-templates/>

   </PLANETS>

   <xsl:fallback>

    <xsl:message terminate="yes">

     <xsl:text>Could not create multiple output documents.</xsl:text>

    </xsl:message>

   </xsl:fallback>

  </redirect:write>

 </xsl:template>


 <xsl:template match="@*|node()">

  <xsl:copy>

   <xsl:apply-templates select="@*|node()"/>

  </xsl:copy>

 </xsl:template>

</xsl:stylesheet>

На этом мы заканчиваем введение в работу с данными в документах XML. В следующей главе мы разберем эту тему и узнаем, как изменять содержимое документа и создавать новые элементы, атрибуты и инструкции обработки.