Skip to content

Commit 00de8db

Browse files
authored
Merge pull request #70 from benmarch/issue-67-enums
#67 added enumerable types for all built-in types
2 parents 467e3ca + 1df5465 commit 00de8db

File tree

1 file changed

+343
-8
lines changed

1 file changed

+343
-8
lines changed

compiler/src/test/resources/basic/zero/schema.xsd

Lines changed: 343 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -214,14 +214,6 @@
214214
</xs:complexContent>
215215
</xs:complexType>
216216

217-
<xs:element name="enum" type="enumType"/>
218-
<xs:simpleType name="enumType">
219-
<xs:restriction base="xs:token">
220-
<xs:enumeration value="Male"/>
221-
<xs:enumeration value="Female"/>
222-
</xs:restriction>
223-
</xs:simpleType>
224-
225217
<xs:complexType name="abstractBaseType" abstract="true"/>
226218

227219
<xs:complexType name="extendedMixedType">
@@ -232,4 +224,347 @@
232224

233225
<xs:element name="abstractElement" abstract="true"/>
234226

227+
228+
<!-- Enumerations -->
229+
<xs:element name="base64BinaryEnum" type="base64BinaryEnumType"/>
230+
<xs:simpleType name="base64BinaryEnumType">
231+
<xs:restriction base="xs:base64Binary">
232+
<xs:enumeration value="aGVyb25neWFuZy5jb20="/>
233+
<xs:enumeration value="QQ=="/>
234+
</xs:restriction>
235+
</xs:simpleType>
236+
237+
<xs:element name="hexBinaryEnum" type="hexBinaryEnumType"/>
238+
<xs:simpleType name="hexBinaryEnumType">
239+
<xs:restriction base="xs:hexBinary">
240+
<xs:enumeration value="0FB7"/>
241+
<xs:enumeration value="A4D98C"/>
242+
</xs:restriction>
243+
</xs:simpleType>
244+
245+
<xs:element name="durationEnum" type="durationEnumType"/>
246+
<xs:simpleType name="durationEnumType">
247+
<xs:restriction base="xs:duration">
248+
<xs:enumeration value="P1Y2M3DT10H30M"/>
249+
<xs:enumeration value="-P120D"/>
250+
</xs:restriction>
251+
</xs:simpleType>
252+
253+
<xs:element name="dateTimeEnum" type="dateTimeEnumType"/>
254+
<xs:simpleType name="dateTimeEnumType">
255+
<xs:restriction base="xs:dateTime">
256+
<xs:enumeration value="1999-05-31T13:20:00-05:00"/>
257+
<xs:enumeration value="2016-07-13T11:00:00-05:00"/>
258+
</xs:restriction>
259+
</xs:simpleType>
260+
261+
<xs:element name="dateEnum" type="dateEnumType"/>
262+
<xs:simpleType name="dateEnumType">
263+
<xs:restriction base="xs:date">
264+
<xs:enumeration value="1999-05-31"/>
265+
<xs:enumeration value="2016-07-13"/>
266+
</xs:restriction>
267+
</xs:simpleType>
268+
269+
<xs:element name="timeEnum" type="timeEnumType"/>
270+
<xs:simpleType name="timeEnumType">
271+
<xs:restriction base="xs:time">
272+
<xs:enumeration value="13:20:00-05:00"/>
273+
<xs:enumeration value="11:28:00+06:00"/>
274+
</xs:restriction>
275+
</xs:simpleType>
276+
277+
<xs:element name="gYearMonthEnum" type="gYearMonthEnumType"/>
278+
<xs:simpleType name="gYearMonthEnumType">
279+
<xs:restriction base="xs:gYearMonth">
280+
<xs:enumeration value="1999-05"/>
281+
<xs:enumeration value="2016-07"/>
282+
</xs:restriction>
283+
</xs:simpleType>
284+
285+
<xs:element name="gYearEnum" type="gYearEnumType"/>
286+
<xs:simpleType name="gYearEnumType">
287+
<xs:restriction base="xs:gYear">
288+
<xs:enumeration value="1999"/>
289+
<xs:enumeration value="2016"/>
290+
</xs:restriction>
291+
</xs:simpleType>
292+
293+
<xs:element name="gMonthDayEnum" type="gMonthDayEnumType"/>
294+
<xs:simpleType name="gMonthDayEnumType">
295+
<xs:restriction base="xs:gMonthDay">
296+
<xs:enumeration value="--05-31"/>
297+
<xs:enumeration value="--07-13"/>
298+
</xs:restriction>
299+
</xs:simpleType>
300+
301+
<xs:element name="gDayEnum" type="gDayEnumType"/>
302+
<xs:simpleType name="gDayEnumType">
303+
<xs:restriction base="xs:gDay">
304+
<xs:enumeration value="---01"/>
305+
<xs:enumeration value="---31"/>
306+
</xs:restriction>
307+
</xs:simpleType>
308+
309+
<xs:element name="gMonthEnum" type="gMonthEnumType"/>
310+
<xs:simpleType name="gMonthEnumType">
311+
<xs:restriction base="xs:gMonth">
312+
<xs:enumeration value="--05--"/>
313+
<xs:enumeration value="--12--"/>
314+
</xs:restriction>
315+
</xs:simpleType>
316+
317+
<xs:element name="floatEnum" type="floatEnumType"/>
318+
<xs:simpleType name="floatEnumType">
319+
<xs:restriction base="xs:float">
320+
<xs:enumeration value="1267.43233"/>
321+
<xs:enumeration value="12.78e-2"/>
322+
<xs:enumeration value="12"/>
323+
<xs:enumeration value="INF"/>
324+
</xs:restriction>
325+
</xs:simpleType>
326+
327+
<xs:element name="doubleEnum" type="doubleEnumType"/>
328+
<xs:simpleType name="doubleEnumType">
329+
<xs:restriction base="xs:double">
330+
<xs:enumeration value="1267.43233"/>
331+
<xs:enumeration value="12.78e20"/>
332+
<xs:enumeration value="12"/>
333+
<xs:enumeration value="-INF"/>
334+
</xs:restriction>
335+
</xs:simpleType>
336+
337+
<xs:element name="decimalEnum" type="decimalEnumType"/>
338+
<xs:simpleType name="decimalEnumType">
339+
<xs:restriction base="xs:decimal">
340+
<xs:enumeration value="+1267.43233"/>
341+
<xs:enumeration value="-12.7820"/>
342+
<xs:enumeration value="12"/>
343+
</xs:restriction>
344+
</xs:simpleType>
345+
346+
<xs:element name="integerEnum" type="integerEnumType"/>
347+
<xs:simpleType name="integerEnumType">
348+
<xs:restriction base="xs:integer">
349+
<xs:enumeration value="-1321532"/>
350+
<xs:enumeration value="245234623"/>
351+
</xs:restriction>
352+
</xs:simpleType>
353+
354+
<xs:element name="longEnum" type="longEnumType"/>
355+
<xs:simpleType name="longEnumType">
356+
<xs:restriction base="xs:long">
357+
<xs:enumeration value="9223372036854775807"/>
358+
<xs:enumeration value="-9223372036854775808"/>
359+
</xs:restriction>
360+
</xs:simpleType>
361+
362+
<xs:element name="intEnum" type="intEnumType"/>
363+
<xs:simpleType name="intEnumType">
364+
<xs:restriction base="xs:int">
365+
<xs:enumeration value="2147483647"/>
366+
<xs:enumeration value="-2147483648"/>
367+
</xs:restriction>
368+
</xs:simpleType>
369+
370+
<xs:element name="shortEnum" type="shortEnumType"/>
371+
<xs:simpleType name="shortEnumType">
372+
<xs:restriction base="xs:short">
373+
<xs:enumeration value="32767"/>
374+
<xs:enumeration value="-32768"/>
375+
</xs:restriction>
376+
</xs:simpleType>
377+
378+
<xs:element name="byteEnum" type="byteEnumType"/>
379+
<xs:simpleType name="byteEnumType">
380+
<xs:restriction base="xs:byte">
381+
<xs:enumeration value="127"/>
382+
<xs:enumeration value="-128"/>
383+
</xs:restriction>
384+
</xs:simpleType>
385+
386+
<xs:element name="unsignedLongEnum" type="unsignedLongEnumType"/>
387+
<xs:simpleType name="unsignedLongEnumType">
388+
<xs:restriction base="xs:unsignedLong">
389+
<xs:enumeration value="0"/>
390+
<xs:enumeration value="18446744073709551615"/>
391+
</xs:restriction>
392+
</xs:simpleType>
393+
394+
<xs:element name="unsignedIntEnum" type="unsignedIntEnumType"/>
395+
<xs:simpleType name="unsignedIntEnumType">
396+
<xs:restriction base="xs:unsignedInt">
397+
<xs:enumeration value="0"/>
398+
<xs:enumeration value="4294967295"/>
399+
</xs:restriction>
400+
</xs:simpleType>
401+
402+
<xs:element name="unsignedShortEnum" type="unsignedShortEnumType"/>
403+
<xs:simpleType name="unsignedShortEnumType">
404+
<xs:restriction base="xs:unsignedShort">
405+
<xs:enumeration value="0"/>
406+
<xs:enumeration value="65535"/>
407+
</xs:restriction>
408+
</xs:simpleType>
409+
410+
<xs:element name="unsignedByteEnum" type="unsignedByteEnumType"/>
411+
<xs:simpleType name="unsignedByteEnumType">
412+
<xs:restriction base="xs:unsignedByte">
413+
<xs:enumeration value="0"/>
414+
<xs:enumeration value="255"/>
415+
</xs:restriction>
416+
</xs:simpleType>
417+
418+
<xs:element name="nonNegativeIntegerEnum" type="nonNegativeIntegerEnumType"/>
419+
<xs:simpleType name="nonNegativeIntegerEnumType">
420+
<xs:restriction base="xs:nonNegativeInteger">
421+
<xs:enumeration value="0"/>
422+
<xs:enumeration value="12678967543233"/>
423+
</xs:restriction>
424+
</xs:simpleType>
425+
426+
<xs:element name="nonPositiveIntegerEnum" type="nonPositiveIntegerEnumType"/>
427+
<xs:simpleType name="nonPositiveIntegerEnumType">
428+
<xs:restriction base="xs:nonPositiveInteger">
429+
<xs:enumeration value="0"/>
430+
<xs:enumeration value="-100000"/>
431+
</xs:restriction>
432+
</xs:simpleType>
433+
434+
<xs:element name="positiveIntegerEnum" type="positiveIntegerEnumType"/>
435+
<xs:simpleType name="positiveIntegerEnumType">
436+
<xs:restriction base="xs:positiveInteger">
437+
<xs:enumeration value="1"/>
438+
<xs:enumeration value="12678967543233"/>
439+
</xs:restriction>
440+
</xs:simpleType>
441+
442+
<xs:element name="negativeIntegerEnum" type="negativeIntegerEnumType"/>
443+
<xs:simpleType name="negativeIntegerEnumType">
444+
<xs:restriction base="xs:negativeInteger">
445+
<xs:enumeration value="-1"/>
446+
<xs:enumeration value="-12678967543233"/>
447+
</xs:restriction>
448+
</xs:simpleType>
449+
450+
<xs:element name="anyURIEnum" type="anyURIEnumType"/>
451+
<xs:simpleType name="anyURIEnumType">
452+
<xs:restriction base="xs:anyURI">
453+
<xs:enumeration value="/some/relative/path"/>
454+
<xs:enumeration value="http://somedomain.com/absolute/path#withHash"/>
455+
</xs:restriction>
456+
</xs:simpleType>
457+
458+
<xs:element name="QNameEnum" type="QNameEnumType"/>
459+
<xs:simpleType name="QNameEnumType">
460+
<xs:restriction base="xs:QName">
461+
<xs:enumeration value="anyURIEnum"/>
462+
<xs:enumeration value="xs:QName"/>
463+
</xs:restriction>
464+
</xs:simpleType>
465+
466+
<xs:element name="stringEnum" type="stringEnumType"/>
467+
<xs:simpleType name="stringEnumType">
468+
<xs:restriction base="xs:string">
469+
<xs:enumeration value="Apple"/>
470+
<xs:enumeration value="Bear"/>
471+
</xs:restriction>
472+
</xs:simpleType>
473+
474+
<xs:element name="normalizedStringEnum" type="normalizedStringEnumType"/>
475+
<xs:simpleType name="normalizedStringEnumType">
476+
<xs:restriction base="xs:normalizedString">
477+
<xs:enumeration value="\tApple\n"/>
478+
<xs:enumeration value="\tBear\n"/>
479+
</xs:restriction>
480+
</xs:simpleType>
481+
482+
<xs:element name="tokenEnum" type="tokenEnumType"/>
483+
<xs:simpleType name="tokenEnumType">
484+
<xs:restriction base="xs:token">
485+
<xs:enumeration value="Édition française."/>
486+
<xs:enumeration value="PB&amp;J"/>
487+
</xs:restriction>
488+
</xs:simpleType>
489+
490+
<xs:element name="languageEnum" type="languageEnumType"/>
491+
<xs:simpleType name="languageEnumType">
492+
<xs:restriction base="xs:language">
493+
<xs:enumeration value="zh"/>
494+
<xs:enumeration value="en-US"/>
495+
</xs:restriction>
496+
</xs:simpleType>
497+
498+
<xs:element name="NameEnum" type="NameEnumType"/>
499+
<xs:simpleType name="NameEnumType">
500+
<xs:restriction base="xs:Name">
501+
<xs:enumeration value="languageEnum"/>
502+
<xs:enumeration value="xs:QName"/>
503+
</xs:restriction>
504+
</xs:simpleType>
505+
506+
<xs:element name="NCNameEnum" type="NCNameEnumType"/>
507+
<xs:simpleType name="NCNameEnumType">
508+
<xs:restriction base="xs:NCName">
509+
<xs:enumeration value="NCNameEnum"/>
510+
<xs:enumeration value="some-element"/>
511+
</xs:restriction>
512+
</xs:simpleType>
513+
514+
<xs:element name="IDEnum" type="IDEnumType"/>
515+
<xs:simpleType name="IDEnumType">
516+
<xs:restriction base="xs:ID">
517+
<xs:enumeration value="IDEnum"/>
518+
<xs:enumeration value="anyElementStrict"/>
519+
</xs:restriction>
520+
</xs:simpleType>
521+
522+
<xs:element name="IDREFEnum" type="IDREFEnumType"/>
523+
<xs:simpleType name="IDREFEnumType">
524+
<xs:restriction base="xs:IDREF">
525+
<xs:enumeration value="IDEnum"/>
526+
<xs:enumeration value="anyElementStrict"/>
527+
</xs:restriction>
528+
</xs:simpleType>
529+
530+
<xs:element name="IDREFSEnum" type="IDREFSEnumType"/>
531+
<xs:simpleType name="IDREFSEnumType">
532+
<xs:restriction base="xs:IDREFS">
533+
<xs:enumeration value="IDEnum some-other-id"/>
534+
<xs:enumeration value="anyElementStrict _and-anotherId"/>
535+
</xs:restriction>
536+
</xs:simpleType>
537+
538+
<xs:element name="ENTITYEnum" type="ENTITYEnumType"/>
539+
<xs:simpleType name="ENTITYEnumType">
540+
<xs:restriction base="xs:ENTITY">
541+
<xs:enumeration value="IDEnum"/>
542+
<xs:enumeration value="anyElementStrict"/>
543+
</xs:restriction>
544+
</xs:simpleType>
545+
546+
<xs:element name="ENTITIESEnum" type="ENTITIESEnumType"/>
547+
<xs:simpleType name="ENTITIESEnumType">
548+
<xs:restriction base="xs:ENTITIES">
549+
<xs:enumeration value="IDEnum some-other-id"/>
550+
<xs:enumeration value="anyElementStrict _and-anotherId"/>
551+
</xs:restriction>
552+
</xs:simpleType>
553+
554+
<xs:element name="NMTOKENEnum" type="NMTOKENEnumType"/>
555+
<xs:simpleType name="NMTOKENEnumType">
556+
<xs:restriction base="xs:NMTOKEN">
557+
<xs:enumeration value="ABCD"/>
558+
<xs:enumeration value="123_456"/>
559+
</xs:restriction>
560+
</xs:simpleType>
561+
562+
<xs:element name="NMTOKENSEnum" type="NMTOKENSEnumType"/>
563+
<xs:simpleType name="NMTOKENSEnumType">
564+
<xs:restriction base="xs:NMTOKENS">
565+
<xs:enumeration value="ABCD 123"/>
566+
<xs:enumeration value="123_456"/>
567+
</xs:restriction>
568+
</xs:simpleType>
569+
235570
</xs:schema>

0 commit comments

Comments
 (0)