HTML outlines hypertext structure. Ideally, hypertext is data following a path imposed by user whim, linked and experienced independent of where it and its user are. Though the Web hasn't reached this ideal and perhaps never will, HTML's design grasps for it, emphasizing three concerns in data delivery:
* Linking: Data is linked in HTML, letting one piece carry you to another.
* Simplicity: HTML is simple, making it easy to learn
* Portability: HTML is stripped down, making it portable, especially over networks.
HTML was the first way so much data could reach so many so easily. Radio and TV unleashed a lot of data but the flood was indiscriminate. Computers allowed higher interaction with thought but were limited by place and multi-platform babble. Only HTML allowed data to transcend the tyranny of place and distance.
HTML markup is fixed. Linkage, simplicity, and portability demand limits on markup. That's fine, if you just want linkage, simplicity, and portability. If you Want more, you have a problem. HTML is limited in:
* Intelligence: How well data knows itself.
* Adaptation: How well data changes in response to changing times.
* Maintenance: How easily data is cared for.
Some intelligence infests HTML. It knows what is a paragraph and what is a picture. But it doesn't know the paragraph's about Daniel and Paul and the picture is a Brown Puppy. It focuses on basics, not specifics. Daniel and Paul can't be torn from Brown Puppy if Brown Puppy's all you want. You get everything in one swallow.
HTML throws everything in one hat, one size fits all. Its hard to find and change the exact markup you want. Markup for look and linking get mixed in with data, with no clear division. Change look, links may be lost. Change links, look may be lost. Separate markup for links, look, and data don't exist. To change something you change everything.
Power over maintenance lost.
Extensible Markup Language allows specific markup to be created for specific data. It has the virtues of HTML without any of its limitations. XML is strong in:
* Intelligence.
* Adaptation.
* Maintenance.
* Linking.
* Simplicity.
* Portability.
XML is a mother tongue for other languages, so markup languages like DanielML and PaulML become possible. Adaptation is infinite. Custom markup can be created for any need. If markup describing how pepperoni pizza is different from sausage pizza is needed, it can be made. If markup describing the varying degrees of lumpiness in gravy is needed, it can be made. No more fixed markup to limit the categorizing instincts of the masses.
XML is easy to maintain. It contains only data and markup. Look comes from a separate stylesheet and links are separate, not buried in the document. Each can be maintained separately. Easy access and easy change.
XML has one way to link embracing all ways to link. Not only that, it links in ways HTML can't. HTML can do simple, one way links within or outside data. XML does that but can also link two or more points within or outside data. There are even super-links intertwining all data within itself. Any link between any data can be handled.
XML is simple. When looking at XML the average user may find that hard to believe. Compared to HTML it's not. But compared other languages that let you do what XML does, it's simplicity itself. Unneeded overhead has been torn out in favor of essentials. XML gets to the point.
XML carries well. It's reason for existence is Power + Portability. All a browser needs to view XML is the data itself and the stylesheet controlling its look. If stricter validation is needed, a description listing out its exact meaning can be used with only slightly more overhead
Is this confusing ?