]> icculus.org git repositories - dana/openbox.git/blob - data/menu.xsd
updates and fixes for the xml/xsd shit
[dana/openbox.git] / data / menu.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3      xml Schema for the openbox windowmanager menu file
4
5      Changes:
6      Don Aug 14 21:10:27 CEST 2003 - pch(a)myzel.net
7          split from rc3.xsd
8      Mon Sep  8 12:33:57 CEST 2003 - pch(a)myzel.net
9          up to beta1
10      Die Sep 16 21:22:59 CEST 2003 - pch(a)myzel.net
11          use a namespace
12      Fri Sep 19 14:36:33 EDT 2003 - xor(a)orodu.net
13          use openbox.org for namespace
14      Mon Sep 22 02:42:10 EDT 2003 - xor(a)orodu.net
15          fix some capitalization
16 -->
17 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
18     targetNamespace="http://openbox.org/"
19     xmlns:ob="http://openbox.org/"
20     elementFormDefault="qualified">
21     <!--
22          root node
23       -->
24     <xs:element name="openbox_menu">
25         <xs:complexType mixed="false">
26             <xs:sequence maxOccurs="unbounded" minOccurs="1">
27                 <xs:element name="menu" type="ob:menu"/>
28             </xs:sequence>
29         </xs:complexType>
30     </xs:element>
31     <!--
32          complex types
33       -->
34     <xs:complexType name="menu">
35         <xs:choice maxOccurs="unbounded" minOccurs="0">
36             <xs:element maxOccurs="unbounded" minOccurs="0" name="menu" type="ob:menu"/>
37             <xs:element maxOccurs="unbounded" minOccurs="0" name="item" type="ob:item"/>
38             <xs:element maxOccurs="unbounded" minOccurs="0" name="separator" type="ob:empty"/>
39         </xs:choice>
40         <xs:attribute name="label" type="xs:string" use="optional"/>
41         <xs:attribute name="execute" type="xs:string" use="optional"/>
42         <xs:attribute name="id" type="xs:string" use="required"/>
43     </xs:complexType>
44     <xs:complexType name="empty">
45         <xs:complexContent>
46             <xs:restriction base="xs:anyType"/>
47         </xs:complexContent>
48     </xs:complexType>
49     <xs:complexType name="item">
50         <xs:sequence>
51             <xs:element minOccurs="0" name="action">
52                 <xs:complexType>
53                     <xs:sequence>
54                         <xs:element minOccurs="0" name="execute" type="xs:string"/>
55                     </xs:sequence>
56                     <xs:attribute name="name" type="ob:actionname" use="required"/>
57                 </xs:complexType>
58             </xs:element>
59         </xs:sequence>
60         <xs:attribute name="label" type="xs:string" use="required"/>
61     </xs:complexType>
62     <!--
63          simple types / restrictions
64       -->
65     <xs:simpleType name="actionname">
66         <xs:restriction base="xs:string">
67             <xs:enumeration value="Execute"/>
68             <xs:enumeration value="Restart"/>
69             <xs:enumeration value="Reconfigure"/>
70             <xs:enumeration value="Exit"/>
71         </xs:restriction>
72     </xs:simpleType>
73 </xs:schema>