xsl-list
[Top] [All Lists]

RE: [xsl] xml inheritance / xslt inheritance application

2008-06-17 12:49:42

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[(_at_)name=current()/@name](_at_)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(_at_)gmail(_dot_)com] 
Sent: 17 June 2008 20:22
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_at_)thursday(_dot_)com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>