1use crate::model::{
5 annotations::{AnnotationOnlyBody, HasAnnotations},
6 modules::Module,
7 HasBody,
8};
9use std::str::FromStr;
10
11pub const MODULE_PATH: &str = "::org::w3";
16pub const MODULE_NAME: &str = "xsd";
17pub const MODULE_URL: &str = "http://www.w3.org/2001/XMLSchema#";
18
19pub const ANY_TYPE: &str = "anyType";
24pub const ANY_SIMPLE_TYPE: &str = "anySimpleType";
25
26pub const ANY_URI: &str = "anyURI";
31pub const BASE64_BINARY: &str = "base64Binary";
32pub const BOOLEAN: &str = "boolean";
33pub const DATE: &str = "date";
34pub const DATETIME: &str = "dateTime";
35pub const DATETIME_STAMP: &str = "dateTimeStamp";
36pub const DECIMAL: &str = "decimal";
37pub const DOUBLE: &str = "double";
38pub const DURATION: &str = "duration";
39pub const FLOAT: &str = "float";
40pub const GDAY: &str = "gDay";
41pub const GMONTH: &str = "gMonth";
42pub const GMONTH_DAY: &str = "gMonthDay";
43pub const GYEAR: &str = "gYear";
44pub const GYEAR_MONTH: &str = "gYearMonth";
45pub const HEX_BINARY: &str = "hexBinary";
46pub const QNAME: &str = "QName";
47pub const QNOTATION: &str = "QNotation";
48pub const STRING: &str = "string";
49pub const TIME: &str = "time";
50
51pub const NORMALIZED_STRING: &str = "normalizedString";
56pub const TOKEN: &str = "token";
57pub const LANGUAGE: &str = "language";
58pub const NAME: &str = "Name";
59pub const NMTOKEN: &str = "NMTOKEN";
60pub const NCNAME: &str = "NCName";
61pub const ID: &str = "ID";
62pub const IDREF: &str = "IDREF";
63pub const ENTITY: &str = "ENTITY";
64
65pub const DAYTIME_DURATION: &str = "dayTimeDuration";
66pub const YEARMONTH_DURATION: &str = "yearMonthDuration";
67
68pub const INTEGER: &str = "integer";
69pub const NONPOSITIVE_INTEGER: &str = "nonPositiveInteger";
70pub const NEGATIVE_INTEGER: &str = "negativeInteger";
71pub const LONG: &str = "long";
72pub const INT: &str = "int";
73pub const SHORT: &str = "short";
74pub const BYTE: &str = "byte";
75pub const NONNEGATIVE_INTEGER: &str = "nonNegativeInteger";
76pub const UNSIGNED_LONG: &str = "unsignedLong";
77pub const UNSIGNED_INT: &str = "unsignedInt";
78pub const UNSIGNED_SHORT: &str = "unsignedShort";
79pub const UNSIGNED_BYTE: &str = "unsignedByte";
80pub const POSITIVE_INTEGER: &str = "positiveInteger";
81
82pub const ENUMERATION: &str = "enumeration";
87pub const FRACTION_DIGITS: &str = "fractionDigits";
88pub const LENGTH: &str = "length";
89pub const MAX_EXCLUSIVE: &str = "maxExclusive";
90pub const MAX_INCLUSIVE: &str = "maxInclusive";
91pub const MAX_LENGTH: &str = "maxLength";
92pub const MIN_EXCLUSIVE: &str = "minExclusive";
93pub const MIN_INCLUSIVE: &str = "minInclusive";
94pub const MIN_LENGTH: &str = "minLength";
95pub const PATTERN: &str = "pattern";
96pub const TOTAL_DIGITS: &str = "totalDigits";
97pub const WHITE_SPACE: &str = "whiteSpace";
98
99module_function!(|| {
104 let module_uri: url::Url = url::Url::parse(MODULE_URL).unwrap();
105
106 module!(
107 id!(unchecked xsd), module_uri ; call |module: Module|
108 module.with_imports([import_statement!(
109 id!(unchecked dct),
110 )])
111 .with_annotations([
112 annotation!(id!(unchecked dc_terms:title), rdf_str!("XML Schema Part 2: Datatypes Second Edition"@en)),
113 annotation!(id!(unchecked rdfs:seeAlso), url!("https://www.w3.org/TR/xmlschema-2/")),
114 ])
115 .with_definitions([
116 rdf!(
120 id!(unchecked anySimpleType) ;
121 datatype ;
122 call |body: AnnotationOnlyBody|
123 body.with_annotations([
124 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
125 annotation!(id!(unchecked skos:prefLabel), rdf_str!("anySimpleType"@en)),
126 ])).into(),
127 datatype!(
131 id!(unchecked anyURI), idref!(unchecked anySimpleType) ;
132 call |body: AnnotationOnlyBody|
133 body.with_annotations([
134 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
135 annotation!(id!(unchecked skos:prefLabel), rdf_str!("anyURI"@en)),
136 ])).into(),
137 datatype!(
138 id!(unchecked base64Binary), idref!(unchecked anySimpleType) ;
139 call |body: AnnotationOnlyBody|
140 body.with_annotations([
141 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
142 annotation!(id!(unchecked skos:prefLabel), rdf_str!("base64Binary"@en)),
143 ])).into(),
144 datatype!(
145 id!(unchecked boolean), idref!(unchecked anySimpleType) ;
146 call |body: AnnotationOnlyBody|
147 body.with_annotations([
148 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
149 annotation!(id!(unchecked skos:prefLabel), rdf_str!("boolean"@en)),
150 ])).into(),
151 datatype!(
152 id!(unchecked date), idref!(unchecked anySimpleType) ;
153 call |body: AnnotationOnlyBody|
154 body.with_annotations([
155 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
156 annotation!(id!(unchecked skos:prefLabel), rdf_str!("date"@en)),
157 ])).into(),
158 datatype!(
159 id!(unchecked dateTime), idref!(unchecked anySimpleType) ;
160 call |body: AnnotationOnlyBody|
161 body.with_annotations([
162 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
163 annotation!(id!(unchecked skos:prefLabel), rdf_str!("dateTime"@en)),
164 ])).into(),
165 datatype!(
166 id!(unchecked decimal), idref!(unchecked anySimpleType) ;
167 call |body: AnnotationOnlyBody|
168 body.with_annotations([
169 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
170 annotation!(id!(unchecked skos:prefLabel), rdf_str!("decimal"@en)),
171 ])).into(),
172 datatype!(
173 id!(unchecked double), idref!(unchecked anySimpleType) ;
174 call |body: AnnotationOnlyBody|
175 body.with_annotations([
176 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
177 annotation!(id!(unchecked skos:prefLabel), rdf_str!("double"@en)),
178 ])).into(),
179 datatype!(
180 id!(unchecked duration), idref!(unchecked anySimpleType) ;
181 call |body: AnnotationOnlyBody|
182 body.with_annotations([
183 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
184 annotation!(id!(unchecked skos:prefLabel), rdf_str!("duration"@en)),
185 ])).into(),
186 datatype!(
187 id!(unchecked float), idref!(unchecked anySimpleType) ;
188 call |body: AnnotationOnlyBody|
189 body.with_annotations([
190 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
191 annotation!(id!(unchecked skos:prefLabel), rdf_str!("float"@en)),
192 ])).into(),
193 datatype!(
194 id!(unchecked gDay), idref!(unchecked anySimpleType) ;
195 call |body: AnnotationOnlyBody|
196 body.with_annotations([
197 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
198 annotation!(id!(unchecked skos:prefLabel), rdf_str!("gDay"@en)),
199 ])).into(),
200 datatype!(
201 id!(unchecked gMonth), idref!(unchecked anySimpleType) ;
202 call |body: AnnotationOnlyBody|
203 body.with_annotations([
204 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
205 annotation!(id!(unchecked skos:prefLabel), rdf_str!("gMonth"@en)),
206 ])).into(),
207 datatype!(
208 id!(unchecked gMonthDay), idref!(unchecked anySimpleType) ;
209 call |body: AnnotationOnlyBody|
210 body.with_annotations([
211 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
212 annotation!(id!(unchecked skos:prefLabel), rdf_str!("gMonthDay"@en)),
213 ])).into(),
214 datatype!(
215 id!(unchecked gYear), idref!(unchecked anySimpleType) ;
216 call |body: AnnotationOnlyBody|
217 body.with_annotations([
218 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
219 annotation!(id!(unchecked skos:prefLabel), rdf_str!("gYear"@en)),
220 ])).into(),
221 datatype!(
222 id!(unchecked gYearMonth), idref!(unchecked anySimpleType) ;
223 call |body: AnnotationOnlyBody|
224 body.with_annotations([
225 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
226 annotation!(id!(unchecked skos:prefLabel), rdf_str!("gYearMonth"@en)),
227 ])).into(),
228 datatype!(
229 id!(unchecked hexBinary), idref!(unchecked anySimpleType) ;
230 call |body: AnnotationOnlyBody|
231 body.with_annotations([
232 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
233 annotation!(id!(unchecked skos:prefLabel), rdf_str!("hexBinary"@en)),
234 ])).into(),
235 datatype!(
236 id!(unchecked QName), idref!(unchecked anySimpleType) ;
237 call |body: AnnotationOnlyBody|
238 body.with_annotations([
239 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
240 annotation!(id!(unchecked skos:prefLabel), rdf_str!("QName"@en)),
241 ])).into(),
242 datatype!(
243 id!(unchecked QNotation), idref!(unchecked anySimpleType) ;
244 call |body: AnnotationOnlyBody|
245 body.with_annotations([
246 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
247 annotation!(id!(unchecked skos:prefLabel), rdf_str!("QNotation"@en)),
248 ])).into(),
249 datatype!(
250 id!(unchecked string), idref!(unchecked anySimpleType) ;
251 call |body: AnnotationOnlyBody|
252 body.with_annotations([
253 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
254 annotation!(id!(unchecked skos:prefLabel), rdf_str!("string"@en)),
255 ])).into(),
256 datatype!(
257 id!(unchecked time), idref!(unchecked anySimpleType) ;
258 call |body: AnnotationOnlyBody|
259 body.with_annotations([
260 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
261 annotation!(id!(unchecked skos:prefLabel), rdf_str!("time"@en)),
262 ])).into(),
263 datatype!(
267 id!(unchecked integer), idref!(unchecked decimal) ;
268 call |body: AnnotationOnlyBody|
269 body.with_annotations([
270 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
271 annotation!(id!(unchecked skos:prefLabel), rdf_str!("integer"@en)),
272 ])).into(),
273 datatype!(
274 id!(unchecked normalizedString), idref!(unchecked string) ;
275 call |body: AnnotationOnlyBody|
276 body.with_annotations([
277 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
278 annotation!(id!(unchecked skos:prefLabel), rdf_str!("normalizedString"@en)),
279 ])).into(),
280 datatype!(
281 id!(unchecked token), idref!(unchecked normalizedString) ;
282 call |body: AnnotationOnlyBody|
283 body.with_annotations([
284 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
285 annotation!(id!(unchecked skos:prefLabel), rdf_str!("token"@en)),
286 ])).into(),
287 datatype!(
288 id!(unchecked language), idref!(unchecked token) ;
289 call |body: AnnotationOnlyBody|
290 body.with_annotations([
291 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
292 annotation!(id!(unchecked skos:prefLabel), rdf_str!("language"@en)),
293 ])).into(),
294 datatype!(
295 id!(unchecked Name), idref!(unchecked token) ;
296 call |body: AnnotationOnlyBody|
297 body.with_annotations([
298 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
299 annotation!(id!(unchecked skos:prefLabel), rdf_str!("Name"@en)),
300 ])).into(),
301 datatype!(
302 id!(unchecked NMTOKEN), idref!(unchecked token) ;
303 call |body: AnnotationOnlyBody|
304 body.with_annotations([
305 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
306 annotation!(id!(unchecked skos:prefLabel), rdf_str!("NMTOKEN"@en)),
307 ])).into(),
308 datatype!(
309 id!(unchecked NCNAME), idref!(unchecked Name) ;
310 call |body: AnnotationOnlyBody|
311 body.with_annotations([
312 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
313 annotation!(id!(unchecked skos:prefLabel), rdf_str!("NCNAME"@en)),
314 ])).into(),
315 datatype!(
316 id!(unchecked nonPositiveInteger), idref!(unchecked integer) ;
317 call |body: AnnotationOnlyBody|
318 body.with_annotations([
319 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
320 annotation!(id!(unchecked skos:prefLabel), rdf_str!("nonPositiveInteger"@en)),
321 ])).into(),
322 datatype!(
323 id!(unchecked negativeInteger), idref!(unchecked nonPositiveInteger) ;
324 call |body: AnnotationOnlyBody|
325 body.with_annotations([
326 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
327 annotation!(id!(unchecked skos:prefLabel), rdf_str!("negativeInteger"@en)),
328 ])).into(),
329 datatype!(
330 id!(unchecked long), idref!(unchecked integer) ;
331 call |body: AnnotationOnlyBody|
332 body.with_annotations([
333 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
334 annotation!(id!(unchecked skos:prefLabel), rdf_str!("long"@en)),
335 ])).into(),
336 datatype!(
337 id!(unchecked int), idref!(unchecked long) ;
338 call |body: AnnotationOnlyBody|
339 body.with_annotations([
340 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
341 annotation!(id!(unchecked skos:prefLabel), rdf_str!("int"@en)),
342 ])).into(),
343 datatype!(
344 id!(unchecked short), idref!(unchecked int) ;
345 call |body: AnnotationOnlyBody|
346 body.with_annotations([
347 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
348 annotation!(id!(unchecked skos:prefLabel), rdf_str!("short"@en)),
349 ])).into(),
350 datatype!(
351 id!(unchecked byte), idref!(unchecked short) ;
352 call |body: AnnotationOnlyBody|
353 body.with_annotations([
354 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
355 annotation!(id!(unchecked skos:prefLabel), rdf_str!("byte"@en)),
356 ])).into(),
357 datatype!(
358 id!(unchecked nonNegativeInteger), idref!(unchecked integer) ;
359 call |body: AnnotationOnlyBody|
360 body.with_annotations([
361 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
362 annotation!(id!(unchecked skos:prefLabel), rdf_str!("nonNegativeInteger"@en)),
363 ])).into(),
364 datatype!(
365 id!(unchecked unsignedLong), idref!(unchecked nonNegativeInteger) ;
366 call |body: AnnotationOnlyBody|
367 body.with_annotations([
368 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
369 annotation!(id!(unchecked skos:prefLabel), rdf_str!("unsignedLong"@en)),
370 ])).into(),
371 datatype!(
372 id!(unchecked unsignedInt), idref!(unchecked unsignedLong) ;
373 call |body: AnnotationOnlyBody|
374 body.with_annotations([
375 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
376 annotation!(id!(unchecked skos:prefLabel), rdf_str!("unsignedInt"@en)),
377 ])).into(),
378 datatype!(
379 id!(unchecked unsignedShort), idref!(unchecked unsignedInt) ;
380 call |body: AnnotationOnlyBody|
381 body.with_annotations([
382 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
383 annotation!(id!(unchecked skos:prefLabel), rdf_str!("unsignedShort"@en)),
384 ])).into(),
385 datatype!(
386 id!(unchecked unsignedByte), idref!(unchecked unsignedShort) ;
387 call |body: AnnotationOnlyBody|
388 body.with_annotations([
389 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
390 annotation!(id!(unchecked skos:prefLabel), rdf_str!("unsignedByte"@en)),
391 ])).into(),
392 datatype!(
393 id!(unchecked positiveInteger), idref!(unchecked nonNegativeInteger) ;
394 call |body: AnnotationOnlyBody|
395 body.with_annotations([
396 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
397 annotation!(id!(unchecked skos:prefLabel), rdf_str!("positiveInteger"@en)),
398 ])).into(),
399 rdf!(id!(unchecked enumeration) ;
403 property id!(unchecked Property) ;
404 call |body: AnnotationOnlyBody|
405 body.with_annotations([
406 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
407 annotation!(id!(unchecked skos:prefLabel), rdf_str!(enumeration@en)),
408 ])).into(),
409 rdf!(id!(unchecked fractionDigits) ;
410 property id!(unchecked Property) ;
411 call |body: AnnotationOnlyBody|
412 body.with_annotations([
413 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
414 annotation!(id!(unchecked skos:prefLabel), rdf_str!(fractionDigits@en)),
415 ])).into(),
416 rdf!(id!(unchecked length) ;
417 property id!(unchecked Property) ;
418 call |body: AnnotationOnlyBody|
419 body.with_annotations([
420 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
421 annotation!(id!(unchecked skos:prefLabel), rdf_str!(length@en)),
422 ])).into(),
423 rdf!(id!(unchecked maxExclusive) ;
424 property id!(unchecked Property) ;
425 call |body: AnnotationOnlyBody|
426 body.with_annotations([
427 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
428 annotation!(id!(unchecked skos:prefLabel), rdf_str!(maxExclusive@en)),
429 ])).into(),
430 rdf!(id!(unchecked maxInclusive) ;
431 property id!(unchecked Property) ;
432 call |body: AnnotationOnlyBody|
433 body.with_annotations([
434 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
435 annotation!(id!(unchecked skos:prefLabel), rdf_str!(maxInclusive@en)),
436 ])).into(),
437 rdf!(id!(unchecked maxLength) ;
438 property id!(unchecked Property) ;
439 call |body: AnnotationOnlyBody|
440 body.with_annotations([
441 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
442 annotation!(id!(unchecked skos:prefLabel), rdf_str!(maxLength@en)),
443 ])).into(),
444 rdf!(id!(unchecked minExclusive) ;
445 property id!(unchecked Property) ;
446 call |body: AnnotationOnlyBody|
447 body.with_annotations([
448 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
449 annotation!(id!(unchecked skos:prefLabel), rdf_str!(minExclusive@en)),
450 ])).into(),
451 rdf!(id!(unchecked minInclusive) ;
452 property id!(unchecked Property) ;
453 call |body: AnnotationOnlyBody|
454 body.with_annotations([
455 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
456 annotation!(id!(unchecked skos:prefLabel), rdf_str!(minInclusive@en)),
457 ])).into(),
458 rdf!(id!(unchecked minLength) ;
459 property id!(unchecked Property) ;
460 call |body: AnnotationOnlyBody|
461 body.with_annotations([
462 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
463 annotation!(id!(unchecked skos:prefLabel), rdf_str!(minLength@en)),
464 ])).into(),
465 rdf!(id!(unchecked pattern) ;
466 property id!(unchecked Property) ;
467 call |body: AnnotationOnlyBody|
468 body.with_annotations([
469 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
470 annotation!(id!(unchecked skos:prefLabel), rdf_str!(pattern@en)),
471 ])).into(),
472 rdf!(id!(unchecked totalDigits) ;
473 property id!(unchecked Property) ;
474 call |body: AnnotationOnlyBody|
475 body.with_annotations([
476 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
477 annotation!(id!(unchecked skos:prefLabel), rdf_str!(totalDigits@en)),
478 ])).into(),
479 rdf!(id!(unchecked whiteSpace) ;
480 property id!(unchecked Property) ;
481 call |body: AnnotationOnlyBody|
482 body.with_annotations([
483 annotation!(id!(unchecked rdfs:isDefinedBy), id!(unchecked xsd)),
484 annotation!(id!(unchecked skos:prefLabel), rdf_str!(whiteSpace@en)),
485 ])).into(),
486 ])
487 )
488});