Class: SvgConform::Requirements::ForbiddenContentRequirement
- Inherits:
-
BaseRequirement
- Object
- Lutaml::Model::Serializable
- BaseRequirement
- SvgConform::Requirements::ForbiddenContentRequirement
show all
- Defined in:
- lib/svg_conform/requirements/forbidden_content_requirement.rb
Instance Method Summary
collapse
#collect_sax_data, #element?, #get_attribute, #get_attributes, #has_attribute?, #needs_deferred_validation?, #remove_attribute, #set_attribute, #should_check_node?, #text?, #to_s, #validate_sax_complete
Instance Method Details
#check(node, context) ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/svg_conform/requirements/forbidden_content_requirement.rb', line 29
def check(node, context)
return unless element?(node)
if forbidden_elements.include?(node.name)
context.add_error(
requirement_id: id,
message: "Forbidden element '#{node.name}' is not allowed",
node: node,
severity: :error,
)
end
if node.respond_to?(:attributes) && node.attributes
node.attributes.each do |attr|
attr_name = attr.respond_to?(:name) ? attr.name : attr.to_s
if forbidden_attributes.include?(attr_name)
context.add_error(
requirement_id: id,
message: "Forbidden attribute '#{attr_name}' is not allowed",
node: node,
severity: :error,
)
end
end
end
end
|
#validate_document(document, context) ⇒ Object
23
24
25
26
27
|
# File 'lib/svg_conform/requirements/forbidden_content_requirement.rb', line 23
def validate_document(document, context)
document.traverse do |node|
check(node, context) if should_check_node?(node)
end
end
|
#validate_sax_element(element, context) ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/svg_conform/requirements/forbidden_content_requirement.rb', line 59
def validate_sax_element(element, context)
if forbidden_elements.include?(element.name)
context.add_error(
requirement_id: id,
message: "Forbidden element '#{element.name}' is not allowed",
node: element,
severity: :error,
)
end
element.attributes.each do |attr|
attr_name = attr.name
if forbidden_attributes.include?(attr_name)
context.add_error(
requirement_id: id,
message: "Forbidden attribute '#{attr_name}' is not allowed",
node: element,
severity: :error,
)
end
end
end
|