lutaml-xsd 1.2.75 → 1.2.77
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9348b8456689993378705b9289ce593db195f7440d77aeb6aaf5d5dda095cc68
|
|
4
|
+
data.tar.gz: 958720fe60cf140d78ebe3891069d4e0f64ffa37f37290c24f236499ae8dc187
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9e883e13a5538b8d26493881aef3512513a12952fcc08f464f16ce77e2cde3142bfe082b85700a9b6545a6e2e4bf546d7449408a9d3e20af5175541622ab202b
|
|
7
|
+
data.tar.gz: 31990577df015678c7986199fda9ab5e751be44925b5bcf6a7eaa198e32eb884f6ad98920873070ed4f70d2b1f1a0d41084769911bc1f0f9c9e2450ce05e3e89
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
lutaml-xsd (1.2.
|
|
4
|
+
lutaml-xsd (1.2.77)
|
|
5
5
|
liquid (>= 4.0, < 6.0)
|
|
6
6
|
lutaml-model (~> 0.8.123)
|
|
7
7
|
lutaml-store (~> 0.3)
|
|
@@ -46,23 +46,23 @@ GEM
|
|
|
46
46
|
fiddle (1.1.8)
|
|
47
47
|
json (3.1.0)
|
|
48
48
|
language_server-protocol (3.17.0.6)
|
|
49
|
-
leptris (1.9.
|
|
49
|
+
leptris (1.9.401.0-aarch64-linux)
|
|
50
50
|
ffi (~> 1.15)
|
|
51
|
-
leptris (1.9.
|
|
51
|
+
leptris (1.9.401.0-aarch64-linux-musl)
|
|
52
52
|
ffi (~> 1.15)
|
|
53
|
-
leptris (1.9.
|
|
53
|
+
leptris (1.9.401.0-arm-linux)
|
|
54
54
|
ffi (~> 1.15)
|
|
55
|
-
leptris (1.9.
|
|
55
|
+
leptris (1.9.401.0-arm-linux-musl)
|
|
56
56
|
ffi (~> 1.15)
|
|
57
|
-
leptris (1.9.
|
|
57
|
+
leptris (1.9.401.0-arm64-darwin)
|
|
58
58
|
ffi (~> 1.15)
|
|
59
|
-
leptris (1.9.
|
|
59
|
+
leptris (1.9.401.0-x64-mingw-ucrt)
|
|
60
60
|
ffi (~> 1.15)
|
|
61
|
-
leptris (1.9.
|
|
61
|
+
leptris (1.9.401.0-x86_64-darwin)
|
|
62
62
|
ffi (~> 1.15)
|
|
63
|
-
leptris (1.9.
|
|
63
|
+
leptris (1.9.401.0-x86_64-linux)
|
|
64
64
|
ffi (~> 1.15)
|
|
65
|
-
leptris (1.9.
|
|
65
|
+
leptris (1.9.401.0-x86_64-linux-musl)
|
|
66
66
|
ffi (~> 1.15)
|
|
67
67
|
lint_roller (1.1.0)
|
|
68
68
|
liquid (5.14.0)
|
|
@@ -251,20 +251,20 @@ CHECKSUMS
|
|
|
251
251
|
fiddle (1.1.8) sha256=7fa8ee3627271497f3add5503acdbc3f40b32f610fc1cf49634f083ef3f32eee
|
|
252
252
|
json (3.1.0) sha256=3ce7ccf8fde58960177a3a756c31f292a4c1e1dedee884547096a5b0604e3bd8
|
|
253
253
|
language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
|
|
254
|
-
leptris (1.9.
|
|
255
|
-
leptris (1.9.
|
|
256
|
-
leptris (1.9.
|
|
257
|
-
leptris (1.9.
|
|
258
|
-
leptris (1.9.
|
|
259
|
-
leptris (1.9.
|
|
260
|
-
leptris (1.9.
|
|
261
|
-
leptris (1.9.
|
|
262
|
-
leptris (1.9.
|
|
254
|
+
leptris (1.9.401.0-aarch64-linux) sha256=47ec59d69cd7c496b8e680bc1710316eb7c3758f2773f694f8eae564b208e13c
|
|
255
|
+
leptris (1.9.401.0-aarch64-linux-musl) sha256=17ce4ab5f1764bfc0c9f6af2d2b58c6fad7e62efad6d0b6fcf9ac9afe9b6f4f2
|
|
256
|
+
leptris (1.9.401.0-arm-linux) sha256=9841eb6226141ed731df9ffdedd704e06805a2af197f68492423e492b26e7791
|
|
257
|
+
leptris (1.9.401.0-arm-linux-musl) sha256=00b805fc80caec46af58dd63d552e66b75b10f788451820b9fe6516c042f149b
|
|
258
|
+
leptris (1.9.401.0-arm64-darwin) sha256=998e27a93547fb91a0987fbcdf702ecfb0966547691ab621058bf69a5e27d295
|
|
259
|
+
leptris (1.9.401.0-x64-mingw-ucrt) sha256=7bfbdd1c74e06f8467491a6f981d6ad3d2a03905684c5763ab83f4dfde24fe28
|
|
260
|
+
leptris (1.9.401.0-x86_64-darwin) sha256=32de3947eced5a85fdbe4d6371ac525fba9c41b84b0f91e5a79e84deeaeef8ce
|
|
261
|
+
leptris (1.9.401.0-x86_64-linux) sha256=a6eb1c7107a659d8a5877f06d4fb398b3a7eb410a2c6c2ee9da72838f7c6bba9
|
|
262
|
+
leptris (1.9.401.0-x86_64-linux-musl) sha256=40c2222a670e80a7cdc0283ca48b4e7ce03b5a4690b60a0b1281d4afac5f3627
|
|
263
263
|
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
|
|
264
264
|
liquid (5.14.0) sha256=e1020c2b2ee58c7a4d3bfdc7a331537bd27a783353748bff0bf27c6ac0c17065
|
|
265
265
|
lutaml-model (0.8.155) sha256=3d90f2fb4fdf41a42d4a05b62b3f6644b433070b82291a9371deaa8e68a1e02d
|
|
266
266
|
lutaml-store (0.3.2) sha256=9c455dbab32b4c635c48a27213f6f56fda191731c4574eb6187184ba0588a672
|
|
267
|
-
lutaml-xsd (1.2.
|
|
267
|
+
lutaml-xsd (1.2.77)
|
|
268
268
|
memo_wise (1.13.0) sha256=30220c38c4cef410849bc73553c58664dc2c91c6379e4a1df22aea02358b716b
|
|
269
269
|
moxml (0.6.1) sha256=5b7677258bbad372f0725a421f8adeae37b65d6f7871da2747e2c1906cdac7ea
|
|
270
270
|
nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f
|
data/TODO.conformance.md
CHANGED
|
@@ -120,20 +120,21 @@ pinned commit) is measured via `rake conformance:w3c`:
|
|
|
120
120
|
|
|
121
121
|
| mode | pass-rate |
|
|
122
122
|
|---|---|
|
|
123
|
-
| pipeline |
|
|
123
|
+
| pipeline | 4557/4696 (97.0%) |
|
|
124
124
|
|
|
125
|
-
(2026-11-
|
|
125
|
+
(2026-11-02, bundled-stack measurement on main with the escape,
|
|
126
126
|
hint-following, pattern-alternative, identity-crash, engine-set,
|
|
127
127
|
engine-refresh, IC value-space, IC field-resolution, facade-silence,
|
|
128
|
-
regex-semantics, redefine-refresh, gmonth-refresh
|
|
129
|
-
rounds; moxml 0.6.1 (gemspec floor
|
|
130
|
-
0.6 line drops the Opal surface;
|
|
131
|
-
lutaml-model 0.8.155, engine leptris
|
|
132
|
-
1.9.
|
|
128
|
+
regex-semantics, redefine-refresh, gmonth-refresh, digit-vintage,
|
|
129
|
+
stgh-refresh and group-ref rounds; moxml 0.6.1 (gemspec floor
|
|
130
|
+
`~> 0.6.0` per the owner — the 0.6 line drops the Opal surface;
|
|
131
|
+
measured conformance-neutral), lutaml-model 0.8.155, engine leptris
|
|
132
|
+
1.9.401.0.) Same-stack comparison: 1.2.43 baseline 3961 (84.3%) →
|
|
133
133
|
4039 (86.0%) → 4090 (87.1%) → 4360 (92.8%, lockfile refresh) → 4411
|
|
134
134
|
(93.9%) → 4430 (94.3%) → 4435 (94.4%) → 4436 (94.5%) → 4439 (94.5%)
|
|
135
135
|
→ 4454 (94.9%) → 4495 (95.7%) → 4524 (96.3%) → 4534 (96.6%) → 4540
|
|
136
|
-
(96.7%) → 4542 (96.7%)
|
|
136
|
+
(96.7%) → 4542 (96.7%) → 4546 (96.8%) → 4557 (97.0%), +596 net over
|
|
137
|
+
the 1.2.43 baseline. The escapes round (PR #197 — \d→\p{Nd},
|
|
137
138
|
\w/\W/\s to their XSD value spaces) collapses Regex 120→69;
|
|
138
139
|
same-step pattern facets now behave as alternatives and
|
|
139
140
|
whitespace-only text reaches the facets intact (PR #200), Regex
|
|
@@ -225,7 +226,7 @@ corners.
|
|
|
225
226
|
|---|---|---|
|
|
226
227
|
| Facade strict re-check on composed schemas — remaining shapes (ctE019 attribute re-check, addB116 substitution admission) | ~8 | moxml#510 (+2 follow-up comments) |
|
|
227
228
|
| Redefine self-extension drops the extension content model | 0 — FIXED in leptris 1.9.396 | leptris#1926 (closed) |
|
|
228
|
-
| Built-in lexical tables reject valid forms (
|
|
229
|
+
| Built-in lexical tables reject valid forms (char-reference shapes; gMonth FIXED 1.9.398, \d legacy-Nd FIXED 1.9.399, stG/stH list lexicals FIXED 1.9.400/401) | ~5 | leptris#1936 |
|
|
229
230
|
| Automaton size cap surfaces as an instance error instead of engine-inert silence | 0 — FIXED in leptris 1.9.398 | moxml#514 (follow-up to #473) |
|
|
230
231
|
| Regex dialect remainder (engine `\d` vintage, `\p{Is...}` blocks, char-reference shapes) | ~30 | engine-side of leptris#1936 |
|
|
231
232
|
| Strict wildcard/attribute admission on further compositions | ~5 | moxml#510 thread |
|
|
@@ -241,7 +242,8 @@ moxml 0.5.170 + lutaml-model 0.8.147) → 93.9% (escape + hint rounds)
|
|
|
241
242
|
4439) → 94.9% (IC field-resolution round PR #206, 4454) → 95.7%
|
|
242
243
|
(facade-silence dep refresh, moxml 0.5.177, 4495) → 96.3% (regex
|
|
243
244
|
semantics round PR #208, 4524) → 96.6% (redefine refresh, leptris
|
|
244
|
-
1.9.396/1.9.397, 4534).
|
|
245
|
+
1.9.396/1.9.397, 4534) → 96.8% (stG/stH refresh, leptris 1.9.401,
|
|
246
|
+
4546) → 97.0% (group-ref round PR #217, 4557). Failure
|
|
245
247
|
concentration (the work queue, largest first):
|
|
246
248
|
|
|
247
249
|
- `Regex_w3c` (131) — decomposed by error source (2026-10-25): the
|
|
@@ -296,7 +298,9 @@ tuple keys, node-set field violations and absent-field rows handled, cross-eleme
|
|
|
296
298
|
addB116-class substitution admission + schA1-class same-root
|
|
297
299
|
multi-document crosstalk; the ctE019 attribute re-check FIXED in
|
|
298
300
|
leptris 1.9.395), DataTypes (17), Particles (18), Group (19),
|
|
299
|
-
AttributeGroup (17), SimpleType (
|
|
301
|
+
AttributeGroup (17), SimpleType (6 — the stG/stH list-lexical
|
|
302
|
+
class FIXED in leptris 1.9.400/1.9.401; remainder is reZ-adjacent),
|
|
303
|
+
Attribute (10), Additional
|
|
300
304
|
(7), IdentityConstraint (6 — idK012/idZ008/010/011/012/015
|
|
301
305
|
singleton corners: cross-namespace keyrefs, IDREF defaults,
|
|
302
306
|
complexContent constraint location — the redefine class FIXED in
|
|
@@ -332,6 +336,28 @@ tuple keys, node-set field violations and absent-field rows handled, cross-eleme
|
|
|
332
336
|
#208. Regex 30→28; suite 4542/4696 (96.7%). Still open on #1936:
|
|
333
337
|
the reZ char-reference shapes and the stG/stH list-union member
|
|
334
338
|
lexicals; plus the moxml#510 addB116 straggler.
|
|
339
|
+
- STGH REFRESH ROUND (2026-11-02): lockfile leptris 1.9.399.0 →
|
|
340
|
+
1.9.401.0 (1.9.400 landed late on rubygems; 1.9.401 adds list
|
|
341
|
+
value-space whitespace collapse before facets) — the train
|
|
342
|
+
carried the stG/stH legs of OUR leptris#1936: inline anonymous
|
|
343
|
+
restriction bases drive list-item length and list lexicals are
|
|
344
|
+
collapsed before pattern/enumeration. All four cases flip
|
|
345
|
+
(stG010/012, stH005/007); SimpleType 10→6; suite 4546/4696
|
|
346
|
+
(96.8%), zero regressions. #1936 remainder: reZ char-reference
|
|
347
|
+
shapes, reT51 \D vintage; plus moxml#510 addB116 straggler.
|
|
348
|
+
- GROUP-REF ROUND (2026-11-02, PR #217): +11 Group cases (19→8,
|
|
349
|
+
suite 4557/4696 = 97.0%). TWO Ruby defects: (a) `particle_for_type`
|
|
350
|
+
read sequence/choice/all from extension and restriction bodies but
|
|
351
|
+
NOT `group` — a derivation body that is a bare group reference
|
|
352
|
+
compiled to NO content model and the walk enforced nothing
|
|
353
|
+
(groupG/groupH class); (b) `composite_capacity` decided sum-vs-max
|
|
354
|
+
from the PARTICLE's class — for a Group ref it always took the max
|
|
355
|
+
branch even when the group's declaration is a SEQUENCE whose
|
|
356
|
+
members' capacities must ADD (groupH002: one branch of x1+x2 was
|
|
357
|
+
counted as two choice occurrences). Neighbors verified identical;
|
|
358
|
+
zero regressions. Group remainder: groupB009/010 + groupO004
|
|
359
|
+
(false-reject class), groupH008/J003/006/008/L008 under-detections
|
|
360
|
+
(choice-of-group capacity depth).
|
|
335
361
|
- REGEX SEMANTICS ROUND (2026-10-31, PR #208): \w/\W now carry their
|
|
336
362
|
Appendix F complements (\w = [^\p{P}\p{Z}\p{C}], class interiors
|
|
337
363
|
via the exact positive partition L/M/N/S), \I/\C complements added
|
|
@@ -501,24 +501,36 @@ module Lutaml
|
|
|
501
501
|
end
|
|
502
502
|
|
|
503
503
|
def composite_capacity(particle, repository, depth)
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
504
|
+
# The CONTAINER's kind decides aggregation: a group whose
|
|
505
|
+
# declaration is a sequence ADDS its members' capacities, a
|
|
506
|
+
# choice takes the largest — deciding from the ref particle
|
|
507
|
+
# itself always maxed (groupH class).
|
|
508
|
+
children, aggregate =
|
|
509
|
+
if particle.is_a?(Lutaml::Xml::Schema::Xsd::Group)
|
|
510
|
+
container = expand_group_container(particle,
|
|
511
|
+
repository).first
|
|
512
|
+
if container
|
|
513
|
+
[choice_alternatives(container),
|
|
514
|
+
container_choice?(container) ? :max : :sum]
|
|
515
|
+
else
|
|
516
|
+
[[], :max]
|
|
517
|
+
end
|
|
518
|
+
else
|
|
519
|
+
[choice_alternatives(particle),
|
|
520
|
+
particle.is_a?(Lutaml::Xsd::Sequence) ? :sum : :max]
|
|
521
|
+
end
|
|
512
522
|
caps = children.map do |child|
|
|
513
523
|
branch_capacity(child, repository, depth + 1)
|
|
514
524
|
end
|
|
515
525
|
return :unbounded if caps.include?(:unbounded)
|
|
516
526
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
527
|
+
aggregate == :sum ? caps.sum : (caps.max || 0)
|
|
528
|
+
end
|
|
529
|
+
|
|
530
|
+
# @return [Boolean]
|
|
531
|
+
def container_choice?(container)
|
|
532
|
+
container.is_a?(Lutaml::Xsd::Choice) ||
|
|
533
|
+
container.is_a?(Lutaml::Xml::Schema::Xsd::Choice)
|
|
522
534
|
end
|
|
523
535
|
|
|
524
536
|
# Choice alternatives are particles of any kind.
|
|
@@ -428,8 +428,12 @@ module Lutaml
|
|
|
428
428
|
nil
|
|
429
429
|
when Lutaml::Xml::Schema::Xsd::ExtensionComplexContent,
|
|
430
430
|
Lutaml::Xml::Schema::Xsd::RestrictionComplexContent
|
|
431
|
+
# A derivation body may be a bare group reference — the
|
|
432
|
+
# ref's own minOccurs/maxOccurs govern the expanded model
|
|
433
|
+
# (groupG/groupH class).
|
|
431
434
|
Array(type.sequence).first ||
|
|
432
|
-
Array(type.choice).first || Array(type.all).first
|
|
435
|
+
Array(type.choice).first || Array(type.all).first ||
|
|
436
|
+
Array(type.group).first
|
|
433
437
|
end
|
|
434
438
|
end
|
|
435
439
|
|
data/lib/lutaml/xsd/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lutaml-xsd
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.77
|
|
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-11-
|
|
11
|
+
date: 2026-11-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: liquid
|