docs: private void checkPrimitiveBinding(List<ValidationMessage> errors, String path, String type, ElementDefinition elementContext, Element element, StructureDefinition profile) {
  		if (!element.hasPrimitiveValue())
  			return;
  
  		String value = element.primitiveValue();
  		// System.out.println("check "+value+" in "+path);
  
  		// firstly, resolve the value set
  		ElementDefinitionBindingComponent binding = elementContext.getBinding();
  		if (binding.hasValueSet() && binding.getValueSet() instanceof Reference) {
  			ValueSet vs = resolveBindingReference(profile, binding.getValueSet());
  			if (warning(errors, IssueType.CODEINVALID, element.line(), element.col(), path, vs != null, "ValueSet {0} not found", describeReference(binding.getValueSet()))) {
  				long t = System.nanoTime();
  				ValidationResult vr = context.validateCode(null, value, null, vs);
  				txTime = txTime + (System.nanoTime() - t);
  				if (vr != null && !vr.isOk()) {
  					if (binding.getStrength() == BindingStrength.REQUIRED)
  						rule(errors, IssueType.CODEINVALID, element.line(), element.col(), path, false, "The value provided ('"+value+"') is not in the value set " + describeReference(binding.getValueSet()) + " (" + vs.getUrl() + ", and a code is required from this value set");
  					else if (binding.getStrength() == BindingStrength.EXTENSIBLE)
  						warning(errors, IssueType.CODEINVALID, element.line(), element.col(), path, false, "The value provided ('"+value+"') is not in the value set " + describeReference(binding.getValueSet()) + " (" + vs.getUrl() + ", and a code should come from this value set unless it has no suitable code");
  					else if (binding.getStrength() == BindingStrength.PREFERRED)
  						hint(errors, IssueType.CODEINVALID, element.line(), element.col(), path, false,  "The value provided ('"+value+"') is not in the value set " + describeReference(binding.getValueSet()) + " (" + vs.getUrl() + ", and a code is recommended to come from this value set");
  				}
  			}
  		} else
  			hint(errors, IssueType.CODEINVALID, element.line(), element.col(), path, !type.equals("code"), "Binding has no source, so can't be checked");
  	}