code: protected void internalStartValidation() {
  
          assert m_isNew : "A validation controller can only be used once!";
          m_isNew = false;
  
          m_validationOk = true;
          for (I_CmsFormField field : m_fields) {
              I_CmsFormField.ValidationStatus status = field.getValidationStatus();
              if (status == I_CmsFormField.ValidationStatus.unknown) {
                  I_CmsValidator validator = field.getValidator();
                  validator.validate(field, this);
                  m_validatedFields.add(field.getId());
              } else if (status == I_CmsFormField.ValidationStatus.invalid) {
                  m_validationOk = false;
              }
          }
          if (m_validationQueries.isEmpty()) {
              m_handler.onValidationFinished(m_validationOk);
              CmsValidationScheduler.get().executeNext();
          } else {
              if (m_formValidatorClass == null) {
                  startAsyncValidation();
              } else {
                  startAsyncValidation(m_formValidatorClass, m_formValidatorConfig);
              }
          }
      }
docs: Starts the validation.<p>