docs: private void validateAnswerCode(List<ValidationMessage> errors, Element value, NodeStack stack, Questionnaire qSrc, Reference ref, boolean theOpenChoice) {
  		ValueSet vs = resolveBindingReference(qSrc, ref);
  		if (warning(errors, IssueType.CODEINVALID, value.line(), value.col(), stack.getLiteralPath(), vs != null, "ValueSet " + describeReference(ref) + " not found"))  {
  			try {
  				Coding c = readAsCoding(value);
  				if (isBlank(c.getCode()) && isBlank(c.getSystem()) && isNotBlank(c.getDisplay())) {
  					if (theOpenChoice) {
  						return;
  					}
  				}
  
  				long t = System.nanoTime();
  				ValidationResult res = context.validateCode(c, vs);
  				txTime = txTime + (System.nanoTime() - t);
  				if (!res.isOk())
  					rule(errors, IssueType.CODEINVALID, value.line(), value.col(), stack.getLiteralPath(), false, "The value provided ("+c.getSystem()+"::"+c.getCode()+") is not in the options value set in the questionnaire");
  			} catch (Exception e) {
  				warning(errors, IssueType.CODEINVALID, value.line(), value.col(), stack.getLiteralPath(), false, "Error " + e.getMessage() + " validating Coding against Questionnaire Options");
  			}
  		}
  	}