File: CHANGES.md

package info (click to toggle)
python-xsdata 26.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,200 kB
  • sloc: python: 31,234; xml: 422; makefile: 20; sh: 6
file content (1011 lines) | stat: -rw-r--r-- 43,436 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
## 26.2 (2026-02-15)

**Fixes**

- Fix elements in same choice different branches incorrectly merged as list
  ([#1206](https://github.com/tefra/xsdata/pull/1206))

**Features**

- Infer XML required property from typing annotations
  ([#1208](https://github.com/tefra/xsdata/pull/1208))
- Generate required metadata only for attributes without default values
  ([#1208](https://github.com/tefra/xsdata/pull/1208))

## 26.1 (2026-01-20)

**Fixes**

- Fixed missing imports on inheriting multiple mixins for the same class
  ([#1156](https://github.com/tefra/xsdata/pull/1156))
- Fixed choice elements with minOccurs <= 1 not marked as optional
- Fixed incorrect max_occurs for elements in different choice blocks
  ([#1179](https://github.com/tefra/xsdata/pull/1179))
- Fixed AttributeError when retrieving subclasses from cython packages
  ([#1200](https://github.com/tefra/xsdata/pull/1200))

**Features**

- Added flag for specifying extensions
  ([#1168](https://github.com/tefra/xsdata/pull/1168))
- Added support for python 3.14 ([#1173](https://github.com/tefra/xsdata/pull/1173))
- Switched to Sequence when using generic containers
  ([#1201](https://github.com/tefra/xsdata/pull/1201))

**Deprecations**

- Removed Python 3.9 support ([#1189](https://github.com/tefra/xsdata/pull/1189))
  ([#1191](https://github.com/tefra/xsdata/pull/1191))
- Removed cli options union-type, kw-only, postponed-annotations are now always enabled
- Removed xsdata <SOURCE> shorthand ([#1128](https://github.com/tefra/xsdata/pull/1128))

## 25.7 (2025-07-06)

**Fixes**

- Ignore dynamic classes in auto-discovery mode.
  ([#1144](https://github.com/tefra/xsdata/pull/1144))
- Parsing tail content with nested mixed classes
  ([#1151](https://github.com/tefra/xsdata/pull/1151))

## 25.4 (2025-04-13)

**Features**

- Allow extensions to match module paths
  ([#1132](https://github.com/tefra/xsdata/pull/1132))

- Improve duplicate class names detection and resolution
  ([#1127](https://github.com/tefra/xsdata/pull/1127))

**Fixes**

- Resolve Code Quality Issue

## 24.12 (2024-12-22)

**Fixes**

- Set the default value of prohibited fields to None
  ([#1098](https://github.com/tefra/xsdata/pull/1098))

- Set body and fault as optional in output soap classes
  ([#1099](https://github.com/tefra/xsdata/pull/1099))

- Resolve a conflict with type location when an element and a complex type have the same
  name ([#1107](https://github.com/tefra/xsdata/pull/1107))

**Features**

- Allow Xml Parser subclasses to override how the root class is located
  ([#1090](https://github.com/tefra/xsdata/pull/1090))

- Include common soap encoding schema
  ([#1100](https://github.com/tefra/xsdata/pull/1100))

**Deprecations**

- Remove subscritable types config option
- Remove Type,Tuple,List,Dict from stop words
- Deprecate xsdata <SOURCE> shorthand, use xsdata generate <SOURCE> instead

## 24.11 (2024-11-03)

**Fixes**

- Avoid conflict with attributes named value when flattening extensions
  ([#1085](https://github.com/tefra/xsdata/pull/1085))

**Features**

- Add cli config to use generic collections
  ([#1082](https://github.com/tefra/xsdata/pull/1082))

**Deprecations**

- Drop support for python 3.8

## 24.9 (2024-09-21)

**Fixes**

- Fix typing annotations deprecation warning in Python 3.13
  ([#1077](https://github.com/tefra/xsdata/pull/1077))

**Features**

- Allow generators as array elements
  ([#1074](https://github.com/tefra/xsdata/pull/1074))

## 24.7 (2024-07-28)

**Features**

- Improve XML parsing performance on union elements with fixed attributes
  ([#1066](https://github.com/tefra/xsdata/pull/1066))
- Skip optional and nillable elements on XML Serializer
  ([#1066](https://github.com/tefra/xsdata/pull/1066))

**Fixes**

- Reset attr types derived from missing simple types
  ([#1062](https://github.com/tefra/xsdata/pull/1062))

## 24.6.1 (2024-06-28)

**Fixes**

- Ruff check command typo breaks generator with v0.5.0
  ([#1061](https://github.com/tefra/xsdata/pull/1061))

## 24.6 (2024-06-24)

**Features**

- Add class and field info in parsing warnings
  ([#1036](https://github.com/tefra/xsdata/pull/1036))
- Remove whitespace from bytes encoded xml strings
  ([#1037](https://github.com/tefra/xsdata/pull/1037))
- Improve codegen performance ([#1043](https://github.com/tefra/xsdata/pull/1043))

**Fixes**

- JSON serializer fails on derived elements
  ([#1053](https://github.com/tefra/xsdata/pull/1053))
- Update typing-extensions minimum version
  ([#1039](https://github.com/tefra/xsdata/pull/1039))
- Avoid using not-threadsafe warnings.catch_warning
  ([#1042](https://github.com/tefra/xsdata/pull/1042))
- Unnest classes doesn't update inner classes recursively
  ([#1047](https://github.com/tefra/xsdata/pull/1047))
- Restore support for optional lists
  ([#1053](https://github.com/tefra/xsdata/pull/1053))

## 24.5 (2024-05-07)

**Features**

- Rewrite TreeSerializer, drop support for native python ElementTree
  ([#1032](https://github.com/tefra/xsdata/pull/1032))
- Validate fields fixed values ([#1013](https://github.com/tefra/xsdata/pull/1013))
- Detect optional fields in dict mapper
- Refactor typing annotations analyze process
- Generate ForwardRef() instead of Type[]

**Fixes**

- Allow soap client config subclassing
  ([#1010](https://github.com/tefra/xsdata/pull/1010))
- Avoid recursive error on nested group references
  ([#1016](https://github.com/tefra/xsdata/pull/1016))
- Add warning for same module designation
  ([#1018](https://github.com/tefra/xsdata/pull/1018))

## 24.4 (2024-04-01)

**Features**

- Add xml and lxml tree serializers ([#975](https://github.com/tefra/xsdata/pull/975))
- Capture namespace prefixes in user dicts
  ([#978](https://github.com/tefra/xsdata/pull/978))
- Add cli option to generate wrapper fields
  ([#982](https://github.com/tefra/xsdata/pull/982))
- Support wrapper fields in JSON data bindings
  ([#982](https://github.com/tefra/xsdata/pull/982))
- Use abstract suffixes to resolve class name conflicts
  ([#985](https://github.com/tefra/xsdata/pull/985))
- Add the version number in the cli cache key
  ([#990](https://github.com/tefra/xsdata/pull/990))
- Use unicodedata.name for attrs with only special characters
  ([#993](https://github.com/tefra/xsdata/pull/993))
- Add src code excerpts on ruff errors
  ([#996](https://github.com/tefra/xsdata/pull/996))
- Detect circular imports and raise appropriate error
  ([#999](https://github.com/tefra/xsdata/pull/999))
- Add support for Python 3.13 ([#1001](https://github.com/tefra/xsdata/pull/1001))
- Add cli debug messages with performance stats

**Fixes**

- Use deepcopy to clone codegen models
  ([#980](https://github.com/tefra/xsdata/pull/980))
- Generate type hints for compound fields with token elements
  ([#997](https://github.com/tefra/xsdata/pull/997))
- Protect prohibited attrs from turning into lists
  ([#998](https://github.com/tefra/xsdata/pull/998))
- Convert child attr to list when parent is list
  ([#998](https://github.com/tefra/xsdata/pull/998))

## 24.3.1 (2024-03-10)

**Fixes**

- Unnest class with circular reference
  ([#974](https://github.com/tefra/xsdata/pull/974))

## 24.3 (2024-03-10)

**Features**

- Avoid flattening root elements ([#945](https://github.com/tefra/xsdata/pull/945))
- Avoid generating ambiguous choices ([#946](https://github.com/tefra/xsdata/pull/946))
- Added various type reference validations
  ([#966](https://github.com/tefra/xsdata/pull/966),
  [#967](https://github.com/tefra/xsdata/pull/967),
  [#968](https://github.com/tefra/xsdata/pull/968))
- Calculate circular references more accurately
  ([#969](https://github.com/tefra/xsdata/pull/969))
- Prettify codegen errors ([#970](https://github.com/tefra/xsdata/pull/970))
- Use Ruff to sort imports ([#972](https://github.com/tefra/xsdata/pull/972))

**Fixes**

- Move ruff format in the code generator
  ([#964](https://github.com/tefra/xsdata/pull/964))

## 24.2.1 (2024-02-19)

- Fixed FieldInfo type errors ([#949](https://github.com/tefra/xsdata/pull/949))
- Fixed private package names ([#950](https://github.com/tefra/xsdata/pull/950))

## 24.2 (2024-02-17)

- Added Dict encoder/decoder ([#921](https://github.com/tefra/xsdata/pull/921))
- Deprecated Serializer config pretty_print/pretty_print_indentation
  ([#942](https://github.com/tefra/xsdata/pull/942))
- Fixed lxml event writer to respect the encoding configuration
  ([#940](https://github.com/tefra/xsdata/pull/940))
- Migrated documentation to mkdocs with markdown
- Refactored project docstrings

## 24.1 (2024-01-04)

- Fixed XmlParser to ignore xsi attrs when fail on unknown attributes is enabled
  ([#846](https://github.com/tefra/xsdata/pull/846))
- Fixed parsing mandatory byte elements with no value
  ([#873](https://github.com/tefra/xsdata/pull/873))
- Fixed issue in json binding with union fields
  ([#864](https://github.com/tefra/xsdata/pull/864))
- Fixed PycodeSerializer to escape unicode characters in string values
  ([#877](https://github.com/tefra/xsdata/pull/877))
- Fixed compound field choices with forward references
  ([#886](https://github.com/tefra/xsdata/pull/886))
- Fixed google style docstrings to add missing colon
  ([#884](https://github.com/tefra/xsdata/pull/884))
- Fixed deprecation warnings for datetime.datetime.utcnow()
- Fixed XmlSerializer to ignore empty non-nillable/required tokens
  ([#902](https://github.com/tefra/xsdata/pull/902))
- Fixed issue with invalid variable names when using originalCase naming convention
  ([#881](https://github.com/tefra/xsdata/pull/881))
- Added type hints for compound fields
  ([#858](https://github.com/tefra/xsdata/pull/858),
  [#885](https://github.com/tefra/xsdata/pull/885))
- Added http header when loading remote resources
  ([#867](https://github.com/tefra/xsdata/pull/867))
- Added warning when converting parent field to a list
  ([#871](https://github.com/tefra/xsdata/pull/871))
- Added ruff to format generated code ([#892](https://github.com/tefra/xsdata/pull/892))
- Added option to use substitution group names for compound field name
  ([#905](https://github.com/tefra/xsdata/pull/905))
- Updated base64 decoding to enable validation
  ([#875](https://github.com/tefra/xsdata/pull/875))
- Updated generator to render prohibited parent fields with restriction extensions
  ([#908](https://github.com/tefra/xsdata/pull/908))
- Updated generator so plugins can easily override templates

## 23.8 (2023-08-12)

- Removed Python 3.7 support
- Fixed PycodeSerializer not adding imports for nested classes
- Fixed imports ordering
- Added support for strict content wildcard processing
  ([#803](https://github.com/tefra/xsdata/pull/803))

## 23.7 (2023-07-23)

- Fixed decimal converter to avoid scientific notations
  ([#826](https://github.com/tefra/xsdata/pull/826))
- Fixed nympy parameter docstring format
  ([#827](https://github.com/tefra/xsdata/pull/827))
- Fixed optional/required override validation
  ([#820](https://github.com/tefra/xsdata/pull/820))
- Fixed WSDL mapper to respect the elements original location
  ([#832](https://github.com/tefra/xsdata/pull/832))
- Added Python 3.12 support

## 23.6 (2023-06-24)

- Fixed conflicting enum values leading to wrong default values
  ([#806](https://github.com/tefra/xsdata/pull/806))
- Added support for custom decorators and base classes
  ([#793](https://github.com/tefra/xsdata/pull/793))
- Added parser config to load external dtd to resolve entities
  ([#797](https://github.com/tefra/xsdata/pull/797))
- Added requests sessions on the wsdl client transport
  ([#798](https://github.com/tefra/xsdata/pull/798))
- Added support subscriptable types and UnionType
  ([#801](https://github.com/tefra/xsdata/pull/801))
- Added option to restrict models package for auto-locator
  ([#809](https://github.com/tefra/xsdata/pull/809))
- Updated context to only cache supported classes
  ([#796](https://github.com/tefra/xsdata/pull/796))
- Removed tox requirement ([#800](https://github.com/tefra/xsdata/pull/800))
- Converted to pyproject.toml ([#802](https://github.com/tefra/xsdata/pull/802))

## 23.5 (2023-05-21)

- Fixed XML meta var index conflicts.
- Fixed mixed content handling for DTD elements.
  ([#749](https://github.com/tefra/xsdata/pull/749),
  [#762](https://github.com/tefra/xsdata/pull/762))
- Fixed an issue with required attributes turning into optional ones.
- Fixed calculation of min/max occurs when parsing XML/JSON documents.
  ([#756](https://github.com/tefra/xsdata/pull/756))
- Fixed calculation of min/max occurs when parsing DTD choice content types.
  ([#760](https://github.com/tefra/xsdata/pull/760))
- Fixed an issue when parsing tail content for compound wildcard elements.
- Fixed an issue with the code analyzer not fully processing some classes.
- Fixed an issue with the code analyzer taking forever to process very large
  enumerations. ([#776](https://github.com/tefra/xsdata/issue/776))
- Fixed an issue in the JSON parser with optional choice elements.
- Updated the transformer to silently ignore malformed JSON files.
  ([#750](https://github.com/tefra/xsdata/pull/750))
- Updated the override attribute handler to fix naming conflicts.
- Updated the override attribute handler to allow wildcard overrides.
- Updated conditions on extensions flattening (over-flattening).
  ([#754](https://github.com/tefra/xsdata/pull/754))
- Updated Group, AttributeGroup handling, skipping a few cases.
- Updated how min/max occurs are calculated with nested containers.
- Updated handling of element substitutions to treat them as choices.
  ([#786](https://github.com/tefra/xsdata/pull/786))
- Updated Pycodeserializer to skip default field values.
- Updated flattening restriction base classes when sequence elements are out of order.
- Updated docformatter to v1.6.5.
- Added support to override compound fields.
- Added support for multiple sequential groups in a class.
- Added support for non-list compound fields.
- Added support to mix list and non-list fields with sequence groups.
- Added an option to include headers in generated files.
  ([#746](https://github.com/tefra/xsdata/pull/746))
- Added an option to cache the initial load and mapping of resources.
- Added support for regular expressions in config substitutions.
  ([#755](https://github.com/tefra/xsdata/pull/755))
- Added a pretty print indentation option in the serializer config.
  ([#780](https://github.com/tefra/xsdata/pull/780))
- Added an option to set the encoding in the SOAP Client.
  ([#773](https://github.com/tefra/xsdata/pull/773))
- Added a CLI flag to show debug messages.
- Added a debug message for possible circular references during code generation.
- Added support to generate prohibited fields when they restrict parent fields.
  ([#781](https://github.com/tefra/xsdata/pull/781))

This release is bigger than intended and includes many major changes, that's why it took
so long.

## 22.12 (2022-12-17)

- Added option to ignore xml pattern restrictions
  [#727](https://github.com/tefra/xsdata/pull/727)
- Added globalns support via SerializerConfig
  [#724](https://github.com/tefra/xsdata/pull/724)
- Pinned docformatter version to v1.5.0 [#729](https://github.com/tefra/xsdata/pull/729)

## 22.11 (2022-11-06)

- Added list wrapper for elements and primitive nodes
  [#710](https://github.com/tefra/xsdata/pull/710)

## 22.9 (2022-09-24)

- Fixed code generation inconsistencies in different operating systems.
- Fixed circular imports error [#706](https://github.com/tefra/xsdata/pull/706)
- Fixed naming conflicts in imports [#706](https://github.com/tefra/xsdata/pull/706)
- Fixed issue with wrong occurrences in DTD code generation
  [#705](https://github.com/tefra/xsdata/pull/705)
- Fixed xs:group and xs:attrGroup name conflicts
  [#702](https://github.com/tefra/xsdata/pull/702)
- Added mathml3 in standard schemas

## 22.8 (2022-08-21)

- Added pycode serializer [#626](https://github.com/tefra/xsdata/issues/626)
- Added option to filter out unused global types
  [#691](https://github.com/tefra/xsdata/issues/691)
- Avoid using generics for mixed content when possible
  [#696](https://github.com/tefra/xsdata/pull/696)
- Removed support for python 3.6 [#671](https://github.com/tefra/xsdata/pull/671)

## 22.7 (2022-07-22)

- Fix empty lists do not get serialized
  [#686](https://github.com/tefra/xsdata/issues/686)
- Added external DTD code generator [#688](https://github.com/tefra/xsdata/pull/688)
- Added support for python 3.11

In the next release we will drop python 3.6 support!!!

## 22.5 (2022-05-08)

- Added support for xml date/time nanoseconds
  [#679](https://github.com/tefra/xsdata/pull/679)

## 22.4 (2022-04-10)

- Added config option to unnest classes
- Added new class meta option global_type, to hide classes from discovery
- Removed min/max length restrictions for enum type fields
- Allow builtin xml types to be fully extended
  [#672](https://github.com/tefra/xsdata/pull/672)

## 22.3 (2022-03-20)

- Added official support for python 3.11
- Fixed enumerations restricting complex types
  [#659](https://github.com/tefra/xsdata/issues/659)
- Fixed attribute name duplicate check to avoid invalid slugs

## 22.2 (2022-02-06)

- Fixed substitution groups on duplicate global types
  [#648](https://github.com/tefra/xsdata/issues/648)
- Added Postponed Annotations config option
  [#646](https://github.com/tefra/xsdata/issues/646)
- Added support for subclasses with different namespaces
  [#654](https://github.com/tefra/xsdata/issues/654)

## 22.1 (2022-01-23)

- Added recursive glob for cli dir source
  [#643](https://github.com/tefra/xsdata/issues/643)
- Added cfg options to change/force compound field names
  [#639](https://github.com/tefra/xsdata/issues/639)

## 21.12 (2021-12-05)

- Fixed wsdl generator to use operation name for rpc input messages
  [#609](https://github.com/tefra/xsdata/issues/609)
- Fixed wsdl generator to check for qualified elements for message part types
  [#612](https://github.com/tefra/xsdata/issues/612)
- Fixed compound field matcher to prefer exact types over derived
  [#617](https://github.com/tefra/xsdata/issues/617)
- Added async to the reserved keywords
  [#600](https://github.com/tefra/xsdata/issues/600)
- Added generator config for search & replace substitutions
  [#624](https://github.com/tefra/xsdata/issues/624)
- Updated code generator to remove abstract elements from class attrs
  [#627](https://github.com/tefra/xsdata/issues/627)
- Updated code generator to filter out all unused types
  [#629](https://github.com/tefra/xsdata/issues/629)

## 21.11 (2021-11-02)

- Fixed unescaped quotes in regex pattern
  [#592](https://github.com/tefra/xsdata/issues/592)
- Added config option fail_on_unknown_attributes
  [#597](https://github.com/tefra/xsdata/issues/597)
- Fixed build for python 3.10

## 21.9 (2021-09-04)

- Automate cli generate options [#578](https://github.com/tefra/xsdata/pull/578)
  - Generate cli options by the config model
  - Allow to enable/disable any flag
  - Allow to bypass any value from the config
  - Removed -cf/-ri as we can't have switches with short names

- Fixed generator not cascading default values to inner classes
  [#579](https://github.com/tefra/xsdata/issues/579)
- Re-raise xml syntax errors as xsdata.exceptions.ParserError
  [#571](https://github.com/tefra/xsdata/issues/571)
- Added cli summary with recovered warnings and issues
  [#583](https://github.com/tefra/xsdata/pull/583)
- Removed the native and lxml SAX handlers
  [#582](https://github.com/tefra/xsdata/issues/582)

## 21.8 (2021-08-03)

- Deprecated JsonSerializer indent property, use SerializerConfig instead
- Fixed SchemaMapper assigning wrong namespace for imported unqualified elements
- Fixed AttributeTypeHandler to maintain occurs between any flattening
- Fixed missing required field metadata property
- Fixed nillable fields not being marked as optional
- Fixed fields ordering during class reduce process (Codegen from xml/json)
- Added support for xs:defaultOpenContent:appliesToEmpty attribute
- Added ParserConfig class factory option
  [#549](https://github.com/tefra/xsdata/pull/549)
- Added SerializerConfig option to ignore optional default attributes
  [#555](https://github.com/tefra/xsdata/pull/555)
- Added warning on unexpected duplicate types
  [#564](https://github.com/tefra/xsdata/pull/564)
- Added GeneratorConfig support for kw_only and slots for python >= 3.10
- Added structure style namespace-clusters
  [#573](https://github.com/tefra/xsdata/pull/573)
- Updated text fields default value to empty string and marked as required
  [#570](https://github.com/tefra/xsdata/pull/570)
- Updated fields derived from xs:substitutionGroups to optional
- Updated fields derived from xs:any to optional
- Updated AttributeDefaultValueHandler to preserve acceptable default values
- Updated AttributeDefaultValueHandler to mark as optional any xsi:type attribute
- Updated xs:alternative handling to resemble xs:choice
- Updated mixed content handler to group all elements under wildcard
- Updated ElementMapper to detect nillable types
- Updated DictMapper to generate list of xs:anySimpleType for empty list nodes
- Updated the compatibility layer for dataclass style plugins
- Updated namespaces structure style to convert namespaces similar to jaxb
  - `http://www.w3.org/XML/1998/namespace` to `org.w3.XML.1998.namespace`

- Update binding process for nillable types and fields
  - nillable types can be initialized
  - nillable fields are initialized with None values

## 21.7 (2021-07-01)

- Fixed docstrings backslash escaping [#518](https://github.com/tefra/xsdata/pull/518)
- Fixed analyzer flattening bare types [#541](https://github.com/tefra/xsdata/pull/541)
- Fixed multiple issues with compound fields and override fields
  [#533](https://github.com/tefra/xsdata/pull/533)
- Fixed missing derived elements types during xml parsing
  [#541](https://github.com/tefra/xsdata/pull/541)
- Added structure style: clusters for smaller packages
  [#509](https://github.com/tefra/xsdata/pull/509)
- Added configuration to generate relative imports
  [#519](https://github.com/tefra/xsdata/pull/519)
- Added configuration to toggle all dataclasses features
  [#529](https://github.com/tefra/xsdata/pull/529)
- Added binding support for tuple typing annotations (frozen dataclasses)
  [#529](https://github.com/tefra/xsdata/pull/529)
- Added support to bind data directly from xml/lxml Element and ElementTree
  [#531](https://github.com/tefra/xsdata/pull/531)
  [#546](https://github.com/tefra/xsdata/pull/546)
- Updated analyzer to avoid same name for outer-inner classes
  [#511](https://github.com/tefra/xsdata/pull/511)
- Updated cli to fail early if config file is invalid
  [#514](https://github.com/tefra/xsdata/pull/514)
- Updated cli to remove setuptools from runtime dependencies
  [#515](https://github.com/tefra/xsdata/pull/515)
- Updated analyzer to relax override field validations completely
  [#516](https://github.com/tefra/xsdata/pull/516)
- Updated analyzer to sort classes before class name conflict resolution
  [#517](https://github.com/tefra/xsdata/pull/517)
- Updated JSON parser to attempt binding against subclasses
  [#527](https://github.com/tefra/xsdata/pull/527)
- Updated analyzer to guard against multiple substitution group runs
  [#538](https://github.com/tefra/xsdata/pull/538)
- Updated code generation to use case-sensitive reserved words
  [#545](https://github.com/tefra/xsdata/pull/545)

## 21.6 (2021-06-01)

- Fixed no args Dict annotation, raising an exception
  [#494](https://github.com/tefra/xsdata/issues/494)
- Fixed original name case not working for field names
  [#498](https://github.com/tefra/xsdata/issues/498)
- Fixed element type resolution with duplicate name conflicts
  [#503](https://github.com/tefra/xsdata/issues/503)
- Added handler to flatten bare inner classes
- Added the ability for custom types to subclass named tuples
- Added keyword meta in the reserved words
  [#491](https://github.com/tefra/xsdata/issues/491)
- Added new xml type `Ignore` to skip fields during binding
  [#504](https://github.com/tefra/xsdata/issues/504)
- Updated generic model DerivedElement.substituted flag with xsi:type
- Updated core components to improve binding performance
  - Converted almost all internal dataclasses to simple objects with **slots**
  - Converted the internal xml date/time types to named tuples
  - Reduced models metadata lookup times and memory footprint

- Updated JSON parser [#495](https://github.com/tefra/xsdata/issues/495)
  - Support failing on unknown properties
  - Support required properties
  - Support parser config
  - Stricter binding process
  - Enhance DerivedElement support

- Moved Definitive XML Schema tests to the samples repository

## 21.5 (2021-05-07)

- Added output structure style single-package
  [#469](https://github.com/tefra/xsdata/issues/469)
- Added support for marshalling array of objects for json
  [#448](https://github.com/tefra/xsdata/issues/448)
- Added support to generate code from raw json documents
  [#445](https://github.com/tefra/xsdata/issues/445)
- Added docstring style Blank to avoid generating them
  [#460](https://github.com/tefra/xsdata/issues/460)
- Added validations for non-supported type hints
- Added support for python 3.10
- Generate package **all** lists [#459](https://github.com/tefra/xsdata/issues/459)
- Generate factory for xs:list enumeration default values
  [#471](https://github.com/tefra/xsdata/issues/471)
- Avoid generating prohibited elements with maxOccurs==0
  [#478](https://github.com/tefra/xsdata/issues/478)
- Avoid generating identical overriding fields
  [#466](https://github.com/tefra/xsdata/issues/466)
- Fixed flattening base classes if they are also subclasses
  [#473](https://github.com/tefra/xsdata/issues/473)
- Fixed unchecked class name conflict resolution
  [#457](https://github.com/tefra/xsdata/issues/457)
- Refactored context components to improve binding performance
  [#476](https://github.com/tefra/xsdata/issues/476)

## 21.4 (2021-04-02)

- Split requirements to extras cli, soap and lxml
  [#419](https://github.com/tefra/xsdata/issues/419)
- Fixed parser conflict when an attribute and element field have the same qualified name
- Added cli auto-detection for source types, removed cli flag `--wsdl`
- Added cli support to generate code from raw xml documents
- Added cli entry point to allow pluggable output formats
  [#429](https://github.com/tefra/xsdata/issues/429)
- Added cli short flags for all options and flags
- Added handler to set effective choice groups
  [#433](https://github.com/tefra/xsdata/issues/433)
- Moved plantUML output format to a standalone
  [plugin](https://github.com/tefra/xsdata-plantuml)
- Updated xml parser to allow unions of primitive and class types
- Updated XmlDateTime parser to catch invalid cases with extra leading zeros
- Updated QName converter to validate uri/ncname when parsing string representations
- Updated JsonParser to allow parsing from filename string
- Updated cli option `--compound-fields` to a boolean flag

## 21.3 (2021-03-04)

- Added constant name convention config
  [#407](https://github.com/tefra/xsdata/issues/407)
- Added naming schemes screaming snake case and original case
- Updated xsi:lookup on xs:any derived elements
  [#315](https://github.com/tefra/xsdata/issues/315)
- Updated fields restriction inheritance
  [#417](https://github.com/tefra/xsdata/issues/417)
- Updated cli to allow package override from arguments
  [#416](https://github.com/tefra/xsdata/issues/416)
- Updated code generation to merge duplicate global types earlier
  [#406](https://github.com/tefra/xsdata/issues/406)
- Fixed docstrings issue breaking python syntax
  [#403](https://github.com/tefra/xsdata/issues/403)
- Fixed bindings for nillable content without workarounds
  [#408](https://github.com/tefra/xsdata/issues/408)
- Fixed resolver to apply aliases on extensions and choice fields
  [#414](https://github.com/tefra/xsdata/issues/414)
- Fixed schema models limiting xs:appinfo occurrences
  [#420](https://github.com/tefra/xsdata/issues/420)
- Decoupled core systems from click and lxml

**Notice**: In the next release installation profiles will be introduced that will turn
the cli, lxml and soap features **optional**.

## 21.2 (2021-02-02)

- Added class name context for user naming schemes
  [#348](https://github.com/tefra/xsdata/issues/348)
- Added mixed pascal naming scheme [#348](https://github.com/tefra/xsdata/issues/348)
- Added access to element/attribute name generators
  [#381](https://github.com/tefra/xsdata/issues/381)
- Added XmlHexBinary/XmlBase64Binary builtin data types
  [#387](https://github.com/tefra/xsdata/issues/387)
- Added support for xs:anyType root elements
  [#399](https://github.com/tefra/xsdata/issues/399)
- Updated JSON binding modules to use the fields local name
  [#389](https://github.com/tefra/xsdata/issues/389)
- Updated enum classes generation
  - Promote all inner enums to root [#383](https://github.com/tefra/xsdata/issues/383)
  - Fixed issues with producing invalid members
    [#385](https://github.com/tefra/xsdata/issues/385)
  - Added support for list/tuple member values
- Updated parsers accuracy for Union types
- Updated dependency resolution accuracy
- Update base classes generation strategies
- Updated builtin data types with helper constructors/methods
- Fixed inner class names conflicts [#375](https://github.com/tefra/xsdata/issues/375)
- Fixed issue not generating fields derived from xs:alternative elements
  [#393](https://github.com/tefra/xsdata/issues/393)
- Fixed duplicate root class name regression from v20.12
- Fixed issue adding unused lib imports
- Fixed issue adding unused name properties to choice elements

This is a sleeper release ✨✨✨ so many code generation improvements and finally the
JSON binding is aligned with XML.

## 21.1 (2021-01-08)

- Fixed XmlWriter converting attribute keys to QName.
  [#346](https://github.com/tefra/xsdata/issues/346)
- Set empty complexType base to anySimpleType
  [#349](https://github.com/tefra/xsdata/issues/349)
- Improve duplicate attr names detection
  [#351](https://github.com/tefra/xsdata/issues/351)
- Add SerializerConfig::xml_declaration option
  [#357](https://github.com/tefra/xsdata/issues/357)
- Generate default value/factory for compound fields
  [#359](https://github.com/tefra/xsdata/issues/359)
- Fixed default value for token fields
  [#360](https://github.com/tefra/xsdata/issues/360)
- Add doc metadata for compound fields
  [#362](https://github.com/tefra/xsdata/issues/362)
- JsonParser: handle class and primitive unions
  [#369](https://github.com/tefra/xsdata/issues/369)
- Update python mappings [#366](https://github.com/tefra/xsdata/issues/366)
  - Map xs:hexBinary and xs:base64Binary to bytes
  - Map xs:date/time types to builtin types XmlDate/Time
  - Map xs:duration to builtin type XmlDuration
  - Map xs:g[Year[Month[Day]]] to builtin type XmlPeriod
  - Map xs:Notation to QName
  - Add converter adapters for datetime.date/time
  - Add fields metadata key 'format' for time/date/binary types
  - Fixed issues with default literal values
  - Fixed issue with random field types order

## 20.12 (2020-12-10)

- Added SerializerConfig with new options.
  [#268](https://github.com/tefra/xsdata/issues/268),
  [#320](https://github.com/tefra/xsdata/issues/320)
- Added docstring styles: rst, google, numpy, accessible.
  [#318](https://github.com/tefra/xsdata/issues/318),
  [#340](https://github.com/tefra/xsdata/issues/340)
- Added `max line length` generator configuration.
  [#342](https://github.com/tefra/xsdata/issues/342)
- Added dynamic type locator for parsers.
  [#332](https://github.com/tefra/xsdata/issues/332)
- Fixed multiple issues with json binding.
  `98[7%](https://github.com/tefra/xsdata-w3c-tests/actions) successful roundtrips

## 20.11.1 (2020-11-13)

- Catch all type errors on xsi cache build
  [#316](https://github.com/tefra/xsdata/issues/316)

## 20.11 (2020-11-10)

- Added sub command to download remote schemas and definitions.
  [#279](https://github.com/tefra/xsdata/issues/279)
- Added new optional xml type `Elements` to maintain ordering for repeatable choices.
  [#296](https://github.com/tefra/xsdata/issues/296)
- Added xsi:type lookup procedure for xs:anyType derived elements.
  [#306](https://github.com/tefra/xsdata/issues/306)
- Updated simple type flattening detection.
  [#286](https://github.com/tefra/xsdata/issues/286)
- Updated generator to allow namespace structure on schemas without target namespace.
- Updated generator to avoid writing min/max occurs metadata for implied values.
  [#297](https://github.com/tefra/xsdata/issues/297)
- Update generator to use literal dictionary initialization.
- Updated parser security, disable lxml network and entities resolve.
- Fixed field types detection for elements with xs:alternative children.
  [#284](https://github.com/tefra/xsdata/issues/284)
- Fixed file generation to enforce default charset UTF-8.
  [#302](https://github.com/tefra/xsdata/issues/302)
- Fixed jinja2 undefined namespace var collision.
  [#298](https://github.com/tefra/xsdata/issues/298)
- Fixed import class name collision. [#300](https://github.com/tefra/xsdata/issues/300)
- Fixed restriction inheritance on xs:group elements.
  [#301](https://github.com/tefra/xsdata/issues/301)

## 20.10 (2020-10-02)

- Fixed generator adding multiple default value fields.
  [#249](https://github.com/tefra/xsdata/issues/249)
- Fixed generator not applying nested container restrictions.
  [#263](https://github.com/tefra/xsdata/issues/253)
- Fixed generator to avoid case insensitive class name conflicts.
  [#269](https://github.com/tefra/xsdata/issues/269)
- Fixed generator rendering unused simple types.
- Fixed generator unsorted libraries imports.
- Fixed JsonParser trying to parse init=False fields.
  [#253](https://github.com/tefra/xsdata/issues/253)
- Fixed NodeParser binding tail content more than once with mixed vars.
  [#256](https://github.com/tefra/xsdata/issues/256)
- Added XmlWriter interface to decouple serialize from lxml.
  [#247](https://github.com/tefra/xsdata/issues/247)
- Added native python xml content writer XmlEventWriter. ✨✨✨
- Added lxml based content writer LxmlEventWriter.
- Added generator config with options to control naming cases and aliases.
  [#265](https://github.com/tefra/xsdata/issues/265)
- Updated field xml type auto-detection to be more flexible.
  [#246](https://github.com/tefra/xsdata/issues/246)
- Updated EnumConverter to resort to canonical form matching as last resort.
  [#273](https://github.com/tefra/xsdata/issues/273)
- Updated support for derived elements.
  [#267](https://github.com/tefra/xsdata/issues/267)

This is my favorite release so far, maybe because xsdata reached one year of development
✨✨✨ or maybe because some of the last original components finally got the rewrite
they deserved.

## 20.9 (2020-09-03)

- Added field metadata key `tokens` for xs:list or xs:NMTOKENS derived elements.
- Added datatype factory to register custom converters.
- Added XmlHandler interface to decouple parsing from lxml.
- Added lxml based content handlers: LxmlEventHandler, LxmlSaxHandler
- Added native python xml content handlers: XmlEventHandler, XmlSaxHandler
- Added support for python >= 3.6 [#241](https://github.com/tefra/xsdata/issues/241)
- Added codegen for soap 1.1 fault messages.
- Fixed converting to enum members derived from xs:NMTOKENS.
- Fixed package level import naming conflicts.
  [#228](https://github.com/tefra/xsdata/issues/206)
- Fixed xml serializing to allow empty strings in attribute values.
  [#230](https://github.com/tefra/xsdata/issues/230)
- Fixed xml serializing for mixed content with non generics.
  [#238](https://github.com/tefra/xsdata/issues/238)

## 20.8 (2020-08-01)

- Added codegen support for **WSDL 1.1 and SOAP 1.1** bindings.
- Added experimental web services client.
- Added cli flag `--ns-struct` to group classes by target namespaces.
  [#206](https://github.com/tefra/xsdata/issues/206)
- Added parser config to support xinclude statements.
  [#207](https://github.com/tefra/xsdata/issues/207)
- Added new xml union node to improve bindings for fields with union type.
  [#207](https://github.com/tefra/xsdata/issues/207)
- Fixed class resolve issue with mixed namespaces.
  [#204](https://github.com/tefra/xsdata/issues/204)
- Fixed attribute comparison issue. [#209](https://github.com/tefra/xsdata/issues/209)
- Fixed data type mapping for various schema elements.
  [#221](https://github.com/tefra/xsdata/issues/221)
- Fixed mixed content handling. [#213](https://github.com/tefra/xsdata/issues/213)
- Code cleanup & 100% coverage.

## 20.7 (2020-07-04)

- Updated analyzer to allow abstract types to be generated.
  [#199](https://github.com/tefra/xsdata/issues/199)
- Removed support to generate code from multiple sources.
  [#172](https://github.com/tefra/xsdata/issues/172)
- Fixed naming conflict with AttributeGroup analyzer handler.
  [#194](https://github.com/tefra/xsdata/issues/194)
- Fixed analyzer to merge redefined attribute groups.
  [#196](https://github.com/tefra/xsdata/issues/196)
- Fixed analyzer to block inheritance on xs:override derived types.
  [#198](https://github.com/tefra/xsdata/issues/198)
- Refactored code to prepare for wsdl support.

## 20.6 (2020-06-01)

- Updated XmlSerializer to render default namespace whenever possible.
- Fixed issue generating modules outside the target package.
- Fixed issue not creating nested package **init** files.
- Code cleanup & docstrings

## 20.5.5 (2020-05-23)

- Added version option in the xsdata cli.
- Added generation of missing python **init** files.
- Added support for default values to inner enum classes.
- Fixed multiple issues with abstract classes and attributes/extension flattening.
- Fixed instance cross references causing codegen unpredictable results.
- Fixed xml serialization of wildcard attributes with user defined model values.
- Fixed issue with redefined/override elements with annotations.
- Fixed expand attribute groups recursively.
- Fixed false positive circular references.
- Fixed enumeration unions detection.
- Refactored ClassAnalyzer to smaller components.

## 20.5.4 (2020-05-15)

- Fix flattening enumeration unions.
- Fix generation for enum fields with default/fixed value.
- Fix duplicate attribute names handler to be case-insensitive.

## 20.5.1 (2020-05-14)

- Added support to fetch remote schemas.
- Updated duplicate attribute names handling.
- Updated code generation for enum type fields and default values.
- Fixed issue not generating classes derived from simple types.
- Fixed analyzer reaching the maximum recursion depth.
- Fixed analyzer to flatten properly inner self referencing classes.
- Moved dataclasses python conventions to jinja filters.

## 20.5 (2020-05-02)

- Updated codegen cli to accept multiple definitions or directories as argument.
- Update ClassBuilder to recursively search for anonymous types.
- Updated XmlParser to be thread-safe.
- Added performance tweaks on XmlParser.
- Added parser config to fail or not on unknown properties.
- Fixed primitive types being marked as forward references.
- Fixed nested restrictions on xs:simpleType.
- Fixed ClassAnalyzer to recover/ignore missing types.

## 20.4.2 (2020-04-21)

- Added support for abstract xsi:types in XmlParser.
- Added cache for event names in XmlParser.
- Added sanitization for generated module names.
- Fixed not flattening abstract extension.
- Fixed extension name conflicts between simple and complex types.
- Fixed possible memory leak in CodeWriter.
- Fixed looping variables twice to find next node in XmlParser.
- Fixed CodeWriter adding unnecessary new lines.

## 20.4.1 (2020-04-13)

- Fixed open content attribute with mode suffix to be generated last.
- Fixed issues with wildcard and mixed content parsing.
- Updated xs:qname mapping to lxml.QName
- Updated support for xs:list.
- Updated parser to ignore xsi:type attributes default/fixed values.
- Refactored code components.
- Pass more than 99% of the `W3C XML Schema 1.1 test cases
  https://travis-ci.org/tefra/xsdata-w3c-tests

## 20.4 (2020-04-01)

- Added support for sequential fields.
- Added support for open content.
- Added support multiple redefined elements.
- Updated support for wildcards to be aware of generic namespaces.
- Updated support for wildcards to be aware of non-generic objects.
- Updated codegen to run after fully parsing all the definitions.
- Updated codegen to skip unresolved schema locations.
- Updated xml parser to ignore comments.
- Updated xml parser to retain a copy of the input namespaces.
- Fixed issues with nillable fields being ignored.
- Fixed multiple issues with wrong restrictions being applied.
- Fixed binding issues when there are naming conflicts.
- Fixed serialization for inf/nan/exponential float and decimal values.
- Fixed naming conflicts with class/package names.
- Fixed multiple circular import issues during parsing and code generation.
- Pass more than 98% of the `W3C XML Schema 1.1 test cases
  https://travis-ci.org/tefra/xsdata-w3c-tests

## 20.3 (2020-03-01)

- Added copies of common schemas xlink, xsi, xml.
- Added XML Schema 1.1 models and properties.
- Added support for redefines, overrides, alternatives and default attributes.
- Added missing xsd data types: dateTimestamp, anyType, anyAtomicType.
- Added protection against duplicate class fields enumerations.
- Added python common types to the stop word list.
- Updated wildcards parsing to avoid duplicate elements.
- Updated native datatype detection made stricter.
- Updated enumerations generation to sort and filter values.
- Updated mapping xs:decimal to python Decimal
- Fixed elements/attribute not inheriting namespaces from references.
- Fixed module names collisions.
- Fixed self referencing classes.
- Fixed class name collisions complexTypes vs elements.
- Fixed parsers not respecting default values.
- Fixed AbstractXmlParser to handle leafless root nodes.
- Pass more than 90% of the `W3C XML Schema 1.1 test cases
  https://travis-ci.org/tefra/xsdata-w3c-tests.

## 20.2 (2020-02-09)

- Added support xs:any and xs:anyAttribute elements.
- Added support for auto-detecting XML Schema namespace prefix.
- Added support for xml datatypes lang and base.
- Refactored SchemaParser to use the XmlParser.
- Updated XmlParser to bind after elements are fully parsed.

## 20.1.3 (2020-01-26)

- Fixed elements min|man occurs inheritance from their container.
- Fixed global elements and attributes are now always qualified.
- Fixed including no namespace schemas.
- Fixed list elements attribute handling.
- Added support for unqualified elements.
- Added support for qualified attributes.
- Added support for nillable elements.
- Added support for unions of member and simple types.
- Added binding test suite

## 20.1.2 (2020-01-13)

- Generate anonymous Enumerations
- Generate attributes from List and Union elements
- Fix restriction inheritance
- Officially support python 3.8
- Completely migrate to setup.cfg
- Introduce integration test suite

## 20.1.1 (2020-01-09)

- Change print mode to print rendered output
- Added new format PlantUML class diagram to replace the old print/debug mode

## 20.1 (2020-01-07)

- Initial release