This doesn't, IMO, need to appear in the XXE mailing list--it's just the
only email address I have for you.  And you may already track this DocBook
mailing list, in which case you already know this.  But just in case...

The effect of the email below (see Norm Walsh's 2010-01-20 email about
half way down) is that it's OK for <indexterm>s to appear inside
<footnoote>s (including inside <para>s inside footnotes).  These are
currently flagged by XXE as warnings; I believe this is done by Schematron
code, since (AFAIK) they can't be found by typical schema validation tools.
And of course they no longer need to be flagged!

(This may imply a change to the XSL-FO code, but I believe Bob Stayton
already looked into that, and it may be that the FO code already does the
right thing.)

   Mike Maxwell
   CASL/ U MD

-------- Original Message --------
Subject: [ docbook-RFEs-2821653 ] indexterms in footnotes
Date: Wed, 20 Jan 2010 18:27:56 +0000
From: "SourceForge.net" <[email protected]>
To: noreply at sourceforge.net

RFEs item #2821653, was opened at 2009-07-15 00:20
Message generated for change (Settings changed) made by nwalsh
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=384107&aid=2821653&group_id=21935

Please note that this message will contain a full copy of the comment
thread,
including the initial issue submission, for this request,
not just the latest update.
Category: DocBook
Group: v5.0
Status: Open
>Resolution: Accepted
Priority: 5
Private: No
Submitted By: Mike Maxwell (mcswell)
Assigned to: Norman Walsh (nwalsh)
Summary: indexterms in footnotes

Initial Comment:
(I posted this to the docbook mailing list, and Jirka Kosek suggested I
submit an RFE.)

The documentation for DB 5 (I believe this goes back to 4.4) appears to be
inconsistent, or at least misleading, wrt the appearance of indexterms
inside footnotes.

According to the DocBook 5 spec, indexterms can appear in footnotes (See
http://www.docbook.org/tdg5/en/html/indexterm.singular.html "indexterm
(db.indexterm.singular)"; I'm not worried about the startofrange/endofrange
kind of indexterm.)  Specifically, the indexterm spec says that footnote is
one of the
possible parents of indexterm, and the footnote page confirms that
indexterm can be a child of footnote.

However, the spec also says (over in the page about footnotes,
http://www.docbook.org/tdg5/en/html/footnote.html, under "Additional
constraints") that "indexterm must not occur in the descendants of
footnote."  Taking these two things together, I would understand the
intention to be that the structure
   <footnote>
      <para>
        ...<indexterm.../>
      </para>
   </footnote>
is forbidden.  But that raises the question of where in footnotes
indexterms *can* appear; between the footnote and the para inside the
footnote?

I've asked this question (where can indexterms appear in footnotes) on
several forums.  The only response I've gotten is that the "Additional
constraints" forbid the appearance of indexterms *anywhere* inside
footnotes.  Indeed, XMLmind gives exactly this result: no matter where you
try to put an indexterm inside a footnote, you get an error (from their
Schematron checker, not from their RelaxNG grammar).  But if indexterms
*are* forbidden anywhere inside footnotes, then why are indexterms listed
in the spec as a possible child of footnote (and footnotes as possible
parents of indexterms)?  Why not just not list them as possible
parent/child?

My own interpretation is that indexterms are supposed to be allowed as
immediate children of footnotes, i.e. in a sister relationship with para,
but not inside the para(s).  But I have no idea why there should be such a
restriction; what's wrong with having an indexterm inside a para inside a
footnote?

Summary: I believe that either indexterms should be allowed anywhere
inside footnotes (including in the descendants of footnotes), or else they
should be allowed nowhere under footnotes.  If this is done, then the
"Additional constraint" will be unnecessary for indexterms.  

(I am agnostic about whether the "Additional constraints" should be used
for the other elements that are currently disallowed under the descendants
of footnotes, or whether those should be replaced by simply disallowing
them under footnotes.  Perhaps there is some reason for allowing them but
having the constraints, although the constraints are then subject to the
same potential misinterpretation.  The reason for these constraints should
at least be explained and/or exemplified.)

----------------------------------------------------------------------

>Comment By: Norman Walsh (nwalsh)
Date: 2010-01-20 13:27

Message:
Accepted. This was, in retrospect, never meant to have been excluded.

----------------------------------------------------------------------

Comment By: Mike Maxwell (mcswell)
Date: 2009-07-15 19:52

Message:
About Norman Walsh's comment: That's what I figured the reasoning was for
the constraints on appearance in descendants.  But if indexterms (etc.)
are
not supposed to appear *in* footnotes, including not as immediate
children,
then shouldn't indexterms be removed from the list of possible children of
footnote?  (And likewise, footnote should not appear in the list of
possible parents of indexterms etc.)

(BTW, what is the reasoning for not having indexterms in footnotes?  I've
seen footnotes indexed in lots of books, sometimes as just the page number
they appear on, and sometimes with the footnote number explict:
   foo 13 fn. 7
Likewise for endnotes.)

----------------------------------------------------------------------

Comment By: Mike Maxwell (mcswell)
Date: 2009-07-15 19:45

Message:
Just to clarify my agnosticism: one of the constraints says that footnotes
cannot occur in the descendants of footnotes; in addition, footnote is not
a child (or parent) of footnote.  That makes sense, so I guess I'm a
theist
there.  It's the other constraints, where an element like indexterm or
example is allowed as a child of footnote but not as a grandchild (if
that's what not occurring among the descendants means) that are puzzling
and might need explanation or exemplification.

----------------------------------------------------------------------

Comment By: Norman Walsh (nwalsh)
Date: 2009-07-15 14:28

Message:
The intent of the additional constraint is to forbid indexterms from
appearing in footnotes or in the descendants of footnotes. I agree that
it's ambiguously worded at the moment and I'll fix that.

It's a consequence of grammar based schema languages (like DTDs, RELAX NG,
and W3C XML Schema) that it is very difficult to exclude elements from
some
contexts. Since indexterms are allowed in para, and in emphasis, and other
children and descedants of para, in order to exclude them from the content
model, I'd have to define alternate patterns for every possible descendant
without indexterm.

That's impractical, so instead we use the common patterns and forbid the
use of indexterm inside footnote with an additional constraint.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=384107&aid=2821653&group_id=21935

Reply via email to