Re: [xsl] dangling attribute creation (was Re: [xsl] When to use text())

Subject: Re: [xsl] dangling attribute creation (was Re: [xsl] When to use text())
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxx>
Date: Sat, 26 Apr 2014 18:24:56 +0100
Suppose you have a file in which attribute values are in French but
their English translation appears in brackets.

<stuff>
<a title="Bonjour Monsieur (Hello sir)"/>
<b name="Francis (Francois)"/>
<c term="no subtitle"/>
</stuff>

I call the thing in brackets the subtitle.

 Here is a stylesheet that replace all attributes  with it's subtitle
if there is one.

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

  <xsl:import href="identity.xsl"/>
  <xsl:output indent="yes" method="xml"/>

  <xsl:template match="@*[contains(.,'(')]">
    <xsl:attribute name="{local-name()}" select="tokenize(.,'[()]')[2]"/>
  </xsl:template>

</xsl:stylesheet>

Exercise for the reader to accomplish same without the dangling
attribute (I'm not saying it can't be done).

On Fri, Mar 21, 2014 at 5:32 PM, Ihe Onwuka <ihe.onwuka@xxxxxxxxx> wrote:
> On Fri, Mar 21, 2014 at 5:06 PM, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote:
>>> Correct me if I'm wrong but couldn't you say the same thing over each
>>> and every application of xsl:attribute-set
>>
>> No - how would it be possible to cause a similar exception using
>> attribute-sets?   An example of what you mean would help here.
>>
>
> Now that I look at the syntax it may not be.
>
>>
>>>> It's an anti-pattern.
>>>>
>>>
>>> Yes I'm sure there's another way of achieving  the same thing but I'd
>>> rather be anti-pattern than anti-declarative.
>>
>> ?  It's not "anti-declarative" (actually I can't say that it isn't
>> because I don't know what that is)  It's just a common mistake.
>>
>
> You cannot say it's a mistake.
>
> It's a trade-off and when considering which evil you elect for you do
> a little risk analysis.
>
> What is the likelihood of events that would lead to an exception
> occurring, how calamitous would it be if it did occur, how hard and
> costly and time consuming is it to implement and roll out the fix.
>
> Also if you are  am not doing big object oriented software engineering
>  you don't have to live by that  bible.

Current Thread