[ 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]