4.1. Considerazioni generali
Una regola di corrispondenza (matching rule) viene applicata ai valori degli attributi tramite un'asserzione AttributeValueAssertion o MatchingRuleAssertion [RFC4511]. Le condizioni in cui un'asserzione AttributeValueAssertion o MatchingRuleAssertion viene valutata come Undefined sono specificate altrove [RFC4511]. Se un'asserzione non è Undefined, il risultato dell'asserzione è il risultato dell'applicazione della regola di corrispondenza selezionata. Una regola di corrispondenza restituisce TRUE e, in alcuni casi, Undefined, come specificato nella descrizione della regola di corrispondenza; altrimenti, restituisce FALSE.
Ogni asserzione contiene un valore di asserzione. La definizione di ciascuna regola di corrispondenza specifica la sintassi per il valore di asserzione. La sintassi del valore di asserzione è tipicamente, ma non necessariamente, la stessa della sintassi dei valori degli attributi a cui la regola di corrispondenza può essere applicata. Si noti che un AssertionValue in un SubstringFilter [RFC4511] è conforme alla sintassi dell'asserzione della regola di corrispondenza di uguaglianza per il tipo di attributo piuttosto che alla sintassi dell'asserzione della regola di corrispondenza di sottostringhe per il tipo di attributo. Concettualmente, l'intero SubstringFilter viene convertito in un valore di asserzione della regola di corrispondenza di sottostringhe prima dell'applicazione della regola.
La definizione di ciascuna regola di corrispondenza indica le sintassi degli attributi a cui la regola può essere applicata, specificando le condizioni che il tipo ASN.1 corrispondente di una sintassi di attributo candidata deve soddisfare. Queste condizioni sono soddisfatte anche se il tipo ASN.1 corrispondente è una derivazione etichettata o vincolata del tipo ASN.1 menzionato esplicitamente nella descrizione della regola (ovvero, i tag e i vincoli ASN.1 vengono ignorati nel controllo dell'applicabilità) o è una notazione di riferimento alternativa per il tipo menzionato esplicitamente. Ciascuna descrizione della regola elenca, come esempi di sintassi degli attributi applicabili, l'elenco completo delle sintassi definite in questo documento a cui si applica la regola di corrispondenza. Una regola di corrispondenza può essere applicabile a sintassi aggiuntive definite in altri documenti se tali sintassi soddisfano le condizioni sul tipo ASN.1 corrispondente.
La descrizione di ciascuna regola di corrispondenza indica se la regola è adatta per essere utilizzata come regola di corrispondenza di uguaglianza (EQUALITY), regola di corrispondenza di ordinamento (ORDERING) o regola di corrispondenza di sottostringhe (SUBSTR) in una definizione di tipo di attributo [RFC4512].
Ogni regola di corrispondenza è identificata in modo univoco da un identificatore di oggetto. La definizione di una regola di corrispondenza non dovrebbe essere modificata successivamente. Se una modifica è desiderabile, dovrebbe essere definita invece una nuova regola di corrispondenza con un identificatore di oggetto diverso.
I server POSSONO implementare le regole di corrispondenza wordMatch e keywordMatch, ma DOVREBBERO implementare le altre regole di corrispondenza nella Sezione 4.2. I server POSSONO implementare regole di corrispondenza aggiuntive.
I server che implementano il filtro extensibleMatch DOVREBBERO consentire l'utilizzo delle regole di corrispondenza elencate nella Sezione 4.2 nel filtro extensibleMatch e DOVREBBERO consentire l'utilizzo delle regole di corrispondenza con tutti i tipi di attributi noti al server, in cui la sintassi dell'asserzione della regola di corrispondenza è la stessa della sintassi del valore dell'attributo.
I server DEVONO pubblicare, nell'attributo matchingRules, le definizioni delle regole di corrispondenza a cui fanno riferimento i valori degli attributi attributeTypes e matchingRuleUse nella stessa voce di sottoschema. Altre regole di corrispondenza non referenziate POSSONO essere pubblicate nell'attributo matchingRules.
Se il server supporta il filtro extensibleMatch, ALLORA il server PUÒ utilizzare l'attributo matchingRuleUse per indicare l'applicabilità (in un filtro extensibleMatch) delle regole di corrispondenza selezionate ai tipi di attributi designati.