Class: REXML::Validation::RelaxNG
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| 
         Instance Chain: 
        
          self,
          Validator
         
       | 
    |
| Inherits: | Object | 
| Defined in: | lib/rexml/validation/relaxng.rb | 
Overview
Implemented:
- 
empty
 - 
element
 - 
attribute
 - 
text
 - 
optional
 - 
choice
 - 
oneOrMore
 - 
zeroOrMore
 - 
group
 - 
value
 - 
interleave
 - 
mixed
 - 
ref
 - 
grammar
 - 
start
 - 
define
 
Not implemented:
- 
data
 - 
param
 - 
include
 - 
externalRef
 - 
notAllowed
 - 
anyName
 - 
nsName
 - 
except
 - 
name
 
Constant Summary
- 
    EMPTY =
    
# File 'lib/rexml/validation/relaxng.rb', line 39Event.new( nil )
 - 
    INFINITY =
    
# File 'lib/rexml/validation/relaxng.rb', line 381.0 / 0.0
 - 
    TEXT =
    
# File 'lib/rexml/validation/relaxng.rb', line 40[:start_element, "text"]
 
Validator - Included
Class Method Summary
- 
    
      .new(source)  ⇒ RelaxNG 
    
    constructor
    
FIXME: Namespaces.
 
Instance Attribute Summary
- #count rw
 - #current rw
 - #references readonly
 
Instance Method Summary
Constructor Details
    .new(source)  ⇒ RelaxNG 
  
FIXME: Namespaces
# File 'lib/rexml/validation/relaxng.rb', line 46
def initialize source parser = REXML::Parsers::BaseParser.new( source ) @count = 0 @references = {} @root = @current = Sequence.new(self) @root.previous = true states = [ @current ] begin event = parser.pull case event[0] when :start_element case event[1] when "empty" when "element", "attribute", "text", "value" states[-1] << event when "optional" states << Optional.new( self ) states[-2] << states[-1] when "choice" states << Choice.new( self ) states[-2] << states[-1] when "oneOrMore" states << OneOrMore.new( self ) states[-2] << states[-1] when "zeroOrMore" states << ZeroOrMore.new( self ) states[-2] << states[-1] when "group" states << Sequence.new( self ) states[-2] << states[-1] when "interleave" states << Interleave.new( self ) states[-2] << states[-1] when "mixed" states << Interleave.new( self ) states[-2] << states[-1] states[-1] << TEXT when "define" states << [ event[2]["name"] ] when "ref" states[-1] << Ref.new( event[2]["name"] ) when "anyName" states << AnyName.new( self ) states[-2] << states[-1] when "nsName" when "except" when "name" when "data" when "param" when "include" when "grammar" when "start" when "externalRef" when "notAllowed" end when :end_element case event[1] when "element", "attribute" states[-1] << event when "zeroOrMore", "oneOrMore", "choice", "optional", "interleave", "group", "mixed" states.pop when "define" ref = states.pop @references[ ref.shift ] = ref #when "empty" end when :end_document states[-1] << event when :text states[-1] << event end end while event[0] != :end_document end
Instance Attribute Details
#count (rw)
[ GitHub ]# File 'lib/rexml/validation/relaxng.rb', line 42
attr_accessor :count
#current (rw)
[ GitHub ]# File 'lib/rexml/validation/relaxng.rb', line 41
attr_accessor :current
#references (readonly)
[ GitHub ]# File 'lib/rexml/validation/relaxng.rb', line 43
attr_reader :references
Instance Method Details
#receive(event)
[ GitHub ]# File 'lib/rexml/validation/relaxng.rb', line 122
def receive event validate( event ) end