Markup is fundamentally the identification of information. Marking up a document is effectively a naming process, identifying labels that are appropriate to particular pieces of information. SGML and XML 1.0 recognized that elements form the foundation of the markup type system, using element type declarations to describe element types, and then using the names inside the tags to identify which type was appropriate to the content contained by the tags.
For various reasons, some developers see the use of names as types to be inadequate. In some cases, attributes can provide additional useful information about how to interpret element content in a particular instance context, identifying, for instance, a date as written using a particular lexical format. In other cases, names act as hooks for processing, and applications use their own mappings from names to internal structures. A formal description of a model may be helpful in this mapping process.
Labeling textual content does not change the textual nature of that content, however. While some developers see that textual nature as a curse, bringing verbosity, redundancy, and sometimes ambiguity to the information, the textual nature of the names, the annotation, and the content keeps information accessible to a wide variety of systems and leaves open the possibility that these systems may interpret the information very differently.
Applying a structured naming system to information enriches the information. It does not necessarily lock that information into a particular set of rules. Processors (including human readers) can use the names and apply their own sets of understandings about whether a given named structure is sensible.
Monastic XML Copyright 2002 Simon St.Laurent.