MSXML5 is the only version of MSXML that supports XML digital signatures.
Does anyone have any background why this was dropped, and what replaces it? Is this a good substitute?
MSXML5 has many features, including DOM, SAX, XPath, XSLT, XmlHttp and ServreXmlHttp, in addition to DSig. However, the customer for DSig feature was delivered for Office, or put it another way, the customer for MSXML5 is Office. Therefore DSig is excluded from MSXML6 from day one, while the rest of features remained. The other reason is about the cost, as it is not efficient to maintain MSXML3, MSXML4, MSXML5 and MSXML6 in the same time with allocated resources. Therefore, Microsoft has been pushing internal and external customers to MSXML6, which the best of the breed. This even leads Office 2010 moved off MSXML5 per Changes in Office 2010. So the point is: don't build your solution upon MSXML5.
Unfortunately, I am not aware of any Win32 native replacement of MSXML5 from Microsoft. However, you can use the classes in the System.Security.Cryptography.Xml namespace for DSig.
精彩评论