You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by "Kutz Clemens (PEA-FE2/BA-T)" <Cl...@de.bosch.com> on 2002/07/29 09:04:39 UTC

any limitation to "generate-id()"

Hi FOP-Developers,

I'm using a xsl-stylesheet to convert a xml-file to pdf and have a serious
problem with the generate-id() - function.

Here's my XSL-Stylesheet:

<xsl:template match="TT">
    <fo:wrapper id="{generate-id(.)}" xsl:use-attribute-sets="tt">
        <xsl:apply-templates/>
    </fo:wrapper>
</xsl:template>

I use the "id" attribute, because I want to append a list of all TT-Elements
to my pdf-file.

It worked for several files, but if I had tested it on an really large file
(800Kb; about 140 pages) I got the following message:


org.apache.fop.apps.FOPException: org.apache.fop.apps.FOPException: The id
"N402100" already exists in this document
        at org.apache.fop.apps.CommandLineStarter.run(Unknown Source)
        at org.apache.fop.apps.Fop.main(Unknown Source)

---------

java.lang.RuntimeException: org.apache.fop.apps.FOPException: The id
"N402100" already exists in this document
        at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3170)
        at
org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerH
andlerImpl.java:433)
        at
org.apache.xerces.parsers.AbstractSAXParser.endDocument(AbstractSAXParser.ja
va:715)
        at
org.apache.xerces.impl.XMLNamespaceBinder.endDocument(XMLNamespaceBinder.jav
a:704)
        at
org.apache.xerces.impl.dtd.XMLDTDValidator.endDocument(XMLDTDValidator.java:
985)
        at
org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(XMLDocumentScannerIm
pl.java:437)
        at
org.apache.xerces.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1159
)
        at
org.apache.xerces.impl.XMLEntityManager$EntityScanner.load(XMLEntityManager.
java:3204)
        at
org.apache.xerces.impl.XMLEntityManager$EntityScanner.skipSpaces(XMLEntityMa
nager.java:2861)
        at
org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatc
h(XMLDocumentScannerImpl.java:987
)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocume
ntFragmentScannerImpl.java:333)
        at
org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserCo
nfiguration.java:529)
        at
org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserCo
nfiguration.java:585)
        at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147)
        at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:114
8)
        at
org.apache.xalan.transformer.TrAXFilter.parse(TrAXFilter.java:134)
        at org.apache.fop.apps.Driver.render(Unknown Source)
        at org.apache.fop.apps.CommandLineStarter.run(Unknown Source)
        at org.apache.fop.apps.Fop.main(Unknown Source)

---------

java.lang.RuntimeException: org.apache.fop.apps.FOPException: The id
"N402100" already exists in this document
        at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3170)
        at
org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerH
andlerImpl.java:433)
        at
org.apache.xerces.parsers.AbstractSAXParser.endDocument(AbstractSAXParser.ja
va:715)
        at
org.apache.xerces.impl.XMLNamespaceBinder.endDocument(XMLNamespaceBinder.jav
a:704)
        at
org.apache.xerces.impl.dtd.XMLDTDValidator.endDocument(XMLDTDValidator.java:
985)
        at
org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(XMLDocumentScannerIm
pl.java:437)
        at
org.apache.xerces.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1159
)
        at
org.apache.xerces.impl.XMLEntityManager$EntityScanner.load(XMLEntityManager.
java:3204)
        at
org.apache.xerces.impl.XMLEntityManager$EntityScanner.skipSpaces(XMLEntityMa
nager.java:2861)
        at
org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatc
h(XMLDocumentScannerImpl.java:987
)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocume
ntFragmentScannerImpl.java:333)
        at
org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserCo
nfiguration.java:529)
        at
org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserCo
nfiguration.java:585)
        at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147)
        at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:114
8)
        at
org.apache.xalan.transformer.TrAXFilter.parse(TrAXFilter.java:134)
        at org.apache.fop.apps.Driver.render(Unknown Source)
        at org.apache.fop.apps.CommandLineStarter.run(Unknown Source)
        at org.apache.fop.apps.Fop.main(Unknown Source)

I had some ideas, where it could come from:
1.) not well-formed xml-file
2.) maybe I used generate-id() two times for the same element

but I can exclude both. The first because I checked my document several
times. The second because my stylesheet worked very well with smaller files
and a lot of TT elements inside.

So does anybody know, if the "generate-id()" function has ANY limitation.
For everybody who is not very familiar with the fop-inside, but very
familiar with java I tried to find the source for "generate-id()". I'm
really not sure, but I assume it's in the following file:

file:src\org\apache\xalan\xsltc\compiler\util\MethodGenerator.java
    
    
public class MethodGenerator extends MethodGen
    implements org.apache.xalan.xsltc.compiler.Constants {
    
    ...
        
    public int getLocalIndex(String name){
    	return getLocalVariable(name).getIndex();
    }

    
    public LocalVariableGen getLocalVariable(String name){
    	final LocalVariableGen[] vars = getLocalVariables();
    	for (int i = 0; i < vars.length; i++)
    	    if (vars[i].getName().equals(name))
    		return vars[i];
    	return null;	
        }
    ...
    }



Comments?

Clemens Kutz


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org


Re: any limitation to "generate-id()"

Posted by Oleg Tkachenko <ol...@multiconn.com>.
Kutz Clemens (PEA-FE2/BA-T) wrote:
> I'm using a xsl-stylesheet to convert a xml-file to pdf and have a serious
> problem with the generate-id() - function.
> 
> Here's my XSL-Stylesheet:
> 
> <xsl:template match="TT">
>     <fo:wrapper id="{generate-id(.)}" xsl:use-attribute-sets="tt">
>         <xsl:apply-templates/>
>     </fo:wrapper>
> </xsl:template>
> 

Chances are it has something to do with 
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3497.

-- 
Oleg Tkachenko
Multiconn International, Israel


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org