Command line arguments of program GUIEditor:

-p project_file | -v [switches] | [-c [switches] | -g [xml source] [switches]
where:
-p Project file
-v Compile X-definition and run validation mode
-c Compile X-definition and run construction mode
-g Generate X-definition and project from input data (see switch -data).
Switches:
-xdef Source with X-definition (input file or data; it may be specified more times)
-external List of classpath items with external resources (may be filenames or urls).
-format Format of processed data ("XML" or "JSON"; default is XML)
-data Source (input file or data used for validation mode and as the context for construction mode or for generation of X-definition).
-debug Set debugging mode when project is executed
-editInput Enable to edit input data before execution
-displayResult Display result data
-workDir Directory where store created data. This switch is optional. If not specified the work directory is created and deleted on exit.

X-definition of XDefGUI project description file

<xd:def xmlns:xd="http://www.xdef.org/xdef/4.1" root="Project" name="GUI">
  <Project
    Show="? enum('true','false'); /*if true file with project is displayed and editable.*/">

    <xd:mixed>
<!-- "XDefinition" - items with the sources of X-definitions -->
      <XDefinition xd:script="+">
        string(); /*this can be a file, url or XML with X-definition source*/
      </XDefinition>

<!-- "External" - items to be added to the classpath -->
      <External xd:script="*">
        file() || url(); /*classpath item (url or pathname)*/
      </External>

<!-- "Property" items are used to set properties for compiling and executing the project -->
      <Property xd:script="*"
        Name="string();  /*property name*/"
        Value="string(); /*property value*/" />

<!-- "Execute" items are used to specify the compiled XDPool is executed
     according to the specified parameters -->
      <Execute xd:script="*;"
        XDName="? string(1, 1000); /*name of root X-definition (may be missing)*/"
        DataType="? enum('XML', 'JSON', 'INI'); /*type of processed data*/"
        Mode="? enum('construct', 'validate'); /*mode of process*/"
        DisplayResult="? enum('true', 'false');/*if true the result of process is displayed*/" >

        <xd:mixed>
<!-- "Var" items are used to set variables to the X-definition processor -->
          <Var xd:script="*" Name="string(); /*name of variable*/">
            string(); /*value of variable*/
          </Var>

<!-- "Context" item is used to specify a context in the construction mode. -->
          <Context xd:script="?"
            Edit="? enum('true', 'false'); /*if true the context can be edited*/" >
            string(); /*the file or XML data used as a context*/
          </Context>

<!-- "Input" item is used to specify the input data in the validation mode. -->
          <Input xd:script="?"
            Edit="? enum('true', 'false'); /*if true the input data can be edited*/">
            string(); /*file with data*/
          </Input>

<!-- "SaveResult" item is used to specify if the result saved to the specified file. -->
          <SaveResult xd:script="?"
            Indent="? enum('true', 'false'); /*if true the result is indented*/"
            Encoding="? string(); /*name of char encoding*/"
            File="file(); /*where to store result of process*/" />
        </xd:mixed>
      </Execute>
<!-- "WorkDir" item is used to specify the directory where are stored
    the temporary files. If it is not specified a working directory
    is created and deleted on exit of GUI editor. -->
      <WorkDir xd:script="?;">
          file(); /*Directory where to store temporary data.*/
      </WorkDir>
    </xd:mixed>
  </Project>
</xd:def>