Customised XSL:FO Transformation Issue

Here should go questions about transforming XML with XSLT and FOP.
reetan
Posts: 3
Joined: Wed Aug 24, 2022 12:20 am

Customised XSL:FO Transformation Issue

Post by reetan »

Hi
I'm new to Oxygen but am very familiar with XSL:FOs. I've created an XSL:FO that works in an external development environment but i'm getting an unhelpful error message when I transform within Oxygen. Below is the error message that is displaying. I've looked at the xml_xslt file that is produced and this does not contain any errors.

Andy direction or assistance of what can be causing the error would be greatly appreciated.

Reeta

The process 'Apache FOP' ended with code: 1.
The error was:
ERROR - Exception
org.apache.fop.apps.FOPException: java.util.NoSuchElementException
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:296)
at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:116)
at org.apache.fop.cli.Main.startFOP(Main.java:183)
at org.apache.fop.cli.Main.main(Main.java:214)
Caused by: java.util.NoSuchElementException: null
at org.apache.fop.layoutmgr.LMiter.next(LMiter.java:69)
at org.apache.fop.layoutmgr.LMiter.next(LMiter.java:27)
at org.apache.fop.layoutmgr.AbstractLayoutManager.setCurrentChildLM(AbstractLayoutManager.java:132)
at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:278)
at org.apache.fop.layoutmgr.list.ListItemContentLayoutManager.getNextKnuthElements(ListItemContentLayoutManager.java:235)
at org.apache.fop.layoutmgr.list.ListItemLayoutManager.getNextKnuthElements(ListItemLayoutManager.java:290)
at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextChildElements(BlockStackingLayoutManager.java:503)
at org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:296)
at org.apache.fop.layoutmgr.list.ListBlockLayoutManager.getNextKnuthElements(ListBlockLayoutManager.java:103)
at org.apache.fop.layoutmgr.FlowLayoutManager.getNextChildElements(FlowLayoutManager.java:225)
at org.apache.fop.layoutmgr.FlowLayoutManager.addChildElements(FlowLayoutManager.java:148)
at org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:121)
at org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:270)
at org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:694)
at org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:179)
at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:451)
at org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:113)
at org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:143)
at org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:267)
at org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:139)
at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:362)
at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:190)
at net.sf.saxon.event.ContentHandlerProxy.endElement(ContentHandlerProxy.java:407)
at net.sf.saxon.event.ProxyReceiver.endElement(ProxyReceiver.java:148)
at net.sf.saxon.event.SequenceNormalizer.endElement(SequenceNormalizer.java:141)
at net.sf.saxon.event.ReceivingContentHandler.endElement(ReceivingContentHandler.java:607)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.xinclude.XIncludeHandler.endElement(XIncludeHandler.java:1091)
at org.apache.xerces.impl.XMLNSDocumentScannerImplXerces.scanEndElement(XMLNSDocumentScannerImplXerces.java:673)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:319)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1647)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:325)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:439)
at net.sf.saxon.event.Sender.send(Sender.java:142)
at net.sf.saxon.jaxp.IdentityTransformer.transform(IdentityTransformer.java:370)
at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:293)
... 3 common frames omitted
Radu
Posts: 9059
Joined: Fri Jul 09, 2004 5:18 pm

Re: Customised XSL:FO Transformation Issue

Post by Radu »

Hi Reeta,

Do you have a file with the ".fo" extension? If not, please change the extension of the file to ".fo". After this, when you open the file in Oxygen and click the "Configure Transformation Scenarios" toolbar button there should be a predefined "FO PDF" transformation scenario that you can use for publishing.

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
reetan
Posts: 3
Joined: Wed Aug 24, 2022 12:20 am

Re: Customised XSL:FO Transformation Issue

Post by reetan »

FO is attached for any assistance.
MAXManager.xml_xslt.zip
(27.63 KiB) Downloaded 159 times
Radu
Posts: 9059
Joined: Fri Jul 09, 2004 5:18 pm

Re: Customised XSL:FO Transformation Issue

Post by Radu »

Hi,
I can reproduce the problem. In the Oxygen Preferences->"XML / PDF Output / FO Processors" page you can check the "Enable output to the built-in FOP" checkbox and then publish again to see in a console all problems reported by the Apache FOP processor.
The fatal problem seems to be this one:

Code: Select all

ERROR - Exception
org.apache.fop.apps.FOPException: java.util.NoSuchElementException
	at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:296)
	at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:116)
	at org.apache.fop.cli.Main.startFOP(Main.java:183)
	at org.apache.fop.cli.Main.main(Main.java:214)
Caused by: java.util.NoSuchElementException: null
	at org.apache.fop.layoutmgr.LMiter.next(LMiter.java:69)
	at org.apache.fop.layoutmgr.LMiter.next(LMiter.java:27)
	at org.apache.fop.layoutmgr.AbstractLayoutManager.setCurrentChildLM(AbstractLayoutManager.java:132)
	at
I found two bugs logging it on the Apache FOP issues list:
https://issues.apache.org/jira/browse/FOP-2776
https://issues.apache.org/jira/browse/FOP-2828

maybe the discussions on those issues might help you understand where the failure is and how it could be avoided.
But I'm afraid we do not have control over various limitations the Apache FOP processor may have.
As a workaround maybe you can try to use the commercial Antenna House XSL-FO processor for publishing, it can be configured in the Oxygen "FO Processors" preferences page:
https://www.oxygenxml.com/doc/versions/ ... ssors.html

Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
reetan
Posts: 3
Joined: Wed Aug 24, 2022 12:20 am

Re: Customised XSL:FO Transformation Issue

Post by reetan »

Thanks, issue has been resolved
Post Reply