Class: WsdlMapper::DomParsing::ImportParser

Inherits:
ParserBase show all
Defined in:
lib/wsdl_mapper/dom_parsing/import_parser.rb

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

Attributes included from Parsing::Logging

#log_msgs

Instance Method Summary collapse

Methods inherited from Parsing::Base

get_name, #initialize

Methods included from Parsing::Logging

#log_msg

Constructor Details

This class inherits a constructor from WsdlMapper::Parsing::Base

Instance Method Details

#import_schema(node) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/wsdl_mapper/dom_parsing/import_parser.rb', line 17

def import_schema(node)
  ns = fetch_attribute_value 'namespace', node
  location = fetch_attribute_value 'schemaLocation', node

  if location.nil?
    @base.schema.unresolved_imports << ns
  else
    doc = @base.import_resolver.resolve location
    schema = @base.dup.parse doc
    @base.schema.add_import ns, schema
  end
end

#parse(node) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/wsdl_mapper/dom_parsing/import_parser.rb', line 7

def parse(node)
  # TODO: namespace attribute is optional
  case node.attributes['namespace'].value
  when SoapEncodingType::NAMESPACE, BuiltinType::NAMESPACE
    # ignore
  else
    import_schema node
  end
end