Class: Uniword::Validation::Validators::DocumentSemanticsValidator
- Inherits:
-
LayerValidator
- Object
- LayerValidator
- Uniword::Validation::Validators::DocumentSemanticsValidator
- Defined in:
- lib/uniword/validation/validators/document_semantics_validator.rb
Overview
Validates document semantic structure using extensible rules.
Uses the Rules::Registry to discover and apply validation rules. Users can register custom rules via Rules::Registry.register(MyRule).
This is Layer 7 validation — validates cross-part references, content integrity, and structural consistency.
Constant Summary collapse
- WORDML_NAMESPACE =
"http://schemas.openxmlformats.org/wordprocessingml/2006/main"
Instance Attribute Summary
Attributes inherited from LayerValidator
Instance Method Summary collapse
Methods inherited from LayerValidator
Constructor Details
This class inherits a constructor from Uniword::Validation::LayerValidator
Instance Method Details
#layer_name ⇒ Object
26 27 28 |
# File 'lib/uniword/validation/validators/document_semantics_validator.rb', line 26 def layer_name "Document Semantics" end |
#validate(path) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/uniword/validation/validators/document_semantics_validator.rb', line 30 def validate(path) issues = [] context = Rules::DocumentContext.new(path) begin rules = Rules::Registry.all rules.each do |rule| next unless rule.applicable?(context) issues.concat(rule.check(context)) end ensure context.close end build_result(issues) rescue StandardError => e issues << Report::ValidationIssue.new( severity: "error", code: "DOC-000", message: "Semantic validation failed: #{e.}", ) build_result(issues) end |