<?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=“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>