Charles
Don Saxton wrote:
Geoff
this pipe works and results in the p1.xml attached. generate type="session-attr" serialize type="xml" result is p1.xml (attached)
Yet this pipe does not generate type="session-attr" transform src="person.xsl" (attached ) serialize type="html" (never gets here) result is this error
Original exception : java.lang.RuntimeException: Errors in XSLT transformation: Fatal: java.lang.NullPointerException
at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3170) at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerH andlerImpl.java:433) at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91) at org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer .java:575) at org.apache.cocoon.generation.SessionAttributeGenerator.generate(SessionAttri buteGenerator.java:189) at org.apache.cocoon.components.pipeline.CachingEventPipeline.process(CachingEv entPipeline.java:250) at org.apache.cocoon.components.pipeline.CachingStreamPipeline.process(CachingS treamPipeline.java:395)
Yet when I test the transform outside of cocoon, the xsl is fine. And if other working xsl are substituted they will produce this same error.
Don
isyou may need to post your xsl. it's unclear from what you say below - if you comment out all transfomers, does the exception go away?
Geoff
-----Original Message----- From: Don Saxton [mailto:[EMAIL PROTECTED] Sent: Monday, March 31, 2003 9:22 PM To: [EMAIL PROTECTED] Subject: Re: Failed to execute pipeline.: Errors in XSLT transformation
Thanks Charles.
I totally agree. and that is why I am stumped. To be sure the request
andfilled beginning with a <map:generate type="session-attr"> which I <map:serialize type="xml"/> and save the result as p1.xml.
THEN I test several xsl (just to be sure) on p1.xml. The xsl all pass both in xmlspy and xslerator.
THEN removng the <map:serialize type="xml"/> and replacing with one of the tested xsl, <map:serialize type="xml"/> or <map:serialize type="html"/> (whichever is appropriate to the xsl) Still resutl in the bad voodoo reported earlier.
Incidentally looking at CachingStreamPipeline, I found the below javadoc on the class. Maybe if I switch cacheing off? how?
The real blister is that I was so sure I was finished.
Don
* This stream pipeline is able to cache the response, if * <ul> * <li>a) the serializer is cacheable</li> * <li>b) the <code>EventPipeline</code> is cacheable</li> * </ul> *
----- Original Message ----- From: "Charles Yates" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, March 31, 2003 4:24 PM Subject: Re: Failed to execute pipeline.: Errors in XSLT transformation
In cases like this I do the following:
1) make sure the pipeline is giving the transformer in question the
right input. (ie comment out the transformer and any subsequent ones
amuse XMLSerializer) 2) make sure the stylesheet works outside of cocoon. (you can do step one to get the appropriate input)
Charles
Don Saxton wrote:
I have tried several xsl and after double checking each of them I
severalstumped.
I found several zarros in bugzilla. In mail list I have seen
org.apache.cocoon.components.pipeline.CachingStreamPipeline.proces"Failed to execute pipeline" and a couple related to NPE, but none linking either to "Errors in XSLT". Worse these other msgs don't indicate what solved the their problems.
I am running 2.04 on w2k and I sure could use a clue. All classes immediately surrounding the error are all cocoon. I have been studiously avoiding 2.1 beta chaos. Is it now time to dive in? will that help?
Don
org.apache.cocoon.ProcessingException: Failed to execute pipeline.: java.lang.RuntimeException: Errors in XSLT transformation: Fatal: java.lang.NullPointerException
at
s(CachingS
treamPipeline.java:410)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?> <envelope chiba:css-style="style.css" chiba:id="person" chiba:name="Person Form" xlink:href="forms/person.xml" xmlns:chiba="http://chiba.sourceforge.net/2001/09/xforms" xmlns:xforms="http://www.w3.org/2002/08/xforms/cr" xmlns:xlink="http://www.w3.org/1999/xlink"><xforms:model xforms:id="model_0"><xforms:instance xforms:href="http://graphicresponsemedia.net:8080/family/xmldb/family/?person=p5" xforms:id="instance_0"><person born="March 19, 1949" id="p1" name="Donald Eugene Saxton" src:col="/db/family" src:key="album.xml" xmlns:collection="http://apache.org/cocoon/xmldb/1.0" xmlns:src="http://xml.apache.org/xindice/Query"> <parents> <personref person="p2"/> <personref person="p7"/> </parents> <siblings> <personref person="p5">Steven Edward</personref> <personref person="p6">Robert Andrew</personref> </siblings> <marriage begin="1987" end="1993"> <personref person="p0">Frances</personref> </marriage> <children> <personref person="p3">Deirdre Astrid</personref> <personref person="p4">Austin Warner</personref> </children> <description>just a simple guy. </description> <documentref ref="p1"/> </person></xforms:instance><xforms:bind xforms:id="bind_0" xforms:nodeset="/person"><xforms:bind xforms:id="bind_1" xforms:nodeset="@name" xforms:required="true()" xforms:type="string"/><xforms:bind xforms:id="bind_2" xforms:minOccurs="0" xforms:nodeset="@born" xforms:required="false()" xforms:type="string"/><xforms:bind xforms:id="bind_3" xforms:minOccurs="0" xforms:nodeset="@died" xforms:required="false()" xforms:type="string"/><xforms:bind xforms:id="bind_4" xforms:minOccurs="0" xforms:nodeset="@gen" xforms:required="false()" xforms:type="string"/><xforms:bind xforms:id="bind_5" xforms:nodeset="@id" xforms:required="true()" xforms:type="ID"/><xforms:bind xforms:id="bind_6" xforms:nodeset="parents"><xforms:bind xforms:id="bind_7" xforms:nodeset="personref"><xforms:bind xforms:id="bind_8" xforms:minOccurs="0" xforms:nodeset="@person" xforms:required="false()" xforms:type="IDREF"/></xforms:bind></xforms:bind><xforms:bind xforms:id="bind_9" xforms:nodeset="siblings"><xforms:bind xforms:id="bind_10" xforms:nodeset="personref"><xforms:bind xforms:id="bind_11" xforms:minOccurs="0" xforms:nodeset="@person" xforms:required="false()" xforms:type="IDREF"/></xforms:bind></xforms:bind><xforms:bind xforms:id="bind_12" xforms:nodeset="marriage"><xforms:bind xforms:id="bind_13" xforms:minOccurs="0" xforms:nodeset="@end" xforms:required="false()" xforms:type="string"/><xforms:bind xforms:id="bind_14" xforms:nodeset="@begin" xforms:required="true()" xforms:type="string"/><xforms:bind xforms:id="bind_15" xforms:nodeset="personref"><xforms:bind xforms:id="bind_16" xforms:minOccurs="0" xforms:nodeset="@person" xforms:required="false()" xforms:type="IDREF"/></xforms:bind></xforms:bind><xforms:bind xforms:id="bind_17" xforms:nodeset="children"><xforms:bind xforms:id="bind_18" xforms:nodeset="personref"><xforms:bind xforms:id="bind_19" xforms:minOccurs="0" xforms:nodeset="@person" xforms:required="false()" xforms:type="IDREF"/></xforms:bind></xforms:bind><xforms:bind xforms:id="bind_20" xforms:nodeset="description"/><xforms:bind xforms:id="bind_21" xforms:nodeset="documentref"><xforms:bind xforms:id="bind_22" xforms:nodeset="@ref" xforms:required="true()" xforms:type="IDREF"/></xforms:bind></xforms:bind><xforms:submission xforms:action="cocoon:something" xforms:id="submission_0" xforms:method="post"/></xforms:model><body bgcolor="#eeffee"><chiba:form><xforms:group xforms:id="group_0"><xforms:label xforms:id="label_0">Person Edit</xforms:label><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/@name" chiba:required="true" xforms:bind="bind_1" xforms:id="input_0"><xforms:label xforms:id="label_1">Name</xforms:label><xforms:alert xforms:id="alert_0">Please provide a valid value for 'Name'. 'Name' is a required 'String' value.</xforms:alert><xforms:value>Donald Eugene Saxton</xforms:value></xforms:input><br/><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/@born" chiba:required="false" xforms:bind="bind_2" xforms:id="input_1"><xforms:label xforms:id="label_2">Born</xforms:label><xforms:alert xforms:id="alert_1">Please provide a valid value for 'Born'. 'Born' is an optional 'String' value.</xforms:alert><xforms:value>March 19, 1949</xforms:value></xforms:input><xforms:input chiba:enabled="true" chiba:required="false" xforms:bind="bind_3" xforms:id="input_2"><xforms:label xforms:id="label_3">Died</xforms:label><xforms:alert xforms:id="alert_2">Please provide a valid value for 'Died'. 'Died' is an optional 'String' value.</xforms:alert></xforms:input><xforms:input chiba:enabled="true" chiba:required="false" xforms:bind="bind_4" xforms:id="input_3"><xforms:label xforms:id="label_4">Gen</xforms:label><xforms:alert xforms:id="alert_3">Please provide a valid value for 'Gen'. 'Gen' is an optional 'String' value.</xforms:alert></xforms:input><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/@id" chiba:required="true" xforms:bind="bind_5" xforms:id="input_4"><xforms:label xforms:id="label_5">Id</xforms:label><xforms:alert xforms:id="alert_4">Please provide a valid value for 'Id'. 'Id' is a required 'Id' value.</xforms:alert><xforms:value>p1</xforms:value></xforms:input><xforms:group xforms:id="group_1"><xforms:label xforms:id="label_6">Parents</xforms:label><xforms:trigger xforms:id="trigger_0"><xforms:label xlink:href="images/add_new.gif">Insert after selected</xforms:label><xforms:hint>inserts a new entry in this collection</xforms:hint><xforms:action xforms:id="action_0"><xforms:insert chiba:enabled="true" xforms:at="xforms:index('repeat_0')" xforms:bind="bind_7" xforms:id="insert_0" xforms:position="after"/></xforms:action></xforms:trigger><xforms:trigger xforms:id="trigger_1"><xforms:label xlink:href="images/delete.gif">Delete selected</xforms:label><xforms:hint>deletes selected entry from this collection</xforms:hint><xforms:action xforms:id="action_1"><xforms:delete chiba:enabled="true" xforms:at="xforms:index('repeat_0')" xforms:bind="bind_7" xforms:id="delete_0"/></xforms:action></xforms:trigger><xforms:repeat chiba:enabled="true" chiba:index="1" chiba:name="/repeat_0" xforms:bind="bind_7" xforms:id="repeat_0"><xforms:group chiba:position="1" chiba:transient="true"><xforms:extension><chiba:selector/></xforms:extension><xforms:group xforms:id="group_2#0"><xforms:label xforms:id="label_7#1">Personref</xforms:label><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/parents[1]/personref[1]/@person" chiba:required="false" xforms:bind="bind_8" xforms:id="input_5#2"><xforms:label xforms:id="label_8#3">Person</xforms:label><xforms:alert xforms:id="alert_5#4">Please provide a valid value for 'Person'. 'Person' is an optional 'Idref' value.</xforms:alert><xforms:value>p2</xforms:value></xforms:input></xforms:group></xforms:group><xforms:group chiba:position="2" chiba:transient="true"><xforms:extension><chiba:selector/></xforms:extension><xforms:group xforms:id="group_2#5"><xforms:label xforms:id="label_7#6">Personref</xforms:label><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/parents[1]/personref[2]/@person" chiba:required="false" xforms:bind="bind_8" xforms:id="input_5#7"><xforms:label xforms:id="label_8#8">Person</xforms:label><xforms:alert xforms:id="alert_5#9">Please provide a valid value for 'Person'. 'Person' is an optional 'Idref' value.</xforms:alert><xforms:value>p7</xforms:value></xforms:input></xforms:group></xforms:group></xforms:repeat></xforms:group><xforms:group xforms:id="group_3"><xforms:label xforms:id="label_9">Siblings</xforms:label><xforms:trigger xforms:id="trigger_2"><xforms:label xlink:href="images/add_new.gif">Insert after selected</xforms:label><xforms:hint>inserts a new entry in this collection</xforms:hint><xforms:action xforms:id="action_2"><xforms:insert chiba:enabled="true" xforms:at="xforms:index('repeat_1')" xforms:bind="bind_10" xforms:id="insert_1" xforms:position="after"/></xforms:action></xforms:trigger><xforms:trigger xforms:id="trigger_3"><xforms:label xlink:href="images/delete.gif">Delete selected</xforms:label><xforms:hint>deletes selected entry from this collection</xforms:hint><xforms:action xforms:id="action_3"><xforms:delete chiba:enabled="true" xforms:at="xforms:index('repeat_1')" xforms:bind="bind_10" xforms:id="delete_1"/></xforms:action></xforms:trigger><xforms:repeat chiba:enabled="true" chiba:index="1" chiba:name="/repeat_1" xforms:bind="bind_10" xforms:id="repeat_1"><xforms:group chiba:position="1" chiba:transient="true"><xforms:extension><chiba:selector/></xforms:extension><xforms:group xforms:id="group_4#a"><xforms:label xforms:id="label_10#b">Personref</xforms:label><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/siblings[1]/personref[1]/@person" chiba:required="false" xforms:bind="bind_11" xforms:id="input_6#c"><xforms:label xforms:id="label_11#d">Person</xforms:label><xforms:alert xforms:id="alert_6#e">Please provide a valid value for 'Person'. 'Person' is an optional 'Idref' value.</xforms:alert><xforms:value>p5</xforms:value></xforms:input></xforms:group></xforms:group><xforms:group chiba:position="2" chiba:transient="true"><xforms:extension><chiba:selector/></xforms:extension><xforms:group xforms:id="group_4#f"><xforms:label xforms:id="label_10#10">Personref</xforms:label><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/siblings[1]/personref[2]/@person" chiba:required="false" xforms:bind="bind_11" xforms:id="input_6#11"><xforms:label xforms:id="label_11#12">Person</xforms:label><xforms:alert xforms:id="alert_6#13">Please provide a valid value for 'Person'. 'Person' is an optional 'Idref' value.</xforms:alert><xforms:value>p6</xforms:value></xforms:input></xforms:group></xforms:group></xforms:repeat></xforms:group><xforms:group xforms:id="group_5"><xforms:label xforms:id="label_12">Marriage</xforms:label><xforms:trigger xforms:id="trigger_4"><xforms:label xlink:href="images/add_new.gif">Insert after selected</xforms:label><xforms:hint>inserts a new entry in this collection</xforms:hint><xforms:action xforms:id="action_4"><xforms:insert chiba:enabled="true" xforms:at="xforms:index('repeat_2')" xforms:bind="bind_12" xforms:id="insert_2" xforms:position="after"/></xforms:action></xforms:trigger><xforms:trigger xforms:id="trigger_5"><xforms:label xlink:href="images/delete.gif">Delete selected</xforms:label><xforms:hint>deletes selected entry from this collection</xforms:hint><xforms:action xforms:id="action_5"><xforms:delete chiba:enabled="true" xforms:at="xforms:index('repeat_2')" xforms:bind="bind_12" xforms:id="delete_2"/></xforms:action></xforms:trigger><xforms:repeat chiba:enabled="true" chiba:index="1" chiba:name="/repeat_2" xforms:bind="bind_12" xforms:id="repeat_2"><xforms:group chiba:position="1" chiba:transient="true"><xforms:group xforms:id="group_6#14"><xforms:extension><chiba:selector/></xforms:extension><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/marriage[1]/@end" chiba:required="false" xforms:bind="bind_13" xforms:id="input_7#15"><xforms:label xforms:id="label_13#16">End</xforms:label><xforms:alert xforms:id="alert_7#17">Please provide a valid value for 'End'. 'End' is an optional 'String' value.</xforms:alert><xforms:value>1993</xforms:value></xforms:input><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/marriage[1]/@begin" chiba:required="true" xforms:bind="bind_14" xforms:id="input_8#18"><xforms:label xforms:id="label_14#19">Begin</xforms:label><xforms:alert xforms:id="alert_8#1a">Please provide a valid value for 'Begin'. 'Begin' is a required 'String' value.</xforms:alert><xforms:value>1987</xforms:value></xforms:input><xforms:label xforms:id="label_15#1b">Personref</xforms:label><xforms:input chiba:enabled="true" chiba:required="false" xforms:bind="bind_16" xforms:id="input_9#1c"><xforms:label xforms:id="label_16#1d">Person</xforms:label><xforms:alert xforms:id="alert_9#1e">Please provide a valid value for 'Person'. 'Person' is an optional 'Idref' value.</xforms:alert></xforms:input></xforms:group></xforms:group></xforms:repeat></xforms:group><xforms:group xforms:id="group_7"><xforms:label xforms:id="label_17">Children</xforms:label><xforms:trigger xforms:id="trigger_8"><xforms:label xlink:href="images/add_new.gif">Insert after selected</xforms:label><xforms:hint>inserts a new entry in this collection</xforms:hint><xforms:action xforms:id="action_8"><xforms:insert chiba:enabled="true" xforms:at="xforms:index('repeat_4')" xforms:bind="bind_18" xforms:id="insert_4" xforms:position="after"/></xforms:action></xforms:trigger><xforms:trigger xforms:id="trigger_9"><xforms:label xlink:href="images/delete.gif">Delete selected</xforms:label><xforms:hint>deletes selected entry from this collection</xforms:hint><xforms:action xforms:id="action_9"><xforms:delete chiba:enabled="true" xforms:at="xforms:index('repeat_4')" xforms:bind="bind_18" xforms:id="delete_4"/></xforms:action></xforms:trigger><xforms:repeat chiba:enabled="true" chiba:index="1" chiba:name="/repeat_4" xforms:bind="bind_18" xforms:id="repeat_4"><xforms:group chiba:position="1" chiba:transient="true"><xforms:extension><chiba:selector/></xforms:extension><xforms:group xforms:id="group_8#1f"><xforms:label xforms:id="label_18#20">Personref</xforms:label><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/children[1]/personref[1]/@person" chiba:required="false" xforms:bind="bind_19" xforms:id="input_10#21"><xforms:label xforms:id="label_19#22">Person</xforms:label><xforms:alert xforms:id="alert_10#23">Please provide a valid value for 'Person'. 'Person' is an optional 'Idref' value.</xforms:alert><xforms:value>p3</xforms:value></xforms:input></xforms:group></xforms:group><xforms:group chiba:position="2" chiba:transient="true"><xforms:extension><chiba:selector/></xforms:extension><xforms:group xforms:id="group_8#24"><xforms:label xforms:id="label_18#25">Personref</xforms:label><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/children[1]/personref[2]/@person" chiba:required="false" xforms:bind="bind_19" xforms:id="input_10#26"><xforms:label xforms:id="label_19#27">Person</xforms:label><xforms:alert xforms:id="alert_10#28">Please provide a valid value for 'Person'. 'Person' is an optional 'Idref' value.</xforms:alert><xforms:value>p4</xforms:value></xforms:input></xforms:group></xforms:group></xforms:repeat></xforms:group><xforms:group xforms:id="group_9"><xforms:label xforms:id="label_20">Description</xforms:label></xforms:group><xforms:group xforms:id="group_10"><xforms:label xforms:id="label_21">Documentref</xforms:label><xforms:trigger xforms:id="trigger_10"><xforms:label xlink:href="images/add_new.gif">Insert after selected</xforms:label><xforms:hint>inserts a new entry in this collection</xforms:hint><xforms:action xforms:id="action_10"><xforms:insert chiba:enabled="true" xforms:at="xforms:index('repeat_5')" xforms:bind="bind_21" xforms:id="insert_5" xforms:position="after"/></xforms:action></xforms:trigger><xforms:trigger xforms:id="trigger_11"><xforms:label xlink:href="images/delete.gif">Delete selected</xforms:label><xforms:hint>deletes selected entry from this collection</xforms:hint><xforms:action xforms:id="action_11"><xforms:delete chiba:enabled="true" xforms:at="xforms:index('repeat_5')" xforms:bind="bind_21" xforms:id="delete_5"/></xforms:action></xforms:trigger><xforms:repeat chiba:enabled="true" chiba:index="1" chiba:name="/repeat_5" xforms:bind="bind_21" xforms:id="repeat_5"><xforms:group chiba:position="1" chiba:transient="true"><xforms:extension><chiba:selector/></xforms:extension><xforms:input chiba:enabled="true" chiba:name="chiba:model[model_0]/person[1]/documentref[1]/@ref" chiba:required="true" xforms:bind="bind_22" xforms:id="input_11#29"><xforms:label xforms:id="label_22#2a">Ref</xforms:label><xforms:alert xforms:id="alert_11#2b">Please provide a valid value for 'Ref'. 'Ref' is a required 'Idref' value.</xforms:alert><xforms:value>p1</xforms:value></xforms:input></xforms:group></xforms:repeat></xforms:group></xforms:group><xforms:submit xforms:id="submit_0" xforms:submission="submission_0"><xforms:label xforms:id="label_23">Submit</xforms:label></xforms:submit></chiba:form></body></envelope>
------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/"> <HTML> <HEAD> <TITLE>Title</TITLE> </HEAD> <BODY>
<xsl:for-each select="//person"> <h3><xsl:value-of select="@name"/></h3>
<i>(id=<xsl:value-of select="@id"/>) <a href="edit/person/[EMAIL PROTECTED]"> edit </a></i>
<table border="1" cellspacing="0"> <tr><td>born</td><td> <xsl:value-of select="@born"/> </td>
</tr><tr><td> parents </td><td><xsl:for-each select="parents/personref">
<li><a>
<xsl:attribute name="href">?person=<xsl:value-of select="@person"/></xsl:attribute>
<xsl:value-of select="@person"/> </a> <xsl:value-of select="text()"/></li>
</xsl:for-each> </td></tr>
<tr><td>marriage <xsl:value-of select="marriage/@begin"/> to <xsl:value-of select="marriage/@end"/></td><td>
<xsl:for-each select="marriage/personref">
<li><a>
<xsl:attribute name="href">?person=<xsl:value-of select="@person"/></xsl:attribute>
<xsl:value-of select="@person"/> </a></li>
</xsl:for-each> </td></tr>
<tr><td>siblings</td><td>
<xsl:for-each select="siblings/personref">
<li><a>
<xsl:attribute name="href">?person=<xsl:value-of select="@person"/> </xsl:attribute>
<xsl:value-of select="@person"/> </a> <xsl:value-of select="text()"/></li>
</xsl:for-each> </td></tr>
<xsl:if test="not(0=count(children/personref))">
<tr><td>children</td><td>
<xsl:for-each select="children/personref">
<li><a>
<xsl:attribute name="href">?person=<xsl:value-of select="@person"/></xsl:attribute>
<xsl:value-of select="@person"/> </a> <xsl:value-of select="text()"/></li>
</xsl:for-each> </td></tr>
</xsl:if>
<tr><td>description</td><td>
<xsl:value-of select="description"/></td></tr>
<tr><td>documents</td><td>
<xsl:for-each select="documentref">
<li><a>
<xsl:attribute name="href">?document=<xsl:value-of select="@ref"/></xsl:attribute>
<xsl:value-of select="@ref"/>
</a></li>
</xsl:for-each></td></tr>
</table>
<div align="center"><a href="?list=persons">Back to List</a> </div>
</xsl:for-each> <b>I need some way to resolve idrefs i.e. get the person's name instead of the id.What is showing here is the text node of the ref element only if it is present.</b> </BODY> </HTML> </xsl:template > </xsl:stylesheet
------------------------------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]