First, for Bob, yes, I know the width attribute was not valid; it was just
for the example.

Wow, Bob, you are right. It was a namespace issue. I had actually tried
d:chapter, but was unsure whether the element name to the right of the
slash needed to be namespaced as well. If you do d:chapter but not d:para,
then it does NOT work. You must do both.


Thanks for your help.

Robert


On Mon, Jan 14, 2013 at 11:57 PM, Bob Stayton <[email protected]> wrote:

> **
> OK, that's more clear.  The import statement indicates that you are using
> the namespaced stylesheets, and the use of @xml:id in the match attribute
> indicates that your document is DocBook 5.  So any element names used in
> the stylesheet must be in the DocBook namespace, and so must be preceded by
> the namespace prefix:
>
>  <xsl:template match="d:chapter[@xml:id = 'mypreface']/d:para"
> mode="class.attribute" >
>
> <xsl:param name="width" select="local-name(.)"/>
> <xsl:attribute name="width">50px</xsl:attribute>
> </xsl:template>
> Then it should output the width attribute.
>
> I should point out that a width attribute on <p> is not valid HTML5 and
> will likely not pass epubcheck3, if that matters.
>
> Bob Stayton
> Sagehill Enterprises
> [email protected]
>
>  *From:* Robert Nagle <[email protected]>
> *Sent:* Monday, January 14, 2013 9:02 PM
> *To:* Bob Stayton <[email protected]>
> *Cc:* apps docbook <[email protected]>
> *Subject:* Re: [docbook-apps] epub3 + adding customized attribute and
> value to p tag?
>
> Oops, I pasted things incorrectly again! (But again, when I tried the
> correct form, the output would generate, but the chapter with the
> xml:id="mypreface" would NOT add a 'width = "50px"' value.
>
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>   xmlns="http://www.w3.org/1999/xhtml"; xmlns:d="
> http://docbook.org/ns/docbook";
>   xmlns:date="http://exslt.org/dates-and-times"; xmlns:saxon="
> http://icl.com/saxon";
>   exclude-result-prefixes="d date saxon" version="1.0">
>
>
>   <xsl:import
> href="../../../../1latest/docbook-xsl-ns-1.78.0/epub3/chunk.xsl"/>
>
>
>   <xsl:param name="use.id.as.filename">1</xsl:param>
>
>
>   <xsl:template match="chapter[@xml:id = 'mypreface']/para"
> mode="class.attribute" >
>     <xsl:param name="width" select="local-name(.)"/>
>     <xsl:attribute name="width">50px</xsl:attribute>
>   </xsl:template>
>
>
>
> </xsl:stylesheet>
>
>
>
> On Mon, Jan 14, 2013 at 10:58 PM, Robert Nagle 
> <[email protected]>wrote:
>
>> (Whoops, I didn't  paste  it accurately into my email.  But the code I
>> actually used (see below) did include that part, and it still not did not
>> yield the  output I wanted. I tried this several times).
>>
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>>   xmlns="http://www.w3.org/1999/xhtml"; xmlns:d="
>> http://docbook.org/ns/docbook";
>>   xmlns:date="http://exslt.org/dates-and-times"; xmlns:saxon="
>> http://icl.com/saxon";
>>   exclude-result-prefixes="d date saxon" version="1.0">
>>
>>
>>   <xsl:import
>> href="../../../../1latest/docbook-xsl-ns-1.78.0/epub3/chunk.xsl"/>
>>   <xsl:param name="use.id.as.filename">1</xsl:param>
>>
>>
>>
>>
>>   <xsl:template match="chapter[@xml:id = 'mypreface']/para"
>> mode="class.attribute" >
>>
>>     <xsl:param name="width" select="local-name(.)"/>
>>     <xsl:attribute name="width">50px</xsl:attribute>
>>   </xsl:template>
>>
>>
>>
>> </xsl:stylesheet>
>>
>>
>>
>>
>> On Mon, Jan 14, 2013 at 9:26 PM, Bob Stayton <[email protected]> wrote:
>>
>>> **
>>> Hi Robert,
>>> You seem to have left off the mode="class.attribute" in your template.
>>> In its current form it is processing in normal mode, which effectively
>>> kills the output for that element.
>>>
>>> Bob Stayton
>>> Sagehill Enterprises
>>> [email protected]
>>>
>>>  *From:* Robert Nagle <[email protected]>
>>> *Sent:* Saturday, January 12, 2013 2:33 AM
>>> *To:* apps docbook <[email protected]>
>>> *Subject:* [docbook-apps] epub3 + adding customized attribute and value
>>> to p tag?
>>>
>>>  Hi, there,
>>>
>>> I am trying to add custom attribute values to all para tags inside a
>>> specific chapter(the reason for this will be explained in a later
>>> question).
>>>
>>> About a year or so ago, Bob suggested a way to insert new attributes and
>>> values into html output.
>>> https://lists.oasis-open.org/archives/docbook-apps/201108/msg00091.html
>>>
>>> However, when I try it using the epub 3 stylesheets, it doesn't succeed:
>>>
>>> My goal here is to add a custom attribute and value for every p tag
>>> inside the <chapter xml:id="mypreface">
>>>
>>> ******************************* MY SOURCE XML
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <?oxygen RNGSchema="
>>> http://www.oasis-open.org/docbook/xml/5.0/rng/docbook.rng"; type="xml"?>
>>>
>>> <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="robert-book">
>>>
>>>
>>>     <chapter xml:id="mypreface">
>>>         <title>First</title>
>>>         <para> this is my  good <emphasis role="bold">bold
>>> </emphasis>first para</para>
>>>         <para> This is my good second para</para>
>>>
>>>     </chapter>
>>>
>>>     <chapter xml:id="bad1">
>>>         <title>Second</title>
>>>         <para> this is my  bad<emphasis role="bold">bold</emphasis>first
>>> para</para>
>>>         <para> This is my bad second para</para>
>>>     </chapter>
>>>
>>>     <chapter xml:id="bad2">
>>>         <title>Third </title>
>>>         <para> 2this is my  bad<emphasis
>>> role="bold">bold</emphasis>first para</para>
>>>         <para> 2 This is my bad second para</para>
>>>     </chapter>
>>>
>>> *************************************************************MY
>>> CUSTOMIZATION LAYER
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>>>   xmlns="http://www.w3.org/1999/xhtml"; xmlns:d="
>>> http://docbook.org/ns/docbook";
>>>   xmlns:date="http://exslt.org/dates-and-times"; xmlns:saxon="
>>> http://icl.com/saxon";
>>>   exclude-result-prefixes="d date saxon" version="1.0">
>>>
>>>   <xsl:import
>>> href="../../../../1latest/docbook-xsl-ns-1.78.0/epub3/chunk.xsl"/>
>>>
>>>   <xsl:template match="chapter[@xml:id = 'mypreface']/para" >
>>>     <xsl:param name="width" select="local-name(.)"/>
>>>     <xsl:attribute name="width">50px</xsl:attribute>
>>>   </xsl:template>
>>>   </xsl:stylesheet>
>>>
>>> *********************************************************************
>>> (I also changing the xpath statement to d:chapter[@xml:id =
>>> 'preface']/d:para with the same result)
>>>
>>> I would expect every p tag in the RESULT output to contain
>>> 'width="50px". But instead I see for the first chapter this result:
>>>
>>> ...
>>> <body><header></header>
>>> <section class="chapter" title="First" epub:type="chapter"
>>> id="mypreface">
>>> <div class="titlepage">
>>>    <div>
>>>       <div><h1 class="title">First</h1></div>
>>>    </div>
>>> </div>
>>> <p>   this is my good <span class="bold"><strong>bold
>>> </strong></span>first para</p>
>>> <p>   This is my good second para</p></section><footer></footer></body>
>>>
>>> ************************************************************************************
>>>
>>> I'm not sure what I'm doing wrong; have I written the xpath wrong? For
>>> the previous xsl snippet Bob suggested which I used for adding custom
>>> attributes, this was pre-epub3. How would you do this in epub3? Or am I
>>> making a syntax error of some sort?
>>>
>>> Thanks for your help
>>>
>>>
>>> --
>>> Robert Nagle
>>> 6121 Winsome Ln #56C, Houston TX 77057-5581
>>> (H) 713 893 3424/ (W) 832-251-7522 Carbon Neutral Since Jan 2010
>>> http://www.robertnagle.info
>>>
>>
>>
>>
>> --
>> Robert Nagle
>> 6121 Winsome Ln #56C, Houston TX 77057-5581
>> (H) 713 893 3424 <713%20893%203424>/ (W) 832-251-7522 Carbon Neutral
>> Since Jan 2010
>> http://www.robertnagle.info
>>
>
>
>
> --
> Robert Nagle
> 6121 Winsome Ln #56C, Houston TX 77057-5581
> (H) 713 893 3424/ (W) 832-251-7522 Carbon Neutral Since Jan 2010
> http://www.robertnagle.info
>



-- 
Robert Nagle
6121 Winsome Ln #56C, Houston TX 77057-5581
(H) 713 893 3424/ (W) 832-251-7522 Carbon Neutral Since Jan 2010
http://www.robertnagle.info

Reply via email to