/[suikacvs]/messaging/manakai/lib/Message/DOM/TreeStore.dis
Suika

Contents of /messaging/manakai/lib/Message/DOM/TreeStore.dis

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (show annotations) (download)
Sat Dec 30 13:25:33 2006 UTC (19 years, 6 months ago) by wakaba
Branch: MAIN
CVS Tags: manakai-release-0-4-0, HEAD
Changes since 1.8: +2 -4 lines
++ manakai/lib/Message/Util/DIS/ChangeLog	30 Dec 2006 13:23:58 -0000
	* Perl.dis (plCodeFragment): Support for |f:provides|
	is removed.

2006-12-30  Wakaba  <wakaba@suika.fam.cx>

++ manakai/lib/Message/DOM/ChangeLog	30 Dec 2006 13:22:55 -0000
	* DOMFeature.dis (ForDef): Removed.
	(f:provides, f:through): Removed.
	(Version): Removed.
	(implementFeature): Removed.

2006-12-30  Wakaba  <wakaba@suika.fam.cx>

++ manakai/lib/manakai/ChangeLog	30 Dec 2006 13:25:24 -0000
	* DISIDL.dis, Java.dis, ECMAScript.dis,
	Document.dis, DISPerl.dis, XML.dis (ForDef): Removed.

	* DISMarkup.dis (ForET): Removed.

	* |DefaultFor| properties are removed.

	* DISCore.dis (DefaultFor): Removed.

2006-12-30  Wakaba  <wakaba@suika.fam.cx>

1 Module:
2 @QName: MDOM|TreeStore
3 @enFN:
4 DOM Tree Store Module
5 @enDesc:
6 The manakai DOM Tree Store Module provides a simple
7 storable representation of a DOM subtree.
8
9 @Namespace:
10 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/TreeStore/
11
12 @DISCore:author: DISCore|Wakaba
13 @License: license|Perl+MPL
14 @Date:
15 $Date: 2006/12/30 08:27:46 $
16
17 @Require:
18 @@Module:
19 @@@QName: MDOM|TreeCore
20
21 Namespace:
22 @c:
23 http://suika.fam.cx/~wakaba/archive/2004/8/18/dom-core#
24 @cfg:
25 http://suika.fam.cx/www/2006/dom-config/
26 @dis:
27 http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#dis--
28 @doc:
29 http://suika.fam.cx/~wakaba/archive/2005/7/tutorial#
30 @d:
31 http://suika.fam.cx/~wakaba/archive/2004/dom/xdt#
32 @DOMMain:
33 http://suika.fam.cx/~wakaba/archive/2004/dom/main#
34 @domperl:
35 http://suika.fam.cx/~wakaba/archive/2006/dom/perl/
36 @dx:
37 http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/Error/DOMException#
38 @dxm:
39 http://suika.fam.cx/~wakaba/archive/2004/dis/XML#
40 @ecore:
41 http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/Error/Core/
42 @ev:
43 http://www.w3.org/2001/xml-events
44 @f:
45 http://suika.fam.cx/~wakaba/archive/2004/dom/feature#
46 @fe:
47 http://suika.fam.cx/www/2006/feature/
48 @idl:
49 http://suika.fam.cx/~wakaba/archive/2004/dis/IDL#
50 @infoset:
51 http://www.w3.org/2001/04/infoset#
52 @kwd:
53 http://suika.fam.cx/~wakaba/archive/2005/rfc2119/
54 @lang:
55 http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#
56 @license:
57 http://suika.fam.cx/~wakaba/archive/2004/8/18/license#
58 @ManakaiDOM:
59 http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#
60 @MDOM:
61 http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#ManakaiDOM.
62 @MDOMX:
63 http://suika.fam.cx/~wakaba/archive/2004/8/4/manakai-dom-exception#
64 @null:
65 http://suika.fam.cx/~wakaba/-temp/2003/09/27/null
66 @rdf:
67 http://www.w3.org/1999/02/22-rdf-syntax-ns#
68 @t:
69 http://suika.fam.cx/~wakaba/archive/2004/dom/tree#
70 @tc:
71 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/TreeCore/
72 @td:
73 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/Document/
74 @te:
75 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/Element/
76 @test:
77 http://suika.fam.cx/~wakaba/archive/2004/dis/Test#
78 @tst:
79 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/TreeStore/
80 @tx:
81 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/XML/
82 @urigen:
83 http://suika.fam.cx/~wakaba/archive/2005/manakai/URI/Generic/
84 @Util:
85 http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/
86 @xml:
87 http://www.w3.org/XML/1998/namespace
88 @xml-dtd:
89 http://www.w3.org/TR/REC-xml
90 @xmlns:
91 http://www.w3.org/2000/xmlns/
92
93 ElementTypeBinding:
94 @Name: CODE
95 @ElementType:
96 dis:ResourceDef
97 @ShadowContent:
98 @@DISCore:resourceType: DISPerl|BlockCode
99 @@ForCheck: ManakaiDOM|ForClass
100
101 ElementTypeBinding:
102 @Name: Method
103 @ElementType:
104 dis:ResourceDef
105 @ShadowContent:
106 @@rdf:type: DISLang|Method
107
108 ElementTypeBinding:
109 @Name: Param
110 @ElementType:
111 dis:ResourceDef
112 @ShadowContent:
113 @@rdf:type: DISLang|MethodParameter
114
115 ElementTypeBinding:
116 @Name: Return
117 @ElementType:
118 dis:ResourceDef
119 @ShadowContent:
120 @@rdf:type: DISLang|MethodReturn
121
122 ElementTypeBinding:
123 @Name: nullCase
124 @ElementType:
125 dis:ResourceDef
126 @ShadowContent:
127 @@rdf:type:
128 ManakaiDOM:InCase
129 @@Value:
130 @@@is-null:1
131
132 ElementTypeBinding:
133 @Name: IFQName
134 @ElementType:
135 dis:QName
136 @ShadowContent:
137 @@ForCheck: ManakaiDOM|ForIF
138
139 ElementTypeBinding:
140 @Name: ClsQName
141 @ElementType:
142 dis:QName
143 @ShadowContent:
144 @@ForCheck: ManakaiDOM|ForClass
145
146 ## -- Features
147
148 ElementTypeBinding:
149 @Name: FeatureDef
150 @ElementType:
151 dis:ResourceDef
152 @ShadowContent:
153 @@rdf:type: f|Feature
154
155 ElementTypeBinding:
156 @Name: FeatureVerDef
157 @ElementType:
158 dis:ResourceDef
159 @ShadowContent:
160 @@rdf:type: f|Feature
161
162 ElementTypeBinding:
163 @Name: featureQName
164 @ElementType:
165 f:name
166 @ShadowContent:
167 @@ContentType: DISCore|QName
168
169 FeatureDef:
170 @QName: TSFeature
171 @featureQName: fe|TreeStore
172 @FeatureVerDef:
173 @@QName: TSFeature30
174 @@f:instanceOf: d|Feature
175 @@f:version: 3.0
176 @@f:requires: c|CoreFeature30
177 @@f:requires: tx|XMLFeature30
178
179 ElementTypeBinding:
180 @Name: IFClsDef
181 @ElementType:
182 dis:ResourceDef
183 @ShadowContent:
184 @@DISCore:resourceType:
185 @@@@: dis|MultipleResource
186 @@@ForCheck: !ManakaiDOM|ForIF !ManakaiDOM|ForClass
187 @@resourceFor: ManakaiDOM|ForIF
188 @@resourceFor:
189 @@@@: ManakaiDOM|ForClass
190
191 @@DISCore:resourceType:
192 @@@@: DISLang|Interface
193 @@@ForCheck: ManakaiDOM|ForIF
194
195 @@DISCore:resourceType:
196 @@@@: DISLang|Class
197 @@@ForCheck: ManakaiDOM|ForClass
198
199 @@Implement:
200 @@@@: ||+||ManakaiDOM|ForIF
201 @@@ContentType: DISCore|TFPQNames
202 @@@ForCheck: ManakaiDOM|ForClass
203
204 ElementTypeBinding:
205 @Name: Test
206 @ElementType:
207 dis:ResourceDef
208 @ShadowContent:
209 @@DISCore:resourceType: test|StandaloneTest
210 @@ForCheck: ManakaiDOM|ForClass
211
212 ## -- Implementation
213
214 IFClsDef:
215 @IFQName: DOMImplementationTreeStore
216 @ClsQName: ManakaiDOMImplementationTreeStore
217
218 @domperl:implementedByObjectsOf: c|DOMImplementation
219 @domperl:classImplementedByObjectsOf: c|ManakaiDOMImplementation
220
221 @f:implements: TSFeature30
222
223 @Test:
224 @@QName: DOMImplementationTreeStore.interface.1.test
225 @@PerlDef:
226 $test->assert_true
227 (<Class::c|ManakaiDOMImplementation>->isa
228 (<IFName::DOMImplementationTreeStore>));
229 @Test:
230 @@QName: DOMImplementationTreeStore.class.1.test
231 @@PerlDef:
232 $test->assert_true
233 (<Class::c|ManakaiDOMImplementation>->isa
234 (<IFName::ManakaiDOMImplementationTreeStore>));
235
236 @Test:
237 @@QName: ImplementationRegistry.getImplementation.1.test
238 @@PerlDef:
239 my $impl = $Message::DOM::ImplementationRegistry
240 ->get_dom_implementation ({<Q::fe|TreeStore> => '3.0'});
241
242 $test->id ('DOMImplementationTreeStore');
243 $test->assert_isa ($impl, <ClassName::ManakaiDOMImplementationTreeStore>);
244
245 $test->id ('DOMImplementationTree');
246 $test->assert_isa ($impl, <IFName::c|DOMImplementation>);
247 @Test:
248 @@QName: ImplementationRegistry.getImplementation.2.test
249 @@PerlDef:
250 my $impl = $Message::DOM::ImplementationRegistry
251 ->get_dom_implementation ({<Q::fe|TreeStore> => '3.0',
252 Core => '3.0'});
253
254 $test->id ('DOMImplementationTreeStore');
255 $test->assert_isa ($impl, <ClassName::ManakaiDOMImplementationTreeStore>);
256
257 $test->id ('DOMImplementationTree');
258 $test->assert_isa ($impl, <IFName::c|DOMImplementation>);
259 @Test:
260 @@QName: DOMImplementation.getFeature.1.test
261 @@PerlDef:
262 my $impl;
263 __CODE{tc|createImplForTest:: $impl => $impl}__;
264
265 my $gf = $impl->get_feature (<Q::fe|TreeStore> => '3.0');
266
267 $test->id ('DOMImplementationTreeStore');
268 $test->assert_isa ($gf, <ClassName::ManakaiDOMImplementationTreeStore>);
269
270 $test->id ('DOMImplementationTree');
271 $test->assert_isa ($gf, <IFName::c|DOMImplementation>);
272
273 @CODE:
274 @@QName: tst|createImplForTest
275 @@PerlDef:
276 $impl = <Class::c|ManakaiDOMImplementation>->_new;
277
278 @Method:
279 @@Name: createStorableObjectFromNode
280 @@enDesc:
281 Creates a storable representation of the <IF::tc|Node>
282 and its subtree.
283 @@Param:
284 @@@Name: in
285 @@@Type: tc|Node
286 @@@enDesc:
287 The original <IF::tc|Node> to convert.
288 @@Return:
289 @@@Type: StorableObject
290 @@@enDesc:
291 A storable representation of the <P::in> node.
292 @@@dx:raises:
293 @@@@@: c|CLONE_NODE_TYPE_NOT_SUPPORTED_ERR
294 @@@@enDesc:
295 If the <P::in> node is of type other than
296 <IF::td|Document>, <IF::td|DocumentFragment>,
297 <IF::te|Element>, <IF::te|Attr>,
298 <IF::tc|Text>, or <IF::tx|CDATASection>.
299 @@@PerlDef:
300 if ({
301 <C::tc|Node.DOCUMENT_NODE> => true,
302 <C::tc|Node.DOCUMENT_FRAGMENT_NODE> => true,
303 <C::tc|Node.ELEMENT_NODE> => true,
304 <C::tc|Node.ATTRIBUTE_NODE> => true,
305 <C::tc|Node.TEXT_NODE> => true,
306 <C::tc|Node.CDATA_SECTION_NODE> => true,
307 }->{$in-><AG::tc|Node.nodeType>}) {
308 my @target = ([$in, # node
309 null]); # origin
310
311 while (@target) {
312 my $target = shift @target;
313 my $tnt = $target->[0]-><AG::tc|Node.nodeType>;
314 if ($tnt == <C::tc|Node.ELEMENT_NODE>) {
315 my $v = {};
316
317 my $pv = ${$target->[0]}->{<H::infoset|namespaceName>};
318 $v->{namespace_uri} = $pv if defined $pv;
319
320 $pv = ${$target->[0]}->{<H::infoset|localName>};
321 $v->{local_name} = $pv;
322
323 $pv = ${$target->[0]}->{<H::infoset|prefix>};
324 $v->{prefix} = $pv if defined $pv;
325
326 for (@{$target->[0]-><AG::tc|Node.childNodes>}) {
327 push @target, [$_, $v];
328 }
329 for (@{$target->[0]-><AG::tc|Node.attributes>}) {
330 push @target, [$_, $v];
331 }
332 if (defined $target->[1]) {
333 push @{$target->[1]->{child_nodes} ||= []}, $v;
334 } else {
335 $r = $v unless defined $r;
336 }
337 } elsif ($tnt == <C::tc|Node.ATTRIBUTE_NODE>) {
338 my $v = {
339 value => \ $target->[0]-><AG::te|Attr.value>,
340 };
341
342 my $pv = ${$target->[0]}->{<H::infoset|namespaceName>};
343 $v->{namespace_uri} = $pv if defined $pv;
344
345 $pv = ${$target->[0]}->{<H::infoset|localName>};
346 $v->{local_name} = $pv;
347
348 $pv = ${$target->[0]}->{<H::infoset|prefix>};
349 $v->{prefix} = $pv if defined $pv;
350
351 if (defined $target->[1]) {
352 push @{$target->[1]->{attributes} ||= []}, $v;
353 } else {
354 $r = $v unless defined $r;
355 }
356 } elsif ($tnt == <C::tc|Node.TEXT_NODE> or
357 $tnt == <C::tc|Node.CDATA_SECTION_NODE>) {
358 my $v = {};
359 $v->{data} = ${$target->[0]}->{<H::infoset|content>};
360
361 if (defined $target->[1]) {
362 push @{$target->[1]->{child_nodes} ||= []}, $v;
363 } else {
364 $r = $v unless defined $r;
365 }
366 } elsif ($tnt == <C::tc|Node.DOCUMENT_NODE>) {
367 my $v = {
368 xml_version => $target->[0]-><AG::td|Document.xmlVersion>,
369 };
370
371 for (@{$target->[0]-><AG::tc|Node.childNodes>}) {
372 push @target, [$_, $v];
373 }
374 $r = $v unless defined $r;
375 } elsif ($tnt == <C::tc|Node.DOCUMENT_FRAGMENT_NODE>) {
376 my $v = {};
377
378 for (@{$target->[0]-><AG::tc|Node.childNodes>}) {
379 push @target, [$_, $v];
380 }
381 $r = $v unless defined $r;
382 } elsif ($tnt == <C::tc|Node.ENTITY_REFERENCE_NODE>) {
383 for (@{$target->[0]-><AG::tc|Node.childNodes>}) {
384 push @target, [$_, $target->[1]];
385 }
386 }
387 }
388 } else {
389 __EXCEPTION{c|CLONE_NODE_TYPE_NOT_SUPPORTED_ERR::
390 MDOMX|param-name => 'in',
391 c|node => {$in},
392 }__;
393 }
394
395 @Method:
396 @@Name: createNodeFromStorableObject
397 @@enDesc:
398 Creates a <IF::tc|Node> and its subtree from a storable representation.
399 @@Param:
400 @@@Name: in
401 @@@Type: StorableObject
402 @@@enDesc:
403 The original node storable representation to convert.
404 @@Param:
405 @@@Name: od
406 @@@Type: td|Document
407 @@@enDesc:
408 The owner document to which the generated nodes
409 belong. If the top-level <P::in> object represents
410 a document, this parameter <kwd:MUST> be ignored.
411 @@@nullCase:
412 @@@@enDesc:
413 A new empty <IF::td|Document> is created. If the top-level
414 <P::in> object represents a document, the created <IF::td|Document>
415 <kwd:MUST> be modified so that it represents that document.
416 @@Return:
417 @@@Type: tc|Node
418 @@@enDesc:
419 A <IF::tc|Node> created from the top-level <P::in> object.
420 @@@PerlDef:
421 __DEEP{
422 $od = $self-><M::c|DOMImplementation.createDocument>;
423 my $orig_strict = $od-><AG::td|Document.strictErrorChecking>;
424 $od-><AS::td|Document.strictErrorChecking> (false);
425
426 my @target = ([$in,
427 null, # parent node
428 null]); # owner element
429 while (@target) {
430 my $target = shift @target;
431 if (defined $target->[0]->{local_name}) {
432 if (defined $target->[0]->{value}) {
433 # Attribute
434 my $node = $od-><M::td|Document.createAttributeNS>
435 ($target->[0]->{namespace_uri},
436 [$target->[0]->{prefix},
437 $target->[0]->{local_name}]);
438 $node-><M::tc|Node.manakaiAppendText> ($target->[0]->{value});
439 if (defined $target->[2]) {
440 $target->[2]-><M::te|Element.setAttributeNodeNS> ($node);
441 } else {
442 $r = $node unless defined $r;
443 }
444 } else {
445 # Element
446 my $node = $od-><M::td|Document.createElementNS>
447 ($target->[0]->{namespace_uri},
448 [$target->[0]->{prefix},
449 $target->[0]->{local_name}]);
450 for (@{ref $target->[0]->{child_nodes} eq 'ARRAY'
451 ? $target->[0]->{child_nodes} : []}) {
452 push @target, [$_, $node];
453 }
454 for (@{ref $target->[0]->{attributes} eq 'ARRAY'
455 ? $target->[0]->{attributes} : []}) {
456 push @target, [$_, null, $node];
457 }
458 if (defined $target->[1]) {
459 $target->[1]-><M::tc|Node.appendChild> ($node);
460 } else {
461 $r = $node unless defined $r;
462 }
463 }
464 } elsif (defined $target->[0]->{data}) {
465 # Text
466 if (defined $target->[1]) {
467 $target->[1]-><M::tc|Node.manakaiAppendText>
468 ($target->[0]->{data});
469 } elsif (not defined $r) {
470 $r = $od-><M::td|Document.createTextNode> ('');
471 $r-><M::tc|Node.manakaiAppendText> ($target->[0]->{data});
472 }
473 } elsif (defined $target->[0]->{xml_version}) {
474 # Document
475 my $node = $self-><M::c|DOMImplementation.createDocument>;
476 $node-><AS::td|Document.strictErrorChecking> (false);
477 $node-><AG::td|Document.domConfig>
478 -><M::c|DOMConfiguration.setParameter>
479 (<Q::cfg|strict-document-children> => false);
480 $node-><AS::td|Document.xmlVersion> ($target->[0]->{xml_version});
481 for (@{ref $target->[0]->{child_nodes} eq 'ARRAY'
482 ? $target->[0]->{child_nodes} : []}) {
483 push @target, [$_, $node];
484 }
485 unless (defined $r) {
486 $r = $node;
487 $od = $node;
488 $orig_strict = true;
489 }
490 } else {
491 # Document fragment
492 unless (defined $r) {
493 $r = $od-><M::td|Document.createDocumentFragment>;
494 for (@{ref $target->[0]->{child_nodes} eq 'ARRAY'
495 ? $target->[0]->{child_nodes} : []}) {
496 push @target, [$_, $r];
497 }
498 }
499 }
500 }
501 $od-><AS::td|Document.strictErrorChecking> ($orig_strict);
502 if ($r-><AG::tc|Node.nodeType> == <C::tc|Node.DOCUMENT_NODE>) {
503 $r-><AG::td|Document.domConfig>
504 -><M::c|DOMConfiguration.setParameter>
505 (<Q::cfg|strict-document-children> => null);
506 }
507 }__;
508
509 @Test:
510 @@QName: TreeStore.1.test
511 @@enDesc:
512 A non-NS element.
513 @@PerlDef:
514 my $impl;
515 __CODE{tst|createImplForTest:: $impl => $impl}__;
516
517 my $doc = $impl->create_document;
518
519 my $e1 = $doc->create_element_ns (null, 'element');
520
521 my $e2 = $impl->create_storable_object_from_node ($e1);
522
523 my $e3 = $impl->create_node_from_storable_object ($e2);
524
525 $test->assert_num_equals
526 (actual_value => $e3,
527 expected_value => $e1);
528 @Test:
529 @@QName: TreeStore.2.test
530 @@enDesc:
531 An NS element.
532 @@PerlDef:
533 my $impl;
534 __CODE{tst|createImplForTest:: $impl => $impl}__;
535
536 my $doc = $impl->create_document;
537
538 my $e1 = $doc->create_element_ns ('about:', 'a:element');
539
540 my $e2 = $impl->create_storable_object_from_node ($e1);
541
542 my $e3 = $impl->create_node_from_storable_object ($e2);
543
544 $test->assert_num_equals
545 (actual_value => $e3,
546 expected_value => $e1);
547 @Test:
548 @@QName: TreeStore.3.test
549 @@enDesc:
550 A non-NS attribute.
551 @@PerlDef:
552 my $impl;
553 __CODE{tst|createImplForTest:: $impl => $impl}__;
554
555 my $doc = $impl->create_document;
556
557 my $e1 = $doc->create_attribute_ns (null, 'element');
558 $e1->value ('attr value');
559
560 my $e2 = $impl->create_storable_object_from_node ($e1);
561
562 my $e3 = $impl->create_node_from_storable_object ($e2);
563
564 $test->assert_num_equals
565 (actual_value => $e3,
566 expected_value => $e1);
567 @Test:
568 @@QName: TreeStore.4.test
569 @@enDesc:
570 An NS attribute.
571 @@PerlDef:
572 my $impl;
573 __CODE{tst|createImplForTest:: $impl => $impl}__;
574
575 my $doc = $impl->create_document;
576
577 my $e1 = $doc->create_attribute_ns ('about:', 'a:element');
578 $e1->value ('attr value');
579
580 my $e2 = $impl->create_storable_object_from_node ($e1);
581
582 my $e3 = $impl->create_node_from_storable_object ($e2);
583
584 $test->assert_num_equals
585 (actual_value => $e3,
586 expected_value => $e1);
587 @Test:
588 @@QName: TreeStore.5.test
589 @@enDesc:
590 A text.
591 @@PerlDef:
592 my $impl;
593 __CODE{tst|createImplForTest:: $impl => $impl}__;
594
595 my $doc = $impl->create_document;
596
597 my $e1 = $doc->create_text_node ('text value');
598
599 my $e2 = $impl->create_storable_object_from_node ($e1);
600
601 my $e3 = $impl->create_node_from_storable_object ($e2);
602
603 $test->assert_num_equals
604 (actual_value => $e3,
605 expected_value => $e1);
606 @Test:
607 @@QName: TreeStore.6.test
608 @@enDesc:
609 A cdata section.
610 @@PerlDef:
611 my $impl;
612 __CODE{tst|createImplForTest:: $impl => $impl}__;
613
614 my $doc = $impl->create_document;
615
616 my $e1 = $doc->create_cdata_section ('text value');
617
618 my $e2 = $impl->create_storable_object_from_node ($e1);
619
620 my $e3 = $impl->create_node_from_storable_object ($e2);
621
622 $test->id ('nodeType');
623 $test->assert_num_equals
624 (actual_value => $e3->node_type,
625 expected_value => <C::tc|Node.TEXT_NODE>);
626
627 $test->id ('nodeValue');
628 $test->assert_equals
629 ($e3->node_value, $e1->node_value);
630 @Test:
631 @@QName: TreeStore.7.test
632 @@enDesc:
633 A document.
634 @@PerlDef:
635 my $impl;
636 __CODE{tst|createImplForTest:: $impl => $impl}__;
637
638 my $doc = $impl->create_document;
639
640 my $e1 = $doc;
641
642 my $e2 = $impl->create_storable_object_from_node ($e1);
643
644 my $e3 = $impl->create_node_from_storable_object ($e2);
645
646 $test->assert_num_equals
647 (actual_value => $e3,
648 expected_value => $e1);
649 @Test:
650 @@QName: TreeStore.8.test
651 @@enDesc:
652 A document fragment.
653 @@PerlDef:
654 my $impl;
655 __CODE{tst|createImplForTest:: $impl => $impl}__;
656
657 my $doc = $impl->create_document;
658
659 my $e1 = $doc->create_document_fragment;
660
661 my $e2 = $impl->create_storable_object_from_node ($e1);
662
663 my $e3 = $impl->create_node_from_storable_object ($e2);
664
665 $test->assert_num_equals
666 (actual_value => $e3,
667 expected_value => $e1);
668 @Test:
669 @@QName: TreeStore.9.test
670 @@enDesc:
671 A nesting element.
672 @@PerlDef:
673 my $impl;
674 __CODE{tst|createImplForTest:: $impl => $impl}__;
675
676 my $doc = $impl->create_document;
677
678 my $e1 = $doc->create_element_ns (null, 'el1');
679 $e1->append_child ($doc->create_element_ns (null, 'el2'));
680
681 my $e2 = $impl->create_storable_object_from_node ($e1);
682
683 my $e3 = $impl->create_node_from_storable_object ($e2);
684
685 $test->assert_num_equals
686 (actual_value => $e3,
687 expected_value => $e1);
688 @Test:
689 @@QName: TreeStore.10.test
690 @@enDesc:
691 A nesting element with text.
692 @@PerlDef:
693 my $impl;
694 __CODE{tst|createImplForTest:: $impl => $impl}__;
695
696 my $doc = $impl->create_document;
697
698 my $e1 = $doc->create_element_ns (null, 'el1');
699 $e1->manakai_append_text ('text value');
700 $e1->append_child ($doc->create_element_ns (null, 'el2'));
701
702 my $e2 = $impl->create_storable_object_from_node ($e1);
703
704 my $e3 = $impl->create_node_from_storable_object ($e2);
705
706 $test->assert_num_equals
707 (actual_value => $e3,
708 expected_value => $e1);
709 @Test:
710 @@QName: TreeStore.12.test
711 @@enDesc:
712 An element with attributes.
713 @@PerlDef:
714 my $impl;
715 __CODE{tst|createImplForTest:: $impl => $impl}__;
716
717 my $doc = $impl->create_document;
718
719 my $e1 = $doc->create_element_ns (null, 'el1');
720 $e1->set_attribute (a => 'b');
721 $e1->set_attribute_ns ('about:', 'b:c', 'd');
722
723 my $e2 = $impl->create_storable_object_from_node ($e1);
724
725 my $e3 = $impl->create_node_from_storable_object ($e2);
726
727 $test->assert_num_equals
728 (actual_value => $e3,
729 expected_value => $e1);
730 @Test:
731 @@QName: TreeStore.13.test
732 @@enDesc:
733 A document with element.
734 @@PerlDef:
735 my $impl;
736 __CODE{tst|createImplForTest:: $impl => $impl}__;
737
738 my $doc = $impl->create_document;
739
740 my $e1 = $doc;
741 $doc->append_child ($doc->create_element_ns (null, 'el1'));
742
743 my $e2 = $impl->create_storable_object_from_node ($e1);
744
745 my $e3 = $impl->create_node_from_storable_object ($e2);
746
747 $test->assert_num_equals
748 (actual_value => $e3,
749 expected_value => $e1);
750 @Test:
751 @@QName: TreeStore.14.test
752 @@enDesc:
753 A document fragment with element.
754 @@PerlDef:
755 my $impl;
756 __CODE{tst|createImplForTest:: $impl => $impl}__;
757
758 my $doc = $impl->create_document;
759
760 my $e1 = $doc->create_document_fragment;
761 $e1->append_child ($doc->create_element_ns (null, 'el1'));
762
763 my $e2 = $impl->create_storable_object_from_node ($e1);
764
765 my $e3 = $impl->create_node_from_storable_object ($e2);
766
767 $test->assert_num_equals
768 (actual_value => $e3,
769 expected_value => $e1);
770 ##DOMImplementationTreeStore
771
772 ResourceDef:
773 @QName: StorableObject
774 @AliasFor: DOMMain|DOMObject
775
776 ElementTypeBinding:
777 @Name: enDesc
778 @ElementType:
779 dis:Description
780 @ShadowContent:
781 @@lang:en
782
783 ElementTypeBinding:
784 @Name: enImplNote
785 @ElementType:
786 dis:ImplNote
787 @ShadowContent:
788 @@lang:en
789
790 ElementTypeBinding:
791 @Name: enFN
792 @ElementType:
793 dis:FullName
794 @ShadowContent:
795 @@lang:en
796
797 ElementTypeBinding:
798 @Name: PerlDef
799 @ElementType:
800 dis:Def
801 @ShadowContent:
802 @@ContentType:
803 lang:Perl
804 @@ForCheck: ManakaiDOM|ForClass

[email protected]
ViewVC Help
Powered by ViewVC 1.1.24