Monday, October 13, 2008

What XML Parser Does Internet Explorer Use?

We came across an odd thing today. I'm not going to say its a bug because I don't know all the ins and outs. In the grand scheme of things I would rate it between the final coat of paint my railings are crying out for and the notion that I should cancel my newspaper since I read everything online these days.

HOWEVER

We had a bug report where IntelliGantt wasn't handling embedded objects within Microsoft Project fields correctly. The customer was kind enough to share their MPP file with us and we were able to work through the issue he was facing. (As an aside, providing the MPP file was a huge help for us. Thank you!)

We did eventually find we had a problem with a particular embedded OLE object within the Microsoft Project Task Notes field. But we were flummoxed after the fix because the project still bombed during the Sharing operation to SharePoint.

More debugging and additional enhancing of the log output led us to Task 98. Task 98 is certainly not as interesting as Hanger 18, but it did contain an alien of sorts-- an alien character code I hadn't seen since...

There in the rubble of text was a \v character, like that V miniseries back in the 80s.

Now the reason it took us so long to find this is we typically test our SharePoint XML packages with Internet Explorer. During our test, IE handled the XML just fine. However, when we created an XML document at runtime (for example. System.Xml.XmlDocument.LoadXml(string), it would throw an exception that it couldn't handle a \v.

Even though we are using .NET 3.5 SP1 (the very very latest) it looks the the System.XML parser is more or less unchanged from .NET 2.0. IE7, on the other hand, most likely is not using the .NET Xml parser and has something a bit newer.

It gets me wondering... Microsoft at this point really has two code bases: one for .NET and one for classic Win32. It's almost like two software development companies. I wonder how long this state of affairs can/will continue?

90,000 employees tells me as long as they want :)

No comments: