Class: Uniword::Validation::Rules::CorePropertiesNamespaceRule

Inherits:
Base
  • Object
show all
Defined in:
lib/uniword/validation/rules/core_properties_namespace_rule.rb

Overview

Validates core properties namespace declarations and xsi:type.

DOC-105: dc/dcterms/xsi namespaces declared, xsi:type on dates Validity rule: R14

Constant Summary collapse

REQUIRED_NAMESPACES =
{
  "dc" => "http://purl.org/dc/elements/1.1/",
  "dcterms" => "http://purl.org/dc/terms/",
  "xsi" => "http://www.w3.org/2001/XMLSchema-instance",
}.freeze

Instance Method Summary collapse

Instance Method Details

#applicable?(context) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/uniword/validation/rules/core_properties_namespace_rule.rb', line 25

def applicable?(context)
  context.part_exists?("docProps/core.xml")
end

#categoryObject



22
# File 'lib/uniword/validation/rules/core_properties_namespace_rule.rb', line 22

def category = :core_properties

#check(context) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/uniword/validation/rules/core_properties_namespace_rule.rb', line 29

def check(context)
  issues = []
  raw = context.part_raw("docProps/core.xml")
  return issues unless raw

  doc = context.part("docProps/core.xml")
  return issues unless doc

  root = doc.root
  return issues unless root

  check_namespaces(root, issues)
  check_date_types(doc, issues)

  issues
end

#codeObject



19
# File 'lib/uniword/validation/rules/core_properties_namespace_rule.rb', line 19

def code = "DOC-105"

#descriptionObject



21
# File 'lib/uniword/validation/rules/core_properties_namespace_rule.rb', line 21

def description = "Core properties must have dc/dcterms/xsi namespaces and xsi:type on dates"

#severityObject



23
# File 'lib/uniword/validation/rules/core_properties_namespace_rule.rb', line 23

def severity = "error"

#validity_ruleObject



20
# File 'lib/uniword/validation/rules/core_properties_namespace_rule.rb', line 20

def validity_rule = "R14"