method
start_element
v1_8_7_72 -
Show latest stable
- Class:
SOAP::Parser
start_element(name, attrs)public
No documentation available.
# File lib/soap/parser.rb, line 105
def start_element(name, attrs)
lastframe = @parsestack.last
ns = parent = parent_encodingstyle = nil
if lastframe
ns = lastframe.ns.clone_ns
parent = lastframe.node
parent_encodingstyle = lastframe.encodingstyle
else
ns = XSD::NS.new
parent = ParseFrame::NodeContainer.new(nil)
parent_encodingstyle = nil
end
attrs = XSD::XMLParser.filter_ns(ns, attrs)
encodingstyle = find_encodingstyle(ns, attrs)
# Children's encodingstyle is derived from its parent.
if encodingstyle.nil?
if parent.node.is_a?(SOAPHeader)
encodingstyle = LiteralNamespace
else
encodingstyle = parent_encodingstyle || @default_encodingstyle
end
end
node = decode_tag(ns, name, attrs, parent, encodingstyle)
@parsestack << ParseFrame.new(ns, name, node, encodingstyle)
end