XML-Toolkit
view release on metacpan or search on metacpan
lib/XML/Toolkit/MetaDescription/Attribute.pm
lib/XML/Toolkit/MetaDescription/Trait.pm
lib/XML/Toolkit/Trait/NoXML.pm
t/00-compile.t
t/01.basic.t
t/02.namespaces/01.basic_namespace.t
t/02.namespaces/02.root_namespace_equality.t
t/02.namespaces/03.namespaced_loading.t
t/03.xspf.t
t/04.rdf.t
t/05.cdata.t
t/06.reuse/06.reuse_generator.t
t/06.reuse/06.reuse_loader.t
t/release-pod-coverage.t
t/release-pod-syntax.t
lib/XML/Filter/Moose.pm view on Meta::CPAN
isa => 'Str',
is => 'rw',
traits => ['String'],
lazy => 1,
clearer => 'reset_text',
predicate => 'has_text',
default => sub { '' },
handles => { append_text => 'append', },
);
has cdata => ( isa => 'Bool', is => 'rw', );
sub is_root { return shift->stack_length == 0 }
sub parent_element {
my ($self) = @_;
if ( $self->stack_length > 1 ) {
return $self->stack->[-1];
}
$self->root;
}
lib/XML/Generator/Moose.pm view on Meta::CPAN
sub characters {
my ( $self, $data ) = @_;
$self->Handler->characters( { Data => $data } );
}
sub newline {
my $self = shift;
$self->Handler->characters( { Data => "\n" } );
}
sub cdata {
my ( $self, $data ) = @_;
$self->start_cdata();
$self->Handler->characters( { Data => $data } );
$self->end_cdata();
}
sub start_prefix_mapping {
my ( $self, $prefix, $uri ) = @_;
$self->Handler->start_prefix_mapping(
{ Prefix => $prefix, NamespaceURI => $uri } );
}
sub end_prefix_mapping {
my ( $self, $prefix ) = @_;
lib/XML/Generator/Moose.pm view on Meta::CPAN
=over
=item start_element
=item end_element
=item characters
=item newline
=item cdata
=item parse
=back
See Also XML::SAX::Base
=head1 INCOMPATIBILITIES
None reported.
lib/XML/Toolkit/Builder/Filter.pm view on Meta::CPAN
sub add_text_attribute {
my ( $self, $class ) = @_;
$class->add_attribute(
'text' => (
isa => 'Str',
is => 'rw',
traits => [XMLTrait],
description => {
node_type => 'character',
cdata => $self->cdata,
},
)
);
}
sub start_cdata {
my ( $self, $el ) = @_;
$self->cdata(1);
}
sub end_cdata {
my ( $self, $el ) = @_;
# $self->cdata(0);
}
sub start_element {
my ( $self, $el ) = @_;
my $classname = $self->get_class_name($el);
$el->{classname} = $classname;
my $class = $self->create_class( $classname => $el );
lib/XML/Toolkit/Generator/Default.pm view on Meta::CPAN
return 0;
}
sub is_text_node {
my ( $self, $attr ) = @_;
return 0 unless $self->is_node($attr);
return 1 if $attr->description->{node_type} eq 'character';
return 0;
}
sub is_cdata_node {
my ( $self, $attr ) = @_;
return 0 unless $self->is_node($attr);
return 1 if $attr->description->{cdata};
return 0;
}
sub is_attribute_node {
my ( $self, $attr ) = @_;
return 0 unless $self->is_node($attr);
return 1 if $attr->description->{node_type} eq 'attribute';
return 0;
}
lib/XML/Toolkit/Generator/Default.pm view on Meta::CPAN
my $name = $descr->{Name};
$self->start_element(
$name => \%attrs,
$descr,
);
for my $attr ( $self->_get_sorted_filtered_attributes($meta) ) {
if ( $self->is_text_node($attr) ) {
my $data = $attr->get_value($obj);
$self->is_cdata_node($attr)
? $self->cdata($data)
: $self->characters($data);
}
elsif ( $self->is_child_node($attr) ) {
next unless my $value = $attr->get_value($obj);
for my $child ( grep { defined } @$value ) {
next unless blessed $child;
$self->parse_object( $child->meta, $child, $attr->description );
}
}
else { warn "${\$attr->dump} is funky" }
( run in 0.264 second using v1.01-cache-2.11-cpan-ec4f86ec37b )