//The getRootTag method used above already makes sure that the root
//tag name matches the tag name in the tag-path's first token, and
//returns null if not, therefor we can safely start the iteration
//at index 1 rather than 0 (where 0 is the root tag's expression).
//
XmlTag context = ensureRootTag();
final String[] pathTokens = getPathTokens();
for (int i = 1; i < pathTokens.length; i++) {
final XmlFilterExpression expr =
XmlFilterExpression.create(pathTokens[i]);
XmlTag child = expr.findChildTag(context);
if (child == null) {
child = context.createChildTag(
expr.getTagName(),
context.getNamespace(),
null,