Mercurial > pub > Impl
comparison _test/Test/DOM/Builder.pm @ 35:f25d021780b3
DOM::Navigator::Builder working version
| author | Sergey |
|---|---|
| date | Tue, 17 Nov 2009 17:46:24 +0300 |
| parents | a8086f85a571 |
| children | 1828103371d0 |
comparison
equal
deleted
inserted
replaced
| 34:a8086f85a571 | 35:f25d021780b3 |
|---|---|
| 23 $schema->appendRange( | 23 $schema->appendRange( |
| 24 IMPL::DOM::Schema::ComplexNode->new( name => 'personInfo' )->appendRange( | 24 IMPL::DOM::Schema::ComplexNode->new( name => 'personInfo' )->appendRange( |
| 25 IMPL::DOM::Schema::NodeSet->new()->appendRange( | 25 IMPL::DOM::Schema::NodeSet->new()->appendRange( |
| 26 new IMPL::DOM::Schema::SimpleNode( name => 'firstName' ), | 26 new IMPL::DOM::Schema::SimpleNode( name => 'firstName' ), |
| 27 new IMPL::DOM::Schema::SimpleNode( name => 'lastName' ), | 27 new IMPL::DOM::Schema::SimpleNode( name => 'lastName' ), |
| 28 new IMPL::DOM::Schema::ComplexNode( name => 'address' )->appendRange( | 28 new IMPL::DOM::Schema::ComplexNode( name => 'address', maxOccur => 'unbounded' )->appendRange( |
| 29 IMPL::DOM::Schema::NodeSet->new()->appendRange( | 29 IMPL::DOM::Schema::NodeSet->new()->appendRange( |
| 30 new IMPL::DOM::Schema::SimpleNode( name => 'street' ), | 30 new IMPL::DOM::Schema::SimpleNode( name => 'street' ), |
| 31 new IMPL::DOM::Schema::SimpleNode( name => 'line', minOccur => 0 ) | 31 new IMPL::DOM::Schema::SimpleNode( name => 'line', minOccur => 0 ) |
| 32 ) | 32 ) |
| 33 ) | 33 ) |
| 53 my $builder = IMPL::DOM::Navigator::Builder->new( | 53 my $builder = IMPL::DOM::Navigator::Builder->new( |
| 54 'IMPL::DOM::Document', | 54 'IMPL::DOM::Document', |
| 55 $this->schemaDoc | 55 $this->schemaDoc |
| 56 ); | 56 ); |
| 57 | 57 |
| 58 use Time::HiRes qw(gettimeofday tv_interval); | |
| 59 | |
| 60 my $t = [gettimeofday]; | |
| 61 | |
| 58 $builder->NavigateCreate('personInfo', version => '1'); | 62 $builder->NavigateCreate('personInfo', version => '1'); |
| 59 $builder->NavigateCreate('firstName')->nodeValue('Nemo'); | 63 $builder->NavigateCreate('firstName')->nodeValue('Nemo'); |
| 60 $builder->Back(); | 64 $builder->Back(); |
| 61 $builder->NavigateCreate('address', local => 1); | 65 $builder->NavigateCreate('lastName')->nodeValue('Nobel'); |
| 62 $builder->NavigateCreate('street')->nodeValue('Hellroad'); | 66 $builder->Back(); |
| 67 $builder->NavigateCreate('lastName')->nodeValue('Gardum'); | |
| 68 $builder->Back(); | |
| 69 for(1..100) { | |
| 70 $builder->NavigateCreate('address', local => 1); | |
| 71 $builder->NavigateCreate('street')->nodeValue('Hellroad'); | |
| 72 $builder->Back(); | |
| 73 $builder->NavigateCreate('line')->nodeValue($_); | |
| 74 $builder->Back(); | |
| 63 $builder->Back(); | 75 $builder->Back(); |
| 64 $builder->Back(); | 76 } |
| 65 $builder->Back(); | 77 $builder->Back(); |
| 78 | |
| 79 print "Build: ",tv_interval($t,[gettimeofday]),"\n"; | |
| 80 $t = [gettimeofday]; | |
| 81 print $_->Message,"\n" foreach $this->schemaDoc->Validate($builder->Document); | |
| 82 print "Validate: ",tv_interval($t,[gettimeofday]),"\n"; | |
| 66 | 83 |
| 67 return 1; | 84 return 1; |
| 68 }; | 85 }; |
| 69 | 86 |
| 70 | 87 |
