code: @Nonnull
    public static ValidationExecutorSet createDerived (@Nonnull final IValidationExecutorSet aBaseVES,
                                                       @Nonnull final VESID aID,
                                                       @Nonnull @Nonempty final String sDisplayName,
                                                       final boolean bIsDeprecated,
                                                       @Nonnull final IValidationExecutor... aValidationExecutors)
    {
      ValueEnforcer.notNull (aBaseVES, "BaseVES");
      ValueEnforcer.notNull (aID, "ID");
      ValueEnforcer.notEmpty (sDisplayName, "DisplayName");
      ValueEnforcer.notEmptyNoNullValue (aValidationExecutors, "ValidationExecutors");
  
      final ValidationExecutorSet ret = new ValidationExecutorSet (aID,
                                                                   sDisplayName,
                                                                   bIsDeprecated || aBaseVES.isDeprecated ());
  
      // Copy all existing ones
      for (final IValidationExecutor aVE : aBaseVES)
        ret.addExecutor (aVE);
  
      // Add Schematrons
      for (final IValidationExecutor aVE : aValidationExecutors)
        ret.addExecutor (aVE);
  
      return ret;
    }
docs: Create a derived VES from an existing VES. This means that only Schematrons
  can be added, but the XSDs are taken from the base VES only.
  
  @param aBaseVES
  The base VES to copy from. May not be <code>null</code>.
  @param aID
  The ID to use. May not be <code>null</code>.
  @param sDisplayName
  The name of the VES. May neither be <code>null</code> nor empty.
  @param bIsDeprecated
  <code>true</code> if this VES is considered deprecated,
  <code>false</code> if not.
  @param aValidationExecutors
  The resources to be associated with the VES. May not be
  <code>null</code>.
  @return The newly created VES. Never <code>null</code>.