in reply to Re: XML::Generator and namespace
in thread XML::Generator and namespace

Thanks for the reply. I tried your suggestion:
#!/usr/bin/perl -w use strict; use XML::Generator; my $gen = XML::Generator->new( conformance => 'strict', escape => 'always', pretty => 2, encoding => 'UTF-8', version => '1.0', namespace => [itunes => "http://www.itunes.com/dtds/podcast-1.0. +dtd"], ); print $gen->xmldecl('standalone' , undef); print $gen->rss([itunes => "http://www.itunes.com/dtds/podcast-1.0. +dtd"], {version => '2.0'});
...but I still get the same thing:
<?xml version="1.0" encoding="UTF-8"?> <itunes:rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" +version="2.0" />

Replies are listed 'Best First'.
Re^3: XML::Generator and namespace
by Anonymous Monk on Aug 21, 2012 at 20:26 UTC
    In your example, you don't want the <rss> tag to be in the itunes: namespace, so you shouldn't be passing in a namespace to the corresponding XML::Generator call. All you need to do to get the xmlns:itunes attribute into the <rss> tag is to use that namespace in some embedded content. For example:
    $itunes = XML::Generator->new(namespace=>[itunes=>'http://...']); $gen = XML::Generator->new(); print $gen->rss($itunes->author("Some Guy"))
    This generates:
    <rss xmlns:itunes="http://..."><itunes:author>Some Guy</itunes></rss>