However, in actual usage, the term attribute can and is often treated as equivalent to a property depending on the technology being discussed.
In the C# programming language, attributes are metadata attached to a field or a block of code like assemblies, members and types, and are equivalent to annotations in Java.
Users of the language see many examples where attributes are used to address cross-cutting concerns and other mechanistic or platform uses.
Their specific use as metadata is left to the developer and can cover a wide range of types of information about any given application, classes and members that is not instance-specific.
[1] Attributes should be contrasted against XML documentation that also defines metadata, but is not included in the compiled assembly and therefore cannot be accessed programmatically.
On many post-relational or multi-valued databases systems, relative to SQL, tables are files, rows are items, and columns are attributes.
In XML, an attribute is a markup construct consisting of a name/value pair that exists within a start-tag or empty-element tag.