Module
Constants
No documentation available
Instance Methods
#
lib/rexml/validation/validation.rb
View on GitHub
# File tmp/rubies/ruby-2.4.10/lib/rexml/validation/validation.rb, line 15
def dump
puts @root.inspect
end
No documentation available
#
lib/rexml/validation/validation.rb
View on GitHub
# File tmp/rubies/ruby-2.4.10/lib/rexml/validation/validation.rb, line 8
def reset
@current = @root
@root.reset
@root.previous = true
@attr_stack = []
self
end
No documentation available
lib/rexml/validation/validation.rb
View on GitHub
# File tmp/rubies/ruby-2.4.10/lib/rexml/validation/validation.rb, line 18
def validate( event )
@attr_stack = [] unless defined? @attr_stack
match = @current.next(event)
raise ValidationException.new( "Validation error. Expected: "+
@current.expected.join( " or " )+" from #{@current.inspect} "+
" but got #{Event.new( event[0], event[1] ).inspect}" ) unless match
@current = match
# Check for attributes
case event[0]
when :start_element
@attr_stack << event[2]
begin
sattr = [:start_attribute, nil]
eattr = [:end_attribute]
text = [:text, nil]
k, = event[2].find { |key,value|
sattr[1] = key
m = @current.next( sattr )
if m
# If the state has text children...
if m.matches?( eattr )
@current = m
else
text[1] = value
m = m.next( text )
text[1] = nil
return false unless m
@current = m if m
end
m = @current.next( eattr )
if m
@current = m
true
else
false
end
else
false
end
}
event[2].delete(k) if k
end while k
when :end_element
attrs = @attr_stack.pop
raise ValidationException.new( "Validation error. Illegal "+
" attributes: #{attrs.inspect}") if attrs.length > 0
end
end
No documentation available