code: public void endElement(String uri, String name, String qName)
      {
          boolean isDebug = logger.isDebugEnabled();
          try
          {
              switch (getLiteralId(qName))
              {
                  case MAPPING_REPOSITORY:
                      {
                          currentAttributeContainer = null;
                          break;
                      }
                  case CLASS_DESCRIPTOR:
                      {
                          currentAttributeContainer = null;
                          break;
                      }
                  case JDBC_CONNECTION_DESCRIPTOR:
                      {
                          logger.debug("   < " + tags.getTagById(JDBC_CONNECTION_DESCRIPTOR));
                          m_CurrentJCD = null;
                          currentAttributeContainer = null;
                          break;
                      }
                  case CONNECTION_POOL:
                      {
                          logger.debug("   < " + tags.getTagById(CONNECTION_POOL));
                          currentAttributeContainer = m_CurrentJCD;
                          break;
                      }
                  case SEQUENCE_MANAGER:
                      {
                          if (isDebug) logger.debug("    < " + tags.getTagById(SEQUENCE_MANAGER));
                          // set to null at the end of the tag!!
                          this.currentSequenceDescriptor = null;
                          currentAttributeContainer = m_CurrentJCD;
                          break;
                      }
                  case OBJECT_CACHE:
                      {
                          if(currentAttributeContainer != null)
                          {
                              if (isDebug) logger.debug("    < " + tags.getTagById(OBJECT_CACHE));
                              // set to null or previous element level at the end of the tag!!
                              currentAttributeContainer = m_CurrentJCD;
                          }
                          break;
                      }
                  case ATTRIBUTE:
                      {
                          if(currentAttributeContainer != null)
                          {
                              if (isDebug) logger.debug("      < " + tags.getTagById(ATTRIBUTE));
                          }
                          break;
                      }
                  default :
                      {
                          // noop
                      }
              }
          }
          catch (Exception ex)
          {
              logger.error(ex);
              throw new PersistenceBrokerException(ex);
          }
      }
docs: endElement callback. most elements are build up from here.