lutaml-xsd 1.1.13 → 1.1.14
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/CLAUDE.md +14 -0
- data/Gemfile +2 -1
- data/config/validation.yml +4 -0
- data/docs/superpowers/plans/2026-10-20-moxml-leptris-migration.md +735 -0
- data/docs/superpowers/specs/2026-10-20-moxml-leptris-migration-design.md +169 -0
- data/lib/lutaml/xsd/package_builder.rb +2 -2
- data/lib/lutaml/xsd/spa/schema_serializer.rb +9 -6
- data/lib/lutaml/xsd/validation/engine_context.rb +190 -0
- data/lib/lutaml/xsd/validation/rules/content_model_validation_rule.rb +29 -0
- data/lib/lutaml/xsd/validation/rules/type_validation_rule.rb +43 -5
- data/lib/lutaml/xsd/validation/validation_configuration.rb +1 -0
- data/lib/lutaml/xsd/validation/validation_job.rb +26 -3
- data/lib/lutaml/xsd/validation/validator.rb +1 -0
- data/lib/lutaml/xsd/version.rb +1 -1
- data/lutaml-xsd.gemspec +2 -2
- metadata +11 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 21bd244759a8ce45c8db399f8d7120a9f409697dd7f64df80147e798985a1121
|
|
4
|
+
data.tar.gz: 7756f8cb8a0d0b859f6c379e01cb68bbb9df388c195cb65811b99c2ccfa19d85
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 92056e17ec61f055a6c91a982f15edb0711f8531110179dbf506b07ab2be6602319b6155deb953fbc0adb05cb8c69f9f7405ecd5ede02dd42e85c122d2d0b002
|
|
7
|
+
data.tar.gz: 8aa8be2f750b0e566318a8ff68be30a781bd13f6b8748892d52f5e6274be88bc715a69677b9d20090ff08ee4bb73a36aa6c5f486dc48e681c03d4058a6c28857
|
data/CLAUDE.md
CHANGED
|
@@ -58,6 +58,20 @@ Classes register themselves via `Lutaml::Xsd.register_model(self, :element_name)
|
|
|
58
58
|
3. **Liquid templating**: Parsed objects respond to `to_liquid` for use in templates
|
|
59
59
|
4. **Reference resolution**: Elements can reference other elements via `ref` attribute; use `referenced_object` to resolve
|
|
60
60
|
|
|
61
|
+
### XML Stack: Moxml Only
|
|
62
|
+
|
|
63
|
+
All XML handling goes through `Moxml::Context` (moxml ~> 0.5.147). Never
|
|
64
|
+
require or call Nokogiri/REXML/Ox directly in `lib/` — xsdvi keeps nokogiri
|
|
65
|
+
in the lockfile transitively, but our code does not touch it.
|
|
66
|
+
|
|
67
|
+
- Adapter selection is moxml's: leptris when bundled (dev Gemfile), nokogiri
|
|
68
|
+
fallback otherwise. No adapter is hardcoded here.
|
|
69
|
+
- `Moxml::XSD` (engine XSD validation, tier-1: leptris/nokogiri) backs the
|
|
70
|
+
validation fast-path — see `lib/lutaml/xsd/validation/engine_context.rb`.
|
|
71
|
+
Engine findings are additive (`code: "engine_validation"`); the Ruby rule
|
|
72
|
+
engine remains authoritative because tier-1 validates laxly outside its
|
|
73
|
+
scope.
|
|
74
|
+
|
|
61
75
|
## SPA / Frontend Assets
|
|
62
76
|
|
|
63
77
|
### Directory Structure
|
data/Gemfile
CHANGED
data/config/validation.yml
CHANGED
|
@@ -48,6 +48,10 @@ validation:
|
|
|
48
48
|
# Validate namespace declarations
|
|
49
49
|
validate_namespaces: true
|
|
50
50
|
|
|
51
|
+
# Engine-native XSD validation (Moxml::XSD) when the adapter
|
|
52
|
+
# provides an engine (leptris/nokogiri); findings are additive
|
|
53
|
+
engine_validation: true
|
|
54
|
+
|
|
51
55
|
# Error reporting configuration
|
|
52
56
|
error_reporting:
|
|
53
57
|
# Include XPath location in error messages
|