code: @Override
      public final void startElement(final String ns, final String lName,
              final String qName, final Attributes list) throws SAXException {
          // the actual element name is either in lName or qName, depending
          // on whether the parser is namespace aware
          String name = lName == null || lName.length() == 0 ? qName : lName;
  
          // Compute the current matching rule
          StringBuffer sb = new StringBuffer(match);
          if (match.length() > 0) {
              sb.append('/');
          }
          sb.append(name);
          match = sb.toString();
  
          // Fire "begin" events for all relevant rules
          Rule r = (Rule) RULES.match(match);
          if (r != null) {
              r.begin(name, list);
          }
      }
docs: Process notification of the start of an XML element being reached.
  
  @param ns
  - The Namespace URI, or the empty string if the element has no
  Namespace URI or if Namespace processing is not being
  performed.
  @param lName
  - The local name (without prefix), or the empty string if
  Namespace processing is not being performed.
  @param qName
  - The qualified name (with prefix), or the empty string if
  qualified names are not available.
  @param list
  - The attributes attached to the element. If there are no
  attributes, it shall be an empty Attributes object.
  @exception SAXException
  if a parsing error is to be reported