<DocumentDefinition>
<name>_test_virtual_element</name>
<element>
<name>first</name>
<def_hook>
<![CDATA[
$self->def_pnotes()->{first_value} = 'plop';
]]>
</def_hook>
</element>
<element><name>second</name></element>
<element>
<name>third</name>
<set_hook>
<![CDATA[
sub {
my ( $self, $content_ref, $args ) = @_;
$$content_ref = $args->{value};
}
]]>
</set_hook>
</element>
<method>
<name>both</name>
<code>
<![CDATA[
sub {
my $self = shift();
return $self->element('first')->get() . $self->element('second')->get();
}
]]>
</code>
</method>
<method>
<name>test_args</name>
<code>
<![CDATA[
sub {
my ( $self, $arg1, $arg2 ) = @_;
$self->element('first')->set($arg1);
$self->element('second')->set($arg2);
return 1;
}
]]>
</code>
</method>
<element><name>plu</name></element>
<nested_element>
<name>nested_sing</name>
<element><name>ns_inside</name></element>
</nested_element>
<nested_element>
<name>nested_plu</name>
<element><name>np_inside</name></element>
</nested_element>
<element>
<name>looks_at_firsts_pnotes</name>
<method>
<name>pn</name>
<code>
<![CDATA[
sub { return XML::Comma->def_pnotes('_test_virtual_element:first'); }
]]>
</code>
</method>
</element>
<plural>'plu','nested_plu'</plural>
<def_hook>
<![CDATA[
$self->def_pnotes()->{test} = 'ok';
]]>
</def_hook>
</DocumentDefinition>