[Mono-bugs] [Bug 352551] New: XSLT <copy-of /> element in XslTransform/ XslCompiledTransform results in the selected node' s children being inserted into the output document instead of the complete node (and its children) itself

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Jan 8 21:54:54 EST 2008


           Summary: XSLT <copy-of /> element in
                    XslTransform/XslCompiledTransform results in the
                    selected node's children being inserted into the output
                    document instead of the complete node (and its children)
           Product: Mono: Class Libraries
           Version: 1.2.5
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: Sys.XML
        AssignedTo: atsushi at ximian.com
        ReportedBy: rcook at opiumtrail.com
         QAContact: mono-bugs at ximian.com
          Found By: Development

Created an attachment (id=189842)
 --> (https://bugzilla.novell.com/attachment.cgi?id=189842)
Source code and XML demonstrating bug

According to the W3 spec (http://www.w3.org/TR/xslt#copy-of) the "copy-of"
element should copy an entire node or node set into the result when the result
of the expression in the "select" attribute evaluates to a node or a node set.
The .NET Class Library implementation of the XslTransform and
XslCompiledTransform do this correctly while Mono's implementation does not:
instead it outputs the children of the XML node or node set to the output.

I have attached a small application to repro this behaviour. It contains a
simple XSLT transform "transform.xml" which calls a custom function through the
"select" attribute which returns an XmlNode instance (the DocumentElement
property of an XmlDocument instance).

The transform looks like:

  <xsl:template match="/">
    <xsl:copy-of select="foo:MyCustomFunction()"/>

The input XML looks like:

    <given-name age="10">
    <given-name age="10">

The .NET implementation yields the correct output:

<?xml version="1.0" encoding="utf-8"?><root><child0 /><child1 /></root>

The Mono implementation yields the incorrect output:

<?xml version="1.0" encoding="utf-8"?><child0 /><child1 />

Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

More information about the mono-bugs mailing list