lutaml-xsd 1.2.98 → 1.2.99
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.
- checksums.yaml +4 -4
- data/TODO.conformance.md +14 -0
- data/lib/lutaml/xsd/validation/schema_definition_resolver.rb +16 -0
- data/lib/lutaml/xsd/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fa20de2fba923a0b6485653e7902c20694898ac8583b90f5e144b11b7ae61fc4
|
|
4
|
+
data.tar.gz: ccd4a57412cd1095538a9a72988d9b792f8f3ae213d4c644a401391d32cafcbc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 421748a4d525018acc64f0a85f0d84b07320f456017bd06c481bb2cb0b97eeb8b394fbbed64a50f8c3e037277a627d8aa322aabbb2eb9983861f798c78126734
|
|
7
|
+
data.tar.gz: 63b4a57e42b8431ab7cec97f0fd015520c991c1ff8ab4017a7f4210f1d9b3f7f3480c8fca5e4c7ddc11079e818bfe4211030ef30cdeb4e6e04714468ca1015d7
|
data/TODO.conformance.md
CHANGED
|
@@ -523,6 +523,20 @@ tuple keys, node-set field violations and absent-field rows handled, cross-eleme
|
|
|
523
523
|
\p{Is...} per-block tests) plus the reL/reP/reQ/reR/reS/reT
|
|
524
524
|
series — filed leptris-rs#47; moxml 0.6.3 regressed 5 attribute
|
|
525
525
|
cases (addB059/196c/197c, attO009/011) — filed moxml#529. THE
|
|
526
|
+
- REDEFINE-GROUP ROUND (2026-11-07): +2 ModelGroups (mgO006,
|
|
527
|
+
mgO034; suite 4622->4624 = 98.46%, zero regressions, rspec
|
|
528
|
+
green). index_redefine registered simpleType bodies
|
|
529
|
+
(@redefined_simple_bodies) and attributeGroup bodies
|
|
530
|
+
(@attribute_groups) but NOT group bodies — resolve_group walked
|
|
531
|
+
the schemas and found the TARGET original (mgO006B's
|
|
532
|
+
all(e1, e2?)) instead of the redefining body (choice(e1)), so
|
|
533
|
+
foo's sequence(e1, group-ref) saw two e1s against the all's
|
|
534
|
+
max-1 and false-positived occurrence bounds. The body IS the
|
|
535
|
+
effective definition for every reference to the name (§4.2.2 —
|
|
536
|
+
the same principle the simple-type round landed for stZ033).
|
|
537
|
+
Group sentinels (schT redefine trio, groupG/H/J, idF/G engine
|
|
538
|
+
legs) unchanged.
|
|
539
|
+
|
|
526
540
|
STACK IS PINNED BACK to the known-good 1.9.406.0/0.6.2/0.8.161
|
|
527
541
|
- SKIP-WILDCARD-FIELD ROUND (2026-11-07): +1 IC (idZ015; suite
|
|
528
542
|
4621->4622 = 98.42%, zero regressions, rspec green). THE LAST IC
|
|
@@ -65,6 +65,11 @@ module Lutaml
|
|
|
65
65
|
# redefined enumeration). The facet walk never recurses into
|
|
66
66
|
# named bases, so the body's base reference terminates here.
|
|
67
67
|
@redefined_simple_bodies = {}
|
|
68
|
+
# Redefine GROUP bodies: the body is the effective definition
|
|
69
|
+
# for every reference to the name (§4.2.2 — same principle as
|
|
70
|
+
# the simple-type bodies; mgO006/034: the body's choice(e1)
|
|
71
|
+
# replaces the target's all(...)).
|
|
72
|
+
@redefined_groups = {}
|
|
68
73
|
# Exact namespaces for PREFIXED ref particles, from the
|
|
69
74
|
# owning schema's xmlns declarations (lutaml-model 0.8.167
|
|
70
75
|
# retains them — #1131). The prefix IS the semantics: a ref
|
|
@@ -483,6 +488,11 @@ module Lutaml
|
|
|
483
488
|
def resolve_group(local_name)
|
|
484
489
|
return nil if local_name.nil? || local_name.empty?
|
|
485
490
|
|
|
491
|
+
# A redefine body is the effective definition for every
|
|
492
|
+
# reference to the name — the target originals never serve.
|
|
493
|
+
body = @redefined_groups[local_name]
|
|
494
|
+
return body if body
|
|
495
|
+
|
|
486
496
|
schemas.each do |schema|
|
|
487
497
|
found = Array(schema.group).find { |g| g.name == local_name }
|
|
488
498
|
return found if found
|
|
@@ -1040,6 +1050,12 @@ module Lutaml
|
|
|
1040
1050
|
@redefined_originals[name] = original if original
|
|
1041
1051
|
@attribute_groups[name] = group
|
|
1042
1052
|
end
|
|
1053
|
+
Array(red.group).each do |group|
|
|
1054
|
+
name = group.name.to_s
|
|
1055
|
+
next if name.empty?
|
|
1056
|
+
|
|
1057
|
+
@redefined_groups[name] = group
|
|
1058
|
+
end
|
|
1043
1059
|
end
|
|
1044
1060
|
|
|
1045
1061
|
def index_attribute(attribute, namespace)
|
data/lib/lutaml/xsd/version.rb
CHANGED