File Coverage

blib/lib/SOAP/WSDL/XSD/Typelib/Builtin/anyType.pm
Criterion Covered Total %
statement 32 32 100.0
branch 14 22 63.6
condition n/a
subroutine 12 12 100.0
pod 0 6 0.0
total 58 72 80.5


line stmt bran cond sub pod time code
1             package SOAP::WSDL::XSD::Typelib::Builtin::anyType;
2 83     83   1514 use strict;
  83         644  
  83         3400  
3 83     83   459 use warnings;
  83         161  
  83         3816  
4 83     83   1498 use Class::Std::Fast::Storable constructor => 'none';
  83         28811  
  83         629  
5              
6 83     83   12532 use version; our $VERSION = qv('3.001');
  83         166  
  83         681  
7              
8 3     3 0 2563 sub get_xmlns { 'http://www.w3.org/2001/XMLSchema' };
9              
10             # start_tag creates a XML start tag either for a XML element or a attribute.
11             # The method is highly optimized for performance:
12             # - operates on @_
13             # - uses no private variables
14             # - uses no blocks
15              
16             sub start_tag {
17             # return empty string if no second argument ($opt) or no name
18 32 100   32 0 101 return q{} if (! $#_);
19 31 100       225 return q{} if (! exists $_[1]->{ name });
20             # return attribute start if it's an attribute
21 6 50       31 return qq{ $_[1]->{name}="} if $_[1]->{ attr };
22             # return with xsi:nil="true" if it is nil
23             return join
24             q{} ,
25             "<$_[1]->{ name }" ,
26             (defined $_[1]->{ xmlns }) ? qq{ xmlns="$_[1]->{ xmlns }"} : (),
27             $_[0]->serialize_attr($_[1]) ,
28             q{ xsi:nil="true"/>}
29 6 50       35 if ($_[1]->{ nil });
    100          
30             # return "empty" start tag if it's empty
31             return join
32             q{},
33             "<$_[1]->{ name }",
34             (defined $_[1]->{ xmlns }) ? qq{ xmlns="$_[1]->{ xmlns }"} : (),
35             $_[0]->serialize_attr($_[1]) ,
36             '/>'
37 5 0       40 if ($_[1]->{ empty });
    50          
38             # return XML element start tag
39             return join
40             q{},
41             "<$_[1]->{ name }",
42 5 50       148 (defined $_[1]->{ xmlns }) ? qq{ xmlns="$_[1]->{ xmlns }"} : (),
43             , $_[0]->serialize_attr($_[1])
44             , '>';
45             }
46              
47             # start_tag creates a XML end tag either for a XML element or a attribute.
48             # The method is highly optimized for performance:
49             # - operates on @_
50             # - uses no private variables
51             # - uses no blocks
52             sub end_tag {
53             # return empty string if no second argument ($opt) or no name
54 24 50   24 0 77 return q{} if (! $#_);
55 24 100       304 return q{} if (! exists $_[1]->{ name });
56 4 50       20 return q{"} if $_[1]->{ attr };
57 4         28 return "{name}>";
58             };
59              
60 11     11 0 49 sub serialize_attr {};
61              
62             # sub serialize { q{} };
63              
64             sub serialize_qualified :STRINGIFY {
65 2     2 0 555 return $_[0]->serialize( { qualified => 1 } );
66 83     83   51725 }
  83         375  
  83         936  
67              
68             sub as_list :ARRAYIFY {
69 1     1 0 39 return [ $_[0] ];
70 83     83   268133 }
  83         299  
  83         1257  
71              
72             Class::Std::initialize(); # make :STRINGIFY overloading work
73              
74             1;
75