Les plug-in de score personnalisés nécessitent une fonction de score.
score contient les paramètres suivants :
const int score(const char *thresholdStr, const uint thresholdSize, const char *inboundStr, const uint inboundSize, const char *candidateStr, const uint candidateSize, char *result, const uint resultSize);
<SCORE_RESULT> <MATCH_SCORE>integer 0-100</MATCH_SCORE> <CONFIRMATION>TRUE/FALSE</CONFIRMATION> </SCORE_RESULT>
<ERROR>texte d'erreur</ERROR>
Voici un exemple de pseudocode d'une fonction de score :
const int score(const char *thresholdStr, const uint thresholdSize, const char *inboundStr, const uint inboundSize, const char *candidateStr, const uint candidateSize, char *result, const uint resultSize) { //créer des chaînes à partir de thresholdStr, inboundStr et candidateStr //créer des documents XML à partir de thresholdStr, inboundStr et candidateStr //faire une analyse syntaxique des seuils à partir du doc XML de seuil en cas d'utilisation de seuils //faire une analyse syntaxique des valeurs à partir du doc XML entrant //faire une analyse syntaxique des valeurs à partir du doc XML candidat //rechercher des erreurs éventuelles, telles que des disparités de types attr, des données incorrectes, etc. //décoder les zones de données attr_value et attr_large_data si nécessaire //appliquer un algorithme de score aux données d'attribut //évaluer le score sur une plage de 0 à 100 //déterminer la concordance ou la discordance (éventuellement à l'aide de seuils) //en cas d'erreur, créer une chaîne d'erreur terminée NULL et //strcpy dans le résultat. Renvoyer -1. //s'il n'y a pas d'erreur, créer un document de résultat terminé NULL et strcpy dans //le résultat. Renvoyer 0. }
La fonction de score doit renvoyer -1 en cas d'erreur.