[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Confusing namespaces and xslt

Subject: Re: Confusing namespaces and xslt
From: Paul <pflists@xxxxxxxxx>
Date: Tue, 30 Sep 2008 12:35:01 -0400
Re:  Confusing namespaces and xslt
That was it!  I tweaked the namespace in the stylesheet. That will
teach me to pay careful attention to the namespaces going forward! :)

Thanks!



On Tue, Sep 30, 2008 at 12:00 PM, Evan Lenz <evan@xxxxxxxxxxxx> wrote:
> Make sure that we're using the same namespace URI. Suspecting an oversight,
> I added "http://" to the beginning of the "client" namespace URI in the
> source XML. That was the only change to your XML that I made before testing
> the stylesheet below. It would also explain the behavior you're seeing. That
> rule will only match if the <work-managers> element is associated with the
> same exact namespace URI as the "client" prefix in the stylesheet. So
> changing the URI in either the stylesheet or the source document should fix
> it. Let me know if it doesn't!
>
> Evan
>
>
> Paul wrote:
>>
>> Evan,
>>
>>   Hmmm...the work-manager element isn't being added for some reason
>> for me using the snippet you provided. I like the "surgical" approach,
>> but I'm not sure why this snippet:
>>
>>
>>>>
>>>>  <!-- Append a <box:work-manager> element to the end of <work-managers>
>>>> content -->
>>>>  <xsl:template mode="append" match="client:work-managers">
>>>>  <box:work-manager>
>>>>    <!-- etc. -->
>>>>  </box:work-manager>
>>>>  </xsl:template>
>>>>
>>
>> isn't running as expected. If I put in some debug statements the
>> work-managers element is being handled by the transform (with the
>> copy) later in your snippet, not but this focused snippet.
>>
>>
>> Paul
>>
>>
>> On Tue, Sep 30, 2008 at 10:28 AM, Paul <pflists@xxxxxxxxx> wrote:
>>
>>>
>>> Thanks! That is very helpful.
>>>
>>> On Mon, Sep 29, 2008 at 5:57 PM, Evan Lenz <evan@xxxxxxxxxxxx> wrote:
>>>
>>>>
>>>> I like to be as surgical as possible in my incremental transforms,
>>>> especially when I've got a lot of things to update. In this case, I
>>>> might
>>>> use different modes, such as "content" and "append", as shown below:
>>>>
>>>> <xsl:stylesheet version="1.0"
>>>>  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>>>>  xmlns:client="http://somecompany.com/box/client"
>>>>  xmlns:box="http://somecompany.com/box"
>>>>  exclude-result-prefixes="client">
>>>>
>>>> <!-- BUSINESS LOGIC: -->
>>>>  <!-- Set the value for all <box:rotation-time> elements -->
>>>>  <xsl:template mode="content"
>>>> match="box:rotation-time">newvalue</xsl:template>
>>>>
>>>>  <!-- Append a <box:work-manager> element to the end of <work-managers>
>>>> content -->
>>>>  <xsl:template mode="append" match="client:work-managers">
>>>>  <box:work-manager>
>>>>    <!-- etc. -->
>>>>  </box:work-manager>
>>>>  </xsl:template>
>>>>
>>>>
>>>> <!-- GENERIC UTILITY CODE: -->
>>>>  <!-- Identity transform for attributes, elements, comments, text, and
>>>> PIs
>>>> -->
>>>>  <xsl:template match="@* | node()">
>>>>  <xsl:copy>
>>>>    <!-- Everything here (inside <xsl:copy>) only applies to elements -->
>>>>    <xsl:apply-templates select="@*"/>
>>>>    <xsl:apply-templates mode="content" select="."/>
>>>>    <xsl:apply-templates mode="append" select="."/>
>>>>  </xsl:copy>
>>>>  </xsl:template>
>>>>
>>>>        <!-- By default, just process the existing content -->
>>>>        <xsl:template mode="content" match="*">
>>>>          <xsl:apply-templates/>
>>>>        </xsl:template>
>>>>
>>>>        <!-- By default, don't append anything -->
>>>>        <xsl:template mode="append" match="*"/>
>>>>
>>>> </xsl:stylesheet>
>>>>
>>>> In other cases, I've also used "insert" (insert before existing
>>>> content),
>>>> "before" (insert before the element itself), "after" (insert after the
>>>> element), and "att-value" (for updating just the attribute value,
>>>> without
>>>> having to explicitly create a new attribute using <xsl:attribute> every
>>>> time).
>>>>
>>>> Having such surgical precision can be very satisfying, but I don't
>>>> usually
>>>> bother if there are only one or two things to update (as in this
>>>> example).
>>>> But I thought I'd throw the idea out there anyway, in case you have lots
>>>> of
>>>> things to update or you anticipate adding more update rules.
>>>>
>>>> Evan

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.