The Bean Markup Language (BML) was released by the IBM alphaWorks lab in conjunction with several other XML tools and technologies at the XML '98 Conference, November 1998. BML and the other software tools were distributed on CDROM, and are available for download as well. Written in Java for all Java platforms, BML is "an XML-based component configuration or wiring language customized for the JavaBean component model. The language is designed to be directly executable; i.e., processing a BML script will result in a running application configured as described in the script. The BML language can be used to create new beans, access, and configure beans by setting/getting their properties and fields, bind events from some beans to other beans, and call arbitrary methods in beans."
The developers of the Bean Markup Language have provided two implementations of BML: "the first is an interpreter that 'plays' a BML script to create the desired bean hierarchy (which is then a running application). This is implemented using reflection and is very small approximately a 35K jar file (without class compression). The second implementation is a compiler that compiles any BML script into reflection-free Java code. The advantage of this is that it allows one to capture the inter-component structure of the application using a first-class language designed for that purpose and yet be able to compile it into 'regular' Java code with basically no performance loss."
"The motivation for BML came from wanting to use XSL to generate Java user interfaces from some XML content. [The designers] needed a way to describe the beans they wanted to create to form the UI, and BML was born. BML has now evolved to being a wiring language to wire together totally arbitrary beans, not just visual components. There are no assumptions made about the nature of the beans in any way. Application generation via XSL still remains as a major use of BML. This allows one to generate (from a server say) a Java application instead of an HTML application in response to a query against the server for some XML content."
Contributors to BML include Sanjiva Weerawarana, Matthew J. Duftler, Francisco Curbera, Joseph Kesselman, Richard F. Boehme, Rania Khalaf, and David A. Epstein.
"Bean Markup Language: Using XML to Dynamically Construct, Configure, and Augment Java." By David A. Epstein (IBM)
BML Version 2.1 (updated on 1999-03-15) provides for a new "non-terminated license agreement".
- See also: The Koala Bean Markup Language (KBML)