Skip to main content

XML is Not a Database

XML is good- but only for some things. XML is very good at describing ordered lists, documents like they will be printed on paper, and simple trees, like family trees. For other things, XML is really bad. All other computer data with a more abstract nature has trouble conforming efficiently to the tree hierarchy of XML. Programs which use XML to describe and retrieve all kinds of data indiscriminately, suffer intense processing delays- particularly while attempting to traverse an ordered list to retrieve unordered data.

The strongest feature of XML is that it's very close to the ubiquitous HTML. It's easy for many people to learn about XML because they're used to HTML. Data described by XML can be transformed into HTML very easily.

XML works great to describe lists of items, like feeds of syndicated content for things like a news feed, stock quotes, or a series of audio or video episodes. It's great at describing outlines, with bigger sections broken down into smaller and smaller sections. It describes forms of data entry like control panels (buttons, sliders, and switches,) and parts of forms (like text entries, check boxes, and selections from a list of multiple choices.) Really it's pretty good for describing visual documents for direct human consumption, as they'll be printed on paper or displayed statically on a flat screen.

But it's for "documents," not for "data!" This is important because the data in XML documents will always be in a specific order. If it's about books, the books will either be listed by title, or by author. If you want to look up a book in the document, by title, when they're listed by author, you'll have to traverse all the authors looking at every title- unless you create some additional artificial layer cross-indexing the document. Easy you say- make two lists in the file that work both ways. But when you have a million books and also need the ability to search by ISBN, publisher, and copyright date, how efficient will that be? :-)

Don't panic. There's a solution which has been invented. Actually, this invention took place many years ago, and has been proved solid to many people through intensive usage. Have you ever heard of the Relational Database? Unlike the XML document, the Relational Database has been specifically designed to store and retrieve every type of data, for every usage imaginable. And it's super efficient, too. I hope you know SQL.

Popular posts from this blog

What We're About

About UsMission Statement: We provide a product to make high performing software developers happy by giving them a chance to work in a more self-directed way on software that is more meaningful to them. Core Values (in priority order):Integrity: Honesty, trustworthiness, and faithfulnessPreparation: Research, planning, and goalsReputation: Branding, naming, presence, and networkingProfitability: Product salesProduction: Product development, ideas, online contentImprovement: Research and trainingSupport: Minimal overhead Who We Are
Isaac Serafino is a Software Architect in Omaha, Nebraska. He has a strong experience developing technology solutions. He has long had the dream to lead his own startup business.
Our ProductsSnap Screen™
More efficiently provide a safe environment for using electronic devices. Sends pictures of what is on the display at somewhat random times so user knows they could be observed at any time, but the supervisor does not need to be their watching over their sho…

The Invasion of the Developer Commandos™

I. Why Deploy Commandos? It's hard to find the best people to solve difficult problems. By deploying Developer Commandos™, you can get great software developed without needing to figure out how to find the software developers. II. What are Developer Commandos? Unlike an old fashioned developer, a commando works independently. They manage themselves so you won't need to. III. How Can You Deploy Commandos? A. Create a Project Use a project host like GitHub to create a shared workspace online. Commandos will be able to contribute to your software project through this workspace. B. Obtain Incentives Use a cryptocurrency exchange like Coinbase to purchase an amount of a cryptocurrency such as Ether. You will be able to use this cryptocurrency to provide an incentive for commandos. C. Post Opportunities Use a bounty network such as Gitcoin to post bounties. A bounty describes the software problem you need resolved, and allows you to attach a cryptocurrency incentive for resolving i…