<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	elementFormDefault="qualified" targetNamespace="http://www.mobi.ch/liferay/setup"
	xmlns="http://www.mobi.ch/liferay/setup">
	<xs:element name="setup">
		<xs:complexType>
			<xs:sequence>
				<!-- specify the email address of user, which will be used for performing 
					all operations within setup hook -->
				<xs:element ref="configuration" minOccurs="1" maxOccurs="1" />
				<xs:element ref="roles" minOccurs="0" />
				<xs:element ref="users" minOccurs="0" />
				<xs:element ref="portletPermissions" minOccurs="0"
					maxOccurs="1" />
				<xs:element ref="communities" minOccurs="0" />
				<xs:element ref="customFields" minOccurs="0" maxOccurs="1" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="configuration">
		<xs:complexType>
			<xs:sequence>
				<xs:element minOccurs="1" maxOccurs="1" ref="runasuser" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="roles">
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="unbounded" ref="role" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="users">
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="unbounded" ref="user" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="portletPermissions">
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="unbounded" name="portlet">
					<xs:complexType>
						<xs:sequence>
							<xs:element maxOccurs="unbounded" name="actionId">
								<xs:complexType>
									<xs:sequence>
										<xs:element maxOccurs="unbounded" ref="role" />
									</xs:sequence>
									<xs:attribute name="name" type="xs:string" use="required" />
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="portletId" type="xs:string" use="required" />
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="communities">
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="unbounded" ref="community" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="runasuser" type="xs:string">
	</xs:element>
	<xs:element name="community">
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="1" minOccurs="0" ref="pages" />
			</xs:sequence>
			<xs:attribute name="name" type="xs:string" />
		</xs:complexType>
	</xs:element>
	<xs:element name="pages">
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="unbounded" ref="page" />
			</xs:sequence>
			<xs:attribute name="deleteExistingPages" default="false"
				type="xs:boolean" />
		</xs:complexType>
	</xs:element>
	<xs:element name="role">
		<xs:complexType>
			<xs:attribute name="name" use="required" type="xs:string" />
		</xs:complexType>
	</xs:element>
	<xs:element name="user">
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="unbounded" ref="community" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="screenName" use="required" type="xs:string" />
			<xs:attribute name="emailAddress" use="required" type="xs:string" />
			<xs:attribute name="password" use="required" type="xs:string" />
			<xs:attribute name="firstName" use="required" type="xs:string" />
			<xs:attribute name="lastName" use="required" type="xs:string" />

		</xs:complexType>

	</xs:element>
	<xs:element name="page">
		<xs:complexType>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="page" />
				<xs:element ref="role" />
			</xs:choice>
			<xs:attribute name="hidden" type="xs:boolean" default="false" />
			<xs:attribute name="layout" use="required" type="xs:NCName" />
			<xs:attribute name="name" use="required" />
			<xs:attribute name="title" use="required" />
			<xs:attribute name="friendlyURL" use="required" />
			<xs:attribute name="type" use="required" />
		</xs:complexType>
	</xs:element>
	<xs:element name="customFields">
		<xs:complexType>
			<xs:sequence>
				<xs:element maxOccurs="unbounded" name="field">
					<xs:complexType>
						<xs:sequence>
							<xs:element maxOccurs="unbounded" ref="role" />
						</xs:sequence>
						<xs:attribute name="name" use="required" />
						<xs:attribute name="type" use="required">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="string" />
									<xs:enumeration value="int" />
									<xs:enumeration value="boolean" />
									<xs:enumeration value="date" />
									<xs:enumeration value="long" />
									<xs:enumeration value="double" />
									<xs:enumeration value="float" />
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
