[xsl] implement attribute inheritance

Subject: [xsl] implement attribute inheritance
From: Emmanouil Batsis <Emmanouil.Batsis@xxxxxxxxxxx>
Date: Tue, 13 Jul 2004 18:01:07 +0300
Dear gurus,

I'm trying to write a preprocessor script to transform implicit inheritance semantics to actual nodes. The target effect is something like namespace scopes but I want to inherit attribute-value pairs instead of namespace URIs. Then, I'll be able and edit files and assume scope based inheritance of attributes for readability and other reasons.

For example the following:

<root attr1="attr1">
  <grantparent attr2="attr2">
    <parent attr1="changed-by-parent">
      <child>
        <grandchild attr1="changed-by-grandchild"/>
      </child>
    </parent>
  </grantparent>
</root>

should become

<root attr1="attr1">
  <grantparent attr1="attr1" attr2="attr2">
    <parent attr1="changed-by-parent" attr2="attr2">
      <child attr1="changed-by-parent" attr2="attr2">
        <grandchild attr1="changed-by-grandchild" attr2="attr2"/>
      </child>
    </parent>
  </grantparent>
</root>

This of course is easy to implement for a finite number of attributes using parameters and call-template, but how can I do this when attributes are not known?

Any XSLT 1.0 pointers welcome. XSLT 2.0 pointers would be interesting, but I wont be able to use them.

Thanks,

Manos

Current Thread