<?xml version="1.0" ?>
<!--  
 * $Id: giml.xsd,v 1.3 2004/06/25 09:03:53 ensonic Exp $
 * @file   giml.xsd
 * @author Stefan Kost <ensonic@users.sf.net>
 * @date   Thu Jun 24 17:28:26 MEST 2004
 * 
 * @brief  giml document schema definition
 * @ingroup gitkcore
 *
-->
<xs:schema targetNamespace="http://gitk.sourceforge.net/"
		xmlns="http://gitk.sourceforge.net/"
		xmlns:xs="http://www.w3.org/2001/XMLSchema"
		xmlns:dc="http://purl.org/dc/elements/1.1/"
		xmlns:i18n="http://apache.org/cocoon/i18n/2.0/">
	<xs:annotation>
		<xs:documentation>
			This schema describes giml dialog sources
		</xs:documentation>
  </xs:annotation>

  <xs:import namespace="http://purl.org/dc/elements/1.1/"
		schemaLocation="bug145246.xsd.imp"
	/>
  <!--xs:import namespace="http://apache.org/cocoon/i18n/2.0/"
		schemaLocation="file://./i18n.xsd"
	/-->
 
 <!-- foreign namespace
	 <xs:element name="title">
			<xs:complexType mixed="true">
				<xs:choice minOccurs="0" maxOccurs="unbounded">
				</xs:choice>
			</xs:complexType>
		</xs:element>
	
		<xs:element name="text">
			<xs:complexType mixed="true"></xs:complexType>
		</xs:element>
 -->
	
	<xs:element name="option">
		<xs:complexType mixed="true">
			<xs:choice minOccurs="0" maxOccurs="unbounded"></xs:choice>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="options">
		<xs:complexType>
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="option"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="disabled">
		<xs:complexType mixed="true"></xs:complexType>
	</xs:element>
	
	<xs:element name="required">
		<xs:complexType mixed="true"></xs:complexType>
	</xs:element>
	
	<xs:element name="value">
		<xs:complexType mixed="true"></xs:complexType>
	</xs:element>
	
	<xs:element name="label">
		<xs:complexType mixed="true">
			<xs:choice minOccurs="0" maxOccurs="1"></xs:choice>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="widget">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="meta" minOccurs="0"/>
				<xs:element ref="label" minOccurs="0"/>
				<xs:element ref="disabled" minOccurs="0"/>
				<xs:element ref="value" minOccurs="0"/>
				<xs:element ref="options" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID"/>
			<xs:attribute name="type" default="action">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="action"/>
						<xs:enumeration value="characterinput"/>
						<xs:enumeration value="characterinput_numeric"/>
						<xs:enumeration value="characterinput_alphabetic"/>
						<xs:enumeration value="optionchoice"/>
						<xs:enumeration value="optionchoice_boolean"/>
						<xs:enumeration value="optionchoice_single"/>
						<xs:enumeration value="optionchoice_single_compact"/>
						<xs:enumeration value="label"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="hasFocus" default="false">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="true"/>
						<xs:enumeration value="false"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="widgetgroup">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="meta" minOccurs="0"/>
				<xs:element ref="label" minOccurs="0"/>
				<xs:element ref="widget" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="widgetgroup" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="dialogwidget">
		<xs:complexType mixed="true">
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="dialogwidgets">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="dialogwidget" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="meta">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="dc:title"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="dialog">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="meta" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="dialogwidgets" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="widgetgroup" minOccurs="1" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:ID"/>
			<xs:attribute name="focus" default="main">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="main"/>
						<xs:enumeration value="ctrl"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="giml">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="dialog" minOccurs="1" maxOccurs="1"/>
			</xs:sequence>
			<!--xs:attribute name="xmlns" type="xs:string" fixed="http://gitk.sourceforge.net/"/-->
		</xs:complexType>
	</xs:element>

</xs:schema>

