XML Schema of External Parameters

External graph parameters are serialised in XML format with following schema:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/GraphParameters"
	xmlns:tns="http://www.example.org/GraphParameters" elementFormDefault="qualified">

	<element name="GraphParameters" type="tns:GraphParametersType"></element>

	<complexType name="GraphParametersType">
		<sequence>
			<element name="GraphParameter" type="tns:GraphParameterType"
				maxOccurs="unbounded" minOccurs="0"></element>
		</sequence>
	</complexType>

	<complexType name="GraphParameterType">
		<sequence>
			<element name="attr" type="tns:attrType" maxOccurs="unbounded"
				minOccurs="0">
			</element>
			<choice>
				<element name="SingleType" type="tns:SingleTypeType"></element>
				<element name="ComponentReference" type="tns:ComponentReferenceType">
				</element>
			</choice>
		</sequence>
		<attribute name="name" type="string" use="required"></attribute>
		<attribute name="value" type="string" use="required"></attribute>
		<attribute name="dynamicValue" type="string"></attribute>
		<attribute name="secure" type="boolean"></attribute>
		<attribute name="description" type="string"></attribute>
		<attribute name="public" type="boolean"></attribute>
		<attribute name="required" type="boolean"></attribute>
		<attribute name="label" type="string"></attribute>
		<attribute name="defaultHint" type="string"></attribute>
		<attribute name="category" type="string"></attribute>
	</complexType>

	<complexType name="ComponentReferenceType">
		<attribute name="referencedComponent" type="string"></attribute>
		<attribute name="referencedProperty" type="string"></attribute>
	</complexType>

    <complexType name="SingleTypeType">
    	<attribute name="name" type="string"></attribute>
    </complexType>

    <complexType name="attrType">
    	<attribute name="name" type="string"></attribute>
    </complexType>
</schema>

For example:

<?xml version="1.0" encoding="UTF-8"?>
<GraphParameters>
	<GraphParameter name="PROJECT" value=".">
		<attr name="description"><![CDATA[Project root path]]></attr>
	</GraphParameter>
	<GraphParameter name="CONN_DIR" value="${PROJECT}/conn">
		<attr name="description"><![CDATA[Default folder for external connections]]></attr>
	</GraphParameter>
	<GraphParameter name="DATAIN_DIR" value="${PROJECT}/data-in">
		<attr name="description"><![CDATA[Default folder for input data files]]></attr>
	</GraphParameter>
	<GraphParameter name="DATAOUT_DIR" value="${PROJECT}/data-out">
		<attr name="description"><![CDATA[Default folder for output data files]]></attr>
	</GraphParameter>
	<GraphParameter name="DATATMP_DIR" value="${PROJECT}/data-tmp">
		<attr name="description"><![CDATA[Default folder for temporary data files]]></attr>
	</GraphParameter>
	<GraphParameter name="GRAPH_DIR" value="${PROJECT}/graph">
		<attr name="description"><![CDATA[Default folder for transformation graphs (grf)]]></attr>
	</GraphParameter>
	<GraphParameter label="Public parameter" name="PUBLIC_PARAM" public="true" required="true" value="default value">
		<SingleType name="multiline"/>
	</GraphParameter>
</GraphParameters>