Xml builder not able to create namespaced elements w/attributes?

I'd like to be able to build a xm like this with builder:

<sailuserdata:ESession xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:sailuserdata="sailuserdata">
   <mydata/>
</sailuserdata:ESession>

XML Builder has a way of making an element with a namespace (put a space before the colon, see: http://builder.rubyforge.org/):

  x.sailuserdata :ESession
=> "<sailuserdata:ESession/>"

And I can wrap my own elements easily:

x.sailuserdata :ESession do
   x.mydata
end
=> "<sailuserdata:ESession><mydata/></sailuserdata:ESession>"

But I can't get it to add attributes.

x.sailuserdata :ESession("key" => "123")
SyntaxError: compile error
(irb):49: parse error, unexpected '(', expecting $
x.sailuserdata :ESession("key" => "123")
                          ^
         from (irb):49

Any ideas on how I can fix (or work around) this?

Thanks

···

from :0

Hi --

···

On Sun, 23 Jul 2006, Stephen Bannasch wrote:

I'd like to be able to build a xm like this with builder:

<sailuserdata:ESession xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI&quot; xmlns:sailuserdata="sailuserdata">
<mydata/>
</sailuserdata:ESession>

XML Builder has a way of making an element with a namespace (put a space before the colon, see: http://builder.rubyforge.org/\):

x.sailuserdata :ESession
=> "<sailuserdata:ESession/>"

And I can wrap my own elements easily:

x.sailuserdata :ESession do
x.mydata
end
=> "<sailuserdata:ESession><mydata/></sailuserdata:ESession>"

But I can't get it to add attributes.

x.sailuserdata :ESession("key" => "123")
SyntaxError: compile error
(irb):49: parse error, unexpected '(', expecting $
x.sailuserdata :ESession("key" => "123")
                       ^
      from (irb):49
      from :0

Any ideas on how I can fix (or work around) this?

You have to treat the hash { "key" => "123" } as a second method
argument, which is what it is. You can leave the {} off, but it still
needs a comma before it :slight_smile:

   x.sailuserdata :ESession, "key" => "123"

David

--
http://www.rubypowerandlight.com => Ruby/Rails training & consultancy
Ruby for Rails => RUBY FOR RAILS (reviewed on
                                     Slashdot, 7/12/2006!)
http://dablog.rubypal.com => D[avid ]A[. ]B[lack's][ Web]log
dblack@wobblini.net => me