Please be aware that there can be a serious difference between AND & OR when you specify "where the x2 and/or x3 values" ... assuming OR for now. And, you seem to want to specify the columns by their header value, here x2 and x3 .
Try:
awk -vDISCR="x2=10;x3=10" '
NR == 1 {for (n = split (DISCR, TMP1, ";"); n>0; n--) {split (TMP1[n], TMP2, "=")
TMP3[TMP2[1]] = TMP2[2]
}
for (i=1; i<=NF; i++) if ($i in TMP3) THRSH = TMP3[$i]
}
{P = 1
for (i in THRSH) if ($i <= THRSH) P = 0
}
P
' file
x1 x2 x3 x4 x5
af 18 98 D 25
fe 75 55 P 15