<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:element name="application-template">
		<xs:complexType>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="display"/>
				<xs:element ref="content"/>
				<xs:element ref="project-template-ref"/>
				<xs:element ref="project-template"/>
			</xs:choice>
			<xs:attribute name="id" type="xs:string" use="required"/>
			<xs:attribute name="extends" type="xs:string" use="optional"/>
			<xs:attribute name="processor" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="content">
		<xs:complexType>
			<xs:attribute name="type" type="xs:string" use="required"/>
			<xs:attribute name="destination" type="xs:string" use="required"/>
			<xs:attribute name="source" type="xs:string" use="required"/>
			<xs:attribute name="overwrite" type="xs:boolean"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="display">
		<xs:complexType>
			<xs:attribute name="location" type="xs:string" use="required"/>
			<xs:attribute name="label" type="xs:string" use="required"/>
			<xs:attribute name="description" type="xs:string"/>
			<xs:attribute name="icon" type="xs:string"/>
			<xs:attribute name="priority" type="xs:positiveInteger"/>
			<xs:attribute name="categories" type="xs:string"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="project-template">
		<xs:complexType>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="display"/>
				<xs:element ref="content"/>
			</xs:choice>
			<xs:attribute name="id" type="xs:string" use="required"/>
			<xs:attribute name="type" type="xs:string" use="required"/>
			<xs:attribute name="extends" type="xs:string" use="optional"/>
			<xs:attribute name="processor" type="xs:string" use="optional"/>
			<xs:attribute name="default-name" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="project-template-ref">
		<xs:complexType>
			<xs:attribute name="default-name" type="xs:string" use="required"/>
			<xs:attribute name="type" type="xs:string" use="required"/>
			<xs:attribute name="template" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="template-definition">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
				<xs:element ref="project-template"/>
				<xs:element ref="application-template"/>
			</xs:choice>
		</xs:complexType>
	</xs:element>
</xs:schema>
