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;
  }
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 ; }
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