lutaml-model 0.8.19 → 0.8.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/dependent-tests.yml +1 -1
  3. data/.github/workflows/rake.yml +1 -0
  4. data/.rubocop.yml +1 -1
  5. data/.rubocop_todo.yml +133 -72
  6. data/bench/bench_common.rb +8 -5
  7. data/bench/bench_niso.rb +1 -2
  8. data/bench/gate_config.rb +4 -1
  9. data/benchmark/serialization_benchmark.rb +4 -4
  10. data/docs/_guides/value-transformations.adoc +27 -0
  11. data/docs/_guides/xml-mapping.adoc +31 -0
  12. data/lib/compat/opal/generate_boot.rb +3 -1
  13. data/lib/compat/opal/lutaml_model_boot.rb +10 -7
  14. data/lib/compat/opal/moxml_boot.rb +6 -1
  15. data/lib/lutaml/hash_format/format.rb +29 -0
  16. data/lib/lutaml/hash_format.rb +5 -27
  17. data/lib/lutaml/json/adapter/oj_adapter.rb +7 -0
  18. data/lib/lutaml/json/adapter/standard_adapter.rb +17 -5
  19. data/lib/lutaml/json/format.rb +61 -0
  20. data/lib/lutaml/json/generator_options.rb +62 -0
  21. data/lib/lutaml/json.rb +4 -59
  22. data/lib/lutaml/jsonl/adapter/standard_adapter.rb +1 -1
  23. data/lib/lutaml/jsonl/format.rb +22 -0
  24. data/lib/lutaml/jsonl.rb +5 -19
  25. data/lib/lutaml/jsonld/adapter.rb +12 -4
  26. data/lib/lutaml/key_value/adapter/json/oj_adapter.rb +7 -0
  27. data/lib/lutaml/key_value/adapter/json/standard_adapter.rb +17 -5
  28. data/lib/lutaml/key_value/adapter/jsonl/standard_adapter.rb +1 -1
  29. data/lib/lutaml/key_value/format.rb +26 -0
  30. data/lib/lutaml/key_value/transform.rb +4 -1
  31. data/lib/lutaml/key_value/transformation/value_serializer.rb +0 -2
  32. data/lib/lutaml/key_value.rb +4 -21
  33. data/lib/lutaml/model/attribute.rb +38 -4
  34. data/lib/lutaml/model/collection.rb +7 -2
  35. data/lib/lutaml/model/compiled_rule.rb +1 -1
  36. data/lib/lutaml/model/config.rb +2 -2
  37. data/lib/lutaml/model/consolidation_map.rb +2 -2
  38. data/lib/lutaml/model/consolidation_rule/dispatch_block.rb +2 -2
  39. data/lib/lutaml/model/errors.rb +2 -2
  40. data/lib/lutaml/model/global_context.rb +4 -2
  41. data/lib/lutaml/model/mapping/mapping_rule.rb +4 -1
  42. data/lib/lutaml/model/mapping/model_mapping.rb +2 -2
  43. data/lib/lutaml/model/runtime_compatibility.rb +2 -2
  44. data/lib/lutaml/model/schema/class_loader.rb +2 -1
  45. data/lib/lutaml/model/schema/decorators/definition_collection.rb +4 -4
  46. data/lib/lutaml/model/schema/definitions/namespace.rb +2 -1
  47. data/lib/lutaml/model/schema/file_writer.rb +5 -2
  48. data/lib/lutaml/model/schema/renderers/base.rb +4 -3
  49. data/lib/lutaml/model/schema/renderers/mappings.rb +9 -3
  50. data/lib/lutaml/model/schema/renderers/member_decls.rb +9 -3
  51. data/lib/lutaml/model/schema/renderers/model.rb +18 -6
  52. data/lib/lutaml/model/schema/renderers/required_files_calculator.rb +2 -1
  53. data/lib/lutaml/model/schema/renderers.rb +2 -1
  54. data/lib/lutaml/model/schema/rnc_compiler/source_resolver.rb +6 -2
  55. data/lib/lutaml/model/schema/rnc_compiler.rb +3 -1
  56. data/lib/lutaml/model/schema/rng_compiler/element_visitor.rb +35 -15
  57. data/lib/lutaml/model/schema/rng_compiler/value_type_resolver.rb +4 -2
  58. data/lib/lutaml/model/schema/rng_compiler.rb +10 -5
  59. data/lib/lutaml/model/schema/xml_compiler/element_order.rb +2 -1
  60. data/lib/lutaml/model/schema/xml_compiler/spec_builder/complex_types.rb +4 -2
  61. data/lib/lutaml/model/schema/xml_compiler/spec_builder/members.rb +39 -13
  62. data/lib/lutaml/model/schema/xml_compiler/spec_builder.rb +29 -10
  63. data/lib/lutaml/model/schema/xml_compiler/supported_data_types.rb +2 -2
  64. data/lib/lutaml/model/schema/xml_compiler.rb +10 -5
  65. data/lib/lutaml/model/sequence.rb +4 -4
  66. data/lib/lutaml/model/serialization_adapter.rb +1 -1
  67. data/lib/lutaml/model/serialize/attribute_definition.rb +1 -0
  68. data/lib/lutaml/model/serialize/format_conversion.rb +40 -9
  69. data/lib/lutaml/model/serialize/initialization.rb +9 -1
  70. data/lib/lutaml/model/serialize/model_import.rb +1 -0
  71. data/lib/lutaml/model/serialize.rb +22 -3
  72. data/lib/lutaml/model/transformation.rb +5 -0
  73. data/lib/lutaml/model/type/uninitialized_class_guard.rb +1 -1
  74. data/lib/lutaml/model/type.rb +9 -0
  75. data/lib/lutaml/model/type_registry.rb +2 -2
  76. data/lib/lutaml/model/uninitialized_class.rb +1 -1
  77. data/lib/lutaml/model/union.rb +5 -2
  78. data/lib/lutaml/model/utils.rb +2 -2
  79. data/lib/lutaml/model/value_policy.rb +27 -0
  80. data/lib/lutaml/model/version.rb +1 -1
  81. data/lib/lutaml/model.rb +17 -16
  82. data/lib/lutaml/rdf/mapping.rb +2 -2
  83. data/lib/lutaml/rdf/namespace_set.rb +2 -2
  84. data/lib/lutaml/rdf/transform.rb +2 -2
  85. data/lib/lutaml/toml/format.rb +48 -0
  86. data/lib/lutaml/toml.rb +5 -46
  87. data/lib/lutaml/xml/adapter/base_adapter.rb +2 -2
  88. data/lib/lutaml/xml/builder/base.rb +2 -2
  89. data/lib/lutaml/xml/format.rb +331 -0
  90. data/lib/lutaml/xml/mapping.rb +26 -2
  91. data/lib/lutaml/xml/mapping_rule.rb +62 -3
  92. data/lib/lutaml/xml/model_transform.rb +183 -55
  93. data/lib/lutaml/xml/namespace_collector.rb +3 -3
  94. data/lib/lutaml/xml/parse_session.rb +59 -0
  95. data/lib/lutaml/xml/parsed_namespace_set.rb +2 -2
  96. data/lib/lutaml/xml/schema/builder.rb +5 -5
  97. data/lib/lutaml/xml/schema/xsd/schema_location_mapping.rb +2 -2
  98. data/lib/lutaml/xml/schema/xsd.rb +0 -2
  99. data/lib/lutaml/xml/schema/xsd_schema.rb +2 -1
  100. data/lib/lutaml/xml/serialization/format_conversion.rb +3 -3
  101. data/lib/lutaml/xml/transformation/element_builder.rb +2 -1
  102. data/lib/lutaml/xml/transformation/ordered_applier.rb +2 -1
  103. data/lib/lutaml/xml/transformation.rb +29 -0
  104. data/lib/lutaml/xml/xml_element.rb +2 -0
  105. data/lib/lutaml/xml.rb +4 -328
  106. data/lib/lutaml/yaml/format.rb +30 -0
  107. data/lib/lutaml/yaml.rb +5 -28
  108. data/lib/lutaml/yamls/adapter/mapping.rb +2 -2
  109. data/lib/lutaml/yamls/format.rb +22 -0
  110. data/lib/lutaml/yamls.rb +5 -19
  111. data/lib/tasks/benchmark_runner.rb +2 -2
  112. data/lutaml-model.gemspec +1 -1
  113. data/spec/lutaml/json/adapter/standard_adapter_spec.rb +159 -0
  114. data/spec/lutaml/jsonld/adapter_spec.rb +19 -0
  115. data/spec/lutaml/model/attribute_apply_value_map_spec.rb +26 -13
  116. data/spec/lutaml/model/attribute_spec.rb +8 -3
  117. data/spec/lutaml/model/collection_spec.rb +1 -1
  118. data/spec/lutaml/model/collection_state_nesting_spec.rb +44 -0
  119. data/spec/lutaml/model/custom_bibtex_adapter_spec.rb +2 -2
  120. data/spec/lutaml/model/custom_from_empty_values_spec.rb +74 -0
  121. data/spec/lutaml/model/custom_vobject_adapter_spec.rb +8 -8
  122. data/spec/lutaml/model/defaults_spec.rb +45 -0
  123. data/spec/lutaml/model/generator_defaults_spec.rb +101 -0
  124. data/spec/lutaml/model/json_spec.rb +1 -2
  125. data/spec/lutaml/model/json_state_nesting_spec.rb +82 -0
  126. data/spec/lutaml/model/serialize/builder_spec.rb +6 -3
  127. data/spec/lutaml/model/store_spec.rb +3 -1
  128. data/spec/lutaml/model/transform_apply_value_map_spec.rb +6 -3
  129. data/spec/lutaml/model/union_attribute_spec.rb +4 -2
  130. data/spec/lutaml/model/value_policy_spec.rb +82 -0
  131. data/spec/lutaml/require_load_order_spec.rb +25 -0
  132. data/spec/lutaml/xml/attribute_element_namespace_disjoint_spec.rb +88 -0
  133. data/spec/lutaml/xml/attribute_namespace_disjointness_spec.rb +125 -0
  134. data/spec/lutaml/xml/out_of_namespace_parsing_spec.rb +123 -0
  135. data/spec/lutaml/xml/schema/rnc_compiler_spec.rb +17 -6
  136. data/spec/lutaml/xml/schema/rng_compiler_spec.rb +15 -6
  137. data/spec/lutaml/xml/shared_element_rules_spec.rb +64 -0
  138. data/spec/lutaml/xml/w3c_types_spec.rb +3 -6
  139. metadata +26 -4
@@ -33,7 +33,9 @@ RSpec.describe Lutaml::Model::Schema::RngCompiler do
33
33
  end
34
34
 
35
35
  let(:dir) { Dir.mktmpdir }
36
- let(:schema) { File.read("spec/fixtures/xml/schema/rng/address_book.rng") }
36
+ let(:schema) do
37
+ File.read("spec/fixtures/xml/schema/rng/address_book.rng")
38
+ end
37
39
 
38
40
  let(:valid_xml) do
39
41
  <<~XML
@@ -220,10 +222,13 @@ RSpec.describe Lutaml::Model::Schema::RngCompiler do
220
222
  end
221
223
 
222
224
  let(:dir) { Dir.mktmpdir }
223
- let(:schema) { File.read("spec/fixtures/xml/schema/rng/integer_range.rng") }
225
+ let(:schema) do
226
+ File.read("spec/fixtures/xml/schema/rng/integer_range.rng")
227
+ end
224
228
 
225
229
  it "generates a SimpleType subclass for <data> with restrictions" do
226
- src = File.read(File.join(dir, "rngrestrictionspec", "st_integer_range.rb"))
230
+ src = File.read(File.join(dir, "rngrestrictionspec",
231
+ "st_integer_range.rb"))
227
232
  expect(src).to include("class StIntegerRange < Lutaml::Model::Type::Integer")
228
233
  expect(src).to include("options[:min] = 1")
229
234
  expect(src).to include("options[:max] = 255")
@@ -507,7 +512,9 @@ RSpec.describe Lutaml::Model::Schema::RngCompiler do
507
512
  expect(classes_hash.keys).to contain_exactly(
508
513
  "AddressBook", "Card", "CardContent"
509
514
  )
510
- classes_hash.each_value { |src| expect(src).to start_with("# frozen_string_literal: true") }
515
+ classes_hash.each_value do |src|
516
+ expect(src).to start_with("# frozen_string_literal: true")
517
+ end
511
518
  end
512
519
  end
513
520
 
@@ -821,7 +828,8 @@ RSpec.describe Lutaml::Model::Schema::RngCompiler do
821
828
 
822
829
  it "returns generated source per class" do
823
830
  expect(result).to be_a(Hash)
824
- expect(result.keys).to contain_exactly("AddressBook", "Card", "CardContent")
831
+ expect(result.keys).to contain_exactly("AddressBook", "Card",
832
+ "CardContent")
825
833
  end
826
834
 
827
835
  it "loads the namespaced module and registers classes" do
@@ -886,7 +894,8 @@ RSpec.describe Lutaml::Model::Schema::RngCompiler do
886
894
  File.read("spec/fixtures/xml/schema/rng/address_book.rng"),
887
895
  )
888
896
  expect(result).to be_a(Hash)
889
- expect(result.keys).to contain_exactly("AddressBook", "Card", "CardContent")
897
+ expect(result.keys).to contain_exactly("AddressBook", "Card",
898
+ "CardContent")
890
899
  end
891
900
  end
892
901
  end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ # lutaml-model#765: two element rules mapped to one collection attribute
6
+ # (spelling tolerance, e.g. metanorma's editorial-group/editorialgroup).
7
+ # Parse must merge the spellings' content in document order — never drop
8
+ # the first silently — and serialization must emit the value once, under
9
+ # the first declared spelling.
10
+ module SharedElementRulesSpec
11
+ class Both < Lutaml::Model::Serializable
12
+ attribute :items, :string, collection: true
13
+
14
+ xml do
15
+ root "r"
16
+ map_element "a", to: :items
17
+ map_element "b", to: :items
18
+ end
19
+ end
20
+ end
21
+
22
+ RSpec.describe "multiple element rules on one attribute" do
23
+ it "appends both spellings in document order" do
24
+ expect(SharedElementRulesSpec::Both.from_xml("<r><a>one</a><b>two</b></r>").items)
25
+ .to eq(["one", "two"])
26
+ end
27
+
28
+ it "appends in document order when the second spelling comes first" do
29
+ expect(SharedElementRulesSpec::Both.from_xml("<r><b>two</b><a>one</a></r>").items)
30
+ .to eq(["two", "one"])
31
+ end
32
+
33
+ it "keeps document order across interleaved spellings" do
34
+ xml = "<r><a>1</a><b>2</b><a>3</a><b>4</b></r>"
35
+ expect(SharedElementRulesSpec::Both.from_xml(xml).items).to eq(%w[1 2 3 4])
36
+ end
37
+
38
+ it "parses a document that only uses the first spelling" do
39
+ expect(SharedElementRulesSpec::Both.from_xml("<r><a>one</a></r>").items)
40
+ .to eq(["one"])
41
+ end
42
+
43
+ it "parses a document that only uses the second spelling" do
44
+ expect(SharedElementRulesSpec::Both.from_xml("<r><b>two</b></r>").items)
45
+ .to eq(["two"])
46
+ end
47
+
48
+ it "serializes the value once, under the first declared spelling" do
49
+ xml = SharedElementRulesSpec::Both.new(items: %w[one two]).to_xml
50
+ expect(xml.scan(/<(a|b)>/).flatten).to eq(%w[a a])
51
+ expect(xml).to include("<a>one</a>").and include("<a>two</a>")
52
+ end
53
+
54
+ it "round-trips through both spellings without losing content" do
55
+ doc = SharedElementRulesSpec::Both.from_xml("<r><a>one</a><b>two</b></r>")
56
+ reparsed = SharedElementRulesSpec::Both.from_xml(doc.to_xml)
57
+ expect(reparsed.items).to eq(%w[one two])
58
+ end
59
+
60
+ it "keeps the mapping usable when the attribute also has a default" do
61
+ both = SharedElementRulesSpec::Both.from_xml("<r/>")
62
+ expect(both.items).to eq([])
63
+ end
64
+ end
@@ -307,9 +307,8 @@ RSpec.describe Lutaml::Xml::W3c do
307
307
  RUBY
308
308
  temp_script.close
309
309
 
310
- # rubocop:disable Style/CommandLiteral
310
+ # rubocop:disable-next Style/CommandLiteral
311
311
  result = `#{RbConfig.ruby} -I#{lib_path} #{temp_script.path} 2>&1`
312
- # rubocop:enable Style/CommandLiteral
313
312
 
314
313
  expect($?.success?).to be(true),
315
314
  "W3C types not registered after require 'lutaml/xml'. " \
@@ -335,9 +334,8 @@ RSpec.describe Lutaml::Xml::W3c do
335
334
  RUBY
336
335
  temp_script.close
337
336
 
338
- # rubocop:disable Style/CommandLiteral
337
+ # rubocop:disable-next Style/CommandLiteral
339
338
  result = `#{RbConfig.ruby} -I#{lib_path} #{temp_script.path} 2>&1`
340
- # rubocop:enable Style/CommandLiteral
341
339
 
342
340
  expect($?.success?).to be(true),
343
341
  "Type.lookup failed for W3C symbols after require 'lutaml/xml'. " \
@@ -361,9 +359,8 @@ RSpec.describe Lutaml::Xml::W3c do
361
359
  RUBY
362
360
  temp_script.close
363
361
 
364
- # rubocop:disable Style/CommandLiteral
362
+ # rubocop:disable-next Style/CommandLiteral
365
363
  result = `#{RbConfig.ruby} -I#{lib_path} #{temp_script.path} 2>&1`
366
- # rubocop:enable Style/CommandLiteral
367
364
 
368
365
  expect($?.success?).to be(true),
369
366
  "Symbol-based attribute definition failed after require 'lutaml/xml'. " \
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lutaml-model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.19
4
+ version: 0.8.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-07-27 00:00:00.000000000 Z
11
+ date: 2026-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: 0.1.25
95
+ version: 0.5.0
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: 0.1.25
102
+ version: 0.5.0
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: ostruct
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -309,6 +309,7 @@ files:
309
309
  - lib/lutaml/hash_format/adapter/mapping_rule.rb
310
310
  - lib/lutaml/hash_format/adapter/standard_adapter.rb
311
311
  - lib/lutaml/hash_format/adapter/transform.rb
312
+ - lib/lutaml/hash_format/format.rb
312
313
  - lib/lutaml/hash_format/type/serializers.rb
313
314
  - lib/lutaml/json.rb
314
315
  - lib/lutaml/json/adapter.rb
@@ -319,6 +320,8 @@ files:
319
320
  - lib/lutaml/json/adapter/oj_adapter.rb
320
321
  - lib/lutaml/json/adapter/standard_adapter.rb
321
322
  - lib/lutaml/json/adapter/transform.rb
323
+ - lib/lutaml/json/format.rb
324
+ - lib/lutaml/json/generator_options.rb
322
325
  - lib/lutaml/json/schema.rb
323
326
  - lib/lutaml/json/schema/json_schema.rb
324
327
  - lib/lutaml/json/type/serializers.rb
@@ -329,6 +332,7 @@ files:
329
332
  - lib/lutaml/jsonl/adapter/mapping_rule.rb
330
333
  - lib/lutaml/jsonl/adapter/standard_adapter.rb
331
334
  - lib/lutaml/jsonl/adapter/transform.rb
335
+ - lib/lutaml/jsonl/format.rb
332
336
  - lib/lutaml/jsonld.rb
333
337
  - lib/lutaml/jsonld/adapter.rb
334
338
  - lib/lutaml/key_value.rb
@@ -375,6 +379,7 @@ files:
375
379
  - lib/lutaml/key_value/data_model.rb
376
380
  - lib/lutaml/key_value/data_model/element.rb
377
381
  - lib/lutaml/key_value/document.rb
382
+ - lib/lutaml/key_value/format.rb
378
383
  - lib/lutaml/key_value/mapping.rb
379
384
  - lib/lutaml/key_value/mapping_rule.rb
380
385
  - lib/lutaml/key_value/transform.rb
@@ -642,6 +647,7 @@ files:
642
647
  - lib/lutaml/model/validation/report.rb
643
648
  - lib/lutaml/model/validation/rule.rb
644
649
  - lib/lutaml/model/validation_framework.rb
650
+ - lib/lutaml/model/value_policy.rb
645
651
  - lib/lutaml/model/value_transformer.rb
646
652
  - lib/lutaml/model/version.rb
647
653
  - lib/lutaml/model/yaml.rb
@@ -675,6 +681,7 @@ files:
675
681
  - lib/lutaml/toml/adapter/toml_rb_adapter.rb
676
682
  - lib/lutaml/toml/adapter/tomlib_adapter.rb
677
683
  - lib/lutaml/toml/adapter/transform.rb
684
+ - lib/lutaml/toml/format.rb
678
685
  - lib/lutaml/toml/type/serializers.rb
679
686
  - lib/lutaml/turtle.rb
680
687
  - lib/lutaml/turtle/adapter.rb
@@ -743,6 +750,7 @@ files:
743
750
  - lib/lutaml/xml/error/schema_validation_error.rb
744
751
  - lib/lutaml/xml/error/xml_configuration_error.rb
745
752
  - lib/lutaml/xml/error/xml_error.rb
753
+ - lib/lutaml/xml/format.rb
746
754
  - lib/lutaml/xml/format_chooser.rb
747
755
  - lib/lutaml/xml/hoisting_algorithm.rb
748
756
  - lib/lutaml/xml/listener.rb
@@ -769,6 +777,7 @@ files:
769
777
  - lib/lutaml/xml/oga/element.rb
770
778
  - lib/lutaml/xml/ox.rb
771
779
  - lib/lutaml/xml/ox/element.rb
780
+ - lib/lutaml/xml/parse_session.rb
772
781
  - lib/lutaml/xml/parsed_namespace_declaration.rb
773
782
  - lib/lutaml/xml/parsed_namespace_set.rb
774
783
  - lib/lutaml/xml/polymorphic_value_handler.rb
@@ -895,6 +904,7 @@ files:
895
904
  - lib/lutaml/yaml/adapter/mapping_rule.rb
896
905
  - lib/lutaml/yaml/adapter/standard_adapter.rb
897
906
  - lib/lutaml/yaml/adapter/transform.rb
907
+ - lib/lutaml/yaml/format.rb
898
908
  - lib/lutaml/yaml/schema.rb
899
909
  - lib/lutaml/yaml/schema/yaml_schema.rb
900
910
  - lib/lutaml/yaml/type/serializers.rb
@@ -909,6 +919,7 @@ files:
909
919
  - lib/lutaml/yamls/adapter/transform.rb
910
920
  - lib/lutaml/yamls/adapter/yamls_sequence.rb
911
921
  - lib/lutaml/yamls/adapter/yamls_sequence_rule.rb
922
+ - lib/lutaml/yamls/format.rb
912
923
  - lib/tasks/benchmark_runner.rb
913
924
  - lib/tasks/memory_profile.rb
914
925
  - lib/tasks/performance.rake
@@ -1628,6 +1639,7 @@ files:
1628
1639
  - spec/lutaml/integration/edge_cases_spec.rb
1629
1640
  - spec/lutaml/integration/multi_format_spec.rb
1630
1641
  - spec/lutaml/integration/round_trip_spec.rb
1642
+ - spec/lutaml/json/adapter/standard_adapter_spec.rb
1631
1643
  - spec/lutaml/jsonld/adapter_spec.rb
1632
1644
  - spec/lutaml/key_value/transformation/collection_serializer_spec.rb
1633
1645
  - spec/lutaml/key_value/transformation/rule_compiler_spec.rb
@@ -1647,6 +1659,7 @@ files:
1647
1659
  - spec/lutaml/model/collection_index_spec.rb
1648
1660
  - spec/lutaml/model/collection_mutation_spec.rb
1649
1661
  - spec/lutaml/model/collection_spec.rb
1662
+ - spec/lutaml/model/collection_state_nesting_spec.rb
1650
1663
  - spec/lutaml/model/collection_validation_spec.rb
1651
1664
  - spec/lutaml/model/comparable_model_spec.rb
1652
1665
  - spec/lutaml/model/compiled_rule_spec.rb
@@ -1654,6 +1667,7 @@ files:
1654
1667
  - spec/lutaml/model/context_registry_spec.rb
1655
1668
  - spec/lutaml/model/custom_bibtex_adapter_spec.rb
1656
1669
  - spec/lutaml/model/custom_collection_spec.rb
1670
+ - spec/lutaml/model/custom_from_empty_values_spec.rb
1657
1671
  - spec/lutaml/model/custom_model_spec.rb
1658
1672
  - spec/lutaml/model/custom_serialization_spec.rb
1659
1673
  - spec/lutaml/model/custom_vobject_adapter_spec.rb
@@ -1666,6 +1680,7 @@ files:
1666
1680
  - spec/lutaml/model/enum_spec.rb
1667
1681
  - spec/lutaml/model/except_spec.rb
1668
1682
  - spec/lutaml/model/finalization_cache_spec.rb
1683
+ - spec/lutaml/model/generator_defaults_spec.rb
1669
1684
  - spec/lutaml/model/global_context_spec.rb
1670
1685
  - spec/lutaml/model/global_register_spec.rb
1671
1686
  - spec/lutaml/model/group_spec.rb
@@ -1675,6 +1690,7 @@ files:
1675
1690
  - spec/lutaml/model/inheritance_spec.rb
1676
1691
  - spec/lutaml/model/json_adapter_spec.rb
1677
1692
  - spec/lutaml/model/json_spec.rb
1693
+ - spec/lutaml/model/json_state_nesting_spec.rb
1678
1694
  - spec/lutaml/model/jsonl/standard_adapter_spec.rb
1679
1695
  - spec/lutaml/model/jsonl_spec.rb
1680
1696
  - spec/lutaml/model/key_value_data_model/key_value_element_spec.rb
@@ -1777,6 +1793,7 @@ files:
1777
1793
  - spec/lutaml/model/validation/validation_framework_spec.rb
1778
1794
  - spec/lutaml/model/validation_spec.rb
1779
1795
  - spec/lutaml/model/value_map_spec.rb
1796
+ - spec/lutaml/model/value_policy_spec.rb
1780
1797
  - spec/lutaml/model/value_transformation_comprehensive_spec.rb
1781
1798
  - spec/lutaml/model/with_child_mapping_spec.rb
1782
1799
  - spec/lutaml/model/xml_decoupling_spec.rb
@@ -1802,6 +1819,7 @@ files:
1802
1819
  - spec/lutaml/rdf/namespace_spec.rb
1803
1820
  - spec/lutaml/rdf/rdf_transform_spec.rb
1804
1821
  - spec/lutaml/rdf/term_definition_spec.rb
1822
+ - spec/lutaml/require_load_order_spec.rb
1805
1823
  - spec/lutaml/turtle/adapter_spec.rb
1806
1824
  - spec/lutaml/turtle/mapping_spec.rb
1807
1825
  - spec/lutaml/turtle/transform_spec.rb
@@ -1812,6 +1830,8 @@ files:
1812
1830
  - spec/lutaml/xml/adapter/ox_adapter_spec.rb
1813
1831
  - spec/lutaml/xml/adapter/rexml_adapter_spec.rb
1814
1832
  - spec/lutaml/xml/adapter/xml_namespace_spec.rb
1833
+ - spec/lutaml/xml/attribute_element_namespace_disjoint_spec.rb
1834
+ - spec/lutaml/xml/attribute_namespace_disjointness_spec.rb
1815
1835
  - spec/lutaml/xml/builder/builder_spec.rb
1816
1836
  - spec/lutaml/xml/clear_parse_state_spec.rb
1817
1837
  - spec/lutaml/xml/compiled_rule_namespace_spec.rb
@@ -1871,6 +1891,7 @@ files:
1871
1891
  - spec/lutaml/xml/ooxml_namespace_spec.rb
1872
1892
  - spec/lutaml/xml/opal_xml_spec.rb
1873
1893
  - spec/lutaml/xml/ordered_method_spec.rb
1894
+ - spec/lutaml/xml/out_of_namespace_parsing_spec.rb
1874
1895
  - spec/lutaml/xml/pipeline_integration_spec.rb
1875
1896
  - spec/lutaml/xml/prefix_control_spec.rb
1876
1897
  - spec/lutaml/xml/register_spec.rb
@@ -1900,6 +1921,7 @@ files:
1900
1921
  - spec/lutaml/xml/schema/xsd/xsd_spec.rb
1901
1922
  - spec/lutaml/xml/schema_primer_spec.rb
1902
1923
  - spec/lutaml/xml/serializable_namespace_spec.rb
1924
+ - spec/lutaml/xml/shared_element_rules_spec.rb
1903
1925
  - spec/lutaml/xml/transformation/custom_method_wrapper_spec.rb
1904
1926
  - spec/lutaml/xml/transformation_spec.rb
1905
1927
  - spec/lutaml/xml/type_namespace/collector_spec.rb