diff --git a/lib/rexml/document.rb b/lib/rexml/document.rb index a915360c4f..558b5d731a 100644 --- a/lib/rexml/document.rb +++ b/lib/rexml/document.rb @@ -139,14 +139,18 @@ module REXML xml_decl().stand_alone? end - # Write the XML tree out. This writes the entire XML document, including - # declarations and processing instructions. + # Write the XML tree out, optionally with indent. This writes out the + # entire XML document, including XML declarations, doctype declarations, + # and processing instructions (if any are given). # - # A controversial point is whether Document should always write the XML - # declaration () whether or not one is given by the - # user (or source document). REXML does not write one if one was not - # specified, because it adds unneccessary bandwidth to applications such - # as XML-RPC. + # A controversial point is whether Document should always write the XML + # declaration () whether or not one is given by the + # user (or source document). REXML does not write one if one was not + # specified, because it adds unneccessary bandwidth to applications such + # as XML-RPC. + # + # See also the classes in the rexml/formatters package for the proper way + # to change the default formatting of XML output # # _Examples_ # Document.new("").serialize @@ -155,58 +159,25 @@ module REXML # tr = Transitive.new( output_string ) # Document.new("").serialize( tr ) # - # formatter:: - # One of the rexml/formatters classes. If none is given, then the Pretty - # formatter will be used to dump the XML to the STDOUT. - def serialize( formatter = nil ) - if xml_decl.encoding != "UTF-8" && !output.kind_of?(Output) - output = Output.new( output, xml_decl.encoding ) - end - - formatter = REXML::Pretty.new( $stdout ) if (formatter.nil?) - - @children.each { |node| - puts "node = #{node.inspect}" - indent( output, indent ) if node.node_type == :element - if node.write( output, indent, transitive, ie_hack ) - output << "\n" unless indent<0 or node == @children[-1] - end - } - end - - # Write the XML tree out, optionally with indent. This writes out the - # entire XML document, including XML declarations, doctype declarations, - # and processing instructions (if any are given). - # - # A controversial point is whether Document should always write the XML - # declaration () whether or not one is given by the - # user (or source document). REXML does not write one if one was not - # specified, because it adds unneccessary bandwidth to applications such - # as XML-RPC. - # - # See also the classes in the rexml/formatters package for the proper way - # to change the default formatting of XML output - # - # - # output:: - # output an object which supports '<< string'; this is where the - # document will be written. - # indent:: - # An integer. If -1, no indenting will be used; otherwise, the - # indentation will be twice this number of spaces, and children will be - # indented an additional amount. For a value of 3, every item will be + # output:: + # output an object which supports '<< string'; this is where the + # document will be written. + # indent:: + # An integer. If -1, no indenting will be used; otherwise, the + # indentation will be twice this number of spaces, and children will be + # indented an additional amount. For a value of 3, every item will be # indented 3 more levels, or 6 more spaces (2 * 3). Defaults to -1 - # trans:: - # If transitive is true and indent is >= 0, then the output will be - # pretty-printed in such a way that the added whitespace does not affect - # the absolute *value* of the document -- that is, it leaves the value - # and number of Text nodes in the document unchanged. - # ie_hack:: - # Internet Explorer is the worst piece of crap to have ever been - # written, with the possible exception of Windows itself. Since IE is - # unable to parse proper XML, we have to provide a hack to generate XML - # that IE's limited abilities can handle. This hack inserts a space - # before the /> on empty tags. Defaults to false + # trans:: + # If transitive is true and indent is >= 0, then the output will be + # pretty-printed in such a way that the added whitespace does not affect + # the absolute *value* of the document -- that is, it leaves the value + # and number of Text nodes in the document unchanged. + # ie_hack:: + # Internet Explorer is the worst piece of crap to have ever been + # written, with the possible exception of Windows itself. Since IE is + # unable to parse proper XML, we have to provide a hack to generate XML + # that IE's limited abilities can handle. This hack inserts a space + # before the /> on empty tags. Defaults to false def write( output=$stdout, indent=-1, trans=false, ie_hack=false ) if xml_decl.encoding != "UTF-8" && !output.kind_of?(Output) output = Output.new( output, xml_decl.encoding ) diff --git a/lib/rexml/encodings/ISO-8859-15.rb b/lib/rexml/encodings/ISO-8859-15.rb index b4c11ecee9..8dea0d38a4 100644 --- a/lib/rexml/encodings/ISO-8859-15.rb +++ b/lib/rexml/encodings/ISO-8859-15.rb @@ -5,7 +5,7 @@ module REXML module Encoding register("ISO-8859-15") do |o| alias encode to_iso_8859_15 - alias decode from_iso_8859_15 + alias decode from_iso_8859_15 end # Convert from UTF-8 diff --git a/lib/rexml/parsers/sax2parser.rb b/lib/rexml/parsers/sax2parser.rb index dba18594b5..e402eb7747 100644 --- a/lib/rexml/parsers/sax2parser.rb +++ b/lib/rexml/parsers/sax2parser.rb @@ -94,8 +94,8 @@ module REXML when :end_document handle( :end_document ) break - when :start_doctype - handle( :doctype, *event[1..-1]) + when :start_doctype + handle( :doctype, *event[1..-1]) when :end_doctype context = context[1] when :start_element diff --git a/lib/rexml/rexml.rb b/lib/rexml/rexml.rb index 46195244a8..435242dc31 100644 --- a/lib/rexml/rexml.rb +++ b/lib/rexml/rexml.rb @@ -11,8 +11,8 @@ # # Main page:: http://www.germane-software.com/software/rexml # Author:: Sean Russell -# Version:: 3.1.7.1 -# Date:: 2007/209 +# Version:: 3.1.7.2 +# Date:: 2007/275 # # This API documentation can be downloaded from the REXML home page, or can # be accessed online[http://www.germane-software.com/software/rexml_doc] @@ -22,9 +22,9 @@ # online[http://www.germane-software.com/software/rexml/docs/tutorial.html] module REXML COPYRIGHT = "Copyright © 2001-2007 Sean Russell " - DATE = "2007/209" - VERSION = "3.1.7.1" - REVISION = %w"$Revision$"[1] + DATE = "2007/275" + VERSION = "3.1.7.2" + REVISION = "$Revision$".gsub(/\$Revision:|\$/,'').strip Copyright = COPYRIGHT Version = VERSION diff --git a/lib/rexml/source.rb b/lib/rexml/source.rb index ada876cde5..bc99c0ed6a 100644 --- a/lib/rexml/source.rb +++ b/lib/rexml/source.rb @@ -17,8 +17,8 @@ module REXML elsif arg.kind_of? Source arg else - raise "#{source.class} is not a valid input stream. It must walk \n"+ - "like either a String, IO, or Source." + raise "#{arg.class} is not a valid input stream. It must walk \n"+ + "like either a String, an IO, or a Source." end end end