Monthly Archives: September 2011

Effective Xml Part 5: Something went really wrong – OutOfMemoryException and StackOverflowException thrown when using XslCompiledTransform

So, your application is crashing and it is crashing in the bad way. After spending hours of debugging and trying different things you figured out that this is this Xslt stylesheet that causes all the problems. How come? XslCompiledTransform is a compiler. It’s a bit different from C# or VB.NET compilers…

Continue reading


Effective Xml Part 4: Let me project this (Xml file) for you

Xml is ubiquitous. No doubt about it. It is being used almost everywhere and almost by everyone. This includes places where huge amounts of data are being processed. This means xml files (or streams) used there are also huge. And the bigger the Xml file the harder it is to process. The two biggest problems…

Continue reading

Effective Xml Part 3: Didn’t you say XslCompiledTransform was fast?

“XslCompiledTransform is fast.”
“Yeah, XslCompiledTransform is fast… if used correctly.”

Continue reading

Effective Xml Part 2: How to kill the performance of an app with XPath…

XPath expressions are pretty flexible. This flexibility allows for very creative ways of using XPath. Unfortunately some of them are suboptimal and cause bad performance of apps. This is especially visible in Xslt transformations where stylesheets contains tens if not hundreds of XPath expressions. Here is the list of the most common bad practices (or even anti-patterns) I have …

Contiune reading

Effective Xml Part 1: Choose the right API

This is the first part of a mini-series of blog posts about using Xml on .NET Framework platform in an effective way. Although I will be focusing on .NET Framework platform I hope that at least some of the information will be general enough to apply to working with Xml on any platform.

Contiune reading