MatchContext newContext = new MatchContext();
if (mc.elementArcs != null) {
for (PathMapArc arc : mc.elementArcs) {
AxisExpression ae = arc.getStep();
NodeTest test = ae.getNodeTest();
if (test == null || test.matches(Type.ELEMENT, nameCode, typeCode)) {
newContext.bulidContext(arc.getTarget());
newContext.matchedElement = true;
}
if (ae.getAxis() == Axis.DESCENDANT || ae.getAxis() == Axis.DESCENDANT_OR_SELF) {
newContext.processArc(arc);