BizTalk Server 2020 – 20 days, 20 posts – day 19. To finalize this topic about the BizTalk Pipeline Components Extensions UtilityPack project, here is another brand new component: XML Namespace Stripper Pipeline Component. I actually created this component for a need in a recent RosettaNet project.
📝 One-Minute Brief
Introduces the XML Namespace Stripper Pipeline Component for BizTalk Server 2020, a custom send‑pipeline component that removes all XML namespaces and prefixes from outbound messages to meet strict integration and legacy partner requirements.
XML Namespace Management Pipeline Component
This custom XML Namespace Stripper Pipeline Component is a pipeline component for BizTalk Server, which can be used in a Send Pipeline (Encode stage) to remove all namespaces and prefixes from an XML message.

Once again, the goal of this component is to clean up all namespaces and prefixes present in XML outbound messages, transforming the message from this:
<?xml version="1.0" encoding="utf-8"?>
<ns0:Pip7B1WorkInProcessNotification xmlns:ns0="http://schemas.microsoft.com/biztalk/btarn/2004/7B1_MS_V01_00_WorkInProcessNotification.dtd" xmlns:ns1="http://Microsoft.Solutions.BTARN.Schemas.RNPIPs.BaseDataTypes" xmlns:ns2="http://www.w3.org/XML/1998/namespace">
<ns0:fromRole>
<ns0:PartnerRoleDescription>
<ns0:ContactInformation>
<ns0:contactName>
<ns0:FreeFormText>Demo</ns0:FreeFormText>
</ns0:contactName>
<ns0:EmailAddress>demo@demo.com</ns0:EmailAddress>
<ns0:telephoneNumber>
<ns0:CommunicationsNumber>000-111-2222 EXT 1111</ns0:CommunicationsNumber>
</ns0:telephoneNumber>
</ns0:ContactInformation>
<ns0:GlobalPartnerRoleClassificationCode>Solution Provider</ns0:GlobalPartnerRoleClassificationCode>
<ns0:PartnerDescription>
<ns0:BusinessDescription>
<ns0:GlobalBusinessIdentifier>000000001</ns0:GlobalBusinessIdentifier>
</ns0:BusinessDescription>
<ns0:GlobalPartnerClassificationCode>Contract Manufacturer</ns0:GlobalPartnerClassificationCode>
</ns0:PartnerDescription>
</ns0:PartnerRoleDescription>
</ns0:fromRole>
...
<ns1:OrderReference>
<ns0:DocumentReference>
<ns0:GlobalDocumentReferenceTypeCode>Purchase Order</ns0:GlobalDocumentReferenceTypeCode>
<ns0:LineNumber>00001</ns0:LineNumber>
<ns0:ProprietaryDocumentIdentifier>QctPoNumber_0</ns0:ProprietaryDocumentIdentifier>
</ns0:DocumentReference>
<ns0:DocumentReference>
<ns0:GlobalDocumentReferenceTypeCode>Customer Batch Number</ns0:GlobalDocumentReferenceTypeCode>
<ns0:ProprietaryDocumentIdentifier>Name_0</ns0:ProprietaryDocumentIdentifier>
<ns0:RevisionNumber>Value_0</ns0:RevisionNumber>
</ns0:DocumentReference>
</ns1:OrderReference>
...
</ns0:Pip7B1WorkInProcessNotification>
Into this:
<?xml version="1.0" encoding="utf-8"?>
<Pip7B1WorkInProcessNotification>
<fromRole>
<PartnerRoleDescription>
<ContactInformation>
<contactName>
<FreeFormText>Demo</FreeFormText>
</contactName>
<EmailAddress>demo@demo.com</EmailAddress>
<telephoneNumber>
<CommunicationsNumber>000-111-2222 EXT 1111</CommunicationsNumber>
</telephoneNumber>
</ContactInformation>
<GlobalPartnerRoleClassificationCode>Solution Provider</GlobalPartnerRoleClassificationCode>
<PartnerDescription>
<BusinessDescription>
<GlobalBusinessIdentifier>000000001</GlobalBusinessIdentifier>
</BusinessDescription>
<GlobalPartnerClassificationCode>Contract Manufacturer</GlobalPartnerClassificationCode>
</PartnerDescription>
</PartnerRoleDescription>
</fromRole>
...
<OrderReference>
<DocumentReference>
<GlobalDocumentReferenceTypeCode>Purchase Order</GlobalDocumentReferenceTypeCode>
<LineNumber>00001</LineNumber>
<ProprietaryDocumentIdentifier>0000000001</ProprietaryDocumentIdentifier>
</DocumentReference>
<DocumentReference>
<GlobalDocumentReferenceTypeCode>Customer Batch Number</GlobalDocumentReferenceTypeCode>
<ProprietaryDocumentIdentifier>demo</ProprietaryDocumentIdentifier>
<RevisionNumber>D</RevisionNumber>
</DocumentReference>
</OrderReference>
...
</Pip7B1WorkInProcessNotification>
This component doesn’t require any configuration.
To use this pipeline component in your projects, you just copy the NamespaceStripper.dll file into the Pipeline Components folder that exists in the BizTalk Server installation directory:
- ..\Program Files (x86)\Microsoft BizTalk Server\Pipeline Components;
on every server.
You do not need to add this custom pipeline component to the Global Assembly Cache (GAC) for the BizTalk Runtime to use.
What is BizTalk Pipeline Components Extensions Utility Pack?
BizTalk Pipeline Components Extensions Utility Pack provides a collection of custom pipeline components that developers can use in receive and send pipelines. These components extend BizTalk Server’s out‑of‑the‑box pipeline capabilities.
The project lives in the BizTalk Server Open Source Community repository on GitHub (https://github.com/BizTalkCommunity). Moreover, anyone can contribute new pipeline components or enhance existing ones to further improve BizTalk Server capabilities.

At the moment, this project is available for:
- BizTalk Server 2020;
- BizTalk Server 2016;
- BizTalk Server 2010;
- BizTalk Server 2006-2009
Download
You can download BizTalk Pipeline Components Extensions Utility Pack from GitHub:
Hope you find this helpful! If you liked the content or found it useful and would like to support me in writing more, consider buying (or helping to buy) a Star Wars Lego set for my son.