protected void buildValidationRules(Element datatypeElement, AbstractDatatype datatype, DatatypeManager datatypeManager) throws Exception {
Element validationElement = DomHelper.getChildElement(datatypeElement, Constants.WD_NS, "validation");
if (validationElement != null) {
Element[] validationElements = DomHelper.getChildElements(validationElement, Constants.WD_NS);
for (int i = 0; i < validationElements.length; i++) {
ValidationRule rule = datatypeManager.createValidationRule(validationElements[i]);
if (rule.supportsType(datatype.getTypeClass(), datatype.isArrayType())) {
datatype.addValidationRule(rule);
} else {
throw new Exception("Validation rule \"" + validationElements[i].getLocalName() + "\" cannot be used with strings, error at " + DomHelper.getLocation(validationElements[i]));
}
}