Xslt 1.0 biggest issues (kind of) solved

Xslt 1.0 has a number of issues that can make the life of an Xml developer frustrating. A lot of them are addressed by Xslt 2.0. Unfortunately the .NET Framework does not have an Xslt 2.0 compliant processor. Fortunately most of the biggest Xslt 1.0 pain points have workarounds. Having workarounds rather than real solutions…

4

The world has moved on, have you? Xml APIs you should avoid using.

There is a few Xml APIs you should not be using. In some cases the complier makes this obvious – the API is marked as obsolete and you will get a warning when compiling an application that uses any of these APIs. All the obsolete APIs have their replacements. The replacement for the obsolete XmlSchemaCollection…

6

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 because it runs at…

0

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…

0

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

“XslCompiledTransform is fast.” “Really?” “Yeah, XslCompiledTransform is fast… if used correctly.” Indeed, depending on how you use XslCompiledTransform API your transformations can be really fast or not-that-fast (to say the least). The key to understanding where this difference comes from is to understan what XslCompiledTransform.Load() method actually does. The name of the method indicates that…

0

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…

0

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. Managed Xml…

3

[Updated 07/23/2010] MSXML6 is now in-band, MSI setup headaches should now (almost) be gone..

Windows 7 Windows Server 2008 R2 Windows Vista (All SPs) Windows Server 2008 (All SPs) Windows XP SP3 Windows XP SP2 Windows Server 2003 (All Versions) In-Band In-Band In-Band In-Band In-Band OOB 07/13/2010:End-of-Support OOB   (Update – This blog post was updated on 07/23/2010 to account for XP SP2’s" “End-of-Support.” XP SP2’s support ended on…

0

Visual Studio Editor Choosing System

This document gives an overview of how the Visual Studio editor choosing system works, and as an example discusses the XML Editor’s choosing system.  Visual Studio has the ability to associate multiple editors with a single a file extension.  For instance, .xaml files have multiple editor implementations associated with them. This raises the question of…

1

MSXML4.0 SP2 is going out-of-support in April. 2010

This is a friendly reminder that MSXML4.0 SP2 is going out-of-support on 4/13/2010. Applications using MSXML4.0 should be either migrated to MSXML6.0 or upgraded to MSXML 4.0 SP3. For more information about the Microsoft Support Lifecycle Policy, please visit the  Microsoft Lifecycle Website. You may ask why MSXML6.0 is being mentioned here and what relationship…

1