Class | WSDL::Definitions |
In: |
wsdl/soap/definitions.rb
wsdl/definitions.rb |
Parent: | Info |
importedschema | [R] | |
imports | [R] | |
location | [RW] | |
name | [R] | |
targetnamespace | [R] |
# File wsdl/soap/definitions.rb, line 26 def self.array_complextype type = XMLSchema::ComplexType.new(::SOAP::ValueArrayName) type.complexcontent = XMLSchema::ComplexContent.new type.complexcontent.base = ::SOAP::ValueArrayName attr = XMLSchema::Attribute.new attr.ref = ::SOAP::AttrArrayTypeName anytype = XSD::AnyTypeName.dup anytype.name += '[]' attr.arytype = anytype type.complexcontent.attributes << attr type end
# File wsdl/soap/definitions.rb, line 62 def self.exception_complextype type = XMLSchema::ComplexType.new(XSD::QName.new( ::SOAP::Mapping::RubyCustomTypeNamespace, 'SOAPException')) excn_name = XMLSchema::Element.new(XSD::QName.new(nil, 'excn_type_name'), XSD::XSDString::Type) cause = XMLSchema::Element.new(XSD::QName.new(nil, 'cause'), XSD::AnyTypeName) backtrace = XMLSchema::Element.new(XSD::QName.new(nil, 'backtrace'), ::SOAP::ValueArrayName) message = XMLSchema::Element.new(XSD::QName.new(nil, 'message'), XSD::XSDString::Type) type.all_elements = [excn_name, cause, backtrace, message] type end
# File wsdl/soap/definitions.rb, line 49 def self.fault_complextype type = XMLSchema::ComplexType.new(::SOAP::EleFaultName) faultcode = XMLSchema::Element.new(::SOAP::EleFaultCodeName, XSD::XSDQName::Type) faultstring = XMLSchema::Element.new(::SOAP::EleFaultStringName, XSD::XSDString::Type) faultactor = XMLSchema::Element.new(::SOAP::EleFaultActorName, XSD::XSDAnyURI::Type) faultactor.minoccurs = 0 detail = XMLSchema::Element.new(::SOAP::EleFaultDetailName, XSD::AnyTypeName) detail.minoccurs = 0 type.all_elements = [faultcode, faultstring, faultactor, detail] type.final = 'extension' type end
# File wsdl/definitions.rb, line 24 def initialize super @name = nil @targetnamespace = nil @location = nil @importedschema = {} @types = nil @imports = [] @messages = XSD::NamedElements.new @porttypes = XSD::NamedElements.new @bindings = XSD::NamedElements.new @services = XSD::NamedElements.new @anontypes = XSD::NamedElements.new @root = self end
# File wsdl/definitions.rb, line 237 def self.parse_element(element) if element == DefinitionsName Definitions.new else nil end end
# File wsdl/soap/definitions.rb, line 18 def self.soap_rpc_complextypes types = XSD::NamedElements.new types << array_complextype types << fault_complextype types << exception_complextype types end
ToDo: simpletype must be accepted…
# File wsdl/definitions.rb, line 106 def add_type(complextype) @anontypes << complextype end
# File wsdl/definitions.rb, line 162 def binding(name) binding = @bindings[name] return binding if binding @imports.each do |import| binding = import.content.binding(name) if self.class === import.content return binding if binding end nil end
# File wsdl/definitions.rb, line 126 def bindings result = @bindings.dup @imports.each do |import| result.concat(import.content.bindings) if self.class === import.content end result end
# File wsdl/definitions.rb, line 53 def collect_attributes result = XSD::NamedElements.new if @types @types.schemas.each do |schema| result.concat(schema.collect_attributes) end end @imports.each do |import| result.concat(import.content.collect_attributes) end result end
# File wsdl/definitions.rb, line 79 def collect_complextypes result = @anontypes.dup if @types @types.schemas.each do |schema| result.concat(schema.collect_complextypes) end end @imports.each do |import| result.concat(import.content.collect_complextypes) end result end
# File wsdl/definitions.rb, line 66 def collect_elements result = XSD::NamedElements.new if @types @types.schemas.each do |schema| result.concat(schema.collect_elements) end end @imports.each do |import| result.concat(import.content.collect_elements) end result end
# File wsdl/soap/definitions.rb, line 78 def collect_faulttypes result = [] collect_fault_messages.each do |name| faultparts = message(name).parts if faultparts.size != 1 raise RuntimeError.new("expecting fault message to have only 1 part") end if result.index(faultparts[0].type).nil? result << faultparts[0].type end end result end
# File wsdl/definitions.rb, line 92 def collect_simpletypes result = XSD::NamedElements.new if @types @types.schemas.each do |schema| result.concat(schema.collect_simpletypes) end end @imports.each do |import| result.concat(import.content.collect_simpletypes) end result end
# File wsdl/definitions.rb, line 42 def inspect sprintf("#<%s:0x%x %s>", self.class.name, __id__, @name || '(unnamed)') end
# File wsdl/definitions.rb, line 142 def message(name) message = @messages[name] return message if message @imports.each do |import| message = import.content.message(name) if self.class === import.content return message if message end nil end
# File wsdl/definitions.rb, line 110 def messages result = @messages.dup @imports.each do |import| result.concat(import.content.messages) if self.class === import.content end result end
# File wsdl/definitions.rb, line 226 def parse_attr(attr, value) case attr when NameAttrName @name = XSD::QName.new(targetnamespace, value.source) when TargetNamespaceAttrName self.targetnamespace = value.source else nil end end
# File wsdl/definitions.rb, line 192 def parse_element(element) case element when ImportName o = Import.new @imports << o o when TypesName o = Types.new @types = o o when MessageName o = Message.new @messages << o o when PortTypeName o = PortType.new @porttypes << o o when BindingName o = Binding.new @bindings << o o when ServiceName o = Service.new @services << o o when DocumentationName o = Documentation.new o else nil end end
# File wsdl/definitions.rb, line 152 def porttype(name) porttype = @porttypes[name] return porttype if porttype @imports.each do |import| porttype = import.content.porttype(name) if self.class === import.content return porttype if porttype end nil end
# File wsdl/definitions.rb, line 182 def porttype_binding(name) binding = @bindings.find { |item| item.type == name } return binding if binding @imports.each do |import| binding = import.content.porttype_binding(name) if self.class === import.content return binding if binding end nil end
# File wsdl/definitions.rb, line 118 def porttypes result = @porttypes.dup @imports.each do |import| result.concat(import.content.porttypes) if self.class === import.content end result end
# File wsdl/definitions.rb, line 172 def service(name) service = @services[name] return service if service @imports.each do |import| service = import.content.service(name) if self.class === import.content return service if service end nil end
# File wsdl/definitions.rb, line 134 def services result = @services.dup @imports.each do |import| result.concat(import.content.services) if self.class === import.content end result end
# File wsdl/soap/definitions.rb, line 73 def soap_rpc_complextypes(binding) types = rpc_operation_complextypes(binding) types + self.class.soap_rpc_complextypes end