OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] Re: Xref is only supported to listitems in an orderedlist:


Hi Mathieu,
xmllint does not report this as an issue because it is valid DocBook, in that the 
linkend value matches some id value in the document.

However, the stylesheet is trying to generate link text for the xref and is failing. 
An xref requires that text be generated from the target element, but some elements do 
not have a simple title or number to reference, and that is what you are seeing here.

The anchor you are linking to is an empty element so it is not suitable. For such 
elements, the stylesheet looks at the parent element and tries to use that to generate 
the text.  The parent here is a para, which is also unsuitable because it can contain 
unlimited text and many other elements, including block elements.  So the stylesheet 
goes up again, trying the listitem.  Since this is an itemizedlist rather than an 
orderedlist, such a listitem also does not have suitable text for a generated xref. 
At that point, it gives up and issues the error message.

What is lost here is the id of the original target element.  The recursion up the line 
of ancestors should keep track of that.  That's a bug that should be fixed.  If you 
care to file a bug report on the DocBook SourceForge site with your example, that 
would be great.

My question is, what do you expect such an xref to display in the output?  "bla"?  If 
so, you can use endterm to force the stylesheet to use the text of the para:

      <itemizedlist>
        <listitem>
          <para id="mypara"><anchor id="myidx"/>bla</para>
        </listitem>
      </itemizedlist>
    <xref linkend="myidx" endterm="mypara"/>

See this reference for more on the use of endterm:

http://www.sagehill.net/docbookxsl/CrossRefs.html#XrefEndterm

Bob Stayton
Sagehill Enterprises
bobs@sagehill.net


----- Original Message ----- 
From: "Mathieu Malaterre" <mathieu.malaterre@gmail.com>
To: "DocBook Apps" <docbook-apps@lists.oasis-open.org>
Sent: Thursday, February 18, 2010 8:19 AM
Subject: [docbook-apps] Re: Xref is only supported to listitems in an orderedlist:


On Thu, Feb 18, 2010 at 4:48 PM, Mathieu Malaterre
<mathieu.malaterre@gmail.com> wrote:
> hi,
>
> I am trying to track down an error reported during the xsltproc
> transformation:
>
> ...
> Xref is only supported to listitems in an orderedlist:
> ...
>
> What I do not understand is that xmllint does not report any issue. Is
> there a way for me to print out the line number where this error occur
> in my input XML document.
> Steps:
>
> xsltproc --stringparam keep.relative.image.uris 1 --xinclude
> /usr/share/xml/docbook/stylesheet/docbook-xsl/html/chunkfast.xsl
> input.xml
>
> Validation step does not return any error:
> xmllint --xinclude --postvalid --noout --nonet input.xml

I found out this is caused by something like:


      <itemizedlist>
        <listitem>
          <para><anchor id="myidx"/>bla</para>
        </listitem>
      </itemizedlist>
    <xref linkend="myidx"/>

what I do not understand is that the error message is incapable of
displaying any context information or line number to help me find the
missing xreflabel attribute...

the XSL is:

$ cat docbook-xsl/common/gentext.xsl
...
      <xsl:message>
        <xsl:text>Xref is only supported to listitems in an</xsl:text>
        <xsl:text> orderedlist: </xsl:text>
        <xsl:value-of select="@id|@xml:id"/>
      </xsl:message>

Thanks for suggestions,
-- 
Mathieu

---------------------------------------------------------------------
To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]