# 属性名称

> 原文： [https://docs.oracle.com/javase/tutorial/jndi/ops/attrnames.html](https://docs.oracle.com/javase/tutorial/jndi/ops/attrnames.html)

属性由 _ 属性标识符 _ 和一组 _ 属性值 _ 组成。 _ 属性标识符 _，也称为 _ 属性名称 _，是标识属性的字符串。 _ 属性值 _ 是属性的内容，其类型不限于字符串的内容。如果要为检索，搜索或修改指定特定属性，请使用属性名称。返回属性的操作也会返回名称（例如，在目录中执行读取或搜索时）。

使用属性名称时，您需要了解某些目录服务器功能，以免您对结果感到惊讶。这些功能将在下一小节中介绍。

## 属性类型

在诸如 LDAP 之类的目录中，属性的名称标识属性的类型，并且通常称为 _ 属性类型名称 _。例如，属性名称`“cn”`也称为属性类型名称。属性的类型定义指定属性的值将具有的语法，是否可以具有多个值，以及在对属性的值执行比较和排序操作时使用的相等和排序规则。

## 属性子类

一些目录实现支持 _ 属性子类化 _，其中服务器允许根据其他属性类型定义属性类型。例如，`“name”`属性可能是所有与名称相关的属性的超类：`“commonName”`可能是`“name”`的子类。对于支持此功能的目录实现，要求`“name”`属性可能会返回`“commonName”`属性。

访问支持属性子类化的目录时，您必须知道服务器可能返回名称与您请求的名称不同的属性。为了尽量减少这种可能性，请使用派生最多的子类。

## 属性名称同义词

某些目录实现支持属性名称的同义词。例如，`“cn”`可能是`“commonName”`的同义词。因此，对`“cn”`属性的请求可能返回`“commonName”`属性。

访问支持属性名称同义词的目录时，您必须知道服务器可能返回名称与您请求的名称不同的属性。为了防止这种情况发生，请使用规范属性名称而不是其同义词之一。 _ 规范属性名称 _ 是属性定义中使用的名称;同义词是在其定义中引用规范属性名称的名称。

## 语言偏好

LDAP v3 的扩展（ [RFC 2596](http://www.ietf.org/rfc/rfc2596.txt) ）允许您指定语言代码以及属性名称。这类似于属性子类，因为一个属性名称可以表示几个不同的属性。一个例子是`“描述”`属性，它有两种语言变体：

```
description: software
description;lang-en: software products
description;lang-de: Softwareprodukte

```

对`“描述”`属性的请求将返回所有三个属性。

访问支持此功能的目录时，您必须知道服务器可能会返回名称与您请求的名称不同的属性。