code: public void configure(XmlParser.Node rootNode, Object obj) throws XmlBeanException {
          // root node doesn't matter -- unless we're going to validate its name
          if (this.rootTag != null) {
              if (!this.rootTag.equals(rootNode.getTag())) {
                  throw new RootTagMismatchException("Root tag mismatch [expected=" + this.rootTag + ", actual=" + rootNode.getTag() + "]");
              }
          }
  
          // were any attributes included in the root?
          if (rootNode.hasAttributes()) {
              throw new PropertyNoAttributesExpectedException("[root node]", rootNode.getPath(), obj.getClass(), "No xml attributes expected for root node");
          }
  
          // create a hashmap to track properties
          HashMap<String,String> properties = new HashMap<String,String>();
  
          doConfigure(rootNode, obj, properties, true, null);
      }
docs: Configures the object by setting the value of its properties with the
  values from the xml document.  Each element of the xml document represents
  a named property of the object.  For example, if "setFirstName" is a property
  of the object, then an element of "<firstName>Joe</firstName>" would set
  that value to "Joe".
  @param rootNode The root node of the xml document
  @param obj The object to configure
  @throws com.cloudhopper.commons.xbean.XmlBeanException Thrown if an exception
  occurs while configuring the object.