Sorry, I should have been more clear. You'd have to stop using the dp:url-open.
Build the message without the explicit name-spacing in some kind of transform (I suspect that's what you're doing). Then send that to the back end. With that, I don't think DataPower would modify it further. If it does, you may have to use something like my little trick above. But, I think if you just build the message with a transform as the last thing on the processing rule, you should be OK.
Client to Server rule: INPUT -> other actions -> transform to build message (nothing else)
------------------------------
Joseph Morgan
CEO - Independent
------------------------------
Original Message:
Sent: Thu April 10, 2025 09:40 AM
From: Mahender Batta
Subject: Why dp:url-open is adding additional namespace automatically?
Thank you @Joseph Morgan for the suggestion.
How can I intercept request body with in the url-open? In my original message does not contains namespaces.
------------------------------
Mahender Batta
------------------------------
Original Message:
Sent: Thu April 10, 2025 09:32 AM
From: Joseph Morgan
Subject: Why dp:url-open is adding additional namespace automatically?
Interesting. So, I found this XSLT in my box-of-tricks for DataPower. I know I haven't used this in a long while, but there must be a reason I wrote it. You may have to make a few changes to your process to generate the message and send it via a Results action (like I said, I forgot why I wrote it...), but, this little transform removes namespaces from an XML message:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <!-- keep comments --> <xsl:template match="comment()"> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="*"> <!-- remove element prefix --> <xsl:element name="{local-name()}"> <!-- process attributes --> <xsl:for-each select="@*"> <!-- remove attribute prefix --> <xsl:attribute name="{local-name()}"> <xsl:value-of select="."/> </xsl:attribute> </xsl:for-each> <xsl:apply-templates/> </xsl:element> </xsl:template></xsl:stylesheet>
------------------------------
Joseph Morgan
CEO - Independent
Original Message:
Sent: Thu April 10, 2025 09:19 AM
From: Mahender Batta
Subject: Why dp:url-open is adding additional namespace automatically?
Yes, @Joseph Morgan, I have already added it.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dp="http://www.datapower.com/extensions" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:json="http://www.ibm.com/xmlns/prod/2009/jsonx" xmlns:str="http://exslt.org/strings" extension-element-prefixes="dp str" exclude-result-prefixes="dp json env str" version="1.0"> </xsl:stylesheet>
------------------------------
Mahender Batta
Original Message:
Sent: Thu April 10, 2025 09:04 AM
From: Joseph Morgan
Subject: Why dp:url-open is adding additional namespace automatically?
Have you attempted to put 'exclude-result-prefixes="dp env json"' in your stylesheet element declaration?
------------------------------
Joseph Morgan
CEO - Independent