logger.trace("====================================================================================="); logger.trace("Before augment:"); decl.dump(); for (Input input : decl.inputs()) { if (!input.getPort().startsWith("|") && input.getPrimary()) { if (seenPrimaryDocument && !input.getParameterInput()) { error("At most one primary document input port is allowed", XProcConstants.staticError(30)); error("At most one primary parameter input port is allowed", XProcConstants.staticError(30)); for (Output output : decl.outputs()) { if (!output.getPort().endsWith("|") && output.getPrimary()) { if (seenPrimary) { error("At most one primary output port is allowed", XProcConstants.staticError(30)); decl.dump(); error("Declared step has no subpipeline, but is not known.", XProcConstants.staticError(100)); // FIXME! return; decl.augment(); decl.dump(); decl.setupEnvironment(); if (!decl.valid()) { if (debug) {
public PipelineLibrary useLibrary(XdmNode root) throws SaxonApiException { if (!XProcConstants.p_library.equals(root.getNodeName())) { throw new UnsupportedOperationException("Pipelines libraries must be p:library documents"); } if (declStack.isEmpty()) { topLevelImports.add(root.getBaseURI().toASCIIString()); } else { declStack.peek().addImport(root.getBaseURI().toASCIIString()); } return readLibrary(null, root); }
private void parseDeclareStepBodyPassTwo(DeclareStep step) { step.setBodyParsed(true); for (DeclareStep substep : step.getStepDeclarations()) { parseDeclareStepBodyPassTwo(substep); } Vector<XdmNode> rest = step.getXmlContent(); if (rest != null) { for (XdmNode substepNode : rest) { Step substep = readStep(step, substepNode); step.addStep(substep); } } }
DeclareStep step = new DeclareStep(runtime, node, stepName); step.setVersion(inheritedVersion(node)); step.addExtensionAttribute(attr); step.setDeclaredType(type); step.setPsviRequired(psviRequired); step.setXPathVersion(xpathVersion); for (String uri : parent.getExcludeInlineNamespaces()) { excludeURIs.add(uri); step.setExcludeInlineNamespaces(excludeURIs); input.setPrimary(true); input.setSequence(false); step.addInput(input); input.setPrimary(true); input.setSequence(true); step.addInput(input); output.setPrimary(true); output.setSequence(false); step.addOutput(output); step.setAtomic(rest == null); runtime.declareStep(step.getDeclaredType(), step);
if (step.subpipeline().size() == 0) { Step atomicReplacement = new Step(runtime, step.getNode(),step.getDeclaredType(),step.getName()); atomicReplacement.setDeclaration(step); DeclareStep pipeline = new DeclareStep(runtime, step.getNode(), wrapper); for (Input input : step.inputs()) { Input pInput = new Input(runtime, input.getNode()); pInput.setPort(input.getPort()); pInput.setSequence(input.getSequence()); pInput.setParameterInput(input.getParameterInput()); pipeline.addInput(pInput); for (Output output : step.outputs()) { Output pOutput = new Output(runtime, output.getNode()); pOutput.setPort(output.getPort()); pInput.setPort("|" + output.getPort()); pInput.setSequence(output.getSequence()); pipeline.addInput(pInput); pnb.setStep(step.getName()); pnb.setPort(output.getPort()); pInput.addBinding(pnb); pipeline.addOutput(pOutput); pipeline.addStep(atomicReplacement);
for (Input input : inputs()) { for (Binding binding : input.bindings) { if (binding.getBindingType() == Binding.PIPE_NAME_BINDING) { for (Option option : options()) { for (Binding binding : option.bindings) { if (binding.getBindingType() == Binding.PIPE_NAME_BINDING) { for (Parameter param : parameters()) { for (Binding binding : param.bindings) { if (binding.getBindingType() == Binding.PIPE_NAME_BINDING) { Output output = outputIter.next(); if (output.getPrimary()) { error("Unbound primary output: " + output, new QName("", "ERR")); valid = false;
DeclareStep declaration = instance.xpipe.getDeclareStep(); for (Input input : declaration.inputs()) { if (!input.getParameterInput()) { builder.withPort(XProcPortInfo.newInputPort( for (Output output : declaration.outputs()) { builder.withPort(XProcPortInfo.newOutputPort( output.getPort(), output.getSequence(), for (Option option : declaration.options()) { builder.withOption(new XProcOptionInfo(new QName(option .getName().getNamespaceURI(), option.getName()
public void addOutput(Output output) { if (this.output != null) { throw new XProcException(output.getNode(), "cx:until-unchanged can have only a single output port: " + output.getPort()); } if (!"#current".equals(output.getPort())) { this.output = output; } super.addOutput(output); }
DeclareStep step = new DeclareStep(runtime, node, stepName); step.setVersion(inheritedVersion(node)); step.addExtensionAttribute(attr); step.setDeclaredType(type); step.setPsviRequired(psviRequired); step.setXPathVersion(xpathVersion); for (String uri : parent.getExcludeInlineNamespaces()) { excludeURIs.add(uri); step.setExcludeInlineNamespaces(excludeURIs); input.setPrimary(true); input.setSequence(false); step.addInput(input); input.setPrimary(true); input.setSequence(true); step.addInput(input); output.setPrimary(true); output.setSequence(false); step.addOutput(output); step.setAtomic(rest == null); runtime.declareStep(step.getDeclaredType(), step);
if (step.subpipeline().size() == 0) { Step atomicReplacement = new Step(runtime, step.getNode(),step.getDeclaredType(),step.getName()); atomicReplacement.setDeclaration(step); DeclareStep pipeline = new DeclareStep(runtime, step.getNode(), wrapper); for (Input input : step.inputs()) { Input pInput = new Input(runtime, input.getNode()); pInput.setPort(input.getPort()); pInput.setSequence(input.getSequence()); pInput.setParameterInput(input.getParameterInput()); pipeline.addInput(pInput); for (Output output : step.outputs()) { Output pOutput = new Output(runtime, output.getNode()); pOutput.setPort(output.getPort()); pInput.setPort("|" + output.getPort()); pInput.setSequence(output.getSequence()); pipeline.addInput(pInput); pnb.setStep(step.getName()); pnb.setPort(output.getPort()); pInput.addBinding(pnb); pipeline.addOutput(pOutput); pipeline.addStep(atomicReplacement);
for (Input input : inputs()) { for (Binding binding : input.bindings) { if (binding.getBindingType() == Binding.PIPE_NAME_BINDING) { for (Option option : options()) { for (Binding binding : option.bindings) { if (binding.getBindingType() == Binding.PIPE_NAME_BINDING) { for (Parameter param : parameters()) { for (Binding binding : param.bindings) { if (binding.getBindingType() == Binding.PIPE_NAME_BINDING) { Output output = outputIter.next(); if (output.getPrimary()) { error("Unbound primary output: " + output, new QName("", "ERR")); valid = false;
public void addOutput(Output output) { if (this.output != null) { throw new XProcException(output.getNode(), "cx:until-unchanged can have only a single output port: " + output.getPort()); } if (!"#current".equals(output.getPort())) { this.output = output; } super.addOutput(output); }
logger.trace("====================================================================================="); logger.trace("Before augment:"); decl.dump(); for (Input input : decl.inputs()) { if (!input.getPort().startsWith("|") && input.getPrimary()) { if (seenPrimaryDocument && !input.getParameterInput()) { error("At most one primary document input port is allowed", XProcConstants.staticError(30)); error("At most one primary parameter input port is allowed", XProcConstants.staticError(30)); for (Output output : decl.outputs()) { if (!output.getPort().endsWith("|") && output.getPrimary()) { if (seenPrimary) { error("At most one primary output port is allowed", XProcConstants.staticError(30)); decl.dump(); error("Declared step has no subpipeline, but is not known.", XProcConstants.staticError(100)); // FIXME! return; decl.augment(); decl.dump(); decl.setupEnvironment(); if (!decl.valid()) { if (debug) {
private void parseDeclareStepBodyPassTwo(DeclareStep step) { step.setBodyParsed(true); for (DeclareStep substep : step.getStepDeclarations()) { parseDeclareStepBodyPassTwo(substep); } Vector<XdmNode> rest = step.getXmlContent(); if (rest != null) { for (XdmNode substepNode : rest) { Step substep = readStep(step, substepNode); step.addStep(substep); } } }
public PipelineLibrary useLibrary(XdmNode root) throws SaxonApiException { if (!XProcConstants.p_library.equals(root.getNodeName())) { throw new UnsupportedOperationException("Pipelines libraries must be p:library documents"); } if (declStack.isEmpty()) { topLevelImports.add(root.getBaseURI().toASCIIString()); } else { declStack.peek().addImport(root.getBaseURI().toASCIIString()); } return readLibrary(null, root); }