Hi,
I'm not quite understanding the problem here. It appears that the customization applied by publican changed the template named 'anchor' in xhtml/html.xsl from generating an <a/> element to just outputting an attribute, with the assumption that the id attribute would be applied to the element that called the anchor template. As you discovered that change does not always work because of intervening content.

But I'm not understanding this statement from the Bugzilla report:

"It is never valid to have an anchor tag
with no content in XHTML, so we don't do that."

I don't believe that statement is true. If you examine the XHTML standard DTDs, you find that the content model of element <a> allows it to be empty. What is the basis for this statement?

Perhaps the writer did not mean "invalid" in the DTD sense. Are there issues with some browsers in the way they handle empty <a/> tags? Examples of where empty a tags create problems would be useful.

Bob Stayton
Sagehill Enterprises
b...@sagehill.net


----- Original Message ----- From: "Raphael Hertzog" <raph...@ouaza.com>
To: <docbook-apps@lists.oasis-open.org>
Sent: Tuesday, April 06, 2010 12:44 AM
Subject: [docbook-apps] "anchor" template outputs invalid XHTML: empty "a" tag


Hello,

I recently reported a bug in publican because it uses the XSL XHTML stylesheets
and overrides the "anchor" template in a way that doesn't always work:
https://bugzilla.redhat.com/show_bug.cgi?id=579069

It turns out the override is there because the current output of the XSL
XHTML stylesheet for the anchor template is invalid XHTML: the "a" tag
cannot be empty apparently.

So they changed the initial template:
<a id="{$id}" />
Into:
<xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>

But the latter fails at least in 2 cases in the current usage of the
"anchor" template in the HTML stylesheet when it's called somewhere that
is not at the start of a new tag:
- in html/callout.xsl for match="co" mode="co"
- in html/verbatim.xsl for match="programlisting|screen|synopsis"

You'll get errors like:
xsl:attribute: Cannot add attributes to an element if children have been already added to the element.

It would be nice to see this fixed in a way or another so that publican
doesn't have to override the template just to have valid XHTML output.

Cheers,
--
Raphaël Hertzog -+- http://www.ouaza.com

Freexian : des développeurs Debian au service des entreprises
http://www.freexian.com

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




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

Reply via email to