Everything in moderation... I personally do not make a lot of use of XML at all. I think the use of XML in standards is beneficial due to the wide array of software tools built to adhere to those standards - eg web services. Certainly saves time rather than coding HTTP POST, etc

But using it internally when some arrays, etc would do doesn't make a lot of sense. There's a lot of overhead with string processing, etc. So I'm not surprised that things slowed down significantly - no XML could compare to a simple array of structs and some pointers... Hope you don't get too flamed by ppl for saying XML is not the saviour of us programmers/developers/db folk

The article started out nicely but I feel it dropped off at the end. We are told where the problem was, but there was not mention, even in a short sentence, of how the issue was resolved. It just said there was alot of rework. I would suggest adding a section called "The Solution" prior to "Conclusion" to give the article more punch.

I think the real lesson here is that you made the decision to utilize XML (A technology to which you seem very unfamiliar) extensively without investigating the technology and testing your ideas in a sandbox environment. XML is great at what it does but why would you use XML in this application when the database already provides your storage mechanism and you did not need to share data between heterogeneous systems...Frankly this use of XML adds another layer of complexity with no benefit.

You would be much better off utilizing a basic "domain collection/object model" architecture where domain objects are populated with data from your database...Recursion would have been easier and much faster...

I guess this wouldn't be related to XML or your article, it's more of a Solution. Use DevExpress' TreeList component or create your directory structure from a single table instead of an Xml file / Document.

Table Structure:

ID

ParentID

Description

Hint

1

Null

C:\

Root Drive

2

1

Program Files

3

1

Windows

Root Windows Folder

4

2

Microsoft Office

In this way, you have an unlimited amount of folders / subfolders by using a combination of ID and ParentID. We use this structure a lot and it's very fast an efficient.

Still, i feel that updating thousands of rows in a single go can be easily done with XML and using database support for XML. And it is really helpful, when the details are scattered on different servers.

Use of XML can facilitate readability if the schema and tags are appropriately designed. However, I'm far from convinced of its superiority in all areas.

The main issue for me is that as a data exchange format, it tends to be quite verbose (in terms of the ratio of data bytes to total bytes). Because of this, when used in interprocess communications to exchange data, performance can become an issue. And when used to create files for other applications, the files can be very large in proportion to the data they contain. I'm an old database dog and still like fixed-byte or CSV format for stuff like that, because it's more parsimonious.