Bonjour, j'utilise la version 0.20.5 de fop (j'ai pas trop le choix) et j'ai un soucis lors de la création de mon pdf.

J'utilise le code d'exemple de la version 0.20.5 de fop => ExampleXML2PDF

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
protected void transformXsl(File source, File target, InputStream xsl)
	throws SaxonApiException, IOException{
		//Construct driver
		Driver driver = new Driver();
 
		//Setup logger
		Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
		driver.setLogger(logger);
		MessageHandler.setScreenLogger(logger);
 
		//Setup Renderer (output format)        
		driver.setRenderer(Driver.RENDER_PDF);
 
		//Setup output
		OutputStream out = null;
		try {
			out = new java.io.FileOutputStream(target);
 
			try {
				driver.setOutputStream(out);
 
				//Setup XSLT
				TransformerFactory factory = TransformerFactory.newInstance();
 
				Transformer transformer = factory.newTransformer(new StreamSource(xsl));
 
 
				//Setup input for XSLT transformation
				Source src = new StreamSource(source);
 
				//Resulting SAX events (the generated FO) must be piped through to FOP
				Result res = new SAXResult(driver.getContentHandler());
 
				setParameter(transformer);
 
				//Start XSLT transformation and FOP processing
				transformer.transform(src, res);
			} catch (TransformerConfigurationException e) {
				getLog().error(e.getMessage());
			} catch (TransformerException e) {
				getLog().error(e.getMessage());
			} 
		}catch (FileNotFoundException e) {
			getLog().error(e.getMessage());
		} finally {
			out.close();
		}
et dans mes log j'ai comme erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
[ERROR] 
[STDOUT] Unsupported element encountered: pbs (Namespace: <a href="http://www.bsb.com/pbs/aggregated" target="_blank">http://www.bsb.com/pbs/aggregated</a>). Source context: unavailable
[STDOUT] [ERROR] 
[STDOUT] Expected XSL-FO (root, page-sequence, etc.), SVG (svg, rect, etc.) or elements from another supported language.
[STDERR] (Emplacement inconnu de l'erreur)org.apache.fop.apps.FOPException: Root element must be root, not <a href="http://www.bsb.com/pbs/aggregated:pbs" target="_blank">http://www.bsb.com/pbs/aggregated:pbs</a>
[STDERR] [error] javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: L'attribut "xpath-default-namespace" n'est pas admis sur l'élément xsl:stylesheet !
Au niveau de mon xsl j'ai plus ou moins ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<xsl:stylesheet version="2.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"
	xpath-default-namespace="http://www.bsb.com/pbs/aggregated">
 
...
 
<xsl:template match="/">
		<html>
			<head>
				<title>PBS</title>
				...
 
			</head>
			<body>
				<div class="pbs">
					<xsl:apply-templates mode="content" select="/pbs" />
				</div>
				<xsl:if test="$displayToc">
					<div id="nav">
						<a href="#toc">Back to ToC</a>
					</div>
					<div id="toc" class="toc">
						<a name="toc" />
						<h1>Table of contents</h1>
						<xsl:apply-templates mode="toc"
							select="/pbs/lines-of-business/*" />
					</div>
				</xsl:if>
				<xsl:apply-templates select="/pbs/lines-of-business/*"
					mode="content" />
			</body>
		</html>
	</xsl:template>
 
...
J'aimerais savoir si quelqu'un une solution ou au moins une piste a creuser