RE: [xsl] Node implementation

Subject: RE: [xsl] Node implementation
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Thu, 19 Aug 2004 16:51:10 +0100
> I'm trying to pass a XML node to a Java method in my XSLT:
> (...)
>       <xsl:variable name="xtabnode">
>   	<xsl:copy-of
> select="document(concat('.\DicionarioXml\',$MasterTable,'.xml'
))/Estrutura/Tabelas/Tabela[Nome=$MasterTable]"/>
>       </xsl:variable>

Why are you copying the document? Why not just pass it directly?, i.e.

<xsl:variable name="xtabnode">
  select="document(concat('.\DicionarioXml\',$MasterTable,'.xml'
          ))/Estrutura/Tabelas/Tabela[Nome=$MasterTable]"/>


> 
>       <xsl:attribute name="sqlInsert">
>         <xsl:value-of select="sql:getStatement($MasterTable,
>           					$sql,
>                                                 $where,
>                                                 $where,
>                                                 $xtabnode,
>                                                 'I' )" />
>       </xsl:attribute>
> (...)
> 
> and after some tryes i can do this by declaring my method as

Calls from XSLT to Java depend on which XSLT processor you are using. You
need to tell us!
> 
> public static String getStatement(String aMasterTable, String 
> aRowSource, String
> aWhereOpen, String aWhereDelete, Node XMLTableDescriptor, 
> String stype)
> 
> That's org.w3c.dom.Node . But to my (limited) knowledge, 
> org.w3c.dom.Node is
> just a Interface, so i must use some implementation of it. 

If the XSLT processor allows calls to a method that expects a Node, then it
will take care of the problem of deciding what Node implementation to use.
Your method doesn't need to know, so it's perfectly OK just to declare it as
Node.

Michael Kay

Current Thread
  • [xsl] Node implementation
    • xptm - Thu, 19 Aug 2004 14:45:00 +0100
      • Michael Kay - Thu, 19 Aug 2004 16:51:10 +0100 <=
      • <Possible follow-ups>
      • xptm - Thu, 19 Aug 2004 18:09:42 +0100