<?xml version="1.0" encoding="UTF-8"?>
<XternalApps:tool xmlns:my="http://github.com/jsmaniac/XternalApps/myTool" xmlns:XternalApps="http://github.com/jsmaniac/XternalApps/v1" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <XternalApps:name>Fractalize</XternalApps:name>
  <XternalApps:tooltip></XternalApps:tooltip>
  <XternalApps:icon>MyTool.svg</XternalApps:icon>
  <XternalApps:extended-description>
  </XternalApps:extended-description>
  <!-- Internal model and default values follow: -->
  <xforms:model>
    <xforms:instance>
      <my:tool>
        <my:svgfile filename="" />
        <my:option1>default value</my:option1>
        <my:option2/>
        <my:option3>bar</my:option3>
      </my:tool>
    </xforms:instance>
    <!-- to get a filename on the command-line, use:
      <xforms:bind ref="my:svgfile" type="xsd:anyURI" required="true()"/>
    -->
    <!-- use XternalApps:pipe to have the file piped directly into the command being run -->
    <xforms:bind ref="my:svgfile" type="mime:image/svg+xml" required="true()"/>
    <xforms:bind ref="my:option1" type="xsd:string" required="true()"/>
    <xforms:bind ref="my:option2" type="xsd:decimal" required="true()"/>
    <xforms:bind ref="my:option3" type="my:enum-option3" required="true()"/>
    <!--<xforms:submission action="myTool.py" method="exec-double-dash" />-->
    <xsd:schema targetNamespace="http://github.com/jsmaniac/XternalApps/myTool" xmlns:my="http://github.com/jsmaniac/XternalApps/myTool">
      <xsd:simpleType name="enum-option3">
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value="foo" />
          <xsd:enumeration value="bar" />
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:schema>
  </xforms:model>

  <XternalApps:command method="exec" name="/home/suzanne/perso/projects/paper-craft/py/Mod/XternalApps/myTool.py">
    <XternalApps:accepts>
      <XternalApps:default style="double-dash" />
      <XternalApps:exception ref="my:svgfile" style="pipe" />
    </XternalApps:accepts>
    <XternalApps:returns>
      <XternalApps:exception ref="my:output-svgfile" style="pipe" />
      <XternalApps:exception ref="my:output-exitcode" style="exitcode" />
    </XternalApps:returns>
  </XternalApps:command>

  <!-- Description of the user interface follows: -->
  <xforms:group>
    <xforms:label>Page 1</xforms:label>
    <xforms:input ref="my:option1" label="Option One ∀"/>
    <xforms:input ref="my:option2" label="Option Two π"/>
    <xforms:upload ref="my:svgfile" accept="image/svg+xml" XternalApps:relevance="primary">
      <xforms:label>Input image</xforms:label>
      <xforms:filename ref="@filename" />
    </xforms:upload>
  </xforms:group>
  <xforms:group>
    <xforms:label>Page 2</xforms:label>
    <xforms:input ref="my:option2" label="Option Two"/>
    <xforms:select1 ref="my:option3" label="Option Three">
      <xforms:item label="Foo label" value="foo"/>
      <xforms:item label="Bar label" value="bar"/>
    </xforms:select1>
    <xforms:select1 ref="my:option3" label="Option Three (alt labels)">
      <xforms:item label="Alt foo label" value="foo"/>
      <xforms:item label="Alt bar label" value="bar"/>
    </xforms:select1>
  </xforms:group>
</XternalApps:tool>