The message-driven element declares a message-driven
bean. The declaration consists of:

    - an optional description
    - an optional display name
    - an optional icon element that contains a small and a large
      icon file name.
    - a name assigned to the enterprise bean in
      the deployment descriptor
    - the message-driven bean's implementation class
    - an optional declaration of the bean's messaging
      type
    - the message-driven bean's transaction management type
    - an optional declaration of the bean's
      message-destination-type
    - an optional declaration of the bean's
      message-destination-link
    - an optional declaration of the message-driven bean's
      activation configuration properties
    - an optional declaration of the bean's environment
      entries
    - an optional declaration of the bean's EJB references
    - an optional declaration of the bean's local EJB
      references
    - an optional declaration of the bean's web service
      references
    - an optional declaration of the security
      identity to be used for the execution of the bean's
      methods
    - an optional declaration of the bean's
      resource manager connection factory
      references
    - an optional declaration of the bean's resource
      environment references.
    - an optional declaration of the bean's message
      destination references
