diff options
Diffstat (limited to 'ruby_1_8_6/lib/xsd/xmlparser')
-rw-r--r-- | ruby_1_8_6/lib/xsd/xmlparser/parser.rb | 96 | ||||
-rw-r--r-- | ruby_1_8_6/lib/xsd/xmlparser/rexmlparser.rb | 54 | ||||
-rw-r--r-- | ruby_1_8_6/lib/xsd/xmlparser/xmlparser.rb | 50 | ||||
-rw-r--r-- | ruby_1_8_6/lib/xsd/xmlparser/xmlscanner.rb | 147 |
4 files changed, 0 insertions, 347 deletions
diff --git a/ruby_1_8_6/lib/xsd/xmlparser/parser.rb b/ruby_1_8_6/lib/xsd/xmlparser/parser.rb deleted file mode 100644 index ad01d55aa0..0000000000 --- a/ruby_1_8_6/lib/xsd/xmlparser/parser.rb +++ /dev/null @@ -1,96 +0,0 @@ -# XSD4R - XML Instance parser library. -# Copyright (C) 2002, 2003 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' - - -module XSD -module XMLParser - - -class Parser - class ParseError < Error; end - class FormatDecodeError < ParseError; end - class UnknownElementError < FormatDecodeError; end - class UnknownAttributeError < FormatDecodeError; end - class UnexpectedElementError < FormatDecodeError; end - class ElementConstraintError < FormatDecodeError; end - - @@parser_factory = nil - - def self.factory - @@parser_factory - end - - def self.create_parser(host, opt = {}) - @@parser_factory.new(host, opt) - end - - def self.add_factory(factory) - if $DEBUG - puts "Set #{ factory } as XML processor." - end - @@parser_factory = factory - end - -public - - attr_accessor :charset - - def initialize(host, opt = {}) - @host = host - @charset = opt[:charset] || nil - end - - def parse(string_or_readable) - @textbuf = '' - prologue - do_parse(string_or_readable) - epilogue - end - -private - - def do_parse(string_or_readable) - raise NotImplementError.new( - 'Method do_parse must be defined in derived class.') - end - - def start_element(name, attrs) - @host.start_element(name, attrs) - end - - def characters(text) - @host.characters(text) - end - - def end_element(name) - @host.end_element(name) - end - - def prologue - end - - def epilogue - end - - def xmldecl_encoding=(charset) - if @charset.nil? - @charset = charset - else - # Definition in a stream (like HTTP) has a priority. - p "encoding definition: #{ charset } is ignored." if $DEBUG - end - end -end - - -end -end diff --git a/ruby_1_8_6/lib/xsd/xmlparser/rexmlparser.rb b/ruby_1_8_6/lib/xsd/xmlparser/rexmlparser.rb deleted file mode 100644 index 61da9aafc7..0000000000 --- a/ruby_1_8_6/lib/xsd/xmlparser/rexmlparser.rb +++ /dev/null @@ -1,54 +0,0 @@ -# XSD4R - REXMLParser XML parser library. -# Copyright (C) 2002, 2003 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/xmlparser' -require 'rexml/streamlistener' -require 'rexml/document' - - -module XSD -module XMLParser - - -class REXMLParser < XSD::XMLParser::Parser - include REXML::StreamListener - - def do_parse(string_or_readable) - source = nil - source = REXML::SourceFactory.create_from(string_or_readable) - source.encoding = charset if charset - # Listener passes a String in utf-8. - @charset = 'utf-8' - REXML::Document.parse_stream(source, self) - end - - def epilogue - end - - def tag_start(name, attrs) - start_element(name, attrs) - end - - def tag_end(name) - end_element(name) - end - - def text(text) - characters(text) - end - - def xmldecl(version, encoding, standalone) - # Version should be checked. - end - - add_factory(self) -end - - -end -end diff --git a/ruby_1_8_6/lib/xsd/xmlparser/xmlparser.rb b/ruby_1_8_6/lib/xsd/xmlparser/xmlparser.rb deleted file mode 100644 index 6db914cd37..0000000000 --- a/ruby_1_8_6/lib/xsd/xmlparser/xmlparser.rb +++ /dev/null @@ -1,50 +0,0 @@ -# XSD4R - XMLParser XML parser library. -# Copyright (C) 2001, 2003 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/xmlparser' -require 'xml/parser' - - -module XSD -module XMLParser - - -class XMLParser < XSD::XMLParser::Parser - class Listener < XML::Parser - begin - require 'xml/encoding-ja' - include XML::Encoding_ja - rescue LoadError - # uconv may not be installed. - end - end - - def do_parse(string_or_readable) - # XMLParser passes a String in utf-8. - @charset = 'utf-8' - @parser = Listener.new - @parser.parse(string_or_readable) do |type, name, data| - case type - when XML::Parser::START_ELEM - start_element(name, data) - when XML::Parser::END_ELEM - end_element(name) - when XML::Parser::CDATA - characters(data) - else - raise FormatDecodeError.new("Unexpected XML: #{ type }/#{ name }/#{ data }.") - end - end - end - - add_factory(self) -end - - -end -end diff --git a/ruby_1_8_6/lib/xsd/xmlparser/xmlscanner.rb b/ruby_1_8_6/lib/xsd/xmlparser/xmlscanner.rb deleted file mode 100644 index c80dc23910..0000000000 --- a/ruby_1_8_6/lib/xsd/xmlparser/xmlscanner.rb +++ /dev/null @@ -1,147 +0,0 @@ -# XSD4R - XMLScan XML 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/xmlparser' -require 'xmlscan/scanner' - - -module XSD -module XMLParser - - -class XMLScanner < XSD::XMLParser::Parser - include XMLScan::Visitor - - def do_parse(string_or_readable) - @attrs = {} - @curattr = nil - @scanner = XMLScan::XMLScanner.new(self) - @scanner.kcode = XSD::Charset.charset_str(charset) if charset - @scanner.parse(string_or_readable) - end - - def scanner_kcode=(charset) - @scanner.kcode = XSD::Charset.charset_str(charset) if charset - self.xmldecl_encoding = charset - end - - ENTITY_REF_MAP = { - 'lt' => '<', - 'gt' => '>', - 'amp' => '&', - 'quot' => '"', - 'apos' => '\'' - } - - def parse_error(msg) - raise ParseError.new(msg) - end - - def wellformed_error(msg) - raise NotWellFormedError.new(msg) - end - - def valid_error(msg) - raise NotValidError.new(msg) - end - - def warning(msg) - p msg if $DEBUG - end - - # def on_xmldecl; end - - def on_xmldecl_version(str) - # 1.0 expected. - end - - def on_xmldecl_encoding(str) - self.scanner_kcode = str - end - - # def on_xmldecl_standalone(str); end - - # def on_xmldecl_other(name, value); end - - # def on_xmldecl_end; end - - # def on_doctype(root, pubid, sysid); end - - # def on_prolog_space(str); end - - # def on_comment(str); end - - # def on_pi(target, pi); end - - def on_chardata(str) - characters(str) - end - - # def on_cdata(str); end - - def on_etag(name) - end_element(name) - end - - def on_entityref(ref) - characters(ENTITY_REF_MAP[ref]) - end - - def on_charref(code) - characters([code].pack('U')) - end - - def on_charref_hex(code) - on_charref(code) - end - - # def on_start_document; end - - # def on_end_document; end - - def on_stag(name) - @attrs = {} - end - - def on_attribute(name) - @attrs[name] = @curattr = '' - end - - def on_attr_value(str) - @curattr << str - end - - def on_attr_entityref(ref) - @curattr << ENTITY_REF_MAP[ref] - end - - def on_attr_charref(code) - @curattr << [code].pack('U') - end - - def on_attr_charref_hex(code) - on_attr_charref(code) - end - - # def on_attribute_end(name); end - - def on_stag_end_empty(name) - on_stag_end(name) - on_etag(name) - end - - def on_stag_end(name) - start_element(name, @attrs) - end - - add_factory(self) -end - - -end -end |