code: public void configure(XmlParser.Node rootNode, Object obj, String xpath) throws XPathNotFoundException, XmlBeanException {
          // if xpath isn't null
          if (xpath != null) {
              // attempt to select a new rootNode using the xpath
              rootNode = XPath.select(rootNode, xpath);
  
              // if node is null, then this xpath wasn't found
              if (rootNode == null) {
                  throw new XPathNotFoundException("Xpath '" + xpath + "' not found from root node");
              }
          }
          // delegate to configure method
          configure(rootNode, obj);
      }
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
  @param xpath The xpath used to select a new "root" node when configuring
  the object. For example, "/nodeA/nodeB" would effectively configure
  the object starting as though nodeB was the root node. Set to null
  to ignore using the xpath.
  @throws com.cloudhopper.commons.xbean.XPathNotFoundException Thrown if the
  provided xpath isn't found in the xml document.
  @throws com.cloudhopper.commons.xbean.XmlBeanException Thrown if an exception
  occurs while configuring the object.