How to remove namespaces

Learn how to remove namespaces.

CRM.interface requests have to be namespace-neutral. Requests containing namespaces are therefore ignored:

      <Biztalk:request xmlns:Biztalk="urn:COMPANYMAME/CRM/U7COMPANYIN">
        <status/>
      </Biztalk:request>
      <Biztalk:request xmlns:Biztalk="urn:COMPANYMAME/CRM/U7COMPANYIN">
        <status/>
      </Biztalk:request>

In case a client uses namespaces in its requests you may remove these namespaces via adoption of the stylesheets in your command lists.

  • modify your in.xslt (search for "Biztalk" to find differences to the out-of-the-box stylesheet) as sketched in the sample below.
  • add an additional style sheet (in this sample namespace_remover.xslt) to your command list. This new style sheet might look like the sketch below.
      <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:msxsl="urn:schemas-microsoft-com:xslt"
      xmlns:var="urn:var"
      xmlns:user="urn:user"
      xmlns:syncml="SYNCML:SYNCML1.1"
      xmlns:Biztalk='urn: COMPANYMAME/CRM/U7COMPANYIN'
      exclude-result-prefixes="msxsl var user syncml Biztalk"
      version="1.0">
        <xsl:output method="xml" omit-xml-declaration="yes"/>
        <xsl:template match="/request|/syncml:SyncML">
          <root>
            <com obj='$preload' func='XMLProcess'>
              <par val='$xmldom'/>
            </com>
          </root>
        </xsl:template>
        <xsl:template match="/Biztalk:request">
          <root>
            <xslt>namespace_remover.xslt</xslt>
            <com obj='$preload' func='XMLProcess'>
              <par val='$xmldom'/>
            </com>
          </root>
        </xsl:template>
        <!-- ... -->
      </xsl:stylesheet>