Hi Eric,
Indeed, this is a bug in the template with match="question" in fo/qandaset.xsl. 
 I've fixed it in SVN for the next release, and you can use this version in 
your customization layer:

<xsl:template match="question">
  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>

  <xsl:variable name="entry.id">
    <xsl:call-template name="object.id">
      <xsl:with-param name="object" select="parent::*"/>
    </xsl:call-template>
  </xsl:variable>

  <xsl:variable name="deflabel">
    <xsl:apply-templates select="." mode="qanda.defaultlabel"/>
  </xsl:variable>


  <xsl:variable name="label.content">
    <xsl:apply-templates select="." mode="label.markup"/>
    <xsl:if test="contains($deflabel, 'number') and not(label)">
      <xsl:apply-templates select="." mode="intralabel.punctuation"/>
    </xsl:if>
  </xsl:variable>

  <fo:list-item id="{$entry.id}" xsl:use-attribute-sets="list.item.spacing">
    <fo:list-item-label id="{$id}" end-indent="label-end()">
      <xsl:choose>
        <xsl:when test="string-length($label.content) &gt; 0">
          <fo:block font-weight="bold">
            <xsl:copy-of select="$label.content"/>
          </fo:block>
        </xsl:when>
        <xsl:otherwise>
          <fo:block/>
        </xsl:otherwise>
      </xsl:choose>
    </fo:list-item-label>
    <fo:list-item-body start-indent="body-start()">
      <xsl:choose>
        <xsl:when test="$deflabel = 'none' and not(label)">
          <fo:block font-weight="bold">
            <xsl:apply-templates select="*[local-name(.)!='label']"/>
          </fo:block>
        </xsl:when>
        <xsl:otherwise>
          <xsl:apply-templates select="*[local-name(.)!='label']"/>
        </xsl:otherwise>
      </xsl:choose>
      <!-- Uncomment this line to get revhistory output in the question -->
      <!-- <xsl:apply-templates select="preceding-sibling::revhistory"/> -->
    </fo:list-item-body>
  </fo:list-item>
</xsl:template>

Bob Stayton
Sagehill Enterprises
[email protected]


From: Eric Nordlund 
Sent: Thursday, April 04, 2013 11:05 PM
To: [email protected] 
Subject: [docbook-apps] <qandaset defaultlabel="none"> FOP error


Hello, I'm unable to build a PDF from a docbook 4 document that has a <qandaset 
defaultlabel="none"> tag in it. If I remove the attribute, everything works 
fine. If I leave it in, I get the following errors:

 

The process 'Apache FOP' ended with code: 1.

The error was: 

ERROR - Couldn't find hyphenation pattern for lang="en".

ERROR - Exception

net.sf.saxon.trans.XPathException: org.apache.fop.fo.ValidationException: 
"fo:list-item-label" is missing child elements. Required content model: marker* 
(%block;)+ (See position 65:-1)

        at org.apache.fop.cli.InputHandlerFOP.transformTo(Unknown Source)

        at org.apache.fop.cli.InputHandlerFOP.renderTo(Unknown Source)

        at org.apache.fop.cli.Main.startFOP(Main.java:177)

        at org.apache.fop.cli.Main.main(Main.java:208)

Caused by: net.sf.saxon.trans.XPathException: 
org.apache.fop.fo.ValidationException: "fo:list-item-label" is missing child 
elements. Required content model: marker* (%block;)+ (See position 65:-1)

        at net.sf.saxon.event.ContentHandlerProxy.handleSAXException(Unknown 
Source)

        at net.sf.saxon.event.ContentHandlerProxy.endElement(Unknown Source)

        at 
net.sf.saxon.event.NamespaceReducer.endElement(NamespaceReducer.java:208)

        at 
net.sf.saxon.event.ReceivingContentHandler.endElement(ReceivingContentHandler.java:425)

        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)

        at 
org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)

        at org.apache.xerces.xinclude.XIncludeHandler.emptyElement(Unknown 
Source)

        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)

        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
 Source)

        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)

        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:405)

        at net.sf.saxon.event.Sender.send(Sender.java:152)

        at 
net.sf.saxon.IdentityTransformer.transform(IdentityTransformer.java:39)

        ... 4 more

Caused by: org.apache.fop.fo.ValidationException: "fo:list-item-label" is 
missing child elements. Required content model: marker* (%block;)+ (See 
position 65:-1)

        at 
org.apache.fop.events.ValidationExceptionFactory.createException(ValidationExceptionFactory.java:38)

        at 
org.apache.fop.events.EventExceptionManager.throwException(EventExceptionManager.java:58)

        at 
org.apache.fop.events.DefaultEventBroadcaster$1.invoke(DefaultEventBroadcaster.java:175)

        at $Proxy5.missingChildElement(Unknown Source)

        at 
org.apache.fop.fo.flow.AbstractListItemPart.endOfNode(AbstractListItemPart.java:89)

        at org.apache.fop.fo.flow.ListItemLabel.endOfNode(ListItemLabel.java:48)

        at 
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:347)

        at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:181)

        ... 21 more

 

---------

 

net.sf.saxon.trans.XPathException: org.apache.fop.fo.ValidationException: 
"fo:list-item-label" is missing child elements. Required content model: marker* 
(%block;)+ (See position 65:-1)

        at net.sf.saxon.event.ContentHandlerProxy.handleSAXException(Unknown 
Source)

        at net.sf.saxon.event.ContentHandlerProxy.endElement(Unknown Source)

        at 
net.sf.saxon.event.NamespaceReducer.endElement(NamespaceReducer.java:208)

        at 
net.sf.saxon.event.ReceivingContentHandler.endElement(ReceivingContentHandler.java:425)

        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)

        at 
org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)

        at org.apache.xerces.xinclude.XIncludeHandler.emptyElement(Unknown 
Source)

        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)

        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
 Source)

        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)

        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:405)

        at net.sf.saxon.event.Sender.send(Sender.java:152)

        at 
net.sf.saxon.IdentityTransformer.transform(IdentityTransformer.java:39)

        at org.apache.fop.cli.InputHandlerFOP.transformTo(Unknown Source)

        at org.apache.fop.cli.InputHandlerFOP.renderTo(Unknown Source)

        at org.apache.fop.cli.Main.startFOP(Main.java:177)

        at org.apache.fop.cli.Main.main(Main.java:208)

Caused by: org.apache.fop.fo.ValidationException: "fo:list-item-label" is 
missing child elements. Required content model: marker* (%block;)+ (See 
position 65:-1)

        at 
org.apache.fop.events.ValidationExceptionFactory.createException(ValidationExceptionFactory.java:38)

        at 
org.apache.fop.events.EventExceptionManager.throwException(EventExceptionManager.java:58)

        at 
org.apache.fop.events.DefaultEventBroadcaster$1.invoke(DefaultEventBroadcaster.java:175)

        at $Proxy5.missingChildElement(Unknown Source)

        at 
org.apache.fop.fo.flow.AbstractListItemPart.endOfNode(AbstractListItemPart.java:89)

        at org.apache.fop.fo.flow.ListItemLabel.endOfNode(ListItemLabel.java:48)

        at 
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:347)

        at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:181)

        ... 21 more

---------

org.apache.fop.fo.ValidationException: "fo:list-item-label" is missing child 
elements. Required content model: marker* (%block;)+ (See position 65:-1)

        at 
org.apache.fop.events.ValidationExceptionFactory.createException(ValidationExceptionFactory.java:38)

        at 
org.apache.fop.events.EventExceptionManager.throwException(EventExceptionManager.java:58)

        at 
org.apache.fop.events.DefaultEventBroadcaster$1.invoke(DefaultEventBroadcaster.java:175)

        at $Proxy5.missingChildElement(Unknown Source)

        at 
org.apache.fop.fo.flow.AbstractListItemPart.endOfNode(AbstractListItemPart.java:89)

        at org.apache.fop.fo.flow.ListItemLabel.endOfNode(ListItemLabel.java:48)

        at 
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:347)

        at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:181)

        at net.sf.saxon.event.ContentHandlerProxy.endElement(Unknown Source)

        at 
net.sf.saxon.event.NamespaceReducer.endElement(NamespaceReducer.java:208)

        at 
net.sf.saxon.event.ReceivingContentHandler.endElement(ReceivingContentHandler.java:425)

        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)

        at 
org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)

        at org.apache.xerces.xinclude.XIncludeHandler.emptyElement(Unknown 
Source)

        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)

        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
 Source)

        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)

        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:405)

        at net.sf.saxon.event.Sender.send(Sender.java:152)

        at 
net.sf.saxon.IdentityTransformer.transform(IdentityTransformer.java:39)

        at org.apache.fop.cli.InputHandlerFOP.transformTo(Unknown Source)

        at org.apache.fop.cli.InputHandlerFOP.renderTo(Unknown Source)

        at org.apache.fop.cli.Main.startFOP(Main.java:177)

      at org.apache.fop.cli.Main.main(Main.java:208)

 

Is this a known bug? I'm not sure whether the problem is with docbook-xsl or 
fop. Is ther a workaround for this that doesn't involve changing my XML source 
code?

 

 

Eric Nordlund

Customer Documentation and Training

Cray Inc.

901 5th Ave

Seattle, WA 98164

(206)701-2232

 

Reply via email to