XSD for Standard Processes
Manifest XML for Standard Processes can be prepared using XSD schema, as shown below.
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="manifest">
<xs:complexType>
<xs:sequence>
<xs:element name="inputs" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="uri" type="xs:string" minOccurs="0" />
<xs:element name="location" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="temporary" type="xs:boolean" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="db_import" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="data_source" type="xs:string" minOccurs="0" />
<xs:element name="table_name" type="xs:string" minOccurs="0" />
<xs:element name="apply_filter" type="xs:string" minOccurs="0" />
<xs:element name="password" type="xs:string" minOccurs="0" />
</xs:sequence>
<xs:attribute name="excel_column_names_row" type="xs:boolean" />
<xs:attribute name="replace_nulls" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="outputs" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="data_source" type="xs:string" minOccurs="0" />
<xs:element name="table_name" type="xs:string" minOccurs="0" />
<xs:element name="password" type="xs:string" minOccurs="0" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="project" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="projects" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="add" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="project" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="remove" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="project" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="order" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="project" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="order" type="xs:int" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="runtime_fields" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="runtime_field" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="process" type="xs:string" use="optional" />
<xs:attribute name="sourceLocation" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:schema>