RE: [xsl] xml inheritance / xslt inheritance application

Subject: RE: [xsl] xml inheritance / xslt inheritance application
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 17 Jun 2008 20:49:11 +0100
Assuming XSLT 2.0, with a global variable $default set to the <default>
element, and <column> as the context node, you can access an attribute such
as "type" using

(@type, $default/column[@name=current()/@name]@type)[1]

which might help. If the construct occurs often enough you can wrap it in a
function.

Michael Kay
http://www.saxonica.com/

 

> -----Original Message-----
> From: Greg Fausak [mailto:lgfausak@xxxxxxxxx] 
> Sent: 17 June 2008 20:22
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] xml inheritance / xslt inheritance application
> 
> I'm not sure if this is the right group for this question.
> But, here it goes.
> 
> I've modeled a xslt translation from a trivial xml syntax to 
> postgres.  One of the problems I've run in to is the database 
> column belongs to a table, e.g.:
> <table name="test">
>   <column name="col1" type="int" size="5" minvalue="50" 
> maxvalue="10000"/>
>   <column name="col2" type="text" size="50" notnull="true"/> </table>
> 
> etc..
> 
> however, in databaseland, the column is often a domain 
> descended from another tree.  For example, the column could 
> be 'studentid' and that student id could be used in many 
> different tables because it is a foreign key.
> 
> So, in my source xml, I've introduced
> <default>
>   <column name="col1" type="int" .../>
> ...
> and I changed the table xml to:
> <table name="test">
>   <column inherit="col1" minvalue="60" />
> 
> So, I translate this, but, it sure would be nice if I could 
> inherit the attributes and nodes of the default column name 
> and override what I want locally.  Does such a construct 
> exist either on xsl side or xml side?
> 
> I did some google searches on inheritance/subtyping and there 
> seem to be pretty strong opinions about the subject.
> Worst case I can do a pre-pass on the xml text and use a 
> heredoc to expand this sort of thing.  Any ideas would be welcome!
> 
> Thanks,
> 
> ---greg
> 
> --
> Greg Fausak
> greg@xxxxxxxxxxxx

Current Thread