<?xml version="1.1" encoding="UTF-8"?>
<xs:schema targetNamespace="http://simpleSys.ru/xml/library/app" xmlns="http://simpleSys.ru/xml/library/app" version="1.0.0" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:isc="http://simpleSys.ru/xml/library/ISC" xmlns:meta="http://simpleSys.ru/xml/library/bo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="undefined" xmlns:common="http://simpleSys.ru/xml/library/common">

	<xs:import schemaLocation="../bo/schema.xsd" namespace="http://simpleSys.ru/xml/library/bo"/>
	<xs:import schemaLocation="schemaISC.xsd" namespace="http://simpleSys.ru/xml/library/ISC"/>
	<xs:import schemaLocation="common.xsd" namespace="http://simpleSys.ru/xml/library/common"/>
	<xs:element name="Pane">
		<xs:complexType>
			<xs:all>
				<xs:element ref="DataSources" minOccurs="0"/>
				<xs:element minOccurs="0" ref="Menus">
				</xs:element>
				<xs:element minOccurs="0" name="RootCanvas">
					<xs:complexType>
						<xs:choice>
							<xs:element minOccurs="0" ref="Canvas"/>
							<xs:element name="CanvasID" type="xs:IDREF" minOccurs="0"/>
						</xs:choice>
					</xs:complexType>
				</xs:element>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="DataSourceType" abstract="false">
		<xs:sequence minOccurs="0">
			<xs:element name="BoName" type="xs:string" minOccurs="1"/>
			<xs:element name="GroupName" type="xs:string" minOccurs="1"/>
			<xs:element name="Identifier" type="xs:ID" minOccurs="1"/>
			<xs:element name="Fields" maxOccurs="1" minOccurs="0">
				<xs:complexType>
					<xs:all>
						<xs:element minOccurs="0" maxOccurs="unbounded" ref="Field"/>
					</xs:all>
				</xs:complexType>
			</xs:element>
			<xs:element name="Operations" minOccurs="0">
				<xs:complexType>
					<xs:sequence maxOccurs="4" minOccurs="0">
						<xs:element name="Operation">
							<xs:complexType>
								<xs:all minOccurs="0">
									<xs:element name="OperationType" type="isc:DSOperationType">
									</xs:element>
								</xs:all>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Native" minOccurs="0">
				<xs:complexType>
					<xs:all minOccurs="1">
						<xs:element ref="isc:RestDataSourceDyn"/>
					</xs:all>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="DataSources">
		<xs:complexType>
			<xs:all maxOccurs="1" minOccurs="1">
				<xs:element ref="DataSource" minOccurs="0" maxOccurs="unbounded"/>
			</xs:all>
		</xs:complexType>
	</xs:element>

	<xs:element name="DataSource" type="DataSourceType">
	</xs:element>
	<xs:element name="Field">
		<xs:complexType>
			<xs:all>
				<xs:element name="Caption" minOccurs="0" type="xs:string"/>
				<xs:element name="CaptionEllipsis" type="xs:boolean" minOccurs="0"/>
				<xs:element name="Hidden" type="xs:boolean" minOccurs="0" default="false"/>
				<xs:element name="Mantadory" type="xs:boolean" minOccurs="0" default="false"/>
				<xs:element name="Name" type="xs:string"/>
				<xs:element name="PrimaryKey" type="xs:boolean" minOccurs="0" default="false"/>
				<xs:element name="IsUnique" type="xs:boolean" minOccurs="0" default="false"/>
				<xs:element name="Width" type="xs:string" minOccurs="0" default="*"/>
				<xs:element minOccurs="0" name="FieldType" type="isc:FieldType">
				</xs:element>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="CanvasType">
		<xs:all>
			<xs:element name="Heigth" type="xs:string" default="100" minOccurs="0"/>
			<xs:element name="Width" type="xs:string" minOccurs="0" default="100"/>
		</xs:all>
	</xs:complexType>
	<xs:element name="Canvas" abstract="false" type="CanvasType"/>
	<xs:complexType name="LayoutType" abstract="false" mixed="false">
		<xs:complexContent>
			<xs:extension base="CanvasType">
				<xs:all>
					<xs:element minOccurs="0" name="Align" type="AbsAlignmentType"/>
					<xs:element minOccurs="0" name="Members">
						<xs:complexType>
							<xs:all>
								<xs:element ref="Canvas" minOccurs="0"/>
							</xs:all>
						</xs:complexType>
					</xs:element>
					<xs:element name="Vertical" type="xs:boolean" minOccurs="0"/>
				</xs:all>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Layout" abstract="true" substitutionGroup="Canvas" type="LayoutType"/>
	<xs:complexType name="HLayoutType" abstract="false">
		<xs:complexContent>
			<xs:restriction base="LayoutType">
				<xs:all>
					<xs:element name="Align" type="AlignmentType" minOccurs="0"/>
				</xs:all>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="HLayout" type="HLayoutType" substitutionGroup="Layout">
	</xs:element>
	<xs:complexType name="VLayoutType">
		<xs:complexContent>
			<xs:restriction base="LayoutType">
				<xs:all>
					<xs:element name="Align" type="VerticalAlignmentType" minOccurs="0"/>
				</xs:all>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="VLayout" type="VLayoutType" substitutionGroup="Layout"/>
	<xs:complexType name="DataViewType" abstract="false">
		<xs:complexContent>
			<xs:extension base="VLayoutType">
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DataView" abstract="true" type="DataViewType" substitutionGroup="VLayout"/>
	<xs:simpleType name="AbsAlignmentType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="top"/>
			<xs:enumeration value="left"/>
			<xs:enumeration value="right"/>
			<xs:enumeration value="center"/>
			<xs:enumeration value="botom"/></xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AlignmentType">
		<xs:restriction base="AbsAlignmentType">
			<xs:enumeration value="left"/>
			<xs:enumeration value="right"/>
			<xs:enumeration value="center"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="VerticalAlignmentType">
		<xs:restriction base="AbsAlignmentType">
			<xs:enumeration value="top"/>
			<xs:enumeration value="center"/>
			<xs:enumeration value="botom"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="DataSourceIDREF" type="xs:IDREF"/>
	<xs:element name="DataSourceElement">
		<xs:complexType>
			<xs:choice>
				<xs:element ref="DataSourceIDREF" minOccurs="0"/>
				<xs:element ref="DataSource" minOccurs="0"/>
			</xs:choice>
		</xs:complexType>
	</xs:element>
	<xs:element name="FuncMenuElement">
		<xs:complexType>
			<xs:choice minOccurs="1">
				<xs:element ref="MenuIDREF" minOccurs="0"/>
				<xs:element ref="Menu" minOccurs="0"/>
			</xs:choice>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="ListGridType" abstract="false">
		<xs:complexContent>
			<xs:extension base="VLayoutType">
				<xs:all>
					<xs:element name="Identifier" minOccurs="0" type="xs:ID"/>
					<xs:element minOccurs="0" ref="DataSourceElement">
					</xs:element>
					<xs:element ref="ListGridFields" minOccurs="0">
					</xs:element>
					<xs:element name="SelectionType" type="SelectionStyle" default="slStlSingle" minOccurs="0"/>
				</xs:all>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="TreeGridType">
		<xs:complexContent>
			<xs:extension base="ListGridType">
				<xs:all>
					<xs:element minOccurs="0" ref="TreeGridFields"/>
				</xs:all>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ListGrid" type="ListGridType" substitutionGroup="VLayout"/>
	<xs:complexType name="ListGridEditorType">
		<xs:complexContent>
			<xs:extension base="ListGridType">
				<xs:all>
					<xs:element ref="FuncMenuElement" minOccurs="0"/>
				</xs:all>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ListGridEditor" type="ListGridEditorType" substitutionGroup="ListGrid"/>
	<xs:complexType name="ListGridEditorWithCardType" abstract="false">
		<xs:complexContent>
			<xs:extension base="HLayoutType">
				<xs:all>
					<xs:element name="FuncMenu" type="MenuType"/>
					<xs:element name="Fields">
						<xs:complexType>
							<xs:all>
								<xs:element ref="ListGridFields"/>
							</xs:all>
						</xs:complexType>
					</xs:element>
				</xs:all>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ListGridEditorWithCard" type="ListGridEditorWithCardType" substitutionGroup="HLayout"/>
	<xs:element name="TreeGrid" type="TreeGridType" substitutionGroup="ListGrid"/>
	<xs:complexType name="TreeGridEditorType">
		<xs:complexContent>
			<xs:extension base="TreeGridType">
				<xs:all>
					<xs:element ref="FuncMenuElement" minOccurs="0"/>
				</xs:all>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="TreeGridEditor" type="TreeGridEditorType" substitutionGroup="TreeGrid">
	</xs:element>
	<xs:complexType name="TreeListGridEditorType">
		<xs:complexContent>
			<xs:extension base="HLayoutType">
				<xs:all>
					<xs:element name="ListGridFields">
						<xs:complexType>
							<xs:all>
								<xs:element ref="ListGridFields"/>
							</xs:all>
						</xs:complexType>
					</xs:element>
					<xs:element name="TreeGridGields">
						<xs:complexType>
							<xs:all>
								<xs:element ref="TreeGridFields"/>
							</xs:all>
						</xs:complexType>
					</xs:element>
					<xs:element name="GridIdentifier" minOccurs="0" type="common:GUID"/>
					<xs:element ref="FuncMenuElement" minOccurs="0"/>
					<xs:element name="TreeIdentifier" minOccurs="1" type="common:GUID"/>
				</xs:all>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="TreeListGridEditor" type="TreeListGridEditorType" substitutionGroup="HLayout"/>
	<xs:simpleType name="EditorType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="FileItem"/>
			<xs:enumeration value="RichTextItem"/>
			<xs:enumeration value="FormItemEventInfo"/>
			<xs:enumeration value="FormItem"/>
			<xs:enumeration value="FormItemIcon"/>
			<xs:enumeration value="CanvasItem"/>
			<xs:enumeration value="TextItem"/>
			<xs:enumeration value="FloatItem"/>
			<xs:enumeration value="BlurbItem"/>
			<xs:enumeration value="ButtonItem"/>
			<xs:enumeration value="PickList"/>
			<xs:enumeration value="PickListMenu"/>
			<xs:enumeration value="SelectItem"/>
			<xs:enumeration value="SelectOtherItem"/>
			<xs:enumeration value="CheckboxItem"/>
			<xs:enumeration value="NativeCheckboxItem"/>
			<xs:enumeration value="HeaderItem"/>
			<xs:enumeration value="SectionItem"/>
			<xs:enumeration value="HiddenItem"/>
			<xs:enumeration value="StaticTextItem"/>
			<xs:enumeration value="LinkItem"/>
			<xs:enumeration value="PasswordItem"/>
			<xs:enumeration value="RadioGroupItem"/>
			<xs:enumeration value="ResetItem"/>
			<xs:enumeration value="DateItem"/>
			<xs:enumeration value="DateTimeItem"/>
			<xs:enumeration value="SpacerItem"/>
			<xs:enumeration value="RowSpacerItem"/>
			<xs:enumeration value="SubmitItem"/>
			<xs:enumeration value="CancelItem"/>
			<xs:enumeration value="TextAreaItem"/>
			<xs:enumeration value="AutoFitTextAreaItem"/>
			<xs:enumeration value="TimeItem"/>
			<xs:enumeration value="ToolbarItem"/>
			<xs:enumeration value="UploadItem"/>
			<xs:enumeration value="ComboBoxItem"/>
			<xs:enumeration value="MultiComboBoxItem"/>
			<xs:enumeration value="MultiFileItem"/>
			<xs:enumeration value="MultiFilePicker"/>
			<xs:enumeration value="SpinnerItem"/>
			<xs:enumeration value="SliderItem"/>
			<xs:enumeration value="ColorItem"/>
			<xs:enumeration value="PickTreeItem"/>
			<xs:enumeration value="IPickTreeItem"/>
			<xs:enumeration value="ViewFileItem"/>
			<xs:enumeration value="DataPathItem"/>
			<xs:enumeration value="RelativeDateItem"/>
			<xs:enumeration value="DateRangeItem"/>
			<xs:enumeration value="DateRange"/>
			<xs:enumeration value="DateRangeDialog"/>
			<xs:enumeration value="MiniDateRangeItem"/>
			<xs:enumeration value="PresetCriteriaItem"/>
			<xs:enumeration value="PresetDateRangeItem"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="ValueMapType">
		<xs:sequence>
			<xs:element name="Tuple" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="key" type="xs:string"/>
						<xs:element name="Value" type="xs:anyAtomicType"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ListGridFieldType">
		<xs:all>
			<xs:element name="Changed" minOccurs="0" type="common:JSCodeType"/>
			<xs:element name="Name" type="xs:string" minOccurs="1"/>
			<xs:element name="Editor" type="EditorType" minOccurs="0" default="TextItem"/>
			<xs:element name="ValueMap" minOccurs="0" type="ValueMapType"/>
		</xs:all>
	</xs:complexType>
	<xs:element name="ListGridField" type="ListGridFieldType"/>
	<xs:element name="ListGridFields">
		<xs:complexType>
			<xs:all maxOccurs="1">
				<xs:element name="Field" type="ListGridFieldType" minOccurs="0" maxOccurs="unbounded"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="TreeGridFieldType">
		<xs:complexContent>
			<xs:restriction base="ListGridFieldType">
				<xs:all>
					<xs:element name="Name" type="xs:string"/>
				</xs:all>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="TreeGridField" type="TreeGridFieldType" substitutionGroup="ListGridField"/>
	<xs:element name="TreeGridFields">
		<xs:complexType>
			<xs:all>
				<xs:element name="Field" type="TreeGridFieldType" minOccurs="0" maxOccurs="unbounded"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="MenuTypeBase">
		<xs:complexContent>
			<xs:restriction base="ListGridType">
				<xs:all>
					<xs:element name="Identifier" minOccurs="0" type="xs:ID"/>
				</xs:all>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="MenuType">
		<xs:complexContent>
			<xs:extension base="MenuTypeBase">
				<xs:all>
					<xs:element ref="MenuItems" minOccurs="0"/>
				</xs:all>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="MenuIDREF" type="xs:IDREF"/>
	<xs:element name="Menu" substitutionGroup="ListGrid" type="MenuType"/>
	<xs:element name="Menus">
		<xs:complexType>
			<xs:all>
				<xs:element ref="Menu" minOccurs="0" maxOccurs="unbounded"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="MenuItemActionType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="NewRow"/>
			<xs:enumeration value="EditRow"/>
			<xs:enumeration value="DeleteRows"/>
			<xs:enumeration value="RefreshAllRows"/>
			<xs:enumeration value="SaveEdited"/>
			<xs:enumeration value="CancelEdited"/>
			<xs:enumeration value="Separator"/>
			<xs:enumeration value="DeleteTab"/></xs:restriction>
	</xs:simpleType>
	<xs:complexType name="MenuItemType">
		<xs:complexContent>
			<xs:restriction base="ListGridFieldType">
				<xs:all>
					<xs:element name="Name" minOccurs="1" type="MenuItemActionType"/>
				</xs:all>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="AbstractMenuItemType" abstract="true"/>
	<xs:element name="MenuItem" type="MenuItemType" substitutionGroup="ListGridField"/>
	<xs:element name="MenuItems">
		<xs:complexType>
			<xs:all>
				<xs:element name="Item" type="MenuItemType" minOccurs="0" maxOccurs="unbounded"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="SelectionStyle">
		<xs:restriction base="xs:string">
			<xs:enumeration value="slStlSingle"/>
			<xs:enumeration value="slStlMultiple"/>
			<xs:enumeration value="slStlSimple"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>