

En informática , un atributo es una especificación que define una propiedad de un objeto , elemento o archivo. También puede hacer referencia o establecer el valor específico para una instancia dada de estos. Para mayor claridad, los atributos deberían considerarse más correctamente metadatos . Un atributo es con frecuencia y generalmente una propiedad de una propiedad. Sin embargo, en el uso real, el término atributo puede y a menudo se trata como equivalente a una propiedad dependiendo de la tecnología que se esté analizando. Un atributo de un objeto generalmente consta de un nombre y un valor. Para un elemento, estos pueden ser un nombre de tipo y clase, mientras que para un archivo pueden ser un nombre y una extensión, respectivamente.
Reglas y mecanografía
- Reglas: Cada atributo nombrado tiene un conjunto asociado de reglas llamadas operaciones : por ejemplo, no se suman caracteres ni se manipula y procesa una matriz de números enteros de la misma manera que se hace con un objeto de imagen. Tampoco se procesa el texto como si fuera un tipo de punto flotante ( números decimales ).
- Tipos de datos: De ello se deduce que una definición de objeto puede ampliarse imponiendo una tipificación de datos que puede consistir en un formato de representación, un valor predeterminado y operaciones legales (reglas) y restricciones (por ejemplo, "no se debe tolerar la división por cero"), todas ellas potencialmente involucradas en la definición de un atributo o, a la inversa, se pueden ver como atributos del tipo de ese objeto.
Los formatos de archivos de imágenes (por ejemplo, JPEG , PNG y BMP ) no se decodifican utilizando las mismas operaciones (por muy similares que parezcan las imágenes, todos son formatos de datos gráficos). De manera similar, un lenguaje de programación no utiliza las mismas operaciones para evaluar un número de punto flotante y enteros largos.
Por ejemplo, en gráficos de computadora, los objetos de línea pueden tener atributos como grosor (con valores reales), color (con valores descriptivos como marrón o verde o valores definidos en un modelo de color determinado, como RGB), atributos de trazos, etc. Un objeto de círculo se puede definir con atributos similares más un origen y un radio. En referencia a los sistemas informáticos, los atributos se definen particularmente para lectura o escritura, atributos para lectura o escritura específicas.
Uso de atributos
Si el elemento en cuestión pudiera considerarse una propiedad ( CUSTOMER_NAME) de otra entidad (digamos CUSTOMER), el elemento puede tener cero o más atributos (propiedades) propios ( CUSTOMER_NAMEes de TYPE = "KINDOFTEXT").
DO#
En el lenguaje de programación C# , los atributos son metadatos adjuntos a un campo o un bloque de código como ensamblajes , miembros y tipos , y son equivalentes a las anotaciones en Java . Los atributos son accesibles tanto para el compilador como programáticamente a través de la reflexión . Por el contrario, las propiedades, en la terminología de C#, son miembros de una clase que sintácticamente se utilizan como variables de instancia (o clase), pero se implementan como un par de funciones getter/setter. (En ausencia de un setter, las propiedades son de solo lectura).
Los usuarios del lenguaje ven muchos ejemplos en los que se utilizan atributos para abordar cuestiones transversales y otros usos mecanísticos o de plataforma, lo que crea la falsa impresión de que ese es su único propósito.
Su uso específico como metadatos queda en manos del desarrollador y puede abarcar una amplia gama de tipos de información sobre cualquier aplicación, clases y miembros que no sean específicos de la instancia. La decisión de exponer un atributo determinado como una propiedad también queda en manos del desarrollador, al igual que la decisión de utilizarlos como parte de un marco de aplicación más amplio.
Los atributos se implementan como clases derivadas de . A menudo, los utilizan los servicios CLR , como la interoperabilidad COM , la comunicación remota y la serialización , y se pueden consultar en tiempo de ejecución.
System.Attribute
El ejemplo muestra cómo se definen los atributos en C#:
[Obsolete("Use la clase C1 en su lugar", IsError = true)] // provoca un mensaje del compilador que dice public class C {...} // que C está obsoleto
public class ObsoleteAttribute : Attribute { // el nombre de la clase termina con "Attribute" public string Message { get ; } // pero se puede usar como "Obsolete" public bool IsError { get ; set ; } public ObsoleteAttribute () {...} public ObsoleteAttribute ( string msg ) {...} public ObsoleteAttribute ( string msg , bool error ) {...}}
[Obsoleto]
[Obsoleto("Esto es obsoleto")]
[Obsoleto("Esto es obsoleto", falso)]
[Obsoleto("Esto es obsoleto", IsError = falso)]
Los parámetros posicionales, como el primer parámetro del tipo cadena mencionado anteriormente, son parámetros del constructor del atributo. Los parámetros de nombre, como el parámetro booleano del ejemplo, son una propiedad del atributo y deben ser un valor constante. [1]
Los atributos deben contrastarse con la documentación XML que también define metadatos, pero no está incluida en el ensamblaje compilado y, por lo tanto, no se puede acceder a ella mediante programación.
HTML y JavaScript
Muestra el atributo y la propiedad marcados de una casilla de verificación a medida que cambian.
<!doctype html>
< html lang = "es" >
< head >
< body >
< input name = "comida" type = "comida" id = "comida" >
< meta charset = "utf-8" >
< title > attr demo </ title >
< style >
p { borde ; 1px negro sólido ; familia de fuentes ; arial, sans-serif ; alineación del texto al centro ; } b { color : azul ; } </ 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" > Compruébalo </ label >
< p >/ p >
< script >
$ ( "entrada" ) . cambio ( función () { var $entrada = $ ( this ); $ ( "p" ). html ( ". attr ( 'marcado' ): <b>" + $entrada . attr ( "marcado" ) + "</b><br>" + ". prop ( 'marcado' ): <b>" + $entrada . prop ( "marcado" ) + "</b><br>" + ". is ( ':marcado' ): <b>" + $entrada . is ( ":marcado" ) + "</b>" ); }) . cambio (); </ script > </ cuerpo > </ html >
antes de hacer clic
. attr ( 'marcado' ) : marcado . prop ( 'marcado' ) : falso . is ( ':marcado' ) : falso
Después de hacer clic
. attr ( 'marcado' ) : marcado . prop ( 'marcado' ) : verdadero . is ( ':marcado' ) : verdadero
Bases de datos multivalor
En muchos sistemas de bases de datos posrelacionales o multivalor , en relación con SQL, las tablas son archivos, las filas son elementos y las columnas son atributos. Tanto en la base de datos como en el código, atributo es sinónimo de propiedad y variable, aunque los atributos se pueden definir con más detalle para que contengan valores y subvalores.
La primera de estas bases de datos fue el sistema operativo Pick . Dos plataformas actuales son Universe de Rocket U2 y Caché de InterSystems .
XML
En XML , un atributo es una construcción de marcado que consiste en un par de nombre/valor que existe dentro de una etiqueta de inicio o una etiqueta de elemento vacío . Los lenguajes de marcado, como HTML y XML , utilizan atributos para describir datos y el formato de los mismos.
Un buen ejemplo es el proceso de XML que asigna valores a propiedades (elementos). Tenga en cuenta que el valor del elemento se encuentra antes de la etiqueta de cierre (separada), no en el elemento en sí. El elemento en sí puede tener una serie de atributos definidos ( NAME = "IAMAPROPERTY").
Si el elemento en cuestión pudiera considerarse una propiedad ( CUSTOMER_NAME) de otra entidad (digamos CUSTOMER), el elemento puede tener cero o más atributos (propiedades) propios ( CUSTOMER_NAMEes de TYPE = "KINDOFTEXT").
Véase también
- Atributo (representación del conocimiento)
- Par atributo-valor
- Atributo de archivo
- Atributos de archivo extendidos
- Campo (ciencia informática)
- Propiedad (programación)
- Anotación de Java
- Metadatos
Referencias
- ^ Mössenböck, Hanspeter (25 de marzo de 2002). "C# avanzado: número variable de parámetros" (PDF) . Institut für Systemsoftware, Johannes Kepler Universität Linz, Fachbereich Informatik. pag. 44 . Consultado el 8 de agosto de 2011 .