code: protected final XObject executeRelativePathPattern(
            XPathContext xctxt, DTM dtm, int currentNode)
              throws javax.xml.transform.TransformerException
    {
  
      XObject score = NodeTest.SCORE_NONE;
      int context = currentNode;
      DTMAxisTraverser traverser;
  
      traverser = dtm.getAxisTraverser(m_axis);
  
      for (int relative = traverser.first(context); DTM.NULL != relative;
              relative = traverser.next(context, relative))
      {
        try
        {
          xctxt.pushCurrentNode(relative);
  
          score = execute(xctxt);
  
          if (score != NodeTest.SCORE_NONE)
            break;
        }
        finally
        {
          xctxt.popCurrentNode();
        }
      }
  
      return score;
    }
docs: Execute the match pattern step relative to another step.
  
  
  @param xctxt The XPath runtime context.
  @param dtm The DTM of the current node.
  @param currentNode The current node context.
  
  @return {@link org.apache.xpath.patterns.NodeTest#SCORE_NODETEST},
  {@link org.apache.xpath.patterns.NodeTest#SCORE_NONE},
  {@link org.apache.xpath.patterns.NodeTest#SCORE_NSWILD},
  {@link org.apache.xpath.patterns.NodeTest#SCORE_QNAME}, or
  {@link org.apache.xpath.patterns.NodeTest#SCORE_OTHER}.
  
  @throws javax.xml.transform.TransformerException