xsl-list
[Top] [All Lists]

Re: [xsl] XSLT2.0 compatibility

2006-09-01 21:49:06
Hi Jessica,
  This error message is correct implementation by the XSLT processor.

You must follow this pattern, while creating elements and attributes:

Create element (a)
  Create element a's attributes
Create any child elements

It is quite obvious, you cannot create child elements before creating
parent element's (here a) attributes.

On 9/2/06, Lin, Jessica <jlin(_at_)solekai(_dot_)com> wrote:
I used to run my xslt 1.0 fine with saxon xslt processor1.0. After I migrated to xslt 
processor2.0, I meet the strange error. It complains a simple attribute copy command in my xslt 
file which is <xsl:copy-of select="@*"/>. The error message is

Error at xsl:copy-of on line 141 of 
file:///C:/trex-dev/Trunk/Projects/BFW/bde.bfw.core/resources/transform.xslt:
 XTDE0410: An attribute node (key) cannot be created after the children of the 
containing element
** Transformation error

; SystemID: 
file:///C:/trex-dev/Trunk/Projects/BFW/bde.bfw.core/resources/transform.xslt; 
Line#: 141; Column#: -1
net.sf.saxon.trans.DynamicError: An attribute node (key) cannot be created 
after the children of the containing element
 at net.sf.saxon.instruct.CopyOf.processLeavingTail(CopyOf.java:138)
 An attribute node (key) cannot be created after the children of the containing 
element
 at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:330)
 at net.sf.saxon.instruct.Instruction.process(Instruction.java:90)
 at 
net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:162)
 at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:330)
 at net.sf.saxon.instruct.Template.expand(Template.java:95)
 at net.sf.saxon.instruct.Template.processLeavingTail(Template.java:79)
 at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:290)
 at net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:169)
 at net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:129)
 at 
net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:162)
 at net.sf.saxon.instruct.Copy.processLeavingTail(Copy.java:123)
 at net.sf.saxon.instruct.Template.expand(Template.java:95)
 at net.sf.saxon.instruct.Template.processLeavingTail(Template.java:79)
 at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:290)
 at net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:169)
 at net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:129)
 at 
net.sf.saxon.instruct.ElementCreator.processLeavingTail(ElementCreator.java:162)
 at net.sf.saxon.instruct.Copy.processLeavingTail(Copy.java:123)
 at net.sf.saxon.instruct.Template.expand(Template.java:95)
 at net.sf.saxon.instruct.Template.processLeavingTail(Template.java:79)
 at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:290)
 at net.sf.saxon.instruct.ApplyTemplates.apply(ApplyTemplates.java:169)
 at net.sf.saxon.instruct.ApplyTemplates.process(ApplyTemplates.java:129)
 at net.sf.saxon.instruct.Copy.processLeavingTail(Copy.java:170)
 at net.sf.saxon.instruct.Template.expand(Template.java:95)
 at net.sf.saxon.instruct.Template.processLeavingTail(Template.java:79)
 at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:290)
 at net.sf.saxon.Controller.transformDocument(Controller.java:1406)
 at net.sf.saxon.Controller.transform(Controller.java:1234)


The strange situation is the saxon xslt 2.0 processor does not complain all attribute copy. 
Many <xsl:copy-of select="@*"/> work fine. I want to know do any of you 
experience this before? Have any clue?


Thanks,
Jessica


--
Regards,
Mukul Gandhi

http://gandhimukul.tripod.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>