Namespace attributes in Builder gem
builder, namespaces, xml
Solution
Figured it out:
xml.tag!('gp:contactGet', {"xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance", "xmlns:ngp"=>"http://www.ngpsoftware.com/ngpapi"}) do
xml.campaignID("1033")
xml.contactID("199434")
end
Produces...
<?xml version="1.0" encoding="UTF-8"?>
<gp:contactGet xmlns:ngp="http://www.ngpsoftware.com/ngpapi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<campaignID>1033</campaignID>
<contactID>199434</contactID>
</gp:contactGet><to_s/>
Problem
Im trying to build out this sample in a Ruby on Rails app with the builder gem: ``` <?xml version="1.0" encoding="utf-8"?> <ngp:contactGet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ngp="http://www.ngpsoftware.com/ngpapi"> <campaignID>1033</campaignID> <contactID>199434</contactID> </ngp:contactGet> ``` I can generate a tag with a namespace as follows: ``` xml = Builder::XmlMarkup.new xml.ngp :contactGet ``` ...but I can't get an attribute inside that tag. I would think that ``` xml.ngp :contactGet("xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance" "xmlns:ngp" =>"http://www.ngpsoftware.com/ngpapi" ``` would work but it doesn't. Please Help!