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] why do user templates generate empty xmlns attributes?


I am happy to report that your explanation makes perfect sense. And
including a xhmtl namespace declaration (in addition to the Transform
namespace)  does the job:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    xmlns="http://www.w3.org/1999/xhtml";
    version="1.0">

It leaves me wondering why the epub transform wouldn't already include
this information already.

By the way, I figured out the problem with the processing which wasn't
processed. Apparently, it looks for the     <?dbhtml-include
href="fragment1.html"?>   file inside the directory of the default
docbook stylesheet, NOT the directory of the source XML. (This also
seems strange and a little unwieldy for me, but maybe the intent was
to use this functionality not for individual projects. Thanks again.


SystemID: I:\My Documents\xml\noncrappy\epub-xsl1-import.xsl
Engine name: Saxon6.5.5
Severity: warning
Description: Failure reading
file:/I:/My%20Documents/xml/docbook-xsl-1.75.2/docbook-xsl-1.75.2/epub/fragment1.html
- I:\My Documents\xml\docbook-xsl-1.75.2\docbook-xsl-1.75.2\epub\fragment1.html
(The system cannot find the file specified)


Robert

On Wed, Oct 14, 2009 at 4:52 PM, Bob Stayton <bobs@sagehill.net> wrote:
> Well, namespaces are a known confusion factor.  There is the namespace on
> the input elements, which is the DocBook 5 namespace, and the namespace on
> the output elements, which is XHTML's namespace.
>
> In my previous response, I thought we were still talking about reading an
> external file with the dbhtml-insert processing instruction to insert an
> HTML fragment.  If that were the case, then that fragment in the external
> file would need:
>
> <html xmlns="http://www.w3.org/1999/xhtml";>
>  <p>My stuff</p>
> </html>
>
> Since this content is just copied, the input namespace also needs to be the
> XHTML namespace.  Then when that content is copied, the elements are in the
> right namespace for XHTML output.
>
> In your present case, however, you are generating the HTML fragment in the
> stylesheet's user.header.content template.  The xhtml-1_1/docbook.xsl
> stylesheet that the epub stylesheet imports has this namespace declaration:
>
> <xsl:stylesheet xmlns=http://www.w3.org/1999/xhtml  (among others)
>
> By not including a namespace prefix, this declaration sets the default
> output namespace for any generated elements to this namespace.  That means
> that any output elements that don't otherwise have a namespace assigned to
> them will get the XHTML namespace.
>
> However, your stylesheet customization lacks this default namespace
> declaration, so the elements your customization generates are *not* in that
> namespace (a default namespace is not inherited by xsl:import).
>
> So any stylesheet customization using XHTML output needs to declare this
> default namespace.  The last example on this page shows this:
>
> http://www.sagehill.net/docbookxsl/OtherOutputForms.html#CustomizeXhtml
>
> Bob Stayton
> Sagehill Enterprises
> bobs@sagehill.net
>
>
> ----- Original Message ----- From: "Robert Nagle"
> <idiotprogrammer@gmail.com>
> To: "Bob Stayton" <bobs@sagehill.net>
> Cc: <docbook-apps@lists.oasis-open.org>
> Sent: Wednesday, October 14, 2009 1:47 PM
> Subject: Re: [docbook-apps] why do user templates generate empty xmlns
> attributes?
>
>
> Alas, now I am even more confused (but hopeful!).
>
> what do you mean by the "root element of the included html"? I'm not
> sure what action I can take here.
>
> i have an index.xml file plus several xinclude files. one such
> xincluded file is called nt001.xml.
>
> The top stuff of nt001.xml.  looks like this:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE book [
> <!ENTITY % isopub SYSTEM
> "http://www.w3.org/2003/entities/iso8879/isopub.ent";>
> %isopub;
> ]>
> <chapter xmlns="http://docbook.org/ns/docbook"; version="5.0" xml:id="nt001">
> <title>Would Kafka have kept a weblog? </title>
>
>
> the generated html file  nt001.html looks like this:
>
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <!DOCTYPE html
>  PUBLIC "-//W3C//DTD XHTML 1.1//EN"
> "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd";>
> <html xmlns="http://www.w3.org/1999/xhtml";><head><title>Would Kafka
> have kept a weblog?
>
>
> the top stuff of the index.xml file looks like this
>
> <?xml version="1.0" encoding="UTF-8"?>
> <?oxygen
> RNGSchema="http://www.oasis-open.org/docbook/xml/5.0/rng/docbookxi.rng";
> type="xml"?>
> <!DOCTYPE book [
> <!ENTITY % isopub SYSTEM
> "http://www.w3.org/2003/entities/iso8879/isopub.ent";>
> %isopub;
> ]>
> <book xmlns="http://docbook.org/ns/docbook";
> xmlns:xi="http://www.w3.org/2001/XInclude";
>   xmlns:xlink="http://www.w3.org/1999/xlink"; version="5.0" xml:id="index5">
>   <info>
>
>
> I wish to add that I can't even begin to guess how to add this
> namespace reference or what it would look like. Common sense would
> tell me that I'd need to add <html
> xmlns="http://www.w3.org/1999/xhtml";> at the beginning of the
> xincluded file. If I recall, my xml editor Oxygen couldn't validate
> the character entities in my docbook project without a doctype
> declaration, and that was preventing me from adding <html
> xmlns="http://www.w3.org/1999/xhtml";>. My memory becomes fuzzy.....
>
> thanks for your help. .
>
> Rj
>
>
>
>
>
>
> On Wed, Oct 14, 2009 at 1:58 PM, Bob Stayton <bobs@sagehill.net> wrote:
>>
>> Hi Robert,
>> 1) The epub stylesheet generates XHTML, which is in the XHTML namespace:
>>
>> xmlns="http://www.w3.org/1999/xhtml";
>>
>> You will need to add that namespace attribute to the root element of your
>> included HTML. If you don't then the processor marks it as being outside
>> of
>> the XHTML namespace.
>>
>
>>
>> ----- Original Message ----- From: "Robert Nagle"
>> <idiotprogrammer@gmail.com>
>> To: <docbook-apps@lists.oasis-open.org>
>> Sent: Wednesday, October 14, 2009 11:30 AM
>> Subject: [docbook-apps] why do user templates generate empty xmlns
>> attributes?
>>
>>
>>> When on the advice of Bob Stayton's last email
>>> (http://lists.oasis-open.org/archives/docbook-apps/200910/msg00021.html)
>>> I created a custom template for my customization layer , I notice
>>> something strange.
>>>
>>>
>>>
>>> </head><body><p xmlns=""><b>Hi Mom!</b></p><div class="chapter"
>>> title="Would Kafka have kept a weblog?"><div
>>> class="titlepage"><div><div><h1 class="title"><a
>>> xmlns:saxon="http://icl.com/saxon"; id="nt001"/>Would Kafka have kept a
>>> weblog? </h1></div></div></div>
>>>
>>> Two questions:
>>>
>>> 1)why does <p xmlns=""> show an empty value. (That actually makes the
>>> code invalid and the resulting .epub invalid as well).
>>>
>>> 2)what is going on here: <a xmlns:saxon="http://icl.com/saxon";> Why
>>> is this namespace value there in the first place?
>>>
>>> I notice that these kinds of weirdness/errors pop up all the time
>>> whenever I try to put an xsl:template statement in my customization
>>> layer file. I could live with the second error, but not the first.
>>> Any idea what is causing this to happen?
>>>
>>>
>>>
>>> My customization layer is pretty vanilla. It's for epub/chunked html
>>> output.
>>>
>>> ********************
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>>> version="1.0">
>>> <xsl:import
>>>
>>>
>>> href="http://docbook.sourceforge.net/release/xsl/1.75.2/epub/docbook.xsl"/>
>>> <xsl:param name="epub.metainf.dir">META-INF/</xsl:param>
>>> <xsl:param name="epub.oebps.dir">OEBPS/</xsl:param>
>>> <xsl:param name="use.id.as.filename">1</xsl:param>
>>> <xsl:param name="html.stylesheet">first.css</xsl:param>
>>> <!--<xsl:param name="show.comments">1</xsl:param>-->
>>> <xsl:param name="label.from.part" select="0"></xsl:param>
>>> <xsl:param name="chapter.autolabel">0</xsl:param>
>>> <xsl:param name="part.autolabel">0</xsl:param>
>>> <xsl:param name="img.src.path">images/</xsl:param>
>>> <xsl:template name="user.header.content">
>>> <p><b>Hi Mom!</b></p>
>>> </xsl:template>
>>> </xsl:stylesheet>
>>> *******************
>>>
>>> --
>>> Robert Nagle
>>> htpt://www.robertnagle.info
>>>
>>> ---------------------------------------------------------------------
>>> 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]