[ 
https://issues.apache.org/jira/browse/XALANJ-2425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12563158#action_12563158
 ] 

Илья Казначеев commented on XALANJ-2425:
----------------------------------------

Sorry for my uneduceted guess, but maybe you could do that based on return-type 
of extension function?
If it returns a NodeList, retain current behavior with recreating nodes in 
separate document, but if it returns DTMIterator or how's that, just trust its 
content nodes to be owned by processed document.

And also, I doubt that would be much slower considering cited core creates new 
Document and, possibly, DocumentBuilderFactory for it in the process.

> Xalan's set:distinct() is broken by design
> ------------------------------------------
>
>                 Key: XALANJ-2425
>                 URL: https://issues.apache.org/jira/browse/XALANJ-2425
>             Project: XalanJ2
>          Issue Type: Bug
>          Components: XSLTC
>    Affects Versions: 2.7.1
>         Environment: Any
>            Reporter: Илья Казначеев
>         Attachments: xml1.xml, xsl2.xsl
>
>
> Xalan's EXSLT set:distinct() is implemented in a way it is not useful, not 
> usable and also confusing, not mentioning it will throw an exception if feed 
> attributes list.
> See attached files, result is
> <html xmlns:set="http://exslt.org/sets";>
> <body>root</body>
> </html>
> for both libXSLT and xalan-interpreted, but it is 
> <html xmlns:set="http://exslt.org/sets";>
> <body></body>
> </html>
> for XSLTC.
> Reason: Xalan does iterator for set:distinct() by creating a document, 
> stuffing node list into document's element, and iterating over its children.
> This have two consequences: you can't access parent node from such node-list, 
> and also see XALANJ-2424.
> See class BasisLibrary.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to