Hi,
I know you guys are very busy, I just wanted to check whether you had
a chance to check out the patch I submitted. I would be interested in
your opinions.
Best regards,
--
Ovidiu Predescu <[EMAIL PROTECTED]>
http://orion.nsr.hp.com/ (inside HP's firewall only)
http://www.geocities.com/SiliconValley/Monitor/7464/ (GNU, Emacs, other stuff)
On Thu, 24 May 2001 12:03:08 -0700, Ovidiu Predescu <[EMAIL PROTECTED]> wrote:
> Hi,
>
> The following patch adds file, line and column number information of
> XML source documents in Xalan2J.
>
> This information is stored in a hash table and is generated only if
> Xalan is run with the -L option in the command line. It can also be
> setup programmatically by setting up a property on the TransformerImpl
> instance. There is no runtime or memory overhead if this property is
> not setup on a transformer.
>
> There are two ways one can obtain XML source node information. The
> first is from within a stylesheet, like below:
>
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:nodeinfo="xalan://org.apache.xalan.lib.NodeInfo"
> version="1.0">
>
> <xsl:template match="*">
> //node <xsl:value-of select="name()"/>
> //file <xsl:value-of select="nodeinfo:systemId()"/>
> //line <xsl:value-of select="nodeinfo:lineNumber()"/>
> //column <xsl:value-of select="nodeinfo:columnNumber()"/>
> <xsl:apply-templates/>
> </xsl:template>
>
> </xsl:stylesheet>
>
> If no arguments are passed to the systemId(), lineNumber() or
> columnNumber() functions, the corresponding information of the current
> context node is returned. A node can be passed as argument to the
> above functions, in which case the corresponding information about
> that node is returned. If a node set containing multiple nodes is
> passed as argument, only the information of the first node in the set
> is returned.
>
> The second way of obtaining the position information of a source node
> is programmatic. Given a Node instance, one could obtain the owner
> document, which is an instance of DocumentImpl, and invoke the
> getSourceLocatorFor() method. The following example extracted from the
> modified PrintTraceListener shows this:
>
> Node sourceNode = ev.m_sourceNode;
> DocumentImpl owner = (DocumentImpl)sourceNode.getOwnerDocument();
> SourceLocator locator = owner.getSourceLocatorFor(sourceNode);
>
>
> There are two patches attached. The first contains the changes to the
> Xalan2J source code relative to the CVS source code as of today. The
> second patch contains an XML and an XSL stylesheet test files.
>
> Please let me know if you find any problems with the source code. Of
> course, I'm interested in seeing the code integrated with Xalan2 as I
> want to make use of it in two projects immediately.