While it is very tempting to approach information from the perspective of a pre-defined structure, this seemingly easy approach creates its own difficulties. Markup offers the opportunity to take a much broader view of information structures, allowing the natural structures and contexts of the information to take precedence over a more limited view of what the information should be. Rather than cramming information into a pre-fab box, markup provides a more generous set of containers.
The long history of strictly constrained information in computing has roots in several different sets of problems. Computers lacked power, networks lacked bandwidth, storage was precious, and programmers want tools to catch their mistakes. While loosely-typed information is common in scripting languages, it is much less popular in environments which are closer to the hardware (notably C and C++) or derived from that family of languages.
For years, writing programs has meant identifying a set of structures and writing code around those structures. Information comes later, and is made to conform to those structures. (Non-conformant data is often simply rejected.) Working with markup offers developers a different option, though one that takes some getting used to: applying labels and structure to data, perhaps 'painting' on the structure, rather than breaking the data into strictly pre-defined pieces.
This is a large leap to make, and a path rather different from many of the data-binding and data-modeling tools offered for developers wanting to use XML. This approach sees the information and the markup as primary, and not as a mere serialization of an object, table, or other predefined container. This approach is more open to non-deterministic styles of markup, and requires a different style of working with information. Mapping information between one set of fixed structures and another is a start, but only a small step.
Perhaps most important, this perspective removes the programmer as controller of the information. The information arrives first, then it is marked up with labels and structures, and then it is a program's task to interpret that information.
Monastic XML Copyright 2002 Simon St.Laurent.