xsl-list
[Top] [All Lists]

Re: [xsl] Error at element constructor...

2007-03-12 03:18:22
Sorry for that man, here's the code:

<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:fn="http://www.w3.org/2005/xpath-functions";
xmlns:xdt="http://www.w3.org/2005/xpath-datatypes";
xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
        <xsl:output method="xml" version="1.0" encoding="iso-8859-1" 
indent="yes"/>
        <xsl:template match="/boletin">
                <boletin>
                        <info>
                                <xsl:choose>
                                        <xsl:when test="IsSuplemento = 
&quot;No&quot;">
                                                <tipo>Boletín</tipo>
                                        </xsl:when>
                                        <xsl:otherwise>
                                                <tipo>Suplemento</tipo>
                                        </xsl:otherwise>
                                </xsl:choose>
                                <xsl:for-each 
select="VariableTexts/VariableText/VarName[. =
&quot;NumBopa&quot;]">
                                        <numero>
                                                <xsl:value-of 
select="../VarText"/>
                                        </numero>
                                </xsl:for-each>
                                <xsl:for-each 
select="VariableTexts/VariableText/VarName[. =
&quot;NumSuplemento&quot;]">
                                        <numeroSuplemento>
                                                <xsl:value-of 
select="../VarText"/>
                                        </numeroSuplemento>
                                </xsl:for-each>
                                <xsl:for-each 
select="VariableTexts/VariableText/VarName[. =
&quot;FechaCabecera&quot;]">
                                        <fecha>
                                                <xsl:value-of 
select="../VarText"/>
                                        </fecha>
                                </xsl:for-each>
                                <xsl:for-each select="StartPageNum">
                                        <paginaInicio>
                                                <xsl:apply-templates/>
                                        </paginaInicio>
                                </xsl:for-each>
                                <numPaginas/>
                        </info>
                        <sumario>
                                <xsl:for-each select="sumario/seccion[1]">
                                        <xsl:call-template name="sumario"/>
                                </xsl:for-each>
                        </sumario>
                        <anuncios>
                                <xsl:for-each select="anuncios/p[1]">
                                        <xsl:call-template name="anuncios"/>
                                </xsl:for-each>
                        </anuncios>
                </boletin>
        </xsl:template>
        
        
        
        <xsl:template name="sumario">
                <xsl:variable name="name" select="name()"/>
                <xsl:for-each-group select="self::* | following-sibling::*"
group-starting-with="*[name() = $name]">
                        <xsl:copy>
                                <xsl:choose>
                                        <xsl:when test="name() != 
&quot;anuncio&quot;">
                                                <xsl:copy-of select="@*"/>
                                        </xsl:when>
                                        <xsl:otherwise>
                                                <codigo/>
                                                <titulo>
                                                        <xsl:value-of 
select="@txt"/>
                                                </titulo>
                                                <paginaInicio/>
                                                <paginaFin/>
                                        </xsl:otherwise>
                                </xsl:choose>
                                <xsl:variable name="group">
                                        <xsl:copy-of select="current-group()"/>
                                </xsl:variable>
                                <xsl:for-each select="$group/*[2]">
                                        <xsl:call-template name="sumario"/>
                                </xsl:for-each>
                        </xsl:copy>
                </xsl:for-each-group>
        </xsl:template>
        
        
        
        <xsl:template name="anuncios">
                <xsl:variable name="estilo" select="@style"/>
                <xsl:for-each-group select="self::* | following-sibling::*"
group-starting-with="*[(_at_)style = $estilo]">
                        <xsl:choose>

<!-- CASO SECCION -->

                                <xsl:when test="@style = 
&quot;0GEN_Tit_Seccion&quot;">
                                        <seccion id="{.}">
                                                <xsl:variable name="group">
                                                        <xsl:copy-of 
select="current-group()"/>
                                                </xsl:variable>
                                                <xsl:for-each 
select="$group/*[2]">
                                                        <xsl:call-template 
name="anuncios"/>
                                                </xsl:for-each>
                                        </seccion>
                                </xsl:when>

<!-- FIN CASO SECCION -->

<!-- CASO SUBSECCION -->

                                <xsl:when test="@style = 
&quot;1PA_Tit1_SubSecc&quot;">
                                        <subseccion id="{.}">
                                                <xsl:variable name="group">
                                                        <xsl:copy-of 
select="current-group()"/>
                                                </xsl:variable>
                                                <xsl:for-each 
select="$group/*[2]">
                                                        <xsl:call-template 
name="anuncios"/>
                                                </xsl:for-each>
                                        </subseccion>
                                </xsl:when>

<!-- FIN CASO SUBSECCION -->

<!-- CASO ORGANISMO -->

                                <xsl:when test="@style = 
&quot;1PA_Tit2_Consejeria&quot;">
                                        <organismo id="{.}">
                                                <xsl:variable name="group">
                                                        <xsl:copy-of 
select="current-group()"/>
                                                </xsl:variable>
                                                <xsl:for-each 
select="$group/*[2]">
                                                        <xsl:call-template 
name="anuncios"/>
                                                </xsl:for-each>
                                        </organismo>
                                </xsl:when>

<!-- FIN CASO ORGANISMO -->

<!-- CASO SUBORGANISMO -->

                                <xsl:when test="@style =
&quot;XXXXXXXXXXXXXXXXXXXSUBORGANISMOXXXXXXXXXXXXXXXXXXX&quot;">
                                        <suborganismo id="{.}">
                                                <xsl:variable name="group">
                                                        <xsl:copy-of 
select="current-group()"/>
                                                </xsl:variable>
                                                <xsl:for-each 
select="$group/*[2]">
                                                        <xsl:call-template 
name="anuncios"/>
                                                </xsl:for-each>
                                        </suborganismo>
                                </xsl:when>

<!-- FIN CASO SUBORGANISMO -->

<!-- CASO ADSTART (NO SE MUESTRA) -->

                                <xsl:when test="following-sibling::*[1]/@style =
&quot;1PA_Sum_Anuncio&quot;">
                                        <xsl:variable name="group">
                                                <xsl:copy-of 
select="current-group()"/>
                                        </xsl:variable>
                                        <xsl:for-each select="$group/*[2]">
                                                <xsl:call-template 
name="anuncios"/>
                                        </xsl:for-each>
                                </xsl:when>

<!-- FIN CASO ADSTART -->

<!-- CASO ANUNCIO -->

                                <xsl:when test="@style = 
&quot;1PA_Sum_Anuncio&quot;">
                                        <anuncio>
                                                <infoAnuncio>
                                                        <codigo><xsl:value-of
select="preceding-sibling::adstart[1]/@TextId"/></codigo>
                                                        <titulo><xsl:value-of 
select="substring(., 2)"/></titulo>
                                                        
<paginaInicio></paginaInicio>
                                                        <paginaFin></paginaFin>
                                                        
<tipoAnuncio></tipoAnuncio>
                                                </infoAnuncio>
                                                <contenido>
                                                </contenido>
                                        </anuncio>
                                </xsl:when>

<!-- FIN CASO ANUNCIO -->

                        </xsl:choose>
                </xsl:for-each-group>
        </xsl:template>
</xsl:stylesheet>

2007/3/12, Michael Kay <mike(_at_)saxonica(_dot_)com>:
> The error appears in line 5, so I don't think the rest of the
> xsl has to do with the error.

At the very least, you should show us the whole of the instruction that it's
complaining about, that is, the <info> element. It might also be necessary
to look at functions or templates called from that instruction. I suggested
that it might have something to do with a call on document() so it would be
useful to know if there are any such calls and if so, what they look like.

When you snip code from a posting, you don't only need to convince yourself
that the code you've snipped is irrelevant to the problem, you need to
convince your readers too...

Michael Kay
http://www.saxonica.com/


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--