Attribute-value pairs are a fundamental data representation in many computing systems and applications. Designers often desire an open-eneded data structure that allows for future extension without modifying existing code or data. In such situations, all or part of the data model may be expressed as a collection of Tuples < attribute name , value >; each element is an attribute-value pair. Depending on the particular application and the implementation chosen by programmers, attribute names may or may not be unique.
Some of the applications where information is represented as attribute-value pairs are:
Electronic mail, in RFC 2822 headers
Optional elements in protocol (computing)s, such as Internet Protocol, where they often appear as TLV ( type-length-value ) triples
Bibliographic information, as in BibTeX and Dublin Core metadata
Element attributes in SGML and XML
General Metadata in Resource Description Framework
Some kinds of Database systems
Some computer languages implement attribute-value pairs, or more frequently collections of attribute-value pairs, as standard language features. Most of these implement the general model of an associative array: an unordered list of unique attributes with associated values. As a result, they are not fully general; they cannot be used, for example, to implement electronic mail headers (which are ordered and non-unique).