checkAttributes(node, new String[] { "name" }, false);
String stepName = checkNCName(node.getAttributeValue(_name));
UntilUnchanged step = new UntilUnchanged(runtime, node, stepName);
checkExtensionAttributes(node, step);
step.setParentDecl((DeclareStep) parent);
step.parent = parent;
Vector<XdmNode> rest = readSignature(step);
if (rest == null) {
throw XProcException.staticError(15, node, "A cx:until-unchanged must contain a subpipeline.");
}
for (XdmNode substepNode : rest) {
Step substep = readStep(step, substepNode);
step.addStep(substep);
}
step.checkPrimaryIO();
return step;
}