(I'm the author of the xml-mapping gem)
From your description it looks like you want "PictureDetails" to be the base_path of your array node, and "PictureURL" the per-array element path. And in each array element, the PictureURL should just write its picture_url property into the element text, without creating a sub-element or -attribute, which means the path specification of the text_node should be just '.'.
So this should work:
class Item
include XML::Mapping
array_node :picture_details, 'PictureDetails', 'PictureURL', :class => PictureURL, :default_value => []
end
class PictureURL
include XML::Mapping
include Initializer
text_node :picture_url, '.', :optional => true
end