1<?xml version="1.0" ?>
2<!--  
3 * $Id: giml.xsd,v 1.3 2004/06/25 09:03:53 ensonic Exp $
4 * @file   giml.xsd
5 * @author Stefan Kost <ensonic@users.sf.net>
6 * @date   Thu Jun 24 17:28:26 MEST 2004
7 * 
8 * @brief  giml document schema definition
9 * @ingroup gitkcore
10 *
11-->
12<xs:schema targetNamespace="http://gitk.sourceforge.net/"
13		xmlns="http://gitk.sourceforge.net/"
14		xmlns:xs="http://www.w3.org/2001/XMLSchema"
15		xmlns:dc="http://purl.org/dc/elements/1.1/"
16		xmlns:i18n="http://apache.org/cocoon/i18n/2.0/">
17	<xs:annotation>
18		<xs:documentation>
19			This schema describes giml dialog sources
20		</xs:documentation>
21  </xs:annotation>
22
23  <xs:import namespace="http://purl.org/dc/elements/1.1/"
24		schemaLocation="bug145246.xsd.imp"
25	/>
26  <!--xs:import namespace="http://apache.org/cocoon/i18n/2.0/"
27		schemaLocation="file://./i18n.xsd"
28	/-->
29 
30 <!-- foreign namespace
31	 <xs:element name="title">
32			<xs:complexType mixed="true">
33				<xs:choice minOccurs="0" maxOccurs="unbounded">
34				</xs:choice>
35			</xs:complexType>
36		</xs:element>
37	
38		<xs:element name="text">
39			<xs:complexType mixed="true"></xs:complexType>
40		</xs:element>
41 -->
42	
43	<xs:element name="option">
44		<xs:complexType mixed="true">
45			<xs:choice minOccurs="0" maxOccurs="unbounded"></xs:choice>
46		</xs:complexType>
47	</xs:element>
48	
49	<xs:element name="options">
50		<xs:complexType>
51			<xs:sequence minOccurs="0" maxOccurs="unbounded">
52				<xs:element ref="option"/>
53			</xs:sequence>
54		</xs:complexType>
55	</xs:element>
56	
57	<xs:element name="disabled">
58		<xs:complexType mixed="true"></xs:complexType>
59	</xs:element>
60	
61	<xs:element name="required">
62		<xs:complexType mixed="true"></xs:complexType>
63	</xs:element>
64	
65	<xs:element name="value">
66		<xs:complexType mixed="true"></xs:complexType>
67	</xs:element>
68	
69	<xs:element name="label">
70		<xs:complexType mixed="true">
71			<xs:choice minOccurs="0" maxOccurs="1"></xs:choice>
72		</xs:complexType>
73	</xs:element>
74	
75	<xs:element name="widget">
76		<xs:complexType>
77			<xs:sequence>
78				<xs:element ref="meta" minOccurs="0"/>
79				<xs:element ref="label" minOccurs="0"/>
80				<xs:element ref="disabled" minOccurs="0"/>
81				<xs:element ref="value" minOccurs="0"/>
82				<xs:element ref="options" minOccurs="0"/>
83			</xs:sequence>
84			<xs:attribute name="id" type="xs:ID"/>
85			<xs:attribute name="type" default="action">
86				<xs:simpleType>
87					<xs:restriction base="xs:string">
88						<xs:enumeration value="action"/>
89						<xs:enumeration value="characterinput"/>
90						<xs:enumeration value="characterinput_numeric"/>
91						<xs:enumeration value="characterinput_alphabetic"/>
92						<xs:enumeration value="optionchoice"/>
93						<xs:enumeration value="optionchoice_boolean"/>
94						<xs:enumeration value="optionchoice_single"/>
95						<xs:enumeration value="optionchoice_single_compact"/>
96						<xs:enumeration value="label"/>
97					</xs:restriction>
98				</xs:simpleType>
99			</xs:attribute>
100			<xs:attribute name="hasFocus" default="false">
101				<xs:simpleType>
102					<xs:restriction base="xs:string">
103						<xs:enumeration value="true"/>
104						<xs:enumeration value="false"/>
105					</xs:restriction>
106				</xs:simpleType>
107			</xs:attribute>
108		</xs:complexType>
109	</xs:element>
110	
111	<xs:element name="widgetgroup">
112		<xs:complexType>
113			<xs:sequence>
114				<xs:element ref="meta" minOccurs="0"/>
115				<xs:element ref="label" minOccurs="0"/>
116				<xs:element ref="widget" minOccurs="0" maxOccurs="unbounded"/>
117				<xs:element ref="widgetgroup" minOccurs="0" maxOccurs="unbounded"/>
118			</xs:sequence>
119		</xs:complexType>
120	</xs:element>
121	
122	<xs:element name="dialogwidget">
123		<xs:complexType mixed="true">
124			<xs:attribute name="id" type="xs:ID"/>
125		</xs:complexType>
126	</xs:element>
127	
128	<xs:element name="dialogwidgets">
129		<xs:complexType>
130			<xs:sequence>
131				<xs:element ref="dialogwidget" maxOccurs="unbounded"/>
132			</xs:sequence>
133		</xs:complexType>
134	</xs:element>
135	
136	<xs:element name="meta">
137		<xs:complexType>
138			<xs:sequence>
139				<xs:element ref="dc:title"/>
140			</xs:sequence>
141		</xs:complexType>
142	</xs:element>
143	
144	<xs:element name="dialog">
145		<xs:complexType>
146			<xs:sequence>
147				<xs:element ref="meta" minOccurs="0" maxOccurs="1"/>
148				<xs:element ref="dialogwidgets" minOccurs="0" maxOccurs="1"/>
149				<xs:element ref="widgetgroup" minOccurs="1" maxOccurs="unbounded"/>
150			</xs:sequence>
151			<xs:attribute name="id" type="xs:ID"/>
152			<xs:attribute name="focus" default="main">
153				<xs:simpleType>
154					<xs:restriction base="xs:string">
155						<xs:enumeration value="main"/>
156						<xs:enumeration value="ctrl"/>
157					</xs:restriction>
158				</xs:simpleType>
159			</xs:attribute>
160		</xs:complexType>
161	</xs:element>
162	
163	<xs:element name="giml">
164		<xs:complexType>
165			<xs:sequence>
166				<xs:element ref="dialog" minOccurs="1" maxOccurs="1"/>
167			</xs:sequence>
168			<!--xs:attribute name="xmlns" type="xs:string" fixed="http://gitk.sourceforge.net/"/-->
169		</xs:complexType>
170	</xs:element>
171
172</xs:schema>
173
174