跳到主要内容

4.1. 一般注意事项 (General Considerations)

匹配规则 (matching rule) 通过 AttributeValueAssertion 或 MatchingRuleAssertion [RFC4511] 应用于属性值. AttributeValueAssertion 或 MatchingRuleAssertion 何时求值为 Undefined 的条件在其他位置规定 [RFC4511]. 如果断言 (assertion) 不是 Undefined, 则断言结果就是应用所选匹配规则的结果. 匹配规则会按照其说明中规定的方式求值为 TRUE, 在某些情况下求值为 Undefined; 否则求值为 FALSE.

每个断言都包含一个断言值 (assertion value). 每个匹配规则的定义都会规定断言值的语法. 断言值的语法通常, 但不一定, 与该匹配规则可应用到的属性值语法相同. 注意, SubstringFilter [RFC4511] 中的 AssertionValue 符合该属性类型的相等匹配规则 (equality matching rule) 的断言语法, 而不是该属性类型的子串匹配规则 (substrings matching rule) 的断言语法. 从概念上讲, 在应用规则之前, 整个 SubstringFilter 会被转换为子串匹配规则的一个断言值.

每个匹配规则的定义通过规定候选属性语法对应的 ASN.1 类型必须满足的条件, 指明该规则可应用到哪些属性语法. 如果对应的 ASN.1 类型是规则说明中明确提到的 ASN.1 类型的带标签派生类型或受约束派生类型 (即, 检查适用性时忽略 ASN.1 标签和约束), 或者是明确提到的类型的另一种引用记法, 这些条件也视为满足. 每条规则说明都会列出本文档中该匹配规则适用的完整语法列表, 作为适用属性语法的示例. 如果其他文档中定义的额外语法满足对应 ASN.1 类型上的条件, 匹配规则也可以适用于这些语法.

每个匹配规则的说明都会指出, 该规则是否适合在属性类型定义 [RFC4512] 中用作相等匹配规则 (EQUALITY),排序匹配规则 (ORDERING) 或子串匹配规则 (SUBSTR).

每个匹配规则都由一个对象标识符 (object identifier) 唯一标识. 匹配规则的定义之后不应再更改. 如果确实需要更改, 则应改为定义一个具有不同对象标识符的新匹配规则.

服务器可以实现 wordMatch 和 keywordMatch 匹配规则, 但应该实现第 4.2 节中的其他匹配规则. 服务器可以实现额外的匹配规则.

实现 extensibleMatch 过滤器的服务器应该允许在 extensibleMatch 过滤器中使用第 4.2 节列出的匹配规则, 并且当匹配规则的断言语法与属性的值语法相同时, 应该允许匹配规则与服务器已知的所有属性类型一起使用.

服务器必须在 matchingRules 属性中发布匹配规则定义, 这些匹配规则由同一 subschema entry 中 attributeTypes 和 matchingRuleUse 属性的值引用. 其他未被引用的匹配规则可以发布在 matchingRules 属性中.

如果服务器支持 extensibleMatch 过滤器, 则服务器可以使用 matchingRuleUse 属性指明所选匹配规则对指定属性类型的适用性 (在 extensibleMatch 过滤器中).