1<?xml version="1.0" encoding="UTF-8"?>
2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.eclipse.org/2006/BuildFeed" elementFormDefault="qualified" targetNamespace="http://www.eclipse.org/2006/BuildFeed">
3
4  <xs:element name="build">
5    <xs:complexType>
6      <xs:sequence>
7        <xs:element maxOccurs="1" minOccurs="0" ref="detail"/>
8        <xs:element maxOccurs="1" minOccurs="0" ref="update"/>
9        <xs:element maxOccurs="1" minOccurs="0" ref="downloads"/>
10        <xs:element maxOccurs="1" minOccurs="0" ref="releasenotes"/>
11        
12        <xs:element maxOccurs="1" minOccurs="0" ref="releases"/>
13        
14        <xs:element maxOccurs="1" minOccurs="0" ref="tests"/>
15        
16        <xs:element maxOccurs="1" minOccurs="0" ref="dependencies"/>
17        <xs:element maxOccurs="1" minOccurs="0" ref="coordinated"/>
18      </xs:sequence>
19      <xs:attribute name="version" type="buildVersion" use="required"/>
20      <xs:attribute name="type" type="enumBuildType" use="required"/>
21      <xs:attribute name="datetime" type="buildDatetime" use="required"/>
22      <xs:attribute name="href" type="xs:anyURI" use="required"/>
23      <xs:attribute name="branch" type="xs:token" use="optional"/>
24      <xs:attribute name="jars" type="enumJarSigningStatus" use="optional"/>
25    </xs:complexType>
26  </xs:element>
27
28  <xs:element name="detail">
29    <xs:complexType>
30      <xs:attribute name="href" type="xs:anyURI" use="required"/>
31      <xs:attribute name="config" type="xs:token" use="optional"/>
32      <xs:attribute name="log" type="xs:token" use="optional"/>
33      <xs:attribute name="map" type="xs:token" use="optional"/>
34	</xs:complexType>
35  </xs:element>
36
37  <xs:element name="update" type="xs:anyURI"/>
38  <xs:element name="downloads" type="xs:anyURI"/>
39  <xs:element name="releasenotes" type="xs:anyURI"/>
40
41  <xs:element name="releases">
42    <xs:complexType>
43      <xs:sequence>
44        <xs:element maxOccurs="unbounded" minOccurs="1" ref="release"/>
45      </xs:sequence>
46    </xs:complexType>
47  </xs:element>
48  <xs:element name="release">
49    <xs:complexType>
50      <xs:simpleContent>
51        <xs:extension base="xs:anyURI">
52          <xs:attribute name="os" type="enumOS" use="required"/>
53          <xs:attribute name="ws" type="enumWS" use="required"/>
54          <xs:attribute name="arch" type="enumArch" use="optional"/>
55          <xs:attribute name="type" type="enumReleaseType" use="required"/>
56        </xs:extension>
57      </xs:simpleContent>
58    </xs:complexType>
59  </xs:element>
60
61  <xs:element name="tests">
62    <xs:complexType>
63      <xs:sequence>
64        <xs:element maxOccurs="unbounded" minOccurs="1" ref="test"/>
65      </xs:sequence>
66    </xs:complexType>
67  </xs:element>
68  <xs:element name="test">
69    <xs:complexType>
70      <xs:sequence>
71        <xs:element maxOccurs="unbounded" minOccurs="1" ref="result"/>
72      </xs:sequence>
73      <xs:attribute name="href" type="xs:anyURI" use="optional"/>
74      <xs:attribute name="type" type="enumTestType" use="required"/>
75    </xs:complexType>
76  </xs:element>
77  <xs:element name="result">
78    <xs:complexType>
79      <xs:simpleContent>
80        <xs:extension base="enumTestStatus">
81          <xs:attribute name="id" type="xs:token" use="optional"/>
82          <xs:attribute name="os" type="enumOS" use="required"/>
83          <xs:attribute name="ws" type="enumWS" use="required"/>
84          <xs:attribute name="arch" type="enumArch" use="optional"/>
85        </xs:extension>
86      </xs:simpleContent>
87    </xs:complexType>
88  </xs:element>
89
90  <xs:element name="dependencies">
91    <xs:complexType>
92      <xs:sequence>
93        <xs:element maxOccurs="unbounded" minOccurs="1" ref="dependency"/>
94      </xs:sequence>
95    </xs:complexType>
96  </xs:element>
97  <xs:element name="dependency" type="xs:anyURI"/>
98
99  <xs:element name="coordinated">
100    <xs:complexType>
101      <xs:simpleContent>
102        <xs:extension base="xs:string">
103        <xs:attribute name="status" type="enumCoordinatedStatus" use="optional"/>      
104      </xs:extension>
105    </xs:simpleContent>
106    </xs:complexType>
107  </xs:element>
108
109  <xs:simpleType name="enumBuildType">
110    <xs:restriction base="xs:token">
111      <xs:enumeration value="N"/>
112      <xs:enumeration value="I"/>
113      <xs:enumeration value="M"/>
114      <xs:enumeration value="S"/>
115      <xs:enumeration value="R"/>
116    </xs:restriction>
117  </xs:simpleType> 
118  
119  <xs:simpleType name="enumTestType">
120    <xs:restriction base="xs:token">
121      <xs:enumeration value="junit"/>
122      <xs:enumeration value="performance"/>
123      <xs:enumeration value="api"/>
124    </xs:restriction>
125  </xs:simpleType> 
126  
127  <xs:simpleType name="enumJarSigningStatus">
128    <xs:restriction base="xs:token">
129      <xs:enumeration value=""/>
130      <xs:enumeration value="NONE"/>
131      <xs:enumeration value="UNSIGNED"/>
132      <xs:enumeration value="SIGNREADY"/>
133      <xs:enumeration value="BUILDREADY"/>
134      <xs:enumeration value="SIGNED"/>
135    </xs:restriction>
136  </xs:simpleType> 
137  
138  <xs:simpleType name="enumCoordinatedStatus">
139    <xs:restriction base="xs:token">
140      <xs:enumeration value=""/>
141      <xs:enumeration value="NONE"/>
142      <xs:enumeration value="BUILDCOMPLETE"/>
143      <xs:enumeration value="UMSITEREADY"/>
144      <xs:enumeration value="CALLISTOSITEREADY"/>
145      <xs:enumeration value="COMPLETE"/>
146    </xs:restriction>
147  </xs:simpleType> 
148  
149  <xs:simpleType name="enumTestStatus">
150    <xs:restriction base="xs:token">
151      <xs:enumeration value=""/>
152      <xs:enumeration value="PASS"/>
153      <xs:enumeration value="PENDING"/>
154      <xs:enumeration value="FAIL"/>
155      <xs:enumeration value="AVAILABLE"/>
156      <xs:enumeration value="SKIPPED"/>
157      <xs:enumeration value="UNKNOWN"/>
158    </xs:restriction>
159  </xs:simpleType>
160
161  <xs:simpleType name="enumOS">
162    <xs:restriction base="xs:token">
163      <xs:enumeration value="aix"/>
164      <xs:enumeration value="hp-ux"/>
165      <xs:enumeration value="linux"/>
166      <xs:enumeration value="macosx"/>
167      <xs:enumeration value="qnx"/>
168      <xs:enumeration value="solaris8"/>
169      <xs:enumeration value="wce"/>
170      <xs:enumeration value="win32"/>
171      <xs:enumeration value="ALL"/>
172      <xs:enumeration value="OTHER"/>
173    </xs:restriction>
174  </xs:simpleType>
175
176  <xs:simpleType name="enumWS">
177    <xs:restriction base="xs:token">
178      <xs:enumeration value="carbon"/>
179      <xs:enumeration value="gtk"/>
180      <xs:enumeration value="motif"/>
181      <xs:enumeration value="photon"/>
182      <xs:enumeration value="win"/>
183      <xs:enumeration value="ALL"/>
184      <xs:enumeration value="OTHER"/>
185    </xs:restriction>
186  </xs:simpleType>
187
188  <xs:simpleType name="enumArch">
189    <xs:restriction base="xs:token">
190      <xs:enumeration value="arm"/>
191      <xs:enumeration value="hp9000"/>
192      <xs:enumeration value="ppc"/>
193      <xs:enumeration value="sparc"/>
194      <xs:enumeration value="x86"/>
195      <xs:enumeration value="x86_64"/>
196      <xs:enumeration value="ALL"/>
197      <xs:enumeration value="OTHER"/>
198    </xs:restriction>
199  </xs:simpleType>
200
201  <xs:simpleType name="enumReleaseType">
202    <xs:restriction base="xs:token">
203      <xs:enumeration value="SDK"/>
204      <xs:enumeration value="runtime"/>
205      <xs:enumeration value="tests"/>
206      <xs:enumeration value="examples"/>
207      <xs:enumeration value="OTHER"/>
208    </xs:restriction>
209  </xs:simpleType>
210
211  <xs:simpleType name="buildDatetime">
212    <xs:restriction base="xs:token">
213      <xs:pattern value="\d{8}-{0,1}\d{0,4}"/>
214    </xs:restriction>
215  </xs:simpleType>
216
217  <xs:simpleType name="buildVersion">
218    <xs:restriction base="xs:token">
219      <xs:pattern value="\d{1,2}.\d{1,2}.\d{1,2}"/>
220    </xs:restriction>
221  </xs:simpleType>
222
223</xs:schema>
224