/** Corresponds to <element name="nativeExecutable"> */ private Element createNativeExecutableElement(Document doc, NativeTask t) { Element nativeExecE = doc.createElementNS( Schemas.SCHEMA_LATEST.namespace, XMLTags.NATIVE_EXECUTABLE.getXMLName()); // <choice> // <ref name="staticCommand"/> // <ref name="dynamicCommand"/> // </choice> String[] cmd = t.getCommandLine(); if (cmd != null && cmd.length > 0) { // <element name="staticCommand"> Element staticCmdE = doc.createElementNS( Schemas.SCHEMA_LATEST.namespace, XMLTags.NATIVE_TASK_STATIC_COMMAND.getXMLName()); setAttribute(staticCmdE, XMLAttributes.TASK_COMMAND_VALUE, cmd[0], true); // <ref name="commandArguments"/> if (cmd.length > 1) { // <element name="arguments"> Element argsE = doc.createElementNS( Schemas.SCHEMA_LATEST.namespace, XMLTags.NATIVE_TASK_ARGUMENTS.getXMLName()); for (int i = 1; i < cmd.length; i++) { // <element name="argument"> Element argE = doc.createElementNS( Schemas.SCHEMA_LATEST.namespace, XMLTags.NATIVE_TASK_ARGUMENT.getXMLName()); setAttribute(argE, XMLAttributes.COMMON_VALUE, cmd[i], true); argsE.appendChild(argE); } staticCmdE.appendChild(argsE); } nativeExecE.appendChild(staticCmdE); } else { logger.error("The task " + t.getName() + " does not define a command"); } return nativeExecE; }