"One day, our logistics analysis vendor interface completely broke down," wrote Ben Davis, "that's a Bad ThingTM, as our primary focus is to provide logistical services to our clients."

"Fortunately, it didn't take too long to track the problem down. Our vendor was sending over unescaped ampersands in their XML API."

<customer_name>Brandon & Sons</customer_name>

"When I reported the problem to them, they responded rather curiously: technically, we are sending back valid XML as the ampersand does not necessarily need to be escaped.

"I pointed them to the XML specification along with a simple request to encode their XML properly. Instead, they responded with this. Is there something else we can switch it to on our side that you could look for and replace on yours? I.e. some kind of flag character we use in place of an ampersand? What about a $ symbol? So, if there's a $ sign in the name, you could convert that to an ampersand. On our side, we'll convert the ampersand to a $ sign and pass it over like that. Then your piece would do a search/replace on the account name and replace the $ with an ampersand?"

"Long story short, it was absolutely impossible for them to do a multi-character replacement... and somehow none of this is an issue for any of their other users. Oh, and now I'm replacing $ with ampersands in our code."

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!