Issue #9367 has been updated by duerst (Martin Dürst).

Status changed from Open to Feedback

Strictly speaking, the XML declaration doesn't contain any attributes, only things that look like attributes. They are sometimes called pseudo-attributes. So it is not unreasonable that
doc.context[:attribute_quote] = :quote
does not affect pseudo-attribute quoting.

For attributes, the choice of quoting can affect the amount of escaping. But this doesn't apply to pseudo-attributes, as the 'values' in the pseudo-attributes don't contain quotes.

Can you explain the specific reason you want double quotes in the XML declaration?
----------------------------------------
Bug #9367: REXML::XmlDecl doesn't use user specified quotes
https://bugs.ruby-lang.org/issues/9367#change-44117

Author: bearmini (Takashi Oguma)
Status: Feedback
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN


=begin
REXML uses double quotes for quoting attributes if :attribute_quote is specified as document's context like below:

 doc = REXML::Document.new
 doc.context[:attribute_quote] = :quote

This looks working well on all elements but has no effect for xml declaration (i.e. <?xml version= ... ?>) if it exists.

Even if I specify (({doc.context[:attribute_quote] = :quote})), I will get this:

 <?xml version='1.0' encoding='UTF-8' standalone='true'?>
 <root attr1="value1">
   <child attr2="value2"/>
   <child attr3="value3"/>
 </root>

The expected result is:

 <?xml version="1.0" encoding="UTF-8" standalone="true"?>
 <root attr1="value1">
   <child attr2="value2"/>
   <child attr3="value3"/>
 </root>

=end


-- 
http://bugs.ruby-lang.org/