By simply typing the string "xmlns" in an XSLT file, or inserting this string into an XSLT source XML file, XSL processing can mangle output in the PHP environments and on the .NET 2.x platform (and below).
The string "xmlns" refers to declaring/registering a namespace in an XML document. So it is clear that this character combination has significant meaning. This mangling problem persists even when "xmlns" appears in a CDATA block.
One horrid hack to deal with this problem (when you must deal with this problem) is to search character data and replace "xmlns" with something like "x[invisible character]mns" where the invisible character can be, say, a soft-hyphen ( or or ).
By the way, Microsoft Word users can enter Ctrl+- (control hyphen) to enter a soft hyphen. The Windows key combination is Alt+0173.