Subject: Re: [xsl] how to handle structured data from Java From: Robert Koberg <rob@xxxxxxxxxx> Date: Mon, 10 Jan 2005 19:16:11 -0800 |
Robert Koberg writes:
Kevin Rodgers wrote:
I need to pass an attribute value to a Java method implemented by a co-worker and save the resulting object in a variable (since it's a relatively expensive operation), then access the object's string components. Should I write an extension function in Java to call his method and convert the object into a DOM Node that would be stored via <xsl:value-of name="variable" select="extension:function(@attribute)">? How would I then access its subnodes -- via select="$variable/component-x"?
You really don't want to use extensions.
Or is there a better way?
I think so. Have your co-worker create a class that implements javax.xml.transform.URIResolver. It should check for the value coming in as an href. When the resolver sees your attribute value, have him return an appropriate XML Source. Then you can do the following in your XSL:
<xsl:variable name="myvar" select="document(@myattr)"/>
OK, but where do I reference HisClass?
URIResolver only declares the resolve method, which returns a Source. But the Source interface only declares 2 methods, getSystemId and setSystemId, neither of which is defined to return a dynamic value like an XML string.
And since the document function takes a URI, shouldn't the select expression be something like "document(concat('http://server/HisServlet?foo=', @myattr))" If so, then why does he need to implement URIResolver as HisClass -- couldn't he just implement HisServlet?
<xsl:apply-templates select="document('foo')"/> .... Source source = null;
if (file.exists()) { source = new StreamSource(new FileInputStream(file)); } else if (href.equals("someObject")) { source = project.getObjectAsSaxSource(href); } else { source = new StreamSource(new StringReader("<file-not-found/>")); }
best, -Rob
Thanks,
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] how to handle structured , Kevin Rodgers | Thread | Re: [xsl] xsl:sort not working unde, Anton Triest |
Re: [xsl] xsl:sort not working unde, Anton Triest | Date | RE: [xsl] xsl:copy-of problem with, Markus Hanel |
Month |