augment 'as_xml' => sub { my ($self, $name, $opt)=@_; VendorAddRq( VendorAdd( Name($name), $self->maybeVendorTypeRef($name, $opt) )); }; sub maybeVendorTypeRef { my($self,$name,$opt)=@_; return unless $opt; return unless my $v = $opt->{VendorTypeRef}; VendorTypeRef( $self->hashrender(ListID => $v) , $self->hashrender(FullName => $v) ); } sub hashrender { my($self, $key, $hash)=@_; return '' unless my $v = $hash->{$key} // undef; my $X = XML::Generator->new(pretty => 2); $X->$key($v); }