Hi Tom,

On 2010-09-19, at 15:30, Tom Bullock wrote:

> Hi Yawar,
> 
> I am pulling together the pieces of my patch.  When I ran it thru "xmllint", 
> I got these xml error messages that I hope you understand and can tell me 
> what is my error:
> 
> 1.  validity error: Element xref was declared EMPTY this one has content
> <xref linkend="ch_oth_assets.xml">Chapter 16</xref> of this Guide.</para>
>    [the message does identify the line number in error]

The ‘xref’ element is defined as being empty, that is, it doesn’t look like

  <xref linkend=“whatever”>whatever</xref>

but rather like

  <xref linkend=“whatever”/>

It’s an XML thing. If you want to know more about empty v non-empty tags, see 
[1]. To see more about the <xref> tag, see [2]. By the way, being an 
accountant, I think you’ll be hearing more and more about XML in the next few 
years, thanks to the upcoming XBRL (XML Business Reporting Language) standard 
[3].

> 2.  gnucash-guide.xml:293: element xref: validity error : IDREF attribute 
> linkend references an
>    unknown ID "ch_oth_assets.xml"
> 
> I have listed ch_oth_assets.xml in gnucash-guide.xml both as <!ENTITY 
> chapter16 SYSTEM "ch_oth_assets.xml"> (given on line 19)  and also as 
> &chapter16; (given on line 284)

OK, this means that you’ve defined a system entity (basically, a file living on 
the disk) named ‘ch_oth_assets.xml’ and which can be referred to as 
‘chapter16’. What you can do with this is by writing

  &chapter16;

at a certain point in the documentation, you can make the XML processor read in 
the entire contents of the file at that point. And in fact this is how the 
documentation is put together for all chapters, if you look at the last part of 
the gnucash-guide.xml file.

But this won’t work with the <xref> tag, because it uses a different way of 
referring to chapters.

What you would do is, in your ch_oth_assets.xml file, you would have something 
like

  <chapter id=“chapter_oth_assets”>
    <title>Other Assets</title>
    …
  </chapter>

Then, anywhere else in the docs, you would be able to write something like

  <xref linkend=“chapter_oth_assets”/> of this Guide.</para>

The vital thing is that in the <xref linkend=“whatever”/>, ‘whatever’ must 
match the <chapter id=“whatever”>…</chapter>. That way, the correct chapter 
number will be put in at that point:

  Chapter 16 of this guide.

> So why does the error mention line 293, which is after last line 292, past 
> the end of </book> shown on line 292?

Sometimes, because of the way these error-detection programs work, they can 
only point you towards the general vicinity of the error. I’ve experienced this 
many times where the program runs along nicely even after an error has 
appeared, until it is forced to stop because of the effects of the error 
introduced earlier. At that point, it complains with the current line number.

> It seems to me I am not using the referencing method correctly.   But I 
> wonder also about the
> possibility that I may need to set a value in a symbolic parameter you have 
> introduced.
> 
> I did include ch-oth-assets.xml in the directory "guide/C" where all the 
> modules are that make up the guide.
> 
> TIA for  all help.
> 
> Tom

You’re welcome, hope all of the above makes sense. Do ask for details if 
anything seems unclear.

Regards,

Yawar

[1] http://www.w3.org/TR/REC-xml/#sec-starttags
[2] http://www.oasis-open.org/docbook/documentation/reference/html/xref.html
[3] http://www.ifrs.org/XBRL/Resources/Fundamentals.htm

Attachment: PGP.sig
Description: This is a digitally signed message part

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to