
This article needs additional citations for verification.(January 2022) |
In computing, an attribute is a specification that defines a property of an object, element, or file. It may also refer to or set the specific value for a given instance of such. For clarity, attributes should more correctly be considered metadata. An attribute is frequently and generally a property of a property. However, in actual usage, the term attribute can and is often treated as equivalent to a property depending on the technology being discussed. An attribute of an object usually consists of a name and a value. For an element these can be a type and class name, while for a file these can be a name and an extension, respectively.


Rules and typing
- Rules: Each named attribute has an associated set of rules called operations: For example, one doesn't sum characters or manipulate and process an integer array the same way as an image object. Neither does one process text as if it was type of floating point (decimal numbers).
- Data types: It follows that an object definition can be extended by imposing data typing which can consist of a representation format, a default value, and legal operations (rules) and restrictions (e.g. "division by zero is not to be tolerated") are all potentially involved in defining an attribute, or conversely one may view them as attributes of that object's type.
Picture file formats (for example JPEG, PNG and BMP) are not decoded using the same operations (however similar the images look — these are all graphics data formats). Similarly, a programming language does not use the same operations to evaluate a floating point typed number and typed long integers.
For example, in computer graphics, line objects can have attributes such as thickness (with real values), color (with descriptive values such as brown or green or values defined in a certain color model, such as RGB), dashing attributes, etc. A circle object can be defined in similar attributes plus an origin and radius. In reference to computer systems, attributes are defined particularly for read or write attributes for specific read or write.
Attribute usage
If the element in question could be considered a property (CUSTOMER_NAME
) of another entity (let's say CUSTOMER
), the element can have zero or more attributes (properties) of its own (CUSTOMER_NAME
is of TYPE = "KINDOFTEXT"
).
C#
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. Attributes are accessible to both the compiler and programmatically through reflection. In contrast, properties, in C# terminology, are members of a class which syntactically are used like instance (or class) variables, but are implemented as a pair of getter/setter functions. (In the absence of a setter, properties are read-only.)
Users of the language see many examples where attributes are used to address cross-cutting concerns and other mechanistic or platform uses. This creates the false impression that this is their sole intended purpose.
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. The decision to expose any given attribute as a property is also left to the developer as is the decision to use them as part of a larger application framework.
Attributes are implemented as classes that are derived from System.Attribute
. They are often used by the CLR services, like COM interoperability, remoting, serialisation and can be queried at runtime.
The example shows how attributes are defined in C#:
[Obsolete("Use class C1 instead", IsError = true)] // causes compiler message saying public class C {...} // that C is obsolete public class ObsoleteAttribute : Attribute { // class name ends with "Attribute" public string Message { get; } // but can be used as "Obsolete" public bool IsError { get; set; } public ObsoleteAttribute() {...} public ObsoleteAttribute(string msg) {...} public ObsoleteAttribute(string msg, bool error) {...}} [Obsolete] [Obsolete("This is obsolete")] [Obsolete("This is obsolete", false)] [Obsolete("This is obsolete", IsError = false)]
Positional parameters like first parameter of type string above are parameters of the attribute's constructor. Name parameters like the Boolean parameter in the example are a property of the attribute and should be a constant value.
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.
HTML & JavaScript
Display the checked attribute and property of a checkbox as it changes.
<!doctype html> <html lang="en"> <head> <body> <input name="food" type="meal" id="meal"> <meta charset="utf-8"> <title>attr demo</title> <style> p { border;1px solid black; font-family; arial, sans-serif; text-align center; } b { color: blue; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <input id="check1" type="checkbox" checked="checked"> <label for="check1">Check me</label> <p></p> <script> $( "input" ) .change(function() { var $input = $( this ); $( "p" ).html( ".attr( 'checked' ): <b>" + $input.attr( "checked" ) + "</b><br>" + ".prop( 'checked' ): <b>" + $input.prop( "checked" ) + "</b><br>" + ".is( ':checked' ): <b>" + $input.is( ":checked" ) + "</b>" ); }) .change(); </script> </body> </html>
before click
.attr( 'checked' ): checked .prop( 'checked' ): false .is( ':checked' ): false
after click
.attr( 'checked' ): checked .prop( 'checked' ): true .is( ':checked' ): true
Multi-valued databases
On many post-relational or multi-valued databases systems, relative to SQL, tables are files, rows are items, and columns are attributes. Both in the database and code, attribute is synonymous with property and variable although attributes can be further defined to contain values and subvalues.
The first of these databases was the Pick operating system. Two current platforms include Rocket U2's Universe and InterSystems' Caché.
XML
In XML, an attribute is a markup construct consisting of a name/value pair that exists within a start-tag or empty-element tag. Markup languages, such as HTML and XML, use attributes to describe data and the formatting of data.
A good example is the process of XML assigning values to properties (elements). Note that the element's value is found before the (separate) end tag, not in the element itself. The element itself may have a number of attributes set (NAME = "IAMAPROPERTY"
).
If the element in question could be considered a property (CUSTOMER_NAME
) of another entity (let's say CUSTOMER
), the element can have zero or more attributes (properties) of its own (CUSTOMER_NAME
is of TYPE = "KINDOFTEXT"
).
See also
- Attribute (knowledge representation)
- Attribute–value pair
- File attribute
- Extended file attributes
- Field (computer science)
- Property (programming)
- Java annotation
- Metadata
References
- Mössenböck, Hanspeter (2002-03-25). "Advanced C#: Variable Number of Parameters" (PDF). Institut für Systemsoftware, Johannes Kepler Universität Linz, Fachbereich Informatik. p. 44. Retrieved 2011-08-08.
This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources Attribute computing news newspapers books scholar JSTOR January 2022 Learn how and when to remove this message In computing an attribute is a specification that defines a property of an object element or file It may also refer to or set the specific value for a given instance of such For clarity attributes should more correctly be considered metadata An attribute is frequently and generally a property of a property However in actual usage the term attribute can and is often treated as equivalent to a property depending on the technology being discussed An attribute of an object usually consists of a name and a value For an element these can be a type and class name while for a file these can be a name and an extension respectively In object oriented programming classes can contain attributes and methods An attribute in a relational database can be represented as a column or field Rules and typingRules Each named attribute has an associated set of rules called operations For example one doesn t sum characters or manipulate and process an integer array the same way as an image object Neither does one process text as if it was type of floating point decimal numbers Data types It follows that an object definition can be extended by imposing data typing which can consist of a representation format a default value and legal operations rules and restrictions e g division by zero is not to be tolerated are all potentially involved in defining an attribute or conversely one may view them as attributes of that object s type Picture file formats for example JPEG PNG and BMP are not decoded using the same operations however similar the images look these are all graphics data formats Similarly a programming language does not use the same operations to evaluate a floating point typed number and typed long integers For example in computer graphics line objects can have attributes such as thickness with real values color with descriptive values such as brown or green or values defined in a certain color model such as RGB dashing attributes etc A circle object can be defined in similar attributes plus an origin and radius In reference to computer systems attributes are defined particularly for read or write attributes for specific read or write Attribute usageIf the element in question could be considered a property CUSTOMER NAME of another entity let s say CUSTOMER the element can have zero or more attributes properties of its own CUSTOMER NAME is of TYPE KINDOFTEXT C 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 Attributes are accessible to both the compiler and programmatically through reflection In contrast properties in C terminology are members of a class which syntactically are used like instance or class variables but are implemented as a pair of getter setter functions In the absence of a setter properties are read only Users of the language see many examples where attributes are used to address cross cutting concerns and other mechanistic or platform uses This creates the false impression that this is their sole intended purpose 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 The decision to expose any given attribute as a property is also left to the developer as is the decision to use them as part of a larger application framework Attributes are implemented as classes that are derived from span class n System span span class p span span class n Attribute span They are often used by the CLR services like COM interoperability remoting serialisation and can be queried at runtime The example shows how attributes are defined in C Obsolete Use class C1 instead IsError true causes compiler message saying public class C that C is obsolete public class ObsoleteAttribute Attribute class name ends with Attribute public string Message get but can be used as Obsolete public bool IsError get set public ObsoleteAttribute public ObsoleteAttribute string msg public ObsoleteAttribute string msg bool error Obsolete Obsolete This is obsolete Obsolete This is obsolete false Obsolete This is obsolete IsError false Positional parameters like first parameter of type string above are parameters of the attribute s constructor Name parameters like the Boolean parameter in the example are a property of the attribute and should be a constant value 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 HTML amp JavaScript Display the checked attribute and property of a checkbox as it changes lt doctype html gt lt html lang en gt lt head gt lt body gt lt input name food type meal id meal gt lt meta charset utf 8 gt lt title gt attr demo lt title gt lt style gt p border 1px solid black font family arial sans serif text align center b color blue lt style gt lt script src https code jquery com jquery 1 10 2 js gt lt script gt lt head gt lt body gt lt input id check1 type checkbox checked checked gt lt label for check1 gt Check me lt label gt lt p gt lt p gt lt script gt input change function var input this p html attr checked lt b gt input attr checked lt b gt lt br gt prop checked lt b gt input prop checked lt b gt lt br gt is checked lt b gt input is checked lt b gt change lt script gt lt body gt lt html gt before click attr checked checked prop checked false is checked false after click attr checked checked prop checked true is checked true Multi valued databases On many post relational or multi valued databases systems relative to SQL tables are files rows are items and columns are attributes Both in the database and code attribute is synonymous with property and variable although attributes can be further defined to contain values and subvalues The first of these databases was the Pick operating system Two current platforms include Rocket U2 s Universe and InterSystems Cache XML In XML an attribute is a markup construct consisting of a name value pair that exists within a start tag or empty element tag Markup languages such as HTML and XML use attributes to describe data and the formatting of data A good example is the process of XML assigning values to properties elements Note that the element s value is found before the separate end tag not in the element itself The element itself may have a number of attributes set NAME IAMAPROPERTY If the element in question could be considered a property CUSTOMER NAME of another entity let s say CUSTOMER the element can have zero or more attributes properties of its own CUSTOMER NAME is of TYPE KINDOFTEXT See alsoAttribute knowledge representation Attribute value pair File attribute Extended file attributes Field computer science Property programming Java annotation MetadataReferencesMossenbock Hanspeter 2002 03 25 Advanced C Variable Number of Parameters PDF Institut fur Systemsoftware Johannes Kepler Universitat Linz Fachbereich Informatik p 44 Retrieved 2011 08 08