Class: WsdlMapper::DomParsing::Parser

Inherits:
ParserBase show all
Includes:
Xsd
Defined in:
lib/wsdl_mapper/dom_parsing/parser.rb

Defined Under Namespace

Classes: InvalidNsException, InvalidRootException, ParserException

Constant Summary

Constant Summary

Constants included from Xsd

Xsd::ALL, Xsd::ANNOTATION, Xsd::ANY_ATTRIBUTE, Xsd::APPINFO, Xsd::ATTRIBUTE, Xsd::ATTRIBUTE_FORM_DEFAULT, Xsd::CHOICE, Xsd::COMPLEX_CONTENT, Xsd::COMPLEX_TYPE, Xsd::DEFAULT_BOUNDS, Xsd::DOCUMENTATION, Xsd::ELEMENT, Xsd::ELEMENT_FORM_DEFAULT, Xsd::ENUMERATION, Xsd::EXTENSION, Xsd::FRACTION_DIGITS, Xsd::IMPORT, Xsd::MAX_INCLUSIVE, Xsd::MAX_LENGTH, Xsd::MIN_INCLUSIVE, Xsd::MIN_LENGTH, Xsd::NS, Xsd::PATTERN, Xsd::RESTRICTION, Xsd::SCHEMA, Xsd::SEQUENCE, Xsd::SIMPLE_CONTENT, Xsd::SIMPLE_TYPE, Xsd::TOTAL_DIGITS, Xsd::UNIQUE

Constants inherited from Parsing::Base

Parsing::Base::NS_DECL_PREFIX, Parsing::Base::TARGET_NS

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Methods inherited from Parsing::Base

get_name

Methods included from Parsing::Logging

#log_msg

Constructor Details

- (Parser) initialize(import_resolver: nil)

Returns a new instance of Parser

Parameters:



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/wsdl_mapper/dom_parsing/parser.rb', line 27

def initialize(import_resolver: nil)
  @base = self
  @schema = WsdlMapper::Dom::Schema.new

  @parsers = {
    COMPLEX_TYPE => ComplexTypeParser.new(self),
    ANNOTATION => AnnotationParser.new(self),
    SIMPLE_TYPE => SimpleTypeParser.new(self),
    IMPORT => ImportParser.new(self),
    ELEMENT => ElementParser.new(self),
    ATTRIBUTE => AttributeParser.new(self)
  }

  @import_resolver = import_resolver
  @namespaces = Namespaces.new
  @target_namespace = nil
  @default_namespace = nil
  @linker = Linker.new schema
end

Instance Attribute Details

- (Object) default_namespace (readonly)

Returns the value of attribute default_namespace



24
25
26
# File 'lib/wsdl_mapper/dom_parsing/parser.rb', line 24

def default_namespace
  @default_namespace
end

- (Object) import_resolver (readonly)

Returns the value of attribute import_resolver



24
25
26
# File 'lib/wsdl_mapper/dom_parsing/parser.rb', line 24

def import_resolver
  @import_resolver
end

- (Object) log_msgs (readonly)

Returns the value of attribute log_msgs



24
25
26
# File 'lib/wsdl_mapper/dom_parsing/parser.rb', line 24

def log_msgs
  @log_msgs
end

- (Object) namespaces (readonly)

Returns the value of attribute namespaces



24
25
26
# File 'lib/wsdl_mapper/dom_parsing/parser.rb', line 24

def namespaces
  @namespaces
end

- (Object) parsers (readonly)

Returns the value of attribute parsers



24
25
26
# File 'lib/wsdl_mapper/dom_parsing/parser.rb', line 24

def parsers
  @parsers
end

- (Object) schema (readonly)

Returns the value of attribute schema



24
25
26
# File 'lib/wsdl_mapper/dom_parsing/parser.rb', line 24

def schema
  @schema
end

- (Object) target_namespace (readonly)

Returns the value of attribute target_namespace



24
25
26
# File 'lib/wsdl_mapper/dom_parsing/parser.rb', line 24

def target_namespace
  @target_namespace
end

Instance Method Details

- (WsdlMapper::DomParsing::Parser) dup



64
65
66
# File 'lib/wsdl_mapper/dom_parsing/parser.rb', line 64

def dup
  self.class.new import_resolver: @import_resolver
end

- (WsdlMapper::Dom::Schema) parse(doc, parse_only: false)

Parameters:

  • doc (Nokogiri::XML::Document)

Returns:



49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/wsdl_mapper/dom_parsing/parser.rb', line 49

def parse(doc, parse_only: false)
  # Phase 1: Parsing
  parse_doc doc

  # Phase 2: Linking
  unless parse_only
    @linker.link
  end

  collect_logs

  @schema
end