Skip to content

Commit d0fb220

Browse files
committed
Add schema for Pinwheel
1 parent 913ee5d commit d0fb220

File tree

2 files changed

+238
-0
lines changed

2 files changed

+238
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.DS_Store

pinwheel/schema/pinwheel.xsd

+237
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
3+
<xs:schema
4+
targetNamespace="https://bjango.com/pinwheel"
5+
xmlns="https://bjango.com/pinwheel"
6+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
7+
elementFormDefault="qualified">
8+
9+
<!-- Root element -->
10+
<xs:element name="pinwheel">
11+
<xs:complexType>
12+
<xs:choice>
13+
<xs:element name="project" type="ProjectType" minOccurs="1" maxOccurs="1"/>
14+
</xs:choice>
15+
</xs:complexType>
16+
</xs:element>
17+
18+
<!-- ProjectType -->
19+
<xs:complexType name="ProjectType">
20+
<xs:sequence>
21+
<xs:element name="header" type="HeaderType"/>
22+
<xs:element name="settings" type="SettingsType"/>
23+
<xs:element name="colorItems" type="ColorItemsType"/>
24+
<xs:element name="buildGroups" type="BuildGroupsType"/>
25+
<xs:element name="testGroups" type="TestGroupsType"/>
26+
</xs:sequence>
27+
</xs:complexType>
28+
29+
<!-- HeaderType -->
30+
<xs:complexType name="HeaderType">
31+
<xs:sequence>
32+
<xs:element name="version" type="xs:string"/>
33+
<xs:element name="description" type="xs:string"/>
34+
</xs:sequence>
35+
</xs:complexType>
36+
37+
<!-- SettingsType -->
38+
<xs:complexType name="SettingsType">
39+
<xs:sequence>
40+
<xs:element name="setting" type="SettingType" minOccurs="0" maxOccurs="unbounded"/>
41+
</xs:sequence>
42+
</xs:complexType>
43+
44+
<!-- SettingType -->
45+
<xs:complexType name="SettingType">
46+
<xs:sequence>
47+
<xs:element name="key" type="xs:string"/>
48+
<xs:element name="value" type="xs:string"/>
49+
</xs:sequence>
50+
</xs:complexType>
51+
52+
<!-- ColorItemsType -->
53+
<xs:complexType name="ColorItemsType">
54+
<xs:choice minOccurs="0" maxOccurs="unbounded">
55+
<xs:element name="colorSet" type="ColorSetType"/>
56+
<xs:element name="colorItem" type="ColorItemType"/>
57+
<xs:element name="alias" type="AliasType"/>
58+
<xs:element name="group" type="GroupType"/>
59+
</xs:choice>
60+
</xs:complexType>
61+
62+
<!-- ColorSetType -->
63+
<xs:complexType name="ColorSetType">
64+
<xs:sequence>
65+
<xs:element name="id" type="xs:string"/>
66+
<xs:element name="name" type="xs:string"/>
67+
<xs:element name="profile" type="xs:string"/>
68+
<xs:element name="steps" type="xs:integer"/>
69+
<xs:element name="interpolation" type="xs:integer"/>
70+
<xs:element name="type" type="xs:integer"/>
71+
<xs:element name="middle" type="xs:decimal"/>
72+
<xs:element name="naming" type="xs:integer"/>
73+
<xs:element name="colors" type="ColorsType"/>
74+
<xs:element name="buildGroupId" type="xs:string" minOccurs="0" maxOccurs="1"/>
75+
<xs:element name="testGroupId" type="xs:string" minOccurs="0" maxOccurs="1"/>
76+
<xs:element name="testPosition" type="xs:string" minOccurs="0" maxOccurs="1"/>
77+
</xs:sequence>
78+
</xs:complexType>
79+
80+
<!-- ColorItemType -->
81+
<xs:complexType name="ColorItemType">
82+
<xs:sequence>
83+
<xs:element name="id" type="xs:string"/>
84+
<xs:element name="name" type="xs:string"/>
85+
<xs:element name="profile" type="xs:string"/>
86+
<xs:element name="appearance" type="xs:string"/>
87+
<xs:element name="color" type="ItemColorType"/>
88+
<xs:element name="buildGroupId" type="xs:string" minOccurs="0" maxOccurs="1"/>
89+
<xs:element name="testGroupId" type="xs:string" minOccurs="0" maxOccurs="1"/>
90+
<xs:element name="testPosition" type="xs:string" minOccurs="0" maxOccurs="1"/>
91+
</xs:sequence>
92+
</xs:complexType>
93+
94+
<!-- AliasType -->
95+
<xs:complexType name="AliasType">
96+
<xs:sequence>
97+
<xs:element name="name" type="xs:string"/>
98+
<xs:element name="type" type="xs:integer"/>
99+
<xs:element name="referencedItemId" type="xs:string"/>
100+
<xs:element name="subIndex" type="xs:integer"/>
101+
<xs:element name="buildGroupId" type="xs:string" minOccurs="0" maxOccurs="1"/>
102+
<xs:element name="testGroupId" type="xs:string" minOccurs="0" maxOccurs="1"/>
103+
<xs:element name="testPosition" type="xs:string" minOccurs="0" maxOccurs="1"/>
104+
</xs:sequence>
105+
</xs:complexType>
106+
107+
<!-- GroupType -->
108+
<xs:complexType name="GroupType">
109+
<xs:sequence>
110+
<xs:element name="id" type="xs:string"/>
111+
<xs:element name="name" type="xs:string"/>
112+
<xs:element name="expanded" type="xs:string" minOccurs="0"/>
113+
<xs:element name="namespace" type="xs:string" minOccurs="0"/>
114+
<xs:choice minOccurs="0" maxOccurs="unbounded">
115+
<xs:element name="colorSet" type="ColorSetType"/>
116+
<xs:element name="colorItem" type="ColorItemType"/>
117+
<xs:element name="alias" type="AliasType"/>
118+
<xs:element name="group" type="GroupType"/>
119+
</xs:choice>
120+
<xs:element name="buildGroupId" type="xs:string" minOccurs="0" maxOccurs="1"/>
121+
<xs:element name="testGroupId" type="xs:string" minOccurs="0" maxOccurs="1"/>
122+
<xs:element name="testPosition" type="xs:string" minOccurs="0" maxOccurs="1"/>
123+
</xs:sequence>
124+
</xs:complexType>
125+
126+
<!-- ColorsType -->
127+
<xs:complexType name="ColorsType">
128+
<xs:sequence>
129+
<xs:element name="color" type="ColorType" maxOccurs="unbounded"/>
130+
</xs:sequence>
131+
</xs:complexType>
132+
133+
<!-- ColorType -->
134+
<xs:complexType name="ColorType">
135+
<xs:sequence>
136+
<xs:element name="name" type="xs:string"/>
137+
<xs:element name="variants" type="VariantsType"/>
138+
</xs:sequence>
139+
</xs:complexType>
140+
141+
<!-- VariantsType -->
142+
<xs:complexType name="VariantsType">
143+
<xs:sequence>
144+
<xs:element name="variant" type="VariantType" maxOccurs="unbounded"/>
145+
</xs:sequence>
146+
</xs:complexType>
147+
148+
<!-- VariantType -->
149+
<xs:complexType name="VariantType">
150+
<xs:sequence>
151+
<xs:element name="rgba" type="xs:string"/>
152+
</xs:sequence>
153+
<xs:attribute name="type" type="xs:string" use="optional"/>
154+
</xs:complexType>
155+
156+
<!-- ItemColorType -->
157+
<xs:complexType name="ItemColorType">
158+
<xs:sequence>
159+
<xs:element name="variants" type="VariantsType"/>
160+
</xs:sequence>
161+
</xs:complexType>
162+
163+
<!-- BuildGroupsType -->
164+
<xs:complexType name="BuildGroupsType">
165+
<xs:sequence>
166+
<xs:element name="buildGroup" type="BuildGroupType" maxOccurs="unbounded"/>
167+
</xs:sequence>
168+
</xs:complexType>
169+
170+
<!-- BuildGroupType -->
171+
<xs:complexType name="BuildGroupType">
172+
<xs:sequence>
173+
<xs:element name="id" type="xs:string"/>
174+
<xs:element name="name" type="xs:string"/>
175+
<xs:element name="expanded" type="xs:string" minOccurs="0"/>
176+
<xs:element name="tasks" type="TasksType"/>
177+
</xs:sequence>
178+
</xs:complexType>
179+
180+
<!-- TasksType -->
181+
<xs:complexType name="TasksType">
182+
<xs:sequence>
183+
<xs:element name="task" type="TaskType" minOccurs="0" maxOccurs="unbounded"/>
184+
</xs:sequence>
185+
</xs:complexType>
186+
187+
<!-- TaskType -->
188+
<xs:complexType name="TaskType">
189+
<xs:sequence>
190+
<xs:element name="name" type="xs:string"/>
191+
<xs:element name="id" type="xs:string"/>
192+
<xs:element name="folder" type="xs:string"/>
193+
<xs:element name="fileName" type="xs:string"/>
194+
<xs:element name="fileType" type="xs:integer"/>
195+
<xs:element name="nameTransform" type="xs:integer"/>
196+
<xs:element name="namePrefix" type="xs:string" minOccurs="0"/>
197+
<xs:element name="nameSuffix" type="xs:string" minOccurs="0"/>
198+
</xs:sequence>
199+
</xs:complexType>
200+
201+
<!-- TestGroupsType -->
202+
<xs:complexType name="TestGroupsType">
203+
<xs:sequence>
204+
<xs:element name="testGroup" type="TestGroupType" minOccurs="0" maxOccurs="unbounded"/>
205+
</xs:sequence>
206+
</xs:complexType>
207+
208+
<!-- TestGroupType -->
209+
<xs:complexType name="TestGroupType">
210+
<xs:sequence>
211+
<xs:element name="id" type="xs:string"/>
212+
<xs:element name="name" type="xs:string"/>
213+
<xs:element name="expanded" type="xs:string" minOccurs="0"/>
214+
<xs:element name="tests" type="TestsType"/>
215+
</xs:sequence>
216+
</xs:complexType>
217+
218+
<!-- TestsType -->
219+
<xs:complexType name="TestsType">
220+
<xs:sequence>
221+
<xs:element name="test" type="TestType" minOccurs="0" maxOccurs="unbounded"/>
222+
</xs:sequence>
223+
</xs:complexType>
224+
225+
<!-- TestType -->
226+
<xs:complexType name="TestType">
227+
<xs:sequence>
228+
<xs:element name="name" type="xs:string"/>
229+
<xs:element name="id" type="xs:string"/>
230+
<xs:element name="type" type="xs:string"/>
231+
<xs:element name="thresholdType" type="xs:string" minOccurs="0"/>
232+
<xs:element name="fontSize" type="xs:integer" minOccurs="0"/>
233+
<xs:element name="fontWeight" type="xs:integer" minOccurs="0"/>
234+
</xs:sequence>
235+
</xs:complexType>
236+
237+
</xs:schema>

0 commit comments

Comments
 (0)