[ 
http://issues.apache.org/jira/browse/XALANJ-2306?page=comments#action_12420678 
] 

Brian Minchau commented on XALANJ-2306:
---------------------------------------

The test sets the context node to be a node from different input documents, and 
then references the unparsed-entity-uri fuction.

The problem here seems to be that the reference to the unparsed-entity-uri 
function is always being evaluated with respect to the primary input document 
rather than with respect to the input document associated with the context node.





> Entities are not resolved properly if document instances of a DTD with 
> different internal subsets are loaded recursively
> ------------------------------------------------------------------------------------------------------------------------
>
>          Key: XALANJ-2306
>          URL: http://issues.apache.org/jira/browse/XALANJ-2306
>      Project: XalanJ2
>         Type: Bug

>   Components: XSLTC
>     Versions: 2.7
>  Environment: Xalan-J 2.7.0 (and earlier versions) especially Java 5.0
>     Reporter: Michael Hedenus

>
> A stylesheet recursively loads documents via document()-function which are 
> all instances if a special DTD but have different local subsets. If the 
> subset contains entity definitions, they are not resolved properly. Here is a 
> use case:
> Consider the following stylesheet and three test documents doc1.xml, doc2.xml 
> doc3.xml
> <?xml version="1.0"?>
> <xsl:stylesheet version="1.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>       <xsl:output method="text"/>
>       <xsl:template match="document">
>               Data: <xsl:value-of select="unparsed-entity-uri(@data)"/>
>               <xsl:apply-templates/>          
>       </xsl:template>
>       <xsl:template match="parent">
>               Parent: <xsl:value-of select="."/>
>               <xsl:if test="not(normalize-space(text())='')">
>               <xsl:apply-templates select="document(.)"/>
>               </xsl:if>
>       </xsl:template>
> </xsl:stylesheet>
> <?xml version="1.0"?>
> <!DOCTYPE document [
>       <!NOTATION type PUBLIC "text/plain">
>       <!ENTITY entity SYSTEM "data1" NDATA type>
>       <!ELEMENT document (parent)>
>       <!ATTLIST document data ENTITY #REQUIRED>
>       <!ELEMENT parent (#PCDATA)>
> ]>
> <document data="entity">
>   <parent>doc2.xml</parent>
> </document>
> <?xml version="1.0"?>
> <!DOCTYPE document [
>       <!NOTATION type PUBLIC "text/plain">
>       <!ENTITY entity SYSTEM "data2" NDATA type>
>       <!ELEMENT document (parent)>
>       <!ATTLIST document data ENTITY #REQUIRED>
>       <!ELEMENT parent (#PCDATA)>
> ]>
> <document data="entity">
>   <parent>doc3.xml</parent>
> </document>
> <?xml version="1.0"?>
> <!DOCTYPE document [
>       <!NOTATION type PUBLIC "text/plain">
>       <!ENTITY entity SYSTEM "data3" NDATA type>
>       <!ELEMENT document (parent)>
>       <!ATTLIST document data ENTITY #REQUIRED>
>       <!ELEMENT parent (#PCDATA)>
> ]>
> <document data="entity">
>   <parent></parent>
> </document>
> New transform doc1.xml with the stylesheet. The result is:
>                Data: file:///D:/Michael/xslt/test/data1
>                Parent: doc2.xml
>                Data: file:///D:/Michael/xslt/test/data1
>                Parent: doc3.xml
>                Data: file:///D:/Michael/xslt/test/data1
>                Parent:
> The result should be:
>                Data: file:///D:/Michael/xslt/test/data*****1****
>                Parent: doc2.xml
>                Data: file:///D:/Michael/xslt/test/data*****2****
>                Parent: doc3.xml
>                Data: file:///D:/Michael/xslt/test/data*****3****
>                Parent:
> This happens only if XSLTC is used but not if the processor runs in 
> interpretive mode.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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

Reply via email to