X7ROOT File Manager
Current Path:
/opt/alt/ruby18/lib64/ruby/1.8/wsdl/xmlSchema
opt
/
alt
/
ruby18
/
lib64
/
ruby
/
1.8
/
wsdl
/
xmlSchema
/
??
..
??
all.rb
(1.15 KB)
??
annotation.rb
(601 B)
??
any.rb
(1.06 KB)
??
attribute.rb
(2.52 KB)
??
choice.rb
(1.15 KB)
??
complexContent.rb
(1.85 KB)
??
complexType.rb
(2.91 KB)
??
content.rb
(1.59 KB)
??
data.rb
(3.25 KB)
??
element.rb
(3.31 KB)
??
enumeration.rb
(645 B)
??
import.rb
(1.42 KB)
??
importer.rb
(2.18 KB)
??
include.rb
(1014 B)
??
length.rb
(594 B)
??
parser.rb
(3.91 KB)
??
pattern.rb
(642 B)
??
schema.rb
(3.02 KB)
??
sequence.rb
(1.15 KB)
??
simpleContent.rb
(1.15 KB)
??
simpleExtension.rb
(938 B)
??
simpleRestriction.rb
(1.46 KB)
??
simpleType.rb
(1.37 KB)
??
unique.rb
(584 B)
??
xsd2ruby.rb
(2.08 KB)
Editing: parser.rb
# WSDL4R - WSDL XML Instance parser library. # Copyright (C) 2002, 2003, 2005 NAKAMURA, Hiroshi <nahi@ruby-lang.org>. # This program is copyrighted free software by NAKAMURA, Hiroshi. You can # redistribute it and/or modify it under the same terms of Ruby's license; # either the dual license version in 2003, or any later version. require 'xsd/qname' require 'xsd/ns' require 'xsd/charset' require 'xsd/datatypes' require 'xsd/xmlparser' require 'wsdl/xmlSchema/data' module WSDL module XMLSchema class Parser include XSD class ParseError < Error; end class FormatDecodeError < ParseError; end class UnknownElementError < FormatDecodeError; end class UnknownAttributeError < FormatDecodeError; end class UnexpectedElementError < FormatDecodeError; end class ElementConstraintError < FormatDecodeError; end class AttributeConstraintError < FormatDecodeError; end private class ParseFrame attr_reader :ns attr_reader :name attr_accessor :node private def initialize(ns, name, node) @ns = ns @name = name @node = node end end public def initialize(opt = {}) @parser = XSD::XMLParser.create_parser(self, opt) @parsestack = nil @lastnode = nil @ignored = {} @location = opt[:location] @originalroot = opt[:originalroot] end def parse(string_or_readable) @parsestack = [] @lastnode = nil @textbuf = '' @parser.do_parse(string_or_readable) @lastnode end def charset @parser.charset end def start_element(name, attrs) lastframe = @parsestack.last ns = parent = nil if lastframe ns = lastframe.ns.clone_ns parent = lastframe.node else ns = XSD::NS.new parent = nil end attrs = XSD::XMLParser.filter_ns(ns, attrs) node = decode_tag(ns, name, attrs, parent) @parsestack << ParseFrame.new(ns, name, node) end def characters(text) lastframe = @parsestack.last if lastframe # Need not to be cloned because character does not have attr. ns = lastframe.ns decode_text(ns, text) else p text if $DEBUG end end def end_element(name) lastframe = @parsestack.pop unless name == lastframe.name raise UnexpectedElementError.new("closing element name '#{name}' does not match with opening element '#{lastframe.name}'") end decode_tag_end(lastframe.ns, lastframe.node) @lastnode = lastframe.node end private def decode_tag(ns, name, attrs, parent) o = nil elename = ns.parse(name) if !parent if elename == SchemaName o = Schema.parse_element(elename) o.location = @location else raise UnknownElementError.new("unknown element: #{elename}") end o.root = @originalroot if @originalroot # o.root = o otherwise else if elename == AnnotationName # only the first annotation element is allowed for each element. o = Annotation.new else o = parent.parse_element(elename) end unless o unless @ignored.key?(elename) warn("ignored element: #{elename} of #{parent.class}") @ignored[elename] = elename end o = Documentation.new # which accepts any element. end # node could be a pseudo element. pseudo element has its own parent. o.root = parent.root o.parent = parent if o.parent.nil? end attrs.each do |key, value| attr_ele = ns.parse(key, true) value_ele = ns.parse(value, true) value_ele.source = value # for recovery; value may not be a QName if attr_ele == IdAttrName o.id = value_ele else unless o.parse_attr(attr_ele, value_ele) unless @ignored.key?(attr_ele) warn("ignored attr: #{attr_ele}") @ignored[attr_ele] = attr_ele end end end end o end def decode_tag_end(ns, node) node.parse_epilogue end def decode_text(ns, text) @textbuf << text end end end end
Upload File
Create Folder