Xml builder not able to create namespaced elements w/attribu

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

<sailuserdata:ESession xmi:version=“2.0” xmlns:xmi=“http://
XMI” xmlns:sailuserdata=“sailuserdata”>

</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</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?

Thanks

Hi –

On Sun, 23 Jul 2006, Stephen B. wrote:

x.sailuserdata :ESession

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