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

Subject: Re: [xsl] Error at element constructor...
From: SEXpeare <sexpeare@xxxxxxxxx>
Date: Mon, 12 Mar 2007 13:02:05 +0100
xmlEstructurado is a String object initialized with "", I forgot to
put one code line in my first post, the code is this (again):

String xmlEstructurado = "";


System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl");

               TransformerFactory tfactory =
TransformerFactory.newInstance();

File plantilla = new File("c:/prueba.xsl");

               StreamSource xslSrc = new
StreamSource(plantilla.toURL().openStream());
               xslSrc.setSystemId("c:/");

               StreamSource xmlSrc = new
StreamSource(super.getISFromDH(adjuntoXml));
               xmlSrc.setSystemId("c:/");

Transformer transformer = tfactory.newTransformer(xslSrc);

               transformer.transform(xmlSrc, new
StreamResult(xmlEstructurado));

If I call setSystemId for the result, the error changes to this one:

java.lang.IllegalArgumentException: URI scheme is not "file"



2007/3/12, Michael Kay <mike@xxxxxxxxxxxx>:
Thanks. Can't see any obvious cause there. Perhaps I took the wrong track
and it's actually the result destination it's got problems with. You wrote:

new StreamResult(xmlEstructurado)

What's in that variable?

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


> -----Original Message----- > From: SEXpeare [mailto:sexpeare@xxxxxxxxx] > Sent: 12 March 2007 10:18 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] Error at element constructor... > > 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>Boletmn</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="*[@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@xxxxxxxxxxxx>: > > > 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/

Current Thread