# File lib/wsdl/parser.rb, line 89 89: def characters(text) 90: lastframe = @parsestack.last 91: if lastframe 92: # Need not to be cloned because character does not have attr. 93: ns = lastframe.ns 94: decode_text(ns, text) 95: else 96: p text if $DEBUG 97: end 98: end
# File lib/wsdl/parser.rb, line 69 69: def charset 70: @parser.charset 71: end
# File lib/wsdl/parser.rb, line 100 100: def end_element(name) 101: lastframe = @parsestack.pop 102: unless name == lastframe.name 103: raise UnexpectedElementError.new("closing element name '#{name}' does not match with opening element '#{lastframe.name}'") 104: end 105: decode_tag_end(lastframe.ns, lastframe.node) 106: @lastnode = lastframe.node 107: end
# File lib/wsdl/parser.rb, line 61 61: def parse(string_or_readable) 62: @parsestack = [] 63: @lastnode = nil 64: @textbuf = '' 65: @parser.do_parse(string_or_readable) 66: @lastnode 67: end
# File lib/wsdl/parser.rb, line 73 73: def start_element(name, attrs) 74: lastframe = @parsestack.last 75: ns = parent = nil 76: if lastframe 77: ns = lastframe.ns 78: parent = lastframe.node 79: else 80: ns = ::SOAP::NS.new 81: parent = nil 82: end 83: # ns might be the same 84: ns, attrs = XSD::XMLParser.filter_ns(ns, attrs) 85: node = decode_tag(ns, name, attrs, parent) 86: @parsestack << ParseFrame.new(ns, name, node) 87: end
# File lib/wsdl/parser.rb, line 111 111: def decode_tag(ns, name, attrs, parent) 112: o = nil 113: elename = ns.parse(name) 114: if !parent 115: if elename == DefinitionsName 116: o = Definitions.parse_element(elename) 117: o.location = @location 118: else 119: raise UnknownElementError.new("unknown element: #{elename}") 120: end 121: o.root = @originalroot if @originalroot # o.root = o otherwise 122: else 123: if elename == XMLSchema::AnnotationName 124: # only the first annotation element is allowed for each xsd element. 125: o = XMLSchema::Annotation.new 126: else 127: o = parent.parse_element(elename) 128: end 129: if o.nil? 130: unless @ignored.key?(elename) 131: warn("ignored element: #{elename}") 132: @ignored[elename] = elename 133: end 134: o = Documentation.new # which accepts any element. 135: end 136: # node could be a pseudo element. pseudo element has its own parent. 137: o.root = parent.root 138: o.parent = parent if o.parent.nil? 139: end 140: attrs.each do |key, value| 141: attr_ele = ns.parse(key, true) 142: value_ele = ns.parse(value, false) 143: value_ele.source = value # for recovery; value may not be a QName 144: if o.parse_attr(attr_ele, value_ele).nil? 145: unless @ignored.key?(attr_ele) 146: warn("ignored attr: #{attr_ele}") 147: @ignored[attr_ele] = attr_ele 148: end 149: end 150: end 151: o 152: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.