Frequently Asked Questions (FAQ)
General
   1. What is FXL?
Using the FXL Framework
   2. How can I execute pipelines in my Java program?
Using the FXL Eclipse Plugin
   3. What is a customizable transformation?

1. What is FXL?
The Flexible XML-based Languages (FXL) project provides a set of tools in order to support the creation of Domain Specific Languages (DSLs) and the transformation of XML-based models. In the case of Java, an XML-based model was created which can be used to perform inter- and intra-model transformations based on XSLT /TL and FXL pipelines. Using the FXL Eclipse Plugin reusable transformations can be created and stored in a library. Additionally, specific aspects of Oriented Programming (AOP), Model-Driven Software Development (MDSD) and generative Software Development can be realized.
2. How can I execute pipelines in my Java program?
The following code snippet shows how an execution of pipelines can be realized in your Java program.
 
/**
* <p>
* Executes a pipeline in the generator project
* </p>
*/

private static boolean executePipeline(IProject generatorProject, String pipeline) {

  // get pipe file
  IFile pipefile = generatorProject.getFile(pipeline);

  System.out.println(" Executing pipeline '" + pipeline + "'...");

  // create the pipeline abstraction
  final PipelineAbstraction pipelineAbstraction = new PipelineAbstraction(pipefile.getLocation().toString(),
  pipefile.getLocation().toString(), null, null, pipefile.getProject(),m_Validator);

  // init and start the pipeline (wait until 'finished')
  pipelineAbstraction.init(false);
  pipelineAbstraction.startPipeline(true);

  // successful?
  if (!pipelineAbstraction.getPipelineTask().getManager().isFailureState()) {
    pipelineAbstraction.writeTarget();
  }else{
    System.out.println(" Error executing the pipeline '" + pipeline + "'...");
  }
  // dispose abstraction
  pipelineAbstraction.dispose();

  // successful
  return true;
}

3.What is a customizable transformation?
A "customizeable transformation task" is a combination of a "merge task" and a "1:1 transformation". Within this task the document given to the "config" input is inserted into the "source" document. Afterwards the transformation which is specified via the "xtl/xsl" input is executed.