protected void handleHierInfo(JRXmlaResultAxis axis, SOAPElement hierInfoElement)
      throws SOAPException {
    Name name = sf.createName("name");
    String dimName = hierInfoElement.getAttributeValue(name); // Get the Dimension Name

    JRXmlaHierarchy hier = new JRXmlaHierarchy(dimName);
    axis.addHierarchy(hier);
  }
  protected void handleTupleElement(JRXmlaResultAxis axis, SOAPElement tupleElement)
      throws SOAPException {
    JRXmlaMemberTuple tuple = new JRXmlaMemberTuple(axis.getHierarchiesOnAxis().length);

    Name memName = sf.createName("Member", "", MDD_URI);
    Iterator itMember = tupleElement.getChildElements(memName);
    int memNum = 0;
    while (itMember.hasNext()) {
      SOAPElement memElement = (SOAPElement) itMember.next();

      Name name = sf.createName("Hierarchy", "", "");
      String hierName = memElement.getAttributeValue(name);

      String uName = "";
      Iterator uNameElements = memElement.getChildElements(sf.createName("UName", "", MDD_URI));
      if (uNameElements.hasNext()) {
        uName = ((SOAPElement) uNameElements.next()).getValue();
      }
      String caption = "";
      Iterator captionElements = memElement.getChildElements(sf.createName("Caption", "", MDD_URI));
      if (captionElements.hasNext()) {
        caption = ((SOAPElement) captionElements.next()).getValue();
      }
      String lName = "";
      Iterator lNameElements = memElement.getChildElements(sf.createName("LName", "", MDD_URI));
      if (lNameElements.hasNext()) {
        String levelUniqueName = ((SOAPElement) lNameElements.next()).getValue();
        Matcher matcher = LEVEL_UNIQUE_NAME_PATTERN.matcher(levelUniqueName);
        if (matcher.matches()) {
          lName = matcher.group(LEVEL_UNIQUE_NAME_PATTERN_NAME_GROUP);
        }
      }

      int lNum = 0;
      Iterator lNumElements = memElement.getChildElements(sf.createName("LNum", "", MDD_URI));
      if (lNumElements.hasNext()) {
        lNum = Integer.parseInt(((SOAPElement) lNumElements.next()).getValue());
      }
      JRXmlaMember member = new JRXmlaMember(caption, uName, hierName, lName, lNum);
      tuple.setMember(memNum++, member);
    }

    axis.addTuple(tuple);
  }