In ca.uhn.hl7v2.model.v231.datatype.XON we can read
private void init() {
data = new Type[9];
data[0] = new ST(getMessage());
data[1] = new IS(getMessage(), 0);
data[2] = new NM(getMessage());
data[3] = new ST(getMessage());
data[4] = new ID(getMessage(), 0);
data[5] = new HD(getMessage());
data[6] = new IS(getMessage(), 0);
data[7] = new HD(getMessage());
data[8] = new ID(getMessage(), 0);
}
but in HL7 standard, XON-4 is said to be of type NM; as a consequence, the validation of this datatype is not accurate