Hi Erin, Thanks for pointing it out. It was a complete oversight on my part.
Sorry for this. Thanks Erin Harris wrote: > > Hi, > > I found two problems in the stylesheet. > > The first is with the following line: > > <xsl:element name="buybiz:postBuy" namespace="{$bizServiceNameSpace}" > xmlns:mod="{$intModelNameSpace}"> > > In the XSLT 1.0 Specification, 7.6.2 Attribute Value Templates ( > http://www.w3.org/TR/xslt#attribute-value-templates) it says: > > NOTE:Not all attributes are interpreted as attribute value templates. > Attributes whose value is an expression or pattern, attributes of > top-level elements and attributes that refer to named XSLT objects are not > interpreted as attribute value templates. In addition, xmlns attributes > are not interpreted as attribute value templates; it would not be > conformant with the XML Namespaces Recommendation to do this. > > So xmlns:mod="{$intModelNameSpace}" is just treated as a string value and > is not evaluated as an AVT. > > Since there is a variable declaration: <xsl:variable > name="intModelNameSpace">http://schemas.xxx.com/model</xsl:variable>, I > tried replacing xmlns:mod="{$intModelNameSpace}" with > xmlns:mod="http://schemas.xxx.com/model" but that did not work either > because now in the stylesheet the prefix mod is bound to the namespace > http://schemas.xxx.com/model, but in the xml input document the prefix mod > is bound to http://ws.xxx.com/2007/06/model so there is no match. So I > tried just removing that namespace declaration so that: > > <xsl:element name="buybiz:postBuy" namespace="{$bizServiceNameSpace}" > xmlns:mod="{$intModelNameSpace}"> > > becomes: > > <xsl:element name="buybiz:postBuy" namespace="{$bizServiceNameSpace}"> > > and then everything works. > > If you need that namespace declaration for some reason (though it didn't > look like it was being used) then you can do something like this: > > <xsl:element name="buybiz:postBuy" namespace="{$bizServiceNameSpace}" > xmlns:mod="http://schemas.xxx.com/model" xmlns:modtarget=" > http://ws.xxx.com/2007/06/model"> > > ... > > <xsl:with-param name="cat" > select="serviceBusMessage/payload/buytypes:postLiveBuyRequest/buytypes:liveBuy/buytypes:category/modtarget:catName"/> > > .... > > <xsl:with-param name="subcat" > select="serviceBusMessage/payload/buytypes:postLiveBuyRequest/buytypes:liveBuy/buytypes:category/modtarget:subCatName"/> > > > Note that the XSLT processor uses the namespace bound to the prefix to > match nodes in the xml input document and not the prefix name itself. > > > Thanks. > > Erin Harris > > > > > > laxman <[EMAIL PROTECTED]> > 06/07/2007 03:59 PM > > To > xalan-j-users@xml.apache.org > cc > > Subject > Re: Problem evaluating xpath with muliple prefix with different namespace > > > > > > > > Hi, > > I edited the xml and renamed the xsl for convinence. > > Thanks > > > > laxman wrote: >> >> Hi Erin, >> >> Thanks for the reply I am working with Xalan Java 2.7.0 and jdk >> 1.4.2_08 >> >> I am attaching the xsl and the input xml. Not sure what the exact >> problem is. >> >> Thanks >> >> http://www.nabble.com/file/p11470588/P1.xsl P1.xsl >> >> http://www.nabble.com/file/p11470588/2.xml 2.xml >> > > -- > View this message in context: > http://www.nabble.com/Problem-evaluating-xpath-with-muliple-prefix-with-different-namespace-tf4036498.html#a11471552 > > Sent from the Xalan - J - Users mailing list archive at Nabble.com. > > > > -- View this message in context: http://www.nabble.com/Problem-evaluating-xpath-with-muliple-prefix-with-different-namespace-tf4036498.html#a11505992 Sent from the Xalan - J - Users mailing list archive at Nabble.com.