Breaking changes in MSXML6

Posted by: Signs on the Sand, on 09 Nov 2005 | View original | NEW Bookmarked: 0 time(s)

Just released Microsoft Core XML Services (MSXML) 6.0 introduces some security-related breaking changes in XML and XSLT processing, but MSXML6 SDK documentation isn't released yet (expected next week) and can be found nowhere on the net, so you might have a hard time wondering why basic things stop working after upgrading to MSXML6. Here is a bit of information that might be helpful.

MSXML6 is aligned with .NET 2.0 with regard to "secure by default" principle. That means that both MSXML6 and .NET 2.0 by default prohibit DTD (even internal subset) in XML documents, document() function and embedded scripts (ms:script) in XSLT stylesheets. Here is how you can enable processing these things if your XML or XSLT comes from a trusted source.

To allow processing DTD you set "ProhibitDTD" secondary property to false before loading XML:

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
xmlDoc.async = false;
xmlDoc.validateOnParse = false;            
xmlDoc.setProperty("ProhibitDTD", false);           
xmlDoc.load("data.xml");

To enable document() function and embedded scripts in XSLT stylesheets you set "AllowDocumentFunction" and "AllowXsltScript" secondary properties to true, no matter before or after loading stylesheet, but before running a transformation:

var xslDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
xslDoc.async = false;
xslDoc.validateOnParse = false;            
xslDoc.setProperty("ProhibitDTD", false);           
xslDoc.setProperty("AllowDocumentFunction", true);
xslDoc.setProperty("AllowXsltScript", true);      
xslDoc.load("style.xslt");

Hope that helps. And keep an eye on MSDN XML Developer Center for MSXML6 SDK with complete documentation to be released soon.

Advertisement
Category: XML | Other Posts: View all posts by this blogger | Report as irrelevant | View bloggers stats | Views: 6150 | Hits: 118

Similar Posts

  • .NET 3.5 SP1 LINQ improvements more
  • MSXML4 is going to be kill bit-ed more
  • MSXML4 SP3 Is Available Now! more
  • Toolkit 101: How the Toolkit project works more
  • Breaking changing in IIS 7.0 and ASP.NET more
  • We are NOT Killbit-ing MSXML4! more
  • Silverlight 3 Beta to RTW changes more
  • Cambrian First Look - Framework Changes (Pt 1) more
  • Interested in Improving XML Support in Internet Explorer? more
  • Preview SDK for the upcoming Silverlight 1.0 RC available more

News Categories

.NET | Agile | Ajax | Architecture | ASP.NET | BizTalk | C# | Certification | Data | DataGrid | DataSet | Debugger | DotNetNuke | Events | GridView | IIS | Indigo | JavaScript | Mobile | Mono | Patterns and Practices | Performance | Podcast | Refactor | Regex | Security | Sharepoint | Silverlight | Smart Client Applications | Software | SQL | VB.NET | Visual Studio | W3 | WCF | WinFx | WPF | WSE | XAML | XLinq | XML | XSD