Subject: RE: Trying to understand XSLT processing
From: <ohaya@xxxxxxx>
Date: Tue, 15 Dec 2009 5:52:49 -0500
|
Hi,
FYI, I got this to work using:
<xsl:message>*****BODY CONTENTS**** <xsl:copy-of select="/*[local-name()='Envelope']/*[local-name()='Body']"/></xsl:message>
Jim
---- Michael Kay <mike@xxxxxxxxxxxx> wrote:
>
> I can't think of any reason for this behaviour, other than the possibility
> that your XSLT processor is stripping out elements from the body of
> xsl:message. This would be consistent with the way xsl:attribute handles
> element content in XSLT 1.0, so it's not impossible - processors can do
> pretty well anything they like with xsl:message output. Try using the same
> construct outside the context of xsl:message.
>
> Regards,
>
> Michael Kay
> http://www.saxonica.com/
> http://twitter.com/michaelhkay
>
> >
> > I have an XML file:
> >
> > <SOAP:Envelope
> > xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
> > xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol"
> > xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-20040
> > 1-wss-wssecurity-secext-1.0.xsd"
> > xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
> > <SOAP:Header>
> > <wsse:Security SOAP:mustUnderstand="1">
> > </wsse:Security></SOAP:Header>
> > <SOAP:Body>
> > <m:hello xmlns:m="http://services">
> > <m:x>123</m:x>
> > </m:hello>
> > </SOAP:Body>
> > </SOAP:Envelope>
> >
> > and I just want to output the <SOAP:Body> to a message, so I
> > have an XSLT that looks like this:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> > xmlns:SOAP="http://www.w3.org/2003/05/soap-envelope"
> > xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
> > <xsl:output method="xml" />
> >
> > <xsl:template match="/">
> > <xsl:message>*****you just hit the XSLT ******</xsl:message>
> > <xsl:message>*****BODY CONTENTS****[<xsl:copy-of
> > select="."/>]</xsl:message>
> > </xsl:template>
> >
> > </xsl:stylesheet>
> >
> > However, when I execute that XSLT, I'm getting an empty
> > nodeset for the output:
> >
> > *****you just hit the XSLT ******
> > *****BODY CONTENTS****[]
> >
> > So, I was wondering if someone can explain what I am doing
> > wrong with that XSLT above? Why doesn't the <xsl:copy-of>
> > give me the <Body>?
> >
> > Thanks, and sorry if this is probably a really dumb question :(...
> >
> > Jim
|