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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations) (download)
Mon May 15 12:06:09 2006 UTC (18 years, 6 months ago) by wakaba
Branch: MAIN
Changes since 1.1: +1863 -12 lines
++ manakai/lib/Message/DOM/ChangeLog	15 May 2006 12:06:03 -0000
2006-05-15  Wakaba  <wakaba@suika.fam.cx>

	* XDP.dis (XDPDocument): A number of constructor methods
	are added.
	(XDPTextDecl.dtdText): The |xml| target was missing.

1 Module:
2 @QName: MDOM|XDP
3 @enFN:
4 XDP DOM
5 @enDesc:
6 The <DFN::XDP>, <DFN::XML DTD Physical Structure DOM>
7 provides facility to compose XML DTD with its physical
8 structure.
9
10 @Namespace:
11 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/XDP/
12
13 @DISCore:author: DISCore|Wakaba
14 @License: license|Perl+MPL
15 @Date:
16 $Date: 2006/05/13 12:06:21 $
17
18 @Require:
19 @@Module:
20 @@@QName: Markup|common
21 @@Module:
22 @@@QName: MDOM|TreeCore
23 @@@WithFor: ManakaiDOM|ManakaiDOMLatest
24 @@Module:
25 @@@WithFor: ManakaiDOM|ManakaiDOM
26 @@Module:
27 @@@WithFor: ManakaiDOM|ManakaiDOMLatest
28 @DefaultFor: ManakaiDOM|ManakaiDOMLatest
29
30 Namespace:
31 @atom:
32 http://www.w3.org/2005/Atom
33 @c:
34 http://suika.fam.cx/~wakaba/archive/2004/8/18/dom-core#
35 @cfg:
36 http://suika.fam.cx/www/2006/dom-config/
37 @dis:
38 http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#dis--
39 @doc:
40 http://suika.fam.cx/~wakaba/archive/2005/7/tutorial#
41 @d:
42 http://suika.fam.cx/~wakaba/archive/2004/dom/xdt#
43 @DOMMain:
44 http://suika.fam.cx/~wakaba/archive/2004/dom/main#
45 @dx:
46 http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/Error/DOMException#
47 @ecore:
48 http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/Error/Core/
49 @f:
50 http://suika.fam.cx/~wakaba/archive/2004/dom/feature#
51 @fe:
52 http://suika.fam.cx/www/2006/feature/
53 @html:
54 http://www.w3.org/1999/xhtml
55 @idl:
56 http://suika.fam.cx/~wakaba/archive/2004/dis/IDL#
57 @kwd:
58 http://suika.fam.cx/~wakaba/archive/2005/rfc2119/
59 @lang:
60 http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#
61 @license:
62 http://suika.fam.cx/~wakaba/archive/2004/8/18/license#
63 @ManakaiDOM:
64 http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#
65 @Markup:
66 http://suika.fam.cx/~wakaba/archive/2005/manakai/Markup#
67 @mat:
68 http://suika.fam.cx/~wakaba/archive/2005/manakai/Markup/Atom/
69 @MDOM:
70 http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#ManakaiDOM.
71 @MDOMX:
72 http://suika.fam.cx/~wakaba/archive/2004/8/4/manakai-dom-exception#
73 @dlp:
74 http://suika.fam.cx/~wakaba/archive/2004/dis/Perl#
75 @rel:
76 http://www.iana.org/assignments/relation/
77 @s:
78 http://suika.fam.cx/~wakaba/archive/2004/dis/Markup#
79 @tc:
80 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/TreeCore/
81 @td:
82 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/Document/
83 @te:
84 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/Element/
85 @test:
86 http://suika.fam.cx/~wakaba/archive/2004/dis/Test#
87 @trv:
88 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/Traversal/
89 @tx:
90 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/XML/
91 @urigen:
92 http://suika.fam.cx/~wakaba/archive/2005/manakai/URI/Generic/
93 @xdp:
94 http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/XDP/
95 @xml:
96 http://www.w3.org/XML/1998/namespace
97
98 ElementTypeBinding:
99 @Name: CODE
100 @ElementType:
101 dis:ResourceDef
102 @ShadowContent:
103 @@DISCore:resourceType: dlp|BlockCode
104 @@ForCheck: ManakaiDOM|ForClass
105
106 ElementTypeBinding:
107 @Name: Method
108 @ElementType:
109 dis:ResourceDef
110 @ShadowContent:
111 @@DISCore:resourceType: DISLang|Method
112 @@ForCheck: !=ManakaiDOM|ManakaiDOM
113
114 ElementTypeBinding:
115 @Name: Param
116 @ElementType:
117 dis:ResourceDef
118 @ShadowContent:
119 @@DISCore:resourceType: DISLang|MethodParameter
120
121 ElementTypeBinding:
122 @Name: Return
123 @ElementType:
124 dis:ResourceDef
125 @ShadowContent:
126 @@DISCore:resourceType: DISLang|MethodReturn
127
128 ElementTypeBinding:
129 @Name: Attr
130 @ElementType:
131 dis:ResourceDef
132 @ShadowContent:
133 @@DISCore:resourceType: DISLang|Attribute
134 @@ForCheck: !=ManakaiDOM|ManakaiDOM
135
136 ElementTypeBinding:
137 @Name: CAttr
138 @ElementType:
139 dis:ResourceDef
140 @ShadowContent:
141 @@DISCore:resourceType: DISLang|Attribute
142 @@ForCheck: !=ManakaiDOM|ManakaiDOM ManakaiDOM|ForClass
143
144 ElementTypeBinding:
145 @Name: Get
146 @ElementType:
147 dis:ResourceDef
148 @ShadowContent:
149 @@DISCore:resourceType: DISLang|AttributeGet
150
151 ElementTypeBinding:
152 @Name: Set
153 @ElementType:
154 dis:ResourceDef
155 @ShadowContent:
156 @@DISCore:resourceType: DISLang|AttributeSet
157
158 ElementTypeBinding:
159 @Name: nullCase
160 @ElementType:
161 dis:ResourceDef
162 @ShadowContent:
163 @@DISCore:resourceType: ManakaiDOM|InCase
164 @@Value:
165 @@@is-null:1
166
167 ElementTypeBinding:
168 @Name: PerlDef
169 @ElementType:
170 dis:Def
171 @ShadowContent:
172 @@ContentType: lang|Perl
173 @@ForCheck: ManakaiDOM|ForClass
174
175 ElementTypeBinding:
176 @Name: PerlCDef
177 @ElementType:
178 dis:Def
179 @ShadowContent:
180 @@ContentType: lang|Perl
181
182 ElementTypeBinding:
183 @Name: enImplNote
184 @ElementType:
185 dis:ImplNote
186 @ShadowContent:
187 @@lang:en
188
189 ElementTypeBinding:
190 @Name: enFN
191 @ElementType:
192 dis:FullName
193 @ShadowContent:
194 @@lang:en
195
196 ElementTypeBinding:
197 @Name: IFClsETDef
198 @ElementType:
199 dis:ResourceDef
200 @ShadowContent:
201 @@DISCore:resourceType:
202 @@@@: dis|MultipleResource
203 @@@ForCheck: !ManakaiDOM|ForIF !ManakaiDOM|ForClass !s|ForML
204 @@resourceFor: ManakaiDOM|ForIF
205 @@resourceFor: ManakaiDOM|ForClass
206 @@resourceFor: s|ForML
207 @@For: ManakaiDOM|ManakaiDOM
208
209 @@DISCore:resourceType:
210 @@@@: DISLang|Interface
211 @@@ForCheck: ManakaiDOM|ForIF
212
213 @@DISCore:resourceType:
214 @@@@: DISLang|Class
215 @@@ForCheck: ManakaiDOM|ForClass
216 @@Implement:
217 @@@@: ||ManakaiDOM|ManakaiDOM||ManakaiDOM|ForIF
218 @@@ContentType: DISCore|TFPQNames
219 @@@ForCheck: ManakaiDOM|ForClass ManakaiDOM|ManakaiDOM
220 @@Implement:
221 @@@@: ||ManakaiDOM|ManakaiDOMLatest||ManakaiDOM|ForIF
222 @@@ContentType: DISCore|TFPQNames
223 @@@ForCheck: ManakaiDOM|ForClass ManakaiDOM|ManakaiDOMLatest
224
225 @@s:elementType:
226 @@@@: ||+||s|ForML
227 @@@ContentType: DISCore|TFPQNames
228 @@@DISCore:stopISARecursive:1
229
230 @@DISCore:resourceType:
231 @@@@: s|ElementType
232 @@@ForCheck: s|ForML
233
234 @@f:implements: XDPFeature30
235
236 ElementTypeBinding:
237 @Name: IFClsDef
238 @ElementType:
239 dis:ResourceDef
240 @ShadowContent:
241 @@DISCore:resourceType:
242 @@@@: dis|MultipleResource
243 @@@ForCheck: !ManakaiDOM|ForIF !ManakaiDOM|ForClass !s|ForML
244 @@resourceFor: ManakaiDOM|ForIF
245 @@resourceFor: ManakaiDOM|ForClass
246 @@For: ManakaiDOM|ManakaiDOM
247
248 @@DISCore:resourceType:
249 @@@@: DISLang|Interface
250 @@@ForCheck: ManakaiDOM|ForIF
251
252 @@DISCore:resourceType:
253 @@@@: DISLang|Class
254 @@@ForCheck: ManakaiDOM|ForClass
255 @@Implement:
256 @@@@: ||ManakaiDOM|ManakaiDOM||ManakaiDOM|ForIF
257 @@@ContentType: DISCore|TFPQNames
258 @@@ForCheck: ManakaiDOM|ForClass ManakaiDOM|ManakaiDOM
259 @@Implement:
260 @@@@: ||ManakaiDOM|ManakaiDOMLatest||ManakaiDOM|ForIF
261 @@@ContentType: DISCore|TFPQNames
262 @@@ForCheck: ManakaiDOM|ForClass ManakaiDOM|ManakaiDOMLatest
263
264 @@f:implements: XDPFeature30
265
266 ElementTypeBinding:
267 @Name: IFQName
268 @ElementType:
269 dis:QName
270 @ShadowContent:
271 @@ForCheck: ManakaiDOM|ForIF
272
273 ElementTypeBinding:
274 @Name: ClsQName
275 @ElementType:
276 dis:QName
277 @ShadowContent:
278 @@ForCheck: ManakaiDOM|ForClass
279
280 ElementTypeBinding:
281 @Name: ETRQName
282 @ElementType:
283 dis:QName
284 @ShadowContent:
285 @@ForCheck: s|ForML
286
287 ElementTypeBinding:
288 @Name: ETQName
289 @ElementType:
290 dis:AppName
291 @ShadowContent:
292 @@ForCheck: s|ForML
293 @@ContentType: DISCore|QName
294
295 ElementTypeBinding:
296 @Name: IFISA
297 @ElementType:
298 dis:ISA
299 @ShadowContent:
300 @@ForCheck: ManakaiDOM|ForIF
301
302 ElementTypeBinding:
303 @Name: ClsISA
304 @ElementType:
305 dis:ISA
306 @ShadowContent:
307 @@ForCheck: ManakaiDOM|ForClass
308
309 ElementTypeBinding:
310 @Name: disDef
311 @ElementType:
312 dis:Def
313 @ShadowContent:
314 @@ContentType:
315 lang:dis
316 @@ForCheck: ManakaiDOM|ForClass
317
318 ElementTypeBinding:
319 @Name: Code
320 @ElementType:
321 dis:ResourceDef
322 @ShadowContent:
323 @@DISCore:resourceType: dlp|InlineCode
324 @@ForCheck: ManakaiDOM|ForClass
325
326 ElementTypeBinding:
327 @Name: Test
328 @ElementType:
329 dis:ResourceDef
330 @ShadowContent:
331 @@DISCore:resourceType: test|StandaloneTest
332 @@ForCheck: ManakaiDOM|ForClass
333
334 ElementTypeBinding:
335 @Name: TestC
336 @ElementType:
337 dis:ResourceDef
338 @ShadowContent:
339 @@DISCore:resourceType: test|StandaloneTest
340
341 ResourceDef:
342 @QName: Document
343 @AliasFor: td|Document
344 @For: ManakaiDOM|DOM
345
346 ResourceDef:
347 @QName: Element
348 @AliasFor: te|Element
349 @For: ManakaiDOM|DOM
350
351 ResourceDef:
352 @QName: Attr
353 @AliasFor: te|Attr
354 @For: ManakaiDOM|DOM
355
356 ResourceDef:
357 @QName: Text
358 @AliasFor: te|Text
359 @For: ManakaiDOM|DOM
360
361 ResourceDef:
362 @QName: DOMString
363 @AliasFor: DOMMain|DOMString
364 @For: ManakaiDOM|DOM
365
366 ResourceDef:
367 @QName: boolean
368 @AliasFor: idl|boolean||ManakaiDOM|all
369
370 ResourceDef:
371 @QName: Node
372 @AliasFor: tc|Node
373 @For: ManakaiDOM|ManakaiDOM
374
375 ResourceDef:
376 @QName: NodeFilter
377 @AliasFor: trv|NodeFilter
378 @For: ManakaiDOM|DOM2
379
380 ResourceDef:
381 @QName: TreeWalker
382 @AliasFor: trv|TreeWalker
383 @For: ManakaiDOM|DOM2
384
385 ElementTypeBinding:
386 @Name: enDesc
387 @ElementType:
388 dis:Description
389 @ShadowContent:
390 @@lang:en
391
392 ElementTypeBinding:
393 @Name: TrueCase
394 @ElementType:
395 dis:ResourceDef
396 @ShadowContent:
397 @@DISCore:resourceType:
398 ManakaiDOM:InCase
399 @@Value:
400 @@@@: 1
401 @@@ContentType: DISCore|Boolean
402 @@Type: idl|boolean||ManakaiDOM|all
403
404 ElementTypeBinding:
405 @Name: FalseCase
406 @ElementType:
407 dis:ResourceDef
408 @ShadowContent:
409 @@DISCore:resourceType:
410 ManakaiDOM:InCase
411 @@Value:
412 @@@@: 0
413 @@@ContentType: DISCore|Boolean
414 @@Type: idl|boolean||ManakaiDOM|all
415
416 ## -- Features
417
418 ElementTypeBinding:
419 @Name: FeatureDef
420 @ElementType:
421 dis:ResourceDef
422 @ShadowContent:
423 @@DISCore:resourceType: f|Feature
424 @@For: =ManakaiDOM|all
425
426 ElementTypeBinding:
427 @Name: FeatureVerDef
428 @ElementType:
429 dis:ResourceDef
430 @ShadowContent:
431 @@DISCore:resourceType: f|Feature
432
433 ElementTypeBinding:
434 @Name: featureQName
435 @ElementType:
436 f:name
437 @ShadowContent:
438 @@ContentType: DISCore|QName
439
440 FeatureDef:
441 @featureQName: fe|XDP
442 @QName: XDPFeature
443 @FeatureVerDef:
444 @@QName: XDPFeature30
445 @@Version: 3.0
446 @@f:instanceOf: XDPFeature
447 @@f:requires: tx|XMLFeature30
448 @@enDesc:
449 The XDP DOM, version 3.0.
450
451 ## -- Document
452
453 IFClsDef:
454 @IFQName: XDPDocument
455 @ClsQName: ManakaiDOMXDPDocument
456
457 @IFISA: Document
458 @ClsISA: td|ManakaiDOMDocument
459
460 @f:implements: XDPFeature30
461 @f:provides:
462 @@@: XDPFeature30
463 @@f:through: c|ManakaiDOMImplementation
464
465 @enDesc:
466 The <IF::XDPDocument> interface provides a set of methods
467 to create instances of XDP interfaces.
468
469 If the implementation supports the <Feature::fe|XDP> feature
470 version <Feature::3.0>, <IF::Document> objects <kwd:MUST> also
471 implement the <IF::XDPDocument> interface.
472
473 @Test:
474 @@QName: XDPDocument.interface.test
475 @@PerlDef:
476 for (
477 <IFName::XDPDocument>,
478 <IFName::Document>,
479 <IFName::Node>,
480 <IFName::f|GetFeature>,
481 ) {
482 $test->id ($_);
483 $test->assert_true (<Class::ManakaiDOMXDPDocument>->isa ($_));
484 }
485
486 @Test:
487 @@QName: Document.getFeature.XDPDocument.test
488 @@PerlDef:
489 my $doc;
490 __CODE{tc|createEmptyDocumentForTest:: $doc => $doc}__;
491 my $docp = $doc->get_feature (<Q::fe|XDP>, '3.0');
492
493 $test->id ($docp, <IFName::XDPDocument>);
494
495 @CODE:
496 @@QName: createXDPDocumentForTest
497 @@PerlDef:
498 my $__edoc;
499 __CODE{tc|createEmptyDocumentForTest:: $doc => $__edoc}__;
500 $doc = $__edoc->get_feature (<Q::fe|XDP> => '3.0');
501
502 @Method:
503 @@Name: createXDPS
504 @@dlp:methodName: create_xdp_s
505 @@enDesc:
506 Creates a <XE::xdp|s> element.
507 @@Param:
508 @@@Name: value
509 @@@Type: DOMString
510 @@@enDesc:
511 The value of the element.
512 @@@nullCase:
513 @@@@enDesc:
514 The element's <A::Node.textContent> is set to
515 a <CHAR::SPACE>.
516 @@Return:
517 @@@Type: XDPElement
518 @@@enDesc:
519 The newly created element node.
520
521 {P:: A new <IF::Element> node with following attributes
522 <kwd:MUST> be returned:
523
524 - <A::Node.localName>::: <XE::s>.
525
526 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
527
528 - <A::Node.ownerDocument>::: The document.
529
530 - <A::Node.textContent>::: <P::value>, or a <CHAR::SPACE>
531 if <P::value> is <DOM::null>.
532
533 }
534
535 If a <IF::Text> node is created, its
536 <A::Text.isElementContentWhitespace> attribute value
537 <kwd:MUST> be set to <DOM::false>.
538 @@@PerlDef:
539 __DEEP{
540 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 's');
541 $r-><AS::Node.textContent> (defined $value ? $value : ' ');
542 }__;
543
544 @@Test:
545 @@@QName: XDPDocument.createXDPS.1.test
546 @@@PerlDef:
547 my $doc;
548 __CODE{createXDPDocumentForTest}__;
549
550 my $value = "\t";
551 my $el = $doc-><M::XDPDocument.createXDPS> ($value);
552
553 $test->id ('interface');
554 $test->assert_isa ($el, <IFName::XDPElement>);
555
556 $test->id ('namespaceURI');
557 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
558
559 $test->id ('localName');
560 $test->assert_equals ($el-><AG::Node.localName>, 's');
561
562 $test->id ('textContent');
563 $test->assert_equals ($el-><AG::Node.textContent>, $value);
564
565 $test->id ('dtdText');
566 $test->assert_equals ($el-><AG::XDPElement.dtdText>, $value);
567 @@Test:
568 @@@QName: XDPDocument.createXDPS.2.test
569 @@@PerlDef:
570 my $doc;
571 __CODE{createXDPDocumentForTest}__;
572
573 my $value = null;
574 my $el = $doc-><M::XDPDocument.createXDPS> ($value);
575
576 $test->id ('interface');
577 $test->assert_isa ($el, <IFName::XDPElement>);
578
579 $test->id ('namespaceURI');
580 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
581
582 $test->id ('localName');
583 $test->assert_equals ($el-><AG::Node.localName>, 's');
584
585 $test->id ('textContent');
586 $test->assert_equals ($el-><AG::Node.textContent>, ' ');
587
588 $test->id ('dtdText');
589 $test->assert_equals ($el-><AG::XDPElement.dtdText>, ' ');
590
591 @Method:
592 @@Name: createXDPName
593 @@enDesc:
594 Creates a <XE::xdp|name> element.
595 @@Param:
596 @@@Name: value
597 @@@Type: DOMString
598 @@@enDesc:
599 The value of the element.
600 @@@nullCase:
601 @@@@enDesc:
602 Same as an empty string.
603 @@Return:
604 @@@Type: XDPElement
605 @@@enDesc:
606 The newly created element node.
607
608 {P:: A new <IF::Element> node with following attributes
609 <kwd:MUST> be returned:
610
611 - <A::Node.localName>::: <XE::name>.
612
613 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
614
615 - <A::Node.ownerDocument>::: The document.
616
617 - <A::Node.textContent>::: <P::value>, or an empty
618 string if <P::value> is <DOM::null>.
619
620 }
621
622 If a <IF::Text> node is created, its
623 <A::Text.isElementContentWhitespace> attribute value
624 <kwd:MUST> be set to <DOM::false>.
625 @@@PerlDef:
626 __DEEP{
627 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'name');
628 $r-><AS::Node.textContent> (defined $value ? $value : '');
629 }__;
630
631 @@Test:
632 @@@QName: XDPDocument.createXDPName.1.test
633 @@@PerlDef:
634 my $doc;
635 __CODE{createXDPDocumentForTest}__;
636
637 my $value = "example-name";
638 my $el = $doc-><M::XDPDocument.createXDPName> ($value);
639
640 $test->id ('interface');
641 $test->assert_isa ($el, <IFName::XDPElement>);
642
643 $test->id ('namespaceURI');
644 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
645
646 $test->id ('localName');
647 $test->assert_equals ($el-><AG::Node.localName>, 'name');
648
649 $test->id ('textContent');
650 $test->assert_equals ($el-><AG::Node.textContent>, $value);
651
652 $test->id ('dtdText');
653 $test->assert_equals ($el-><AG::XDPElement.dtdText>, $value);
654 @@Test:
655 @@@QName: XDPDocument.createXDPName.2.test
656 @@@PerlDef:
657 my $doc;
658 __CODE{createXDPDocumentForTest}__;
659
660 my $value = "example-name";
661 my $el = $doc-><M::XDPDocument.createXDPName> (null);
662
663 $test->id ('interface');
664 $test->assert_isa ($el, <IFName::XDPElement>);
665
666 $test->id ('namespaceURI');
667 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
668
669 $test->id ('localName');
670 $test->assert_equals ($el-><AG::Node.localName>, 'name');
671
672 $test->id ('textContent');
673 $test->assert_equals ($el-><AG::Node.textContent>, '');
674
675 $test->id ('dtdText');
676 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '');
677
678 @Method:
679 @@Name: createXDPNmtoken
680 @@enDesc:
681 Creates a <XE::xdp|nmtoken> element.
682 @@Param:
683 @@@Name: value
684 @@@Type: DOMString
685 @@@enDesc:
686 The value of the element.
687 @@@nullCase:
688 @@@@enDesc:
689 Same as an empty string.
690 @@Return:
691 @@@Type: XDPElement
692 @@@enDesc:
693 The newly created element node.
694
695 {P:: A new <IF::Element> node with following attributes
696 <kwd:MUST> be returned:
697
698 - <A::Node.localName>::: <XE::nmtoken>.
699
700 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
701
702 - <A::Node.ownerDocument>::: The document.
703
704 - <A::Node.textContent>::: <P::value>, or an empty
705 string if <P::value> is <DOM::null>.
706
707 }
708
709 If a <IF::Text> node is created, its
710 <A::Text.isElementContentWhitespace> attribute value
711 <kwd:MUST> be set to <DOM::false>.
712 @@@PerlDef:
713 __DEEP{
714 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'nmtoken');
715 $r-><AS::Node.textContent> (defined $value ? $value : '');
716 }__;
717
718 @@Test:
719 @@@QName: XDPDocument.createXDPNmtoken.1.test
720 @@@PerlDef:
721 my $doc;
722 __CODE{createXDPDocumentForTest}__;
723
724 my $value = "example-name";
725 my $el = $doc-><M::XDPDocument.createXDPNmtoken> ($value);
726
727 $test->id ('interface');
728 $test->assert_isa ($el, <IFName::XDPElement>);
729
730 $test->id ('namespaceURI');
731 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
732
733 $test->id ('localName');
734 $test->assert_equals ($el-><AG::Node.localName>, 'nmtoken');
735
736 $test->id ('textContent');
737 $test->assert_equals ($el-><AG::Node.textContent>, $value);
738
739 $test->id ('dtdText');
740 $test->assert_equals ($el-><AG::XDPElement.dtdText>, $value);
741 @@Test:
742 @@@QName: XDPDocument.createXDPNmtoken.2.test
743 @@@PerlDef:
744 my $doc;
745 __CODE{createXDPDocumentForTest}__;
746
747 my $el = $doc-><M::XDPDocument.createXDPNmtoken> (null);
748
749 $test->id ('interface');
750 $test->assert_isa ($el, <IFName::XDPElement>);
751
752 $test->id ('namespaceURI');
753 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
754
755 $test->id ('localName');
756 $test->assert_equals ($el-><AG::Node.localName>, 'nmtoken');
757
758 $test->id ('textContent');
759 $test->assert_equals ($el-><AG::Node.textContent>, '');
760
761 $test->id ('dtdText');
762 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '');
763
764 @Method:
765 @@Name: createXDPKeyword
766 @@enDesc:
767 Creates a <XE::xdp|keyword> element.
768 @@Param:
769 @@@Name: value
770 @@@Type: DOMString
771 @@@enDesc:
772 The value of the element.
773 @@@nullCase:
774 @@@@enDesc:
775 Same as an empty string.
776 @@Return:
777 @@@Type: XDPElement
778 @@@enDesc:
779 The newly created element node.
780
781 {P:: A new <IF::Element> node with following attributes
782 <kwd:MUST> be returned:
783
784 - <A::Node.localName>::: <XE::keyword>.
785
786 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
787
788 - <A::Node.ownerDocument>::: The document.
789
790 - <A::Node.textContent>::: <P::value>, or an empty
791 string if <P::value> is <DOM::null>.
792
793 }
794
795 If a <IF::Text> node is created, its
796 <A::Text.isElementContentWhitespace> attribute value
797 <kwd:MUST> be set to <DOM::false>.
798 @@@PerlDef:
799 __DEEP{
800 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'keyword');
801 $r-><AS::Node.textContent> (defined $value ? $value : '');
802 }__;
803
804 @@Test:
805 @@@QName: XDPDocument.createXDPKeyword.1.test
806 @@@PerlDef:
807 my $doc;
808 __CODE{createXDPDocumentForTest}__;
809
810 my $value = "PUBLIC";
811 my $el = $doc-><M::XDPDocument.createXDPKeyword> ($value);
812
813 $test->id ('interface');
814 $test->assert_isa ($el, <IFName::XDPElement>);
815
816 $test->id ('namespaceURI');
817 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
818
819 $test->id ('localName');
820 $test->assert_equals ($el-><AG::Node.localName>, 'keyword');
821
822 $test->id ('textContent');
823 $test->assert_equals ($el-><AG::Node.textContent>, $value);
824
825 $test->id ('dtdText');
826 $test->assert_equals ($el-><AG::XDPElement.dtdText>, $value);
827 @@Test:
828 @@@QName: XDPDocument.createXDPKeyword.2.test
829 @@@PerlDef:
830 my $doc;
831 __CODE{createXDPDocumentForTest}__;
832
833 my $el = $doc-><M::XDPDocument.createXDPKeyword> (null);
834
835 $test->id ('interface');
836 $test->assert_isa ($el, <IFName::XDPElement>);
837
838 $test->id ('namespaceURI');
839 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
840
841 $test->id ('localName');
842 $test->assert_equals ($el-><AG::Node.localName>, 'keyword');
843
844 $test->id ('textContent');
845 $test->assert_equals ($el-><AG::Node.textContent>, '');
846
847 $test->id ('dtdText');
848 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '');
849
850 @Method:
851 @@Name: createXDPRNIKeyword
852 @@enDesc:
853 Creates a <XE::xdp|rni-keyword> element.
854 @@Param:
855 @@@Name: value
856 @@@Type: DOMString
857 @@@enDesc:
858 The value of the element.
859 @@@nullCase:
860 @@@@enDesc:
861 Same as an empty string.
862 @@Return:
863 @@@Type: XDPRNIKeywordElement
864 @@@enDesc:
865 The newly created element node.
866
867 {P:: A new <IF::Element> node with following attributes
868 <kwd:MUST> be returned:
869
870 - <A::Node.localName>::: <XE::rni-keyword>.
871
872 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
873
874 - <A::Node.ownerDocument>::: The document.
875
876 - <A::Node.textContent>::: <P::value>, or an empty
877 string if <P::value> is <DOM::null>.
878
879 }
880
881 If a <IF::Text> node is created, its
882 <A::Text.isElementContentWhitespace> attribute value
883 <kwd:MUST> be set to <DOM::false>.
884 @@@PerlDef:
885 __DEEP{
886 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'rni-keyword');
887 $r-><AS::Node.textContent> (defined $value ? $value : '');
888 }__;
889
890 @@Test:
891 @@@QName: XDPDocument.createXDPRNIKeyword.1.test
892 @@@PerlDef:
893 my $doc;
894 __CODE{createXDPDocumentForTest}__;
895
896 my $value = "PCDATA";
897 my $el = $doc-><M::XDPDocument.createXDPRNIKeyword> ($value);
898
899 $test->id ('interface');
900 $test->assert_isa ($el, <IFName::XDPElement>);
901
902 $test->id ('namespaceURI');
903 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
904
905 $test->id ('localName');
906 $test->assert_equals ($el-><AG::Node.localName>, 'rni-keyword');
907
908 $test->id ('textContent');
909 $test->assert_equals ($el-><AG::Node.textContent>, $value);
910
911 $test->id ('dtdText');
912 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '#'.$value);
913 @@Test:
914 @@@QName: XDPDocument.createXDPRNIKeyword.2.test
915 @@@PerlDef:
916 my $doc;
917 __CODE{createXDPDocumentForTest}__;
918
919 my $el = $doc-><M::XDPDocument.createXDPRNIKeyword> (null);
920
921 $test->id ('interface');
922 $test->assert_isa ($el, <IFName::XDPElement>);
923
924 $test->id ('namespaceURI');
925 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
926
927 $test->id ('localName');
928 $test->assert_equals ($el-><AG::Node.localName>, 'rni-keyword');
929
930 $test->id ('textContent');
931 $test->assert_equals ($el-><AG::Node.textContent>, '');
932
933 $test->id ('dtdText');
934 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '#');
935
936 @Method:
937 @@Name: createXDPDelimiter
938 @@enDesc:
939 Creates a <XE::xdp|delimiter> element.
940 @@Param:
941 @@@Name: value
942 @@@Type: DOMString
943 @@@enDesc:
944 The value of the element.
945 @@@nullCase:
946 @@@@enDesc:
947 Same as an empty string.
948 @@Return:
949 @@@Type: XDPElement
950 @@@enDesc:
951 The newly created element node.
952
953 {P:: A new <IF::Element> node with following attributes
954 <kwd:MUST> be returned:
955
956 - <A::Node.localName>::: <XE::delimiter>.
957
958 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
959
960 - <A::Node.ownerDocument>::: The document.
961
962 - <A::Node.textContent>::: <P::value>, or an empty
963 string if <P::value> is <DOM::null>.
964
965 }
966
967 If a <IF::Text> node is created, its
968 <A::Text.isElementContentWhitespace> attribute value
969 <kwd:MUST> be set to <DOM::false>.
970 @@@PerlDef:
971 __DEEP{
972 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'delimiter');
973 $r-><AS::Node.textContent> (defined $value ? $value : '');
974 }__;
975
976 @@Test:
977 @@@QName: XDPDocument.createXDPDelimiter.1.test
978 @@@PerlDef:
979 my $doc;
980 __CODE{createXDPDocumentForTest}__;
981
982 my $value = "%";
983 my $el = $doc-><M::XDPDocument.createXDPDelimiter> ($value);
984
985 $test->id ('interface');
986 $test->assert_isa ($el, <IFName::XDPElement>);
987
988 $test->id ('namespaceURI');
989 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
990
991 $test->id ('localName');
992 $test->assert_equals ($el-><AG::Node.localName>, 'delimiter');
993
994 $test->id ('textContent');
995 $test->assert_equals ($el-><AG::Node.textContent>, $value);
996
997 $test->id ('dtdText');
998 $test->assert_equals ($el-><AG::XDPElement.dtdText>, $value);
999 @@Test:
1000 @@@QName: XDPDocument.createXDPDelimiter.2.test
1001 @@@PerlDef:
1002 my $doc;
1003 __CODE{createXDPDocumentForTest}__;
1004
1005 my $el = $doc-><M::XDPDocument.createXDPDelimiter> (null);
1006
1007 $test->id ('interface');
1008 $test->assert_isa ($el, <IFName::XDPElement>);
1009
1010 $test->id ('namespaceURI');
1011 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1012
1013 $test->id ('localName');
1014 $test->assert_equals ($el-><AG::Node.localName>, 'delimiter');
1015
1016 $test->id ('textContent');
1017 $test->assert_equals ($el-><AG::Node.textContent>, '');
1018
1019 $test->id ('dtdText');
1020 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '');
1021
1022 @Method:
1023 @@Name: createXDPEntityValue
1024 @@enDesc:
1025 Creates a <XE::xdp|entity-value> element.
1026 @@Param:
1027 @@@Name: value
1028 @@@Type: DOMString
1029 @@@enDesc:
1030 The value of the element.
1031 @@@nullCase:
1032 @@@@enDesc:
1033 Same as an empty string.
1034 @@Return:
1035 @@@Type: XDPEntityValueElement
1036 @@@enDesc:
1037 The newly created element node.
1038
1039 {P:: A new <IF::Element> node with following attributes
1040 <kwd:MUST> be returned:
1041
1042 - <A::Node.localName>::: <XE::entity-value>.
1043
1044 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1045
1046 - <A::Node.ownerDocument>::: The document.
1047
1048 - <A::Node.textContent>::: <P::value>, or an empty
1049 string if <P::value> is <DOM::null>.
1050
1051 }
1052
1053 If a <IF::Text> node is created, its
1054 <A::Text.isElementContentWhitespace> attribute value
1055 <kwd:MUST> be set to <DOM::false>.
1056 @@@PerlDef:
1057 __DEEP{
1058 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'entity-value');
1059 $r-><AS::Node.textContent> (defined $value ? $value : '');
1060 }__;
1061
1062 @@Test:
1063 @@@QName: XDPDocument.createXDPEntityValue.1.test
1064 @@@PerlDef:
1065 my $doc;
1066 __CODE{createXDPDocumentForTest}__;
1067
1068 my $value = q<a%b;c&d;e"f"g'h'i>;
1069 my $qvalue = q<'a&#x25;b;c&#x26;d;e"f"g&#x27;h&#x27;i'>;
1070 my $el = $doc-><M::XDPDocument.createXDPEntityValue> ($value);
1071
1072 $test->id ('interface');
1073 $test->assert_isa ($el, <IFName::XDPEntityValueElement>);
1074
1075 $test->id ('namespaceURI');
1076 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1077
1078 $test->id ('localName');
1079 $test->assert_equals ($el-><AG::Node.localName>, 'entity-value');
1080
1081 $test->id ('textContent');
1082 $test->assert_equals ($el-><AG::Node.textContent>, $value);
1083
1084 $test->id ('dtdText');
1085 $test->assert_equals ($el-><AG::XDPElement.dtdText>, $qvalue);
1086 @@Test:
1087 @@@QName: XDPDocument.createXDPEntityValue.2.test
1088 @@@PerlDef:
1089 my $doc;
1090 __CODE{createXDPDocumentForTest}__;
1091
1092 my $el = $doc-><M::XDPDocument.createXDPEntityValue> (null);
1093
1094 $test->id ('interface');
1095 $test->assert_isa ($el, <IFName::XDPEntityValueElement>);
1096
1097 $test->id ('namespaceURI');
1098 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1099
1100 $test->id ('localName');
1101 $test->assert_equals ($el-><AG::Node.localName>, 'entity-value');
1102
1103 $test->id ('textContent');
1104 $test->assert_equals ($el-><AG::Node.textContent>, '');
1105
1106 $test->id ('dtdText');
1107 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '""');
1108
1109 @Method:
1110 @@Name: createXDPMinimumLiteral
1111 @@enDesc:
1112 Creates a <XE::xdp|minimum-literal> element.
1113 @@Param:
1114 @@@Name: value
1115 @@@Type: DOMString
1116 @@@enDesc:
1117 The value of the element.
1118 @@@nullCase:
1119 @@@@enDesc:
1120 Same as an empty string.
1121 @@Return:
1122 @@@Type: XDPMinimumLiteralElement
1123 @@@enDesc:
1124 The newly created element node.
1125
1126 {P:: A new <IF::Element> node with following attributes
1127 <kwd:MUST> be returned:
1128
1129 - <A::Node.localName>::: <XE::minimum-literal>.
1130
1131 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1132
1133 - <A::Node.ownerDocument>::: The document.
1134
1135 - <A::Node.textContent>::: <P::value>, or an empty
1136 string if <P::value> is <DOM::null>.
1137
1138 }
1139
1140 If a <IF::Text> node is created, its
1141 <A::Text.isElementContentWhitespace> attribute value
1142 <kwd:MUST> be set to <DOM::false>.
1143 @@@PerlDef:
1144 __DEEP{
1145 $r = $self-><M::Document.createElementNS>
1146 (<Q::xdp|>, 'minimum-literal');
1147 $r-><AS::Node.textContent> (defined $value ? $value : '');
1148 }__;
1149
1150 @@Test:
1151 @@@QName: XDPDocument.createXDPMinimumLiteral.1.test
1152 @@@PerlDef:
1153 my $doc;
1154 __CODE{createXDPDocumentForTest}__;
1155
1156 my $value = q<a%b;c&d;e"f"g'h'i>;
1157 my $qvalue = q<"a%b;c&d;e%22f%22g'h'i">;
1158 my $el = $doc-><M::XDPDocument.createXDPMinimumLiteral> ($value);
1159
1160 $test->id ('interface');
1161 $test->assert_isa ($el, <IFName::XDPMinimumLiteralElement>);
1162
1163 $test->id ('namespaceURI');
1164 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1165
1166 $test->id ('localName');
1167 $test->assert_equals ($el-><AG::Node.localName>, 'minimum-literal');
1168
1169 $test->id ('textContent');
1170 $test->assert_equals ($el-><AG::Node.textContent>, $value);
1171
1172 $test->id ('dtdText');
1173 $test->assert_equals ($el-><AG::XDPElement.dtdText>, $qvalue);
1174 @@Test:
1175 @@@QName: XDPDocument.createXDPMinimumLiteral.2.test
1176 @@@PerlDef:
1177 my $doc;
1178 __CODE{createXDPDocumentForTest}__;
1179
1180 my $el = $doc-><M::XDPDocument.createXDPMinimumLiteral> (null);
1181
1182 $test->id ('interface');
1183 $test->assert_isa ($el, <IFName::XDPMinimumLiteralElement>);
1184
1185 $test->id ('namespaceURI');
1186 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1187
1188 $test->id ('localName');
1189 $test->assert_equals ($el-><AG::Node.localName>, 'minimum-literal');
1190
1191 $test->id ('textContent');
1192 $test->assert_equals ($el-><AG::Node.textContent>, '');
1193
1194 $test->id ('dtdText');
1195 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '""');
1196
1197 @Method:
1198 @@Name: createXDPSystemLiteral
1199 @@enDesc:
1200 Creates a <XE::xdp|system-literal> element.
1201 @@Param:
1202 @@@Name: value
1203 @@@Type: DOMString
1204 @@@enDesc:
1205 The value of the element.
1206 @@@nullCase:
1207 @@@@enDesc:
1208 Same as an empty string.
1209 @@Return:
1210 @@@Type: XDPSystemLiteralElement
1211 @@@enDesc:
1212 The newly created element node.
1213
1214 {P:: A new <IF::Element> node with following attributes
1215 <kwd:MUST> be returned:
1216
1217 - <A::Node.localName>::: <XE::system-literal>.
1218
1219 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1220
1221 - <A::Node.ownerDocument>::: The document.
1222
1223 - <A::Node.textContent>::: <P::value>, or an empty
1224 string if <P::value> is <DOM::null>.
1225
1226 }
1227
1228 If a <IF::Text> node is created, its
1229 <A::Text.isElementContentWhitespace> attribute value
1230 <kwd:MUST> be set to <DOM::false>.
1231 @@@PerlDef:
1232 __DEEP{
1233 $r = $self-><M::Document.createElementNS>
1234 (<Q::xdp|>, 'system-literal');
1235 $r-><AS::Node.textContent> (defined $value ? $value : '');
1236 }__;
1237
1238 @@Test:
1239 @@@QName: XDPDocument.createXDPSystemLiteral.1.test
1240 @@@PerlDef:
1241 my $doc;
1242 __CODE{createXDPDocumentForTest}__;
1243
1244 my $value = q<a%b;c&d;e"f"g'h'i>;
1245 my $qvalue = q<"a%b;c&d;e%22f%22g'h'i">;
1246 my $el = $doc-><M::XDPDocument.createXDPSystemLiteral> ($value);
1247
1248 $test->id ('interface');
1249 $test->assert_isa ($el, <IFName::XDPSystemLiteralElement>);
1250
1251 $test->id ('namespaceURI');
1252 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1253
1254 $test->id ('localName');
1255 $test->assert_equals ($el-><AG::Node.localName>, 'system-literal');
1256
1257 $test->id ('textContent');
1258 $test->assert_equals ($el-><AG::Node.textContent>, $value);
1259
1260 $test->id ('dtdText');
1261 $test->assert_equals ($el-><AG::XDPElement.dtdText>, $qvalue);
1262 @@Test:
1263 @@@QName: XDPDocument.createXDPSystemLiteral.2.test
1264 @@@PerlDef:
1265 my $doc;
1266 __CODE{createXDPDocumentForTest}__;
1267
1268 my $el = $doc-><M::XDPDocument.createXDPSystemLiteral> (null);
1269
1270 $test->id ('interface');
1271 $test->assert_isa ($el, <IFName::XDPSystemLiteralElement>);
1272
1273 $test->id ('namespaceURI');
1274 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1275
1276 $test->id ('localName');
1277 $test->assert_equals ($el-><AG::Node.localName>, 'system-literal');
1278
1279 $test->id ('textContent');
1280 $test->assert_equals ($el-><AG::Node.textContent>, '');
1281
1282 $test->id ('dtdText');
1283 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '""');
1284
1285 @Method:
1286 @@Name: createXDPAttrLiteral
1287 @@enDesc:
1288 Creates a <XE::xdp|attr-literal> element.
1289 @@Param:
1290 @@@Name: value
1291 @@@Type: DOMString
1292 @@@enDesc:
1293 The value of the element.
1294 @@@nullCase:
1295 @@@@enDesc:
1296 Same as an empty string.
1297 @@Return:
1298 @@@Type: XDPAttrLiteralElement
1299 @@@enDesc:
1300 The newly created element node.
1301
1302 {P:: A new <IF::Element> node with following attributes
1303 <kwd:MUST> be returned:
1304
1305 - <A::Node.localName>::: <XE::attr-literal>.
1306
1307 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1308
1309 - <A::Node.ownerDocument>::: The document.
1310
1311 - <A::Node.textContent>::: <P::value>, or an empty
1312 string if <P::value> is <DOM::null>.
1313
1314 }
1315
1316 If a <IF::Text> node is created, its
1317 <A::Text.isElementContentWhitespace> attribute value
1318 <kwd:MUST> be set to <DOM::false>.
1319 @@@PerlDef:
1320 __DEEP{
1321 $r = $self-><M::Document.createElementNS>
1322 (<Q::xdp|>, 'attr-literal');
1323 $r-><AS::Node.textContent> (defined $value ? $value : '');
1324 }__;
1325
1326 @@Test:
1327 @@@QName: XDPDocument.createXDPAttrLiteral.1.test
1328 @@@PerlDef:
1329 my $doc;
1330 __CODE{createXDPDocumentForTest}__;
1331
1332 my $value = q<a%b;c&d;e"f"g'h'i>;
1333 my $qvalue = q<'a%b;c&amp;d;e"f"g&apos;h&apos;i'>;
1334 my $el = $doc-><M::XDPDocument.createXDPAttrLiteral> ($value);
1335
1336 $test->id ('interface');
1337 $test->assert_isa ($el, <IFName::XDPAttrLiteralElement>);
1338
1339 $test->id ('namespaceURI');
1340 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1341
1342 $test->id ('localName');
1343 $test->assert_equals ($el-><AG::Node.localName>, 'attr-literal');
1344
1345 $test->id ('textContent');
1346 $test->assert_equals ($el-><AG::Node.textContent>, $value);
1347
1348 $test->id ('dtdText');
1349 $test->assert_equals ($el-><AG::XDPElement.dtdText>, $qvalue);
1350 @@Test:
1351 @@@QName: XDPDocument.createXDPAttrLiteral.2.test
1352 @@@PerlDef:
1353 my $doc;
1354 __CODE{createXDPDocumentForTest}__;
1355
1356 my $el = $doc-><M::XDPDocument.createXDPAttrLiteral> (null);
1357
1358 $test->id ('interface');
1359 $test->assert_isa ($el, <IFName::XDPAttrLiteralElement>);
1360
1361 $test->id ('namespaceURI');
1362 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1363
1364 $test->id ('localName');
1365 $test->assert_equals ($el-><AG::Node.localName>, 'attr-literal');
1366
1367 $test->id ('textContent');
1368 $test->assert_equals ($el-><AG::Node.textContent>, '');
1369
1370 $test->id ('dtdText');
1371 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '""');
1372
1373 @Method:
1374 @@Name: createXDPCharRef
1375 @@enDesc:
1376 Creates an <XE::xdp|hcr> element.
1377 @@Param:
1378 @@@Name: value
1379 @@@Type: unsignedLong
1380 @@@enDesc:
1381 The code point of the character represented
1382 by the element to create.
1383 @@Return:
1384 @@@Type: XDPHCRElement
1385 @@@enDesc:
1386 The newly created element node.
1387
1388 {P:: A new <IF::Element> node with following attributes
1389 <kwd:MUST> be returned:
1390
1391 - <A::Node.localName>::: <XE::hcr>.
1392
1393 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1394
1395 - <A::Node.ownerDocument>::: The document.
1396
1397 - <A::Node.textContent>::: A hexadecimal representation
1398 of the <P::value>, in upper case.
1399
1400 }
1401
1402 If a <IF::Text> node is created, its
1403 <A::Text.isElementContentWhitespace> attribute value
1404 <kwd:MUST> be set to <DOM::false>.
1405 @@@PerlDef:
1406 __DEEP{
1407 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'hcr');
1408 $r-><AS::Node.textContent> (sprintf '%04X', $value);
1409 }__;
1410
1411 @@Test:
1412 @@@QName: XDPDocument.createXDPCharRef.1.test
1413 @@@PerlDef:
1414 my $doc;
1415 __CODE{createXDPDocumentForTest}__;
1416
1417 my $el = $doc-><M::XDPDocument.createXDPCharRef> (0x4E00);
1418
1419 $test->id ('interface');
1420 $test->assert_isa ($el, <IFName::XDPHCRElement>);
1421
1422 $test->id ('namespaceURI');
1423 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1424
1425 $test->id ('localName');
1426 $test->assert_equals ($el-><AG::Node.localName>, 'hcr');
1427
1428 $test->id ('textContent');
1429 $test->assert_equals ($el-><AG::Node.textContent>, '4E00');
1430
1431 $test->id ('dtdText');
1432 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '&#x4E00;');
1433
1434 @Method:
1435 @@Name: createXDPPERef
1436 @@dlp:methodName: create_xdp_peref
1437 @@enDesc:
1438 Creates a <XE::xdp|peref> element.
1439 @@Param:
1440 @@@Name: value
1441 @@@Type: DOMString
1442 @@@enDesc:
1443 The value of the element, i.e. the name of the
1444 parameter entity.
1445 @@@nullCase:
1446 @@@@enDesc:
1447 Same as an empty string.
1448 @@Return:
1449 @@@Type: XDPPERefElement
1450 @@@enDesc:
1451 The newly created element node.
1452
1453 {P:: A new <IF::Element> node with following attributes
1454 <kwd:MUST> be returned:
1455
1456 - <A::Node.localName>::: <XE::peref>.
1457
1458 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1459
1460 - <A::Node.ownerDocument>::: The document.
1461
1462 - <A::Node.textContent>::: <P::value>, or an empty
1463 string if <P::value> is <DOM::null>.
1464
1465 }
1466
1467 If a <IF::Text> node is created, its
1468 <A::Text.isElementContentWhitespace> attribute value
1469 <kwd:MUST> be set to <DOM::false>.
1470 @@@PerlDef:
1471 __DEEP{
1472 $r = $self-><M::Document.createElementNS>
1473 (<Q::xdp|>, 'peref');
1474 $r-><AS::Node.textContent> (defined $value ? $value : '');
1475 }__;
1476
1477 @@Test:
1478 @@@QName: XDPDocument.createXDPPERef.1.test
1479 @@@PerlDef:
1480 my $doc;
1481 __CODE{createXDPDocumentForTest}__;
1482
1483 my $value = q<pename>;
1484 my $el = $doc-><M::XDPDocument.createXDPPERef> ($value);
1485
1486 $test->id ('interface');
1487 $test->assert_isa ($el, <IFName::XDPPERefElement>);
1488
1489 $test->id ('namespaceURI');
1490 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1491
1492 $test->id ('localName');
1493 $test->assert_equals ($el-><AG::Node.localName>, 'peref');
1494
1495 $test->id ('textContent');
1496 $test->assert_equals ($el-><AG::Node.textContent>, $value);
1497
1498 $test->id ('dtdText');
1499 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '%'.$value.';');
1500 @@Test:
1501 @@@QName: XDPDocument.createXDPPERef.2.test
1502 @@@PerlDef:
1503 my $doc;
1504 __CODE{createXDPDocumentForTest}__;
1505
1506 my $el = $doc-><M::XDPDocument.createXDPPERef> (null);
1507
1508 $test->id ('interface');
1509 $test->assert_isa ($el, <IFName::XDPPERefElement>);
1510
1511 $test->id ('namespaceURI');
1512 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1513
1514 $test->id ('localName');
1515 $test->assert_equals ($el-><AG::Node.localName>, 'peref');
1516
1517 $test->id ('textContent');
1518 $test->assert_equals ($el-><AG::Node.textContent>, '');
1519
1520 $test->id ('dtdText');
1521 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '%;');
1522
1523 @Method:
1524 @@Name: createXDPGERef
1525 @@dlp:methodName: create_xdp_geref
1526 @@enDesc:
1527 Creates a <XE::xdp|geref> element.
1528 @@Param:
1529 @@@Name: value
1530 @@@Type: DOMString
1531 @@@enDesc:
1532 The value of the element, i.e. the name of the
1533 general entity.
1534 @@@nullCase:
1535 @@@@enDesc:
1536 Same as an empty string.
1537 @@Return:
1538 @@@Type: XDPGERefElement
1539 @@@enDesc:
1540 The newly created element node.
1541
1542 {P:: A new <IF::Element> node with following attributes
1543 <kwd:MUST> be returned:
1544
1545 - <A::Node.localName>::: <XE::geref>.
1546
1547 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1548
1549 - <A::Node.ownerDocument>::: The document.
1550
1551 - <A::Node.textContent>::: <P::value>, or an empty
1552 string if <P::value> is <DOM::null>.
1553
1554 }
1555
1556 If a <IF::Text> node is created, its
1557 <A::Text.isElementContentWhitespace> attribute value
1558 <kwd:MUST> be set to <DOM::false>.
1559 @@@PerlDef:
1560 __DEEP{
1561 $r = $self-><M::Document.createElementNS>
1562 (<Q::xdp|>, 'geref');
1563 $r-><AS::Node.textContent> (defined $value ? $value : '');
1564 }__;
1565
1566 @@Test:
1567 @@@QName: XDPDocument.createXDPGERef.1.test
1568 @@@PerlDef:
1569 my $doc;
1570 __CODE{createXDPDocumentForTest}__;
1571
1572 my $value = q<pename>;
1573 my $el = $doc-><M::XDPDocument.createXDPGERef> ($value);
1574
1575 $test->id ('interface');
1576 $test->assert_isa ($el, <IFName::XDPGERefElement>);
1577
1578 $test->id ('namespaceURI');
1579 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1580
1581 $test->id ('localName');
1582 $test->assert_equals ($el-><AG::Node.localName>, 'geref');
1583
1584 $test->id ('textContent');
1585 $test->assert_equals ($el-><AG::Node.textContent>, $value);
1586
1587 $test->id ('dtdText');
1588 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '&'.$value.';');
1589 @@Test:
1590 @@@QName: XDPDocument.createXDPGERef.2.test
1591 @@@PerlDef:
1592 my $doc;
1593 __CODE{createXDPDocumentForTest}__;
1594
1595 my $el = $doc-><M::XDPDocument.createXDPGERef> (null);
1596
1597 $test->id ('interface');
1598 $test->assert_isa ($el, <IFName::XDPGERefElement>);
1599
1600 $test->id ('namespaceURI');
1601 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1602
1603 $test->id ('localName');
1604 $test->assert_equals ($el-><AG::Node.localName>, 'geref');
1605
1606 $test->id ('textContent');
1607 $test->assert_equals ($el-><AG::Node.textContent>, '');
1608
1609 $test->id ('dtdText');
1610 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '&;');
1611
1612 @Method:
1613 @@Name: createXDPPAttr
1614 @@dlp:methodName: create_xdp_pattr
1615 @@enDesc:
1616 Creates a <XE::xdp|pattr> element.
1617 @@Param:
1618 @@@Name: name
1619 @@@Type: DOMString
1620 @@@enDesc:
1621 The name of the pseudo-attribute.
1622 @@@nullCase:
1623 @@@@enDesc:
1624 Same as an empty string.
1625 @@Param:
1626 @@@Name: value
1627 @@@Type: DOMString
1628 @@@enDesc:
1629 The value of the pseudo-attribute.
1630 @@@nullCase:
1631 @@@@enDesc:
1632 Same as an empty string.
1633 @@Return:
1634 @@@Type: XDPPAttrElement
1635 @@@enDesc:
1636 The newly created element node.
1637
1638 {P:: A new <IF::Element> node with following attributes
1639 <kwd:MUST> be returned:
1640
1641 - <A::Node.localName>::: <XE::pattr>.
1642
1643 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1644
1645 - <A::Node.ownerDocument>::: The document.
1646
1647 {LI:: <A::Node.childNodes>::: A new <IF::tc|NodeList> with
1648 three nodes in this order:
1649
1650 {OLI::
1651
1652 - <A::Node.localName>::: <XE::name>.
1653
1654 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1655
1656 - <A::Node.nodeType>::: <C::Node.ELEMENT_NODE>.
1657
1658 - <A::Node.ownerDocument>::: The document.
1659
1660 - <A::Node.textContent>::: <P::name>, or an empty
1661 string if <P::name> is <DOM::null>.
1662
1663 }
1664
1665 {OLI::
1666
1667 - <A::Node.localName>::: <XE::delimiter>.
1668
1669 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1670
1671 - <A::Node.nodeType>::: <C::Node.ELEMENT_NODE>.
1672
1673 - <A::Node.ownerDocument>::: The document.
1674
1675 - <A::Node.textContent>::: <XML::=>.
1676
1677 }
1678
1679 {OLI::
1680
1681 - <A::Node.localName>::: <XE::attr-literal>.
1682
1683 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1684
1685 - <A::Node.nodeType>::: <C::Node.ELEMENT_NODE>.
1686
1687 - <A::Node.ownerDocument>::: The document.
1688
1689 - <A::Node.textContent>::: <P::value>, or an empty
1690 string if <P::value> is <DOM::null>.
1691
1692 }
1693
1694 }
1695
1696 }
1697
1698 If a <IF::Text> node is created, its
1699 <A::Text.isElementContentWhitespace> attribute value
1700 <kwd:MUST> be set to <DOM::false>.
1701 @@@PerlDef:
1702 __DEEP{
1703 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'pattr');
1704 my $name_el = $self-><M::XDPDocument.createXDPName> ($name);
1705 $r-><M::Node.appendChild> ($name_el);
1706 my $vi_el = $self-><M::XDPDocument.createXDPDelimiter> ('=');
1707 $r-><M::Node.appendChild> ($vi_el);
1708 my $value_el = $self-><M::XDPDocument.createXDPAttrLiteral> ($value);
1709 $r-><M::Node.appendChild> ($value_el);
1710 }__;
1711
1712 @@Test:
1713 @@@QName: XDPDocument.createXDPPAttr.1.test
1714 @@@PerlDef:
1715 my $doc;
1716 __CODE{createXDPDocumentForTest}__;
1717
1718 my $el = $doc-><M::XDPDocument.createXDPPAttr> ('paname' => 'pavalue');
1719
1720 $test->id ('interface');
1721 $test->assert_isa ($el, <IFName::XDPPAttrElement>);
1722
1723 $test->id ('namespaceURI');
1724 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1725
1726 $test->id ('localName');
1727 $test->assert_equals ($el-><AG::Node.localName>, 'pattr');
1728
1729 $test->id ('dtdText');
1730 $test->assert_equals ($el-><AG::XDPElement.dtdText>, 'paname="pavalue"');
1731 @@Test:
1732 @@@QName: XDPDocument.createXDPPAttr.2.test
1733 @@@PerlDef:
1734 my $doc;
1735 __CODE{createXDPDocumentForTest}__;
1736
1737 my $el = $doc-><M::XDPDocument.createXDPPAttr> (null, null);
1738
1739 $test->id ('interface');
1740 $test->assert_isa ($el, <IFName::XDPPAttrElement>);
1741
1742 $test->id ('namespaceURI');
1743 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1744
1745 $test->id ('localName');
1746 $test->assert_equals ($el-><AG::Node.localName>, 'pattr');
1747
1748 $test->id ('dtdText');
1749 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '=""');
1750
1751 @Method:
1752 @@Name: createXDPTextDecl
1753 @@enDesc:
1754 Creates a <XE::xdp|text-decl> element.
1755 @@Param:
1756 @@@Name: version
1757 @@@Type: DOMString
1758 @@@enDesc:
1759 The value of the <XA::version> pseudo-attribute of
1760 the text declaration.
1761 @@@nullCase:
1762 @@@@enDesc:
1763 If <P::encoding> is also <DOM::null>, it is treated
1764 as if <XML::1.0> is specified. Otherwise,
1765 no <XA::version> pseudo-attribute will appear.
1766 @@Param:
1767 @@@Name: encoding
1768 @@@Type: DOMString
1769 @@@enDesc:
1770 The value of the <XE::encoding> pseudo-attribute
1771 of the text declaration.
1772 @@@nullCase:
1773 @@@@enDesc:
1774 No <XA::encoding> pseudo-attribute will appear.
1775 @@Return:
1776 @@@Type: XDPTextDeclElement
1777 @@@enDesc:
1778 The newly created element node.
1779
1780 {P:: A new <IF::Element> node with following attributes
1781 <kwd:MUST> be returned:
1782
1783 - <A::Node.localName>::: <XE::text-decl>.
1784
1785 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1786
1787 - <A::Node.ownerDocument>::: The document.
1788
1789 }
1790
1791 {P:: In addition, the returned node <kwd:MUST> have following
1792 child nodes in order:
1793
1794 = If <P::version> is different from <DOM::null> and / or
1795 if <P::encoding> is <DOM::null>, an <CODE::S> node.
1796
1797 = If <P::version> is different from <DOM::null> and / or
1798 if <P::encoding> is <DOM::null>, a pseudo-attribute
1799 node whose <VAR::name> is <XA::version> and
1800 whose <VAR::value> is <P::version>, if it is
1801 not <DOM::null>, or <XML::1.0>, otherwise.
1802
1803 = An <CODE::S> node.
1804
1805 = If <P::encoding> is different from <DOM::null>,
1806 a pseudo-attribute node whose <VAR::name> is
1807 <XA::encoding> and whose <VAR::value> is <P::encoding>.
1808
1809 }
1810
1811 {P:: <DFN::An <CODE::S> node> <kwd:MUST> be a <IF::Node>
1812 that contains following attribute values:
1813
1814 - <A::Node.localName>::: <XE::s>.
1815
1816 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1817
1818 - <A::Node.nodeType>::: <C::Node.ELEMENT_NODE>.
1819
1820 - <A::Node.ownerDocument>::: The document.
1821
1822 - <A::Node.textContent>::: A <CHAR::SPACE>.
1823
1824 }
1825
1826 <DFN::A pseudo-attribute node> with <VAR::name> and
1827 <VAR::value> <kwd:MUST> be a <IF::Node> that would be
1828 returned when the <A::XDPDocument.createXDPPAttr> method
1829 on the document with parameters <VAR::name> and <VAR::value>
1830 were invoked.
1831
1832 If a <IF::Text> node is created, its
1833 <A::Text.isElementContentWhitespace> attribute value
1834 <kwd:MUST> be set to <DOM::false>.
1835 @@@PerlDef:
1836 __DEEP{
1837 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'text-decl');
1838 if (defined $version or not defined $encoding) {
1839 $r-><M::Node.appendChild> ($self-><M::XDPDocument.createXDPS> (' '));
1840 my $ver_el = $self-><M::XDPDocument.createXDPPAttr>
1841 (version => defined $version
1842 ? $version : '1.0');
1843 $r-><M::Node.appendChild> ($ver_el);
1844 }
1845 if (defined $encoding) {
1846 $r-><M::Node.appendChild> ($self-><M::XDPDocument.createXDPS> (' '));
1847 my $enc_el = $self-><M::XDPDocument.createXDPPAttr>
1848 (encoding => $encoding);
1849 $r-><M::Node.appendChild> ($enc_el);
1850 }
1851 }__;
1852
1853 @@Test:
1854 @@@QName: XDPDocument.createXDPTextDecl.1.test
1855 @@@PerlDef:
1856 my $doc;
1857 __CODE{createXDPDocumentForTest}__;
1858
1859 my $el = $doc-><M::XDPDocument.createXDPTextDecl> ('1.1', 'utf-8');
1860
1861 $test->id ('interface');
1862 $test->assert_isa ($el, <IFName::XDPTextDeclElement>);
1863
1864 $test->id ('namespaceURI');
1865 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1866
1867 $test->id ('localName');
1868 $test->assert_equals ($el-><AG::Node.localName>, 'text-decl');
1869
1870 $test->id ('dtdText');
1871 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
1872 '<?xml version="1.1" encoding="utf-8"?>');
1873 @@Test:
1874 @@@QName: XDPDocument.createXDPTextDecl.2.test
1875 @@@PerlDef:
1876 my $doc;
1877 __CODE{createXDPDocumentForTest}__;
1878
1879 my $el = $doc-><M::XDPDocument.createXDPTextDecl> ('1.1');
1880
1881 $test->id ('interface');
1882 $test->assert_isa ($el, <IFName::XDPTextDeclElement>);
1883
1884 $test->id ('namespaceURI');
1885 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1886
1887 $test->id ('localName');
1888 $test->assert_equals ($el-><AG::Node.localName>, 'text-decl');
1889
1890 $test->id ('dtdText');
1891 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
1892 '<?xml version="1.1"?>');
1893 @@Test:
1894 @@@QName: XDPDocument.createXDPTextDecl.3.test
1895 @@@PerlDef:
1896 my $doc;
1897 __CODE{createXDPDocumentForTest}__;
1898
1899 my $el = $doc-><M::XDPDocument.createXDPTextDecl> (null, 'utf-8');
1900
1901 $test->id ('interface');
1902 $test->assert_isa ($el, <IFName::XDPTextDeclElement>);
1903
1904 $test->id ('namespaceURI');
1905 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1906
1907 $test->id ('localName');
1908 $test->assert_equals ($el-><AG::Node.localName>, 'text-decl');
1909
1910 $test->id ('dtdText');
1911 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
1912 '<?xml encoding="utf-8"?>');
1913 @@Test:
1914 @@@QName: XDPDocument.createXDPTextDecl.4.test
1915 @@@PerlDef:
1916 my $doc;
1917 __CODE{createXDPDocumentForTest}__;
1918
1919 my $el = $doc-><M::XDPDocument.createXDPTextDecl>;
1920
1921 $test->id ('interface');
1922 $test->assert_isa ($el, <IFName::XDPTextDeclElement>);
1923
1924 $test->id ('namespaceURI');
1925 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
1926
1927 $test->id ('localName');
1928 $test->assert_equals ($el-><AG::Node.localName>, 'text-decl');
1929
1930 $test->id ('dtdText');
1931 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
1932 '<?xml version="1.0"?>');
1933
1934 @Method:
1935 @@Name: createXDPPI
1936 @@dlp:methodName: create_xdp_pi
1937 @@enDesc:
1938 Creates a <XE::xdp|pi> element.
1939 @@Param:
1940 @@@Name: target
1941 @@@Type: DOMString
1942 @@@enDesc:
1943 The target of the processing instruction.
1944 @@@nullCase:
1945 @@@@enDesc:
1946 Same as an empty string.
1947 @@Param:
1948 @@@Name: data
1949 @@@Type: DOMString
1950 @@@enDesc:
1951 The content of the processing instruction.
1952 @@@nullCase:
1953 @@@@enDesc:
1954 No <CODE::S> is inserted after the target.
1955 @@Return:
1956 @@@Type: XDPPIElement
1957 @@@enDesc:
1958 The newly created element node.
1959
1960 {P:: A new <IF::Element> node with following attributes
1961 <kwd:MUST> be returned:
1962
1963 - <A::Node.localName>::: <XE::pi>.
1964
1965 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1966
1967 - <A::Node.ownerDocument>::: The document.
1968
1969 }
1970
1971 If the <P::value> is different from <DOM::null>,
1972 the returned value <kwd:MUST> contain two or three child
1973 element nodes: the target node, an <CODE::S> node,
1974 and if the length of <P::value> is greater than zero,
1975 the data node. Otherwise, it <kwd:MUST> contain
1976 one child element node: the target node.
1977
1978 {P:: <DFM::The target node> <kwd:MUST> be a <IF::Node>
1979 that contains following attribute values:
1980
1981 - <A::Node.localName>::: <XE::name>.
1982
1983 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
1984
1985 - <A::Node.nodeType>::: <C::Node.ELEMENT_NODE>.
1986
1987 - <A::Node.ownerDocument>::: The document.
1988
1989 - <A::Node.textContent>::: <P::target>, or an empty
1990 string if <P::target> is <DOM::null>.
1991
1992 }
1993
1994 {P:: <DFN::An <CODE::S> node> <kwd:MUST> be a <IF::Node>
1995 that contains following attribute values:
1996
1997 - <A::Node.localName>::: <XE::s>.
1998
1999 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
2000
2001 - <A::Node.nodeType>::: <C::Node.ELEMENT_NODE>.
2002
2003 - <A::Node.ownerDocument>::: The document.
2004
2005 - <A::Node.textContent>::: A <CHAR::SPACE>.
2006
2007 }
2008
2009 {P:: <DFM::The data node> <kwd:MUST> be a <IF::Node>
2010 that contains following attribute values:
2011
2012 - <A::Node.nodeType>::: <C::Node.TEXT_NODE>.
2013
2014 - <A::Node.ownerDocument>::: The document.
2015
2016 - <A::Node.textContent>::: <P::data>.
2017
2018 }
2019
2020 If a <IF::Text> node are created, its
2021 <A::Text.isElementContentWhitespace> attribute value
2022 <kwd:MUST> be set to <DOM::false>.
2023 @@@PerlDef:
2024 __DEEP{
2025 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'pi');
2026 $r-><M::Node.appendChild>
2027 ($self-><M::XDPDocument.createXDPName> ($target));
2028 if (defined $data) {
2029 $r-><M::Node.appendChild> ($self-><M::XDPDocument.createXDPS> (' '));
2030 $r-><M::Node.manakaiAppendText> ($data) if length $data;
2031 }
2032 }__;
2033
2034 @@Test:
2035 @@@QName: XDPDocument.createXDPPI.1.test
2036 @@@PerlDef:
2037 my $doc;
2038 __CODE{createXDPDocumentForTest}__;
2039
2040 my $el = $doc-><M::XDPDocument.createXDPPI> ('pitarget', 'pidata');
2041
2042 $test->id ('interface');
2043 $test->assert_isa ($el, <IFName::XDPPIElement>);
2044
2045 $test->id ('namespaceURI');
2046 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2047
2048 $test->id ('localName');
2049 $test->assert_equals ($el-><AG::Node.localName>, 'pi');
2050
2051 $test->id ('dtdText');
2052 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2053 '<?pitarget pidata?>');
2054
2055 $test->id ('length');
2056 $test->assert_num_equals
2057 (actual_value => 0+@{$el-><AG::Node.childNodes>},
2058 expected_value => 3);
2059 @@Test:
2060 @@@QName: XDPDocument.createXDPPI.2.test
2061 @@@PerlDef:
2062 my $doc;
2063 __CODE{createXDPDocumentForTest}__;
2064
2065 my $el = $doc-><M::XDPDocument.createXDPPI> ('pitarget');
2066
2067 $test->id ('interface');
2068 $test->assert_isa ($el, <IFName::XDPPIElement>);
2069
2070 $test->id ('namespaceURI');
2071 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2072
2073 $test->id ('localName');
2074 $test->assert_equals ($el-><AG::Node.localName>, 'pi');
2075
2076 $test->id ('dtdText');
2077 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2078 '<?pitarget?>');
2079
2080 $test->id ('length');
2081 $test->assert_num_equals
2082 (actual_value => 0+@{$el-><AG::Node.childNodes>},
2083 expected_value => 1);
2084 @@Test:
2085 @@@QName: XDPDocument.createXDPPI.3.test
2086 @@@PerlDef:
2087 my $doc;
2088 __CODE{createXDPDocumentForTest}__;
2089
2090 my $el = $doc-><M::XDPDocument.createXDPPI> (null, 'pidata');
2091
2092 $test->id ('interface');
2093 $test->assert_isa ($el, <IFName::XDPPIElement>);
2094
2095 $test->id ('namespaceURI');
2096 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2097
2098 $test->id ('localName');
2099 $test->assert_equals ($el-><AG::Node.localName>, 'pi');
2100
2101 $test->id ('dtdText');
2102 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2103 '<? pidata?>');
2104
2105 $test->id ('length');
2106 $test->assert_num_equals
2107 (actual_value => 0+@{$el-><AG::Node.childNodes>},
2108 expected_value => 3);
2109 @@Test:
2110 @@@QName: XDPDocument.createXDPPI.4.test
2111 @@@PerlDef:
2112 my $doc;
2113 __CODE{createXDPDocumentForTest}__;
2114
2115 my $el = $doc-><M::XDPDocument.createXDPPI>;
2116
2117 $test->id ('interface');
2118 $test->assert_isa ($el, <IFName::XDPPIElement>);
2119
2120 $test->id ('namespaceURI');
2121 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2122
2123 $test->id ('localName');
2124 $test->assert_equals ($el-><AG::Node.localName>, 'pi');
2125
2126 $test->id ('dtdText');
2127 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '<??>');
2128
2129 $test->id ('length');
2130 $test->assert_num_equals
2131 (actual_value => 0+@{$el-><AG::Node.childNodes>},
2132 expected_value => 1);
2133
2134 @Method:
2135 @@Name: createXDPComment
2136 @@enDesc:
2137 Creates a <XE::xdp|comment> element.
2138 @@Param:
2139 @@@Name: value
2140 @@@Type: DOMString
2141 @@@enDesc:
2142 The value of the element, i.e. the content of the comment.
2143 @@@nullCase:
2144 @@@@enDesc:
2145 Same as an empty string.
2146 @@Return:
2147 @@@Type: XDPCommentElement
2148 @@@enDesc:
2149 The newly created element node.
2150
2151 {P:: A new <IF::Element> node with following attributes
2152 <kwd:MUST> be returned:
2153
2154 - <A::Node.localName>::: <XE::comment>.
2155
2156 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
2157
2158 - <A::Node.ownerDocument>::: The document.
2159
2160 - <A::Node.textContent>::: <P::value>, or an empty
2161 string if <P::value> is <DOM::null>.
2162
2163 }
2164
2165 If a <IF::Text> node is created, its
2166 <A::Text.isElementContentWhitespace> attribute value
2167 <kwd:MUST> be set to <DOM::false>.
2168 @@@PerlDef:
2169 __DEEP{
2170 $r = $self-><M::Document.createElementNS>
2171 (<Q::xdp|>, 'comment');
2172 $r-><AS::Node.textContent> (defined $value ? $value : '');
2173 }__;
2174
2175 @@Test:
2176 @@@QName: XDPDocument.createXDPComment.1.test
2177 @@@PerlDef:
2178 my $doc;
2179 __CODE{createXDPDocumentForTest}__;
2180
2181 my $value = q<pename>;
2182 my $el = $doc-><M::XDPDocument.createXDPComment> ($value);
2183
2184 $test->id ('interface');
2185 $test->assert_isa ($el, <IFName::XDPCommentElement>);
2186
2187 $test->id ('namespaceURI');
2188 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2189
2190 $test->id ('localName');
2191 $test->assert_equals ($el-><AG::Node.localName>, 'comment');
2192
2193 $test->id ('textContent');
2194 $test->assert_equals ($el-><AG::Node.textContent>, $value);
2195
2196 $test->id ('dtdText');
2197 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2198 '<!--'.$value.'-->');
2199 @@Test:
2200 @@@QName: XDPDocument.createXDPComment.2.test
2201 @@@PerlDef:
2202 my $doc;
2203 __CODE{createXDPDocumentForTest}__;
2204
2205 my $el = $doc-><M::XDPDocument.createXDPComment> (null);
2206
2207 $test->id ('interface');
2208 $test->assert_isa ($el, <IFName::XDPCommentElement>);
2209
2210 $test->id ('namespaceURI');
2211 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2212
2213 $test->id ('localName');
2214 $test->assert_equals ($el-><AG::Node.localName>, 'comment');
2215
2216 $test->id ('textContent');
2217 $test->assert_equals ($el-><AG::Node.textContent>, '');
2218
2219 $test->id ('dtdText');
2220 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '<!---->');
2221
2222 @Method:
2223 @@Name: createXDPMarkedSectionStatus
2224 @@enDesc:
2225 Creates a <XE::xdp|marked-section-status> element.
2226 @@Param:
2227 @@@Name: value
2228 @@@Type: DOMString
2229 @@@enDesc:
2230 The value of the element.
2231 @@@nullCase:
2232 @@@@enDesc:
2233 Same as an empty string.
2234 @@Return:
2235 @@@Type: XDPMarkedSectionStatusElement
2236 @@@enDesc:
2237 The newly created element node.
2238
2239 {P:: A new <IF::Element> node with following attributes
2240 <kwd:MUST> be returned:
2241
2242 - <A::Node.localName>::: <XE::marked-section-status>.
2243
2244 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
2245
2246 - <A::Node.ownerDocument>::: The document.
2247
2248 }
2249
2250 {P:: If <P::value> is not <DOM::null> and its length
2251 is greater than zero, the returned node <kwd:MUST>
2252 contain a <IF::Element> with following attributes:
2253
2254 - <A::Node.localName>::: <XE::keyword>.
2255
2256 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
2257
2258 - <A::Node.ownerDocument>::: The document.
2259
2260 - <A::Node.textContent>::: <P::value>.
2261
2262 }
2263
2264 If a <IF::Text> node is created, its
2265 <A::Text.isElementContentWhitespace> attribute value
2266 <kwd:MUST> be set to <DOM::false>.
2267 @@@PerlDef:
2268 __DEEP{
2269 $r = $self-><M::Document.createElementNS>
2270 (<Q::xdp|>, 'marked-section-status');
2271 if (defined $value and length $value) {
2272 $r-><M::Node.appendChild>
2273 ($self-><M::XDPDocument.createXDPKeyword> ($value));
2274 }
2275 }__;
2276
2277 @@Test:
2278 @@@QName: XDPDocument.createXDPMarkedSectionStatus.1.test
2279 @@@PerlDef:
2280 my $doc;
2281 __CODE{createXDPDocumentForTest}__;
2282
2283 my $value = q<INCLUDE>;
2284 my $el = $doc-><M::XDPDocument.createXDPMarkedSectionStatus> ($value);
2285
2286 $test->id ('interface');
2287 $test->assert_isa ($el, <IFName::XDPMarkedSectionStatusElement>);
2288
2289 $test->id ('namespaceURI');
2290 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2291
2292 $test->id ('localName');
2293 $test->assert_equals ($el-><AG::Node.localName>,
2294 'marked-section-status');
2295
2296 $test->id ('textContent');
2297 $test->assert_equals ($el-><AG::Node.textContent>, $value);
2298
2299 $test->id ('dtdText');
2300 $test->assert_equals ($el-><AG::XDPElement.dtdText>, $value.'[');
2301 @@Test:
2302 @@@QName: XDPDocument.createXDPMarkedSectionStatus.2.test
2303 @@@PerlDef:
2304 my $doc;
2305 __CODE{createXDPDocumentForTest}__;
2306
2307 my $el = $doc-><M::XDPDocument.createXDPMarkedSectionStatus> (null);
2308
2309 $test->id ('interface');
2310 $test->assert_isa ($el, <IFName::XDPMarkedSectionStatusElement>);
2311
2312 $test->id ('namespaceURI');
2313 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2314
2315 $test->id ('localName');
2316 $test->assert_equals ($el-><AG::Node.localName>,
2317 'marked-section-status');
2318
2319 $test->id ('textContent');
2320 $test->assert_equals ($el-><AG::Node.textContent>, '');
2321
2322 $test->id ('dtdText');
2323 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '[');
2324
2325 @Method:
2326 @@Name: createXDPMarkedSection
2327 @@enDesc:
2328 Creates a <XE::xdp|marked-section> element.
2329 @@Param:
2330 @@@Name: status
2331 @@@Type: DOMString
2332 @@@enDesc:
2333 The status value of the marked section.
2334 @@@nullCase:
2335 @@@@enDesc:
2336 Same as an empty string.
2337 @@Param:
2338 @@@Name: value
2339 @@@Type: DOMString
2340 @@@enDesc:
2341 The value of the marked section.
2342 @@@nullCase:
2343 @@@@enDesc:
2344 Same as an empty string.
2345 @@Return:
2346 @@@Type: XDPMarkedSectionElement
2347 @@@enDesc:
2348 The newly created element node.
2349
2350 {P:: A new <IF::Element> node with following attributes
2351 <kwd:MUST> be returned:
2352
2353 - <A::Node.localName>::: <XE::marked-section>.
2354
2355 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
2356
2357 - <A::Node.ownerDocument>::: The document.
2358
2359 }
2360
2361 The returned <IF::Element> node <kwd:MUST> contain
2362 a child node that would be returned when the
2363 <M::XDPDocument.createXDPMarkedSectionStatus> method
2364 on the document is invoked with <P::status> as a parameter.
2365
2366 {P:: If <P::value> is not <DOM::null> and the length of
2367 <P::value> is greater than zero, the
2368 <XE::xdp|marked-section-status> <IF::Element> node
2369 <kwd:MUST> have a <A::Node.nextSibling> <IF::Node>
2370 with following attributes:
2371
2372 - <A::Node.nodeType>::: <C::Node.TEXT_NODE>.
2373
2374 - <A::Node.ownerDocument>::: The document.
2375
2376 - <A::Node.textContent>::: <P::content>, or an empty
2377 string if <P::content> is <DOM::null>.
2378
2379 }
2380
2381 If a <IF::Text> node is created, its
2382 <A::Text.isElementContentWhitespace> attribute value
2383 <kwd:MUST> be set to <DOM::false>.
2384 @@@PerlDef:
2385 __DEEP{
2386 $r = $self-><M::Document.createElementNS>
2387 (<Q::xdp|>, 'marked-section');
2388 my $mss_el = $self-><M::XDPDocument.createXDPMarkedSectionStatus>
2389 ($status);
2390 $r-><M::Node.appendChild> ($mss_el);
2391 $r-><M::Node.manakaiAppendText> ($value)
2392 if defined $value and length $value;
2393 }__;
2394
2395 @@Test:
2396 @@@QName: XDPDocument.createXDPMarkedSection.1.test
2397 @@@PerlDef:
2398 my $doc;
2399 __CODE{createXDPDocumentForTest}__;
2400
2401 my $el = $doc-><M::XDPDocument.createXDPMarkedSection> ('IGNORE', 'a');
2402
2403 $test->id ('interface');
2404 $test->assert_isa ($el, <IFName::XDPMarkedSectionElement>);
2405
2406 $test->id ('namespaceURI');
2407 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2408
2409 $test->id ('localName');
2410 $test->assert_equals ($el-><AG::Node.localName>, 'marked-section');
2411
2412 $test->id ('dtdText');
2413 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '<![IGNORE[a]]>');
2414 @@Test:
2415 @@@QName: XDPDocument.createXDPMarkedSection.2.test
2416 @@@PerlDef:
2417 my $doc;
2418 __CODE{createXDPDocumentForTest}__;
2419
2420 my $el = $doc-><M::XDPDocument.createXDPMarkedSection> ('IGNORE');
2421
2422 $test->id ('interface');
2423 $test->assert_isa ($el, <IFName::XDPMarkedSectionElement>);
2424
2425 $test->id ('namespaceURI');
2426 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2427
2428 $test->id ('localName');
2429 $test->assert_equals ($el-><AG::Node.localName>, 'marked-section');
2430
2431 $test->id ('dtdText');
2432 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '<![IGNORE[]]>');
2433 @@Test:
2434 @@@QName: XDPDocument.createXDPMarkedSection.3.test
2435 @@@PerlDef:
2436 my $doc;
2437 __CODE{createXDPDocumentForTest}__;
2438
2439 my $el = $doc-><M::XDPDocument.createXDPMarkedSection> (null, 'a');
2440
2441 $test->id ('interface');
2442 $test->assert_isa ($el, <IFName::XDPMarkedSectionElement>);
2443
2444 $test->id ('namespaceURI');
2445 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2446
2447 $test->id ('localName');
2448 $test->assert_equals ($el-><AG::Node.localName>, 'marked-section');
2449
2450 $test->id ('dtdText');
2451 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '<![[a]]>');
2452 @@Test:
2453 @@@QName: XDPDocument.createXDPMarkedSection.4.test
2454 @@@PerlDef:
2455 my $doc;
2456 __CODE{createXDPDocumentForTest}__;
2457
2458 my $el = $doc-><M::XDPDocument.createXDPMarkedSection>;
2459
2460 $test->id ('interface');
2461 $test->assert_isa ($el, <IFName::XDPMarkedSectionElement>);
2462
2463 $test->id ('namespaceURI');
2464 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2465
2466 $test->id ('localName');
2467 $test->assert_equals ($el-><AG::Node.localName>, 'marked-section');
2468
2469 $test->id ('dtdText');
2470 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '<![[]]>');
2471
2472 @Method:
2473 @@Name: createXDPNotation
2474 @@enDesc:
2475 Creates a <XE::xdp|notation> element.
2476 @@Param:
2477 @@@Name: name
2478 @@@Type: DOMString
2479 @@@enDesc:
2480 The name of the declaration.
2481 @@@nullCase:
2482 @@@@enDesc:
2483 All parameters are ignored.
2484 @@Param:
2485 @@@Name: publicId
2486 @@@Type: DOMString
2487 @@@enDesc:
2488 The public identifier in the declaration.
2489 @@@nullCase:
2490 @@@@enDesc:
2491 No public identifier.
2492 @@Param:
2493 @@@Name: systemId
2494 @@@Type: DOMString
2495 @@@enDesc:
2496 The system identifier in the declaration.
2497 @@@nullCase:
2498 @@@@enDesc:
2499 No system identifier.
2500 @@Return:
2501 @@@Type: XDPNotationElement
2502 @@@enDesc:
2503 The newly created element node.
2504
2505 {P:: A new <IF::Element> node with following attributes
2506 <kwd:MUST> be returned:
2507
2508 - <A::Node.localName>::: <XE::notation>.
2509
2510 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
2511
2512 - <A::Node.ownerDocument>::: The document.
2513
2514 }
2515
2516 {P:: A series of nodes <kwd:MUST> be associated to the returned
2517 node as if the following algorithm were applied:
2518
2519 = If <P::name> is <DOM::null>, stop the algorithm.
2520
2521 = Create a node by <M::XDPDocument.createXDPS> on the document with
2522 a <CHAR::SPACE> as a parameter and append the
2523 node to the returned element by the <M::Node.appendChild> method.
2524
2525 = Create a node by <M::XDPDocument.createXDPName> on the document
2526 with <P::name> as a parameter and append the
2527 node to the returned element by the <M::Node.appendChild> method.
2528
2529 {OLI:: If <P::publicId> is different from <DOM::null>,
2530
2531 = Create a node by <M::XDPDocument.createXDPS> on the document with
2532 a <CHAR::SPACE> as a parameter and append the
2533 node to the returned element by the <M::Node.appendChild> method.
2534
2535 = Create a node by <M::XDPDocument.createXDPKeyword>
2536 on the document with a string <XML::PUBLIC> as
2537 a parameter and append the
2538 node to the returned element by the <M::Node.appendChild> method.
2539
2540 = Create a node by <M::XDPDocument.createXDPS> on the document with
2541 a <CHAR::SPACE> as a parameter and append the
2542 node to the returned element by the <M::Node.appendChild> method.
2543
2544 = Create a node by <M::XDPDocument.createXDPMinimumLiteral>
2545 on the document with <P::publicId> as a parameter
2546 and append the node to the returned element by
2547 the <M::Node.appendChild> method.
2548
2549 }
2550
2551 {OLI:: If <P::systemId> is different from <DOM::null> and
2552 <P::publicId> is <DOM::null>,
2553
2554 = Create a node by <M::XDPDocument.createXDPS> on the document with
2555 a <CHAR::SPACE> as a parameter and append the
2556 node to the returned element by the <M::Node.appendChild> method.
2557
2558 = Create a node by <M::XDPDocument.createXDPKeyword>
2559 on the document with a string <XML::SYSTEM> as
2560 a parameter and append the
2561 node to the returned element by the <M::Node.appendChild> method.
2562
2563 }
2564
2565 {OLI:: If <P::systemId> is different from <DOM::null> and
2566 <P::publicId> is <DOM::null>,
2567
2568 = Create a node by <M::XDPDocument.createXDPS> on the document with
2569 a <CHAR::SPACE> as a parameter and append the
2570 node to the returned element by the <M::Node.appendChild> method.
2571
2572 = Create a node by <M::XDPDocument.createXDPSystemLiteral>
2573 on the document with <P::systemId> as a parameter
2574 and append the node to the returned element by
2575 the <M::Node.appendChild> method.
2576
2577 }
2578
2579 }
2580 @@@PerlDef:
2581 __DEEP{
2582 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'notation');
2583 if (defined $name) {
2584 $r-><M::Node.appendChild>
2585 ($self-><M::XDPDocument.createXDPS> (' '));
2586 $r-><M::Node.appendChild>
2587 ($self-><M::XDPDocument.createXDPName> ($name));
2588
2589 if (defined $publicId) {
2590 $r-><M::Node.appendChild>
2591 ($self-><M::XDPDocument.createXDPS> (' '));
2592 $r-><M::Node.appendChild>
2593 ($self-><M::XDPDocument.createXDPKeyword> ('PUBLIC'));
2594 $r-><M::Node.appendChild>
2595 ($self-><M::XDPDocument.createXDPS> (' '));
2596 $r-><M::Node.appendChild>
2597 ($self-><M::XDPDocument.createXDPMinimumLiteral>
2598 ($publicId));
2599 if (defined $systemId) {
2600 $r-><M::Node.appendChild>
2601 ($self-><M::XDPDocument.createXDPS> (' '));
2602 $r-><M::Node.appendChild>
2603 ($self-><M::XDPDocument.createXDPSystemLiteral>
2604 ($systemId));
2605 }
2606 } elsif (defined $systemId) {
2607 $r-><M::Node.appendChild>
2608 ($self-><M::XDPDocument.createXDPS> (' '));
2609 $r-><M::Node.appendChild>
2610 ($self-><M::XDPDocument.createXDPKeyword> ('SYSTEM'));
2611 $r-><M::Node.appendChild>
2612 ($self-><M::XDPDocument.createXDPS> (' '));
2613 $r-><M::Node.appendChild>
2614 ($self-><M::XDPDocument.createXDPSystemLiteral>
2615 ($systemId));
2616 }
2617 }
2618 }__;
2619
2620 @@Test:
2621 @@@QName: XDPDocument.createXDPNotation.1.test
2622 @@@PerlDef:
2623 my $doc;
2624 __CODE{createXDPDocumentForTest}__;
2625
2626 my $el = $doc-><M::XDPDocument.createXDPNotation>
2627 ('iname', 'pubid', 'sysid');
2628
2629 $test->id ('interface');
2630 $test->assert_isa ($el, <IFName::XDPNotationElement>);
2631
2632 $test->id ('namespaceURI');
2633 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2634
2635 $test->id ('localName');
2636 $test->assert_equals ($el-><AG::Node.localName>, 'notation');
2637
2638 $test->id ('dtdText');
2639 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2640 '<!NOTATION iname PUBLIC "pubid" "sysid">');
2641 @@Test:
2642 @@@QName: XDPDocument.createXDPNotation.2.test
2643 @@@PerlDef:
2644 my $doc;
2645 __CODE{createXDPDocumentForTest}__;
2646
2647 my $el = $doc-><M::XDPDocument.createXDPNotation>
2648 ('iname', 'pubid');
2649
2650 $test->id ('dtdText');
2651 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2652 '<!NOTATION iname PUBLIC "pubid">');
2653 @@Test:
2654 @@@QName: XDPDocument.createXDPNotation.3.test
2655 @@@PerlDef:
2656 my $doc;
2657 __CODE{createXDPDocumentForTest}__;
2658
2659 my $el = $doc-><M::XDPDocument.createXDPNotation>
2660 ('iname');
2661
2662 $test->id ('dtdText');
2663 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2664 '<!NOTATION iname>');
2665 @@Test:
2666 @@@QName: XDPDocument.createXDPNotation.4.test
2667 @@@PerlDef:
2668 my $doc;
2669 __CODE{createXDPDocumentForTest}__;
2670
2671 my $el = $doc-><M::XDPDocument.createXDPNotation>;
2672
2673 $test->id ('dtdText');
2674 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2675 '<!NOTATION>');
2676 @@Test:
2677 @@@QName: XDPDocument.createXDPNotation.5.test
2678 @@@PerlDef:
2679 my $doc;
2680 __CODE{createXDPDocumentForTest}__;
2681
2682 my $el = $doc-><M::XDPDocument.createXDPNotation>
2683 ('iname', null, 'sysid');
2684
2685 $test->id ('dtdText');
2686 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2687 '<!NOTATION iname SYSTEM "sysid">');
2688 @@Test:
2689 @@@QName: XDPDocument.createXDPNotation.6.test
2690 @@@PerlDef:
2691 my $doc;
2692 __CODE{createXDPDocumentForTest}__;
2693
2694 my $el = $doc-><M::XDPDocument.createXDPNotation>
2695 (null, null, 'sysid');
2696
2697 $test->id ('dtdText');
2698 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2699 '<!NOTATION>');
2700 @@Test:
2701 @@@QName: XDPDocument.createXDPNotation.7.test
2702 @@@PerlDef:
2703 my $doc;
2704 __CODE{createXDPDocumentForTest}__;
2705
2706 my $el = $doc-><M::XDPDocument.createXDPNotation>
2707 (null, 'pubid');
2708
2709 $test->id ('dtdText');
2710 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2711 '<!NOTATION>');
2712 @@Test:
2713 @@@QName: XDPDocument.createXDPNotation.8.test
2714 @@@PerlDef:
2715 my $doc;
2716 __CODE{createXDPDocumentForTest}__;
2717
2718 my $el = $doc-><M::XDPDocument.createXDPNotation>
2719 (null, 'pubid', 'sysid');
2720
2721 $test->id ('dtdText');
2722 $test->assert_equals ($el-><AG::XDPElement.dtdText>,
2723 '<!NOTATION>');
2724
2725 @Method:
2726 @@Name: createXDPEntity
2727 @@enDesc:
2728 Creates a <XE::xdp|entity> element.
2729 @@Param:
2730 @@@Name: isPE
2731 @@@Type: boolean
2732 @@@enDesc:
2733 Whether the declaration declares a parameter entity or not.
2734 @@@TrueCase:
2735 @@@@enDesc:
2736 The declaration declares a parameter entity. A <XML::%>
2737 delimiter will be appended to the return node.
2738 @@@FalseCase:
2739 @@@@enDesc:
2740 The declaration is not known to declare a parameter entity.
2741 @@Param:
2742 @@@Name: name
2743 @@@Type: DOMString
2744 @@@enDesc:
2745 The name of the declaration.
2746 @@@nullCase:
2747 @@@@enDesc:
2748 All parameters are ignored.
2749 @@Param:
2750 @@@Name: value
2751 @@@Type: DOMString
2752 @@@enDesc:
2753 The literal replacement text of the declaration.
2754 @@@nullCase:
2755 @@@@enDesc:
2756 Same as an empty string or no entity value in the declaration,
2757 depending on whether the <P::publicId> parameters are <DOM::null>
2758 or not.
2759 @@Param:
2760 @@@Name: publicId
2761 @@@Type: DOMString
2762 @@@enDesc:
2763 The public identifier in the declaration.
2764 @@@nullCase:
2765 @@@@enDesc:
2766 No public identifier.
2767 @@Param:
2768 @@@Name: systemId
2769 @@@Type: DOMString
2770 @@@enDesc:
2771 The system identifier in the declaration.
2772 @@@nullCase:
2773 @@@@enDesc:
2774 No system identifier.
2775 @@Param:
2776 @@@Name: notation
2777 @@@Type: DOMString
2778 @@@enDesc:
2779 The notation name in the declaration.
2780 @@@nullCase:
2781 @@@@enDesc:
2782 No notation name.
2783 @@Return:
2784 @@@Type: XDPEntityElement
2785 @@@enDesc:
2786 The newly created element node.
2787
2788 {P:: A new <IF::Element> node with following attributes
2789 <kwd:MUST> be returned:
2790
2791 - <A::Node.localName>::: <XE::entity>.
2792
2793 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
2794
2795 - <A::Node.ownerDocument>::: The document.
2796
2797 }
2798
2799 {P:: A series of nodes <kwd:MUST> be associated to the returned
2800 node as if the following algorithm were applied:
2801
2802 {OLI:: If <P::isPE> is <DOM::true>,
2803
2804 = Create a node by <M::XDPDocument.createXDPS> on the
2805 document with a <CHAR::SPACE> as a parameter and append the
2806 node to the returned element by the <M::Node.appendChild>
2807 method.
2808
2809 = Create a node by <M::XDPDocument.createXDPDelimiter>
2810 on the document with a <CHAR::PERCENT SIGN> as a parameter
2811 and append the node to the returned element by the
2812 <M::Node.appendChild> method.
2813
2814 }
2815
2816 = If <P::name> is <DOM::null>, stop the algorithm.
2817
2818 = Create a node by <M::XDPDocument.createXDPS> on the document with
2819 a <CHAR::SPACE> as a parameter and append the
2820 node to the returned element by the <M::Node.appendChild> method.
2821
2822 = Create a node by <M::XDPDocument.createXDPName> on the document
2823 with <P::name> as a parameter and append the
2824 node to the returned element by the <M::Node.appendChild> method.
2825
2826 {OLI:: If <P::systemId> is different from <DOM::null>,
2827
2828 {OLI:: If <P::publicId> is different from <DOM::null>,
2829
2830 = Create a node by <M::XDPDocument.createXDPS> on the document
2831 with a <CHAR::SPACE> as a parameter and append the
2832 node to the returned element by the <M::Node.appendChild>
2833 method.
2834
2835 = Create a node by <M::XDPDocument.createXDPKeyword>
2836 on the document with a string <XML::PUBLIC> as
2837 a parameter and append the
2838 node to the returned element by the <M::Node.appendChild>
2839 method.
2840
2841 = Create a node by <M::XDPDocument.createXDPS> on the document
2842 with a <CHAR::SPACE> as a parameter and append the
2843 node to the returned element by the <M::Node.appendChild>
2844 method.
2845
2846 = Create a node by <M::XDPDocument.createXDPMinimumLiteral>
2847 on the document with <P::publicId> as a parameter
2848 and append the node to the returned element by
2849 the <M::Node.appendChild> method.
2850
2851 }
2852
2853 {OLI:: Otherwise,
2854
2855 = Create a node by <M::XDPDocument.createXDPS> on the document
2856 with a <CHAR::SPACE> as a parameter and append the
2857 node to the returned element by the <M::Node.appendChild>
2858 method.
2859
2860 = Create a node by <M::XDPDocument.createXDPKeyword>
2861 on the document with a string <XML::SYSTEM> as
2862 a parameter and append the
2863 node to the returned element by the <M::Node.appendChild>
2864 method.
2865
2866 }
2867
2868 = Create a node by <M::XDPDocument.createXDPS> on the document with
2869 a <CHAR::SPACE> as a parameter and append the
2870 node to the returned element by the <M::Node.appendChild> method.
2871
2872 = Create a node by <M::XDPDocument.createXDPSystemLiteral>
2873 on the document with <P::systemId> as a parameter
2874 and append the node to the returned element by
2875 the <M::Node.appendChild> method.
2876
2877 {OLI:: If <P::notation> is different from <DOM::null>
2878 and <P::isPE> is <DOM::false>,
2879
2880 = Create a node by <M::XDPDocument.createXDPS> on the document
2881 with a <CHAR::SPACE> as a parameter and append the
2882 node to the returned element by the <M::Node.appendChild>
2883 method.
2884
2885 = Create a node by <M::XDPDocument.createXDPKeyword>
2886 on the document with a string <XML::NDATA> as
2887 a parameter and append the
2888 node to the returned element by the <M::Node.appendChild>
2889 method.
2890
2891 = Create a node by <M::XDPDocument.createXDPS> on the document
2892 with a <CHAR::SPACE> as a parameter and append the
2893 node to the returned element by the <M::Node.appendChild>
2894 method.
2895
2896 = Create a node by <M::XDPDocument.createXDPName>
2897 on the document with <P::notation> as a parameter
2898 and append the node to the returned element by
2899 the <M::Node.appendChild> method.
2900
2901 }
2902
2903 }
2904
2905 {OLI:: Otherwise,
2906
2907 = Create a node by <M::XDPDocument.createXDPS> on the document with
2908 a <CHAR::SPACE> as a parameter and append the
2909 node to the returned element by the <M::Node.appendChild> method.
2910
2911 = Create a node by <M::XDPDocument.createXDPEntityValue>
2912 on the document with <P::value> as a parameter
2913 and append the node to the returned element by
2914 the <M::Node.appendChild> method.
2915
2916 }
2917
2918 }
2919 @@@PerlDef:
2920 __DEEP{
2921 $r = $self-><M::Document.createElementNS> (<Q::xdp|>, 'entity');
2922 if ($isPE) {
2923 $r-><M::Node.appendChild>
2924 ($self-><M::XDPDocument.createXDPS> (' '));
2925 $r-><M::Node.appendChild>
2926 ($self-><M::XDPDocument.createXDPDelimiter> ('%'));
2927 }
2928 if (defined $name) {
2929 $r-><M::Node.appendChild>
2930 ($self-><M::XDPDocument.createXDPS> (' '));
2931 $r-><M::Node.appendChild>
2932 ($self-><M::XDPDocument.createXDPName> ($name));
2933
2934 if (defined $systemId) {
2935 if (defined $publicId) {
2936 $r-><M::Node.appendChild>
2937 ($self-><M::XDPDocument.createXDPS> (' '));
2938 $r-><M::Node.appendChild>
2939 ($self-><M::XDPDocument.createXDPKeyword> ('PUBLIC'));
2940 $r-><M::Node.appendChild>
2941 ($self-><M::XDPDocument.createXDPS> (' '));
2942 $r-><M::Node.appendChild>
2943 ($self-><M::XDPDocument.createXDPMinimumLiteral>
2944 ($publicId));
2945 $r-><M::Node.appendChild>
2946 ($self-><M::XDPDocument.createXDPS> (' '));
2947 $r-><M::Node.appendChild>
2948 ($self-><M::XDPDocument.createXDPSystemLiteral>
2949 ($systemId));
2950 } else {
2951 $r-><M::Node.appendChild>
2952 ($self-><M::XDPDocument.createXDPS> (' '));
2953 $r-><M::Node.appendChild>
2954 ($self-><M::XDPDocument.createXDPKeyword> ('SYSTEM'));
2955 $r-><M::Node.appendChild>
2956 ($self-><M::XDPDocument.createXDPS> (' '));
2957 $r-><M::Node.appendChild>
2958 ($self-><M::XDPDocument.createXDPSystemLiteral>
2959 ($systemId));
2960 }
2961
2962 if (defined $notation and not $isPE) {
2963 $r-><M::Node.appendChild>
2964 ($self-><M::XDPDocument.createXDPS> (' '));
2965 $r-><M::Node.appendChild>
2966 ($self-><M::XDPDocument.createXDPKeyword> ('NDATA'));
2967 $r-><M::Node.appendChild>
2968 ($self-><M::XDPDocument.createXDPS> (' '));
2969 $r-><M::Node.appendChild>
2970 ($self-><M::XDPDocument.createXDPName> ($notation));
2971 }
2972 } else {
2973 $r-><M::Node.appendChild>
2974 ($self-><M::XDPDocument.createXDPS> (' '));
2975 $r-><M::Node.appendChild>
2976 ($self-><M::XDPDocument.createXDPEntityValue> ($value));
2977 }
2978 }
2979 }__;
2980
2981 @@Test:
2982 @@@QName: XDPDocument.createXDPEntity.1.test
2983 @@@PerlDef:
2984 my $doc;
2985 __CODE{createXDPDocumentForTest}__;
2986
2987 my $el = $doc-><M::XDPDocument.createXDPEntity>
2988 (true, 'iname', 'evalue', 'pubid', 'sysid', 'nname');
2989
2990 $test->id ('interface');
2991 $test->assert_isa ($el, <IFName::XDPEntityElement>);
2992
2993 $test->id ('namespaceURI');
2994 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
2995
2996 $test->id ('localName');
2997 $test->assert_equals ($el-><AG::Node.localName>, 'entity');
2998
2999 $test->id ('dtdText');
3000 $test->assert_equals
3001 ($el-><AG::XDPElement.dtdText>,
3002 '<!ENTITY % iname PUBLIC "pubid" "sysid">');
3003 @@Test:
3004 @@@QName: XDPDocument.createXDPEntity.2.test
3005 @@@PerlDef:
3006 my $doc;
3007 __CODE{createXDPDocumentForTest}__;
3008
3009 my $el = $doc-><M::XDPDocument.createXDPEntity>
3010 (false, 'iname', 'evalue', 'pubid', 'sysid', 'nname');
3011
3012 $test->id ('dtdText');
3013 $test->assert_equals
3014 ($el-><AG::XDPElement.dtdText>,
3015 '<!ENTITY iname PUBLIC "pubid" "sysid" NDATA nname>');
3016 @@Test:
3017 @@@QName: XDPDocument.createXDPEntity.3.test
3018 @@@PerlDef:
3019 my $doc;
3020 __CODE{createXDPDocumentForTest}__;
3021
3022 my $el = $doc-><M::XDPDocument.createXDPEntity>
3023 (false, 'iname', 'evalue', 'pubid', 'sysid');
3024
3025 $test->id ('dtdText');
3026 $test->assert_equals
3027 ($el-><AG::XDPElement.dtdText>,
3028 '<!ENTITY iname PUBLIC "pubid" "sysid">');
3029 @@Test:
3030 @@@QName: XDPDocument.createXDPEntity.4.test
3031 @@@PerlDef:
3032 my $doc;
3033 __CODE{createXDPDocumentForTest}__;
3034
3035 my $el = $doc-><M::XDPDocument.createXDPEntity>
3036 (true, 'iname', 'evalue', 'pubid', 'sysid');
3037
3038 $test->id ('dtdText');
3039 $test->assert_equals
3040 ($el-><AG::XDPElement.dtdText>,
3041 '<!ENTITY % iname PUBLIC "pubid" "sysid">');
3042 @@Test:
3043 @@@QName: XDPDocument.createXDPEntity.5.test
3044 @@@PerlDef:
3045 my $doc;
3046 __CODE{createXDPDocumentForTest}__;
3047
3048 my $el = $doc-><M::XDPDocument.createXDPEntity>
3049 (false, 'iname', 'evalue', null, 'sysid');
3050
3051 $test->id ('dtdText');
3052 $test->assert_equals
3053 ($el-><AG::XDPElement.dtdText>,
3054 '<!ENTITY iname SYSTEM "sysid">');
3055 @@Test:
3056 @@@QName: XDPDocument.createXDPEntity.6.test
3057 @@@PerlDef:
3058 my $doc;
3059 __CODE{createXDPDocumentForTest}__;
3060
3061 my $el = $doc-><M::XDPDocument.createXDPEntity>
3062 (true, 'iname', 'evalue', null, 'sysid');
3063
3064 $test->id ('dtdText');
3065 $test->assert_equals
3066 ($el-><AG::XDPElement.dtdText>,
3067 '<!ENTITY % iname SYSTEM "sysid">');
3068 @@Test:
3069 @@@QName: XDPDocument.createXDPEntity.7.test
3070 @@@PerlDef:
3071 my $doc;
3072 __CODE{createXDPDocumentForTest}__;
3073
3074 my $el = $doc-><M::XDPDocument.createXDPEntity>
3075 (false, 'iname', 'evalue');
3076
3077 $test->id ('dtdText');
3078 $test->assert_equals
3079 ($el-><AG::XDPElement.dtdText>,
3080 '<!ENTITY iname "evalue">');
3081 @@Test:
3082 @@@QName: XDPDocument.createXDPEntity.8.test
3083 @@@PerlDef:
3084 my $doc;
3085 __CODE{createXDPDocumentForTest}__;
3086
3087 my $el = $doc-><M::XDPDocument.createXDPEntity>
3088 (true, 'iname', 'evalue');
3089
3090 $test->id ('dtdText');
3091 $test->assert_equals
3092 ($el-><AG::XDPElement.dtdText>,
3093 '<!ENTITY % iname "evalue">');
3094 @@Test:
3095 @@@QName: XDPDocument.createXDPEntity.9.test
3096 @@@PerlDef:
3097 my $doc;
3098 __CODE{createXDPDocumentForTest}__;
3099
3100 my $el = $doc-><M::XDPDocument.createXDPEntity>
3101 (false, 'iname');
3102
3103 $test->id ('dtdText');
3104 $test->assert_equals
3105 ($el-><AG::XDPElement.dtdText>,
3106 '<!ENTITY iname "">');
3107 @@Test:
3108 @@@QName: XDPDocument.createXDPEntity.10.test
3109 @@@PerlDef:
3110 my $doc;
3111 __CODE{createXDPDocumentForTest}__;
3112
3113 my $el = $doc-><M::XDPDocument.createXDPEntity>
3114 (false);
3115
3116 $test->id ('dtdText');
3117 $test->assert_equals
3118 ($el-><AG::XDPElement.dtdText>,
3119 '<!ENTITY>');
3120 @@Test:
3121 @@@QName: XDPDocument.createXDPEntity.11.test
3122 @@@PerlDef:
3123 my $doc;
3124 __CODE{createXDPDocumentForTest}__;
3125
3126 my $el = $doc-><M::XDPDocument.createXDPEntity>
3127 (true);
3128
3129 $test->id ('dtdText');
3130 $test->assert_equals
3131 ($el-><AG::XDPElement.dtdText>,
3132 '<!ENTITY %>');
3133
3134 @Method:
3135 @@Name: createXDPEnumGroup
3136 @@enDesc:
3137 Creates a <XE::xdp|enum-group> element.
3138 @@Return:
3139 @@@Type: XDPEnumGroupElement
3140 @@@enDesc:
3141 The newly created element node.
3142
3143 {P:: A new <IF::Element> node with following attributes
3144 <kwd:MUST> be returned:
3145
3146 - <A::Node.localName>::: <XE::enum-group>.
3147
3148 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
3149
3150 - <A::Node.ownerDocument>::: The document.
3151
3152 }
3153 @@@PerlDef:
3154 __DEEP{
3155 $r = $self-><M::Document.createElementNS>
3156 (<Q::xdp|>, 'enum-group');
3157 }__;
3158
3159 @@Test:
3160 @@@QName: XDPDocument.createXDPEnumGroup.1.test
3161 @@@PerlDef:
3162 my $doc;
3163 __CODE{createXDPDocumentForTest}__;
3164
3165 my $el = $doc-><M::XDPDocument.createXDPEnumGroup>;
3166
3167 $test->id ('interface');
3168 $test->assert_isa ($el, <IFName::XDPEnumGroupElement>);
3169
3170 $test->id ('namespaceURI');
3171 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
3172
3173 $test->id ('localName');
3174 $test->assert_equals ($el-><AG::Node.localName>, 'enum-group');
3175
3176 $test->id ('dtdText');
3177 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '()');
3178
3179 @Method:
3180 @@Name: createXDPModelGroup
3181 @@enDesc:
3182 Creates a <XE::xdp|model-group> element.
3183 @@Return:
3184 @@@Type: XDPModelGroupElement
3185 @@@enDesc:
3186 The newly created element node.
3187
3188 {P:: A new <IF::Element> node with following attributes
3189 <kwd:MUST> be returned:
3190
3191 - <A::Node.localName>::: <XE::model-group>.
3192
3193 - <A::Node.namespaceURI>::: <URI^^DISCore|QName::xdp|>.
3194
3195 - <A::Node.ownerDocument>::: The document.
3196
3197 }
3198 @@@PerlDef:
3199 __DEEP{
3200 $r = $self-><M::Document.createElementNS>
3201 (<Q::xdp|>, 'model-group');
3202 }__;
3203
3204 @@Test:
3205 @@@QName: XDPDocument.createXDPModelGroup.1.test
3206 @@@PerlDef:
3207 my $doc;
3208 __CODE{createXDPDocumentForTest}__;
3209
3210 my $el = $doc-><M::XDPDocument.createXDPModelGroup>;
3211
3212 $test->id ('interface');
3213 $test->assert_isa ($el, <IFName::XDPModelGroupElement>);
3214
3215 $test->id ('namespaceURI');
3216 $test->assert_equals ($el-><AG::Node.namespaceURI>, <Q::xdp|>);
3217
3218 $test->id ('localName');
3219 $test->assert_equals ($el-><AG::Node.localName>, 'model-group');
3220
3221 $test->id ('dtdText');
3222 $test->assert_equals ($el-><AG::XDPElement.dtdText>, '()');
3223 ##XDPDocument
3224
3225 IFClsDef:
3226 @IFQName: XDPElement
3227 @ClsQName: ManakaiDOMXDPElement
3228
3229 @IFISA: Element
3230 @ClsISA: te|ManakaiDOMElement
3231
3232 @s:elementType: AnyXDPElement||ManakaiDOM|all
3233
3234 @Test:
3235 @@QName: createElementNS.XDPElement.test
3236 @@PerlDef:
3237 my $doc;
3238 __CODE{tc|createEmptyDocumentForTest:: $doc => $doc}__;
3239
3240 my $el = $doc-><M::Document.createElementNS> (<Q::xdp:>, 'anElement');
3241
3242 $test->assert_isa ($el, <IFName::XDPElement>);
3243
3244 @Attr:
3245 @@Name: dtdText
3246 @@enDesc:
3247 The serialized representation of the element and its descendants.
3248 @@Type: DOMString
3249 @@Get:
3250 @@@enDesc:
3251 {ISSUE::
3252 Definition
3253 }
3254 @@@PerlDef:
3255 require Message::DOM::Traversal;
3256 my $doctrv = $self-><AG::Node.ownerDocument>
3257 -><M::Node.getFeature> (Traversal => '2.0');
3258 my $tw = $doctrv->create_tree_walker
3259 ($self, <C::NodeFilter.SHOW_ELEMENT> |
3260 <C::NodeFilter.SHOW_TEXT> |
3261 <C::NodeFilter.SHOW_CDATA_SECTION>,
3262 sub {
3263 my $node = $_[1];
3264 if ($node-><AG::Node.nodeType>
3265 == <C::Node.ELEMENT_NODE>) {
3266 my $ns = $node-><AG::Node.namespaceURI>;
3267 if (not defined $ns) {
3268 return <C::NodeFilter.FILTER_REJECT>;
3269 } elsif ($ns eq <Q::xdp|>) {
3270 return <C::NodeFilter.FILTER_ACCEPT>;
3271 } else {
3272 return <C::NodeFilter.FILTER_REJECT>;
3273 }
3274 } else {
3275 return <C::NodeFilter.FILTER_ACCEPT>;
3276 }
3277 }, true);
3278 my $current = $tw->first_child;
3279 $r = '';
3280 C: while (defined $current) {
3281 if ($current-><AG::Node.nodeType> == <C::Node.ELEMENT_NODE>) {
3282 $r .= $current-><AG::XDPElement.dtdText>;
3283 } else {
3284 $r .= $current-><AG::Node.textContent>;
3285 }
3286
3287 $current = $tw->next_sibling;
3288 } # C
3289 ##XDPElement
3290
3291 ResourceDef:
3292 @QName: AnyXDPElement
3293 @DISCore:resourceType: s|AnyElementInNS
3294 @AppName:
3295 @@@: xdp|*
3296 @@ContentType: DISCore|QName
3297 @ForCheck: =ManakaiDOM|all
3298
3299 IFClsETDef:
3300 @IFQName: XDPPEElement
3301 @ETQName: xdp|pe
3302 @ClsQName: ManakaiDOMXDPPEElement
3303
3304 @IFISA: XDPElement
3305 @ClsISA: ManakaiDOMXDPElement
3306
3307 @enDesc:
3308 An <XE::xdp|pe> element represents an XML parameter
3309 entity, an XML external subset entity, or an XML internal subset.
3310 ##XDPPEElement
3311
3312 IFClsETDef:
3313 @IFQName: XDPElementElement
3314 @ETQName: xdp|element
3315 @ClsQName: ManakaiDOMXDPElementElement
3316
3317 @IFISA: XDPElement
3318 @ClsISA: ManakaiDOMXDPElement
3319
3320 @enDesc:
3321 An <XE::xdp|element> element represents an XML <XML::ELEMENT>
3322 declaration.
3323
3324 @CAttr:
3325 @@Name: dtdText
3326 @@Type: DOMString
3327 @@Get:
3328 @@@PerlDef:
3329 $r = '<!ELEMENT'.$self->SUPER::dtd_text.'>';
3330 ##XDPElementElement
3331
3332 IFClsETDef:
3333 @IFQName: XDPModelGroupElement
3334 @ETQName: xdp|model-group
3335 @ClsQName: ManakaiDOMXDPModelGroupElement
3336
3337 @IFISA: XDPElement
3338 @ClsISA: ManakaiDOMXDPElement
3339
3340 @enDesc:
3341 An <XE::xdp|model-group> element represents an XML model
3342 group.
3343
3344 @CAttr:
3345 @@Name: dtdText
3346 @@Type: DOMString
3347 @@Get:
3348 @@@PerlDef:
3349 $r = '('.$self->SUPER::dtd_text.')';
3350 ##XDPModelGroupElement
3351
3352 IFClsETDef:
3353 @IFQName: XDPAttlistElement
3354 @ETQName: xdp|attlist
3355 @ClsQName: ManakaiDOMXDPAttlistElement
3356
3357 @IFISA: XDPElement
3358 @ClsISA: ManakaiDOMXDPElement
3359
3360 @enDesc:
3361 An <XE::xdp|attlist> element represents an XML <XML::ATTLIST>
3362 declaration.
3363
3364 @CAttr:
3365 @@Name: dtdText
3366 @@Type: DOMString
3367 @@Get:
3368 @@@PerlDef:
3369 $r = '<!ATTLIST'.$self->SUPER::dtd_text.'>';
3370 ##XDPAttlistElement
3371
3372 IFClsETDef:
3373 @IFQName: XDPEnumGroupElement
3374 @ETQName: xdp|enum-group
3375 @ClsQName: ManakaiDOMXDPEnumGroupElement
3376
3377 @IFISA: XDPElement
3378 @ClsISA: ManakaiDOMXDPElement
3379
3380 @enDesc:
3381 An <XE::xdp|enum-group> element represents an XML enumeration
3382 group in an attribute definition.
3383
3384 @CAttr:
3385 @@Name: dtdText
3386 @@Type: DOMString
3387 @@Get:
3388 @@@PerlDef:
3389 $r = '('.$self->SUPER::dtd_text.')';
3390 ##XDPEnumGroupElement
3391
3392 IFClsETDef:
3393 @IFQName: XDPEntityElement
3394 @ETQName: xdp|entity
3395 @ClsQName: ManakaiDOMXDPEntityElement
3396
3397 @IFISA: XDPElement
3398 @ClsISA: ManakaiDOMXDPElement
3399
3400 @enDesc:
3401 An <XE::xdp|entity> element represents an XML <XML::ENTITY>
3402 declaration.
3403
3404 @CAttr:
3405 @@Name: dtdText
3406 @@Type: DOMString
3407 @@Get:
3408 @@@PerlDef:
3409 $r = '<!ENTITY'.$self->SUPER::dtd_text.'>';
3410 ##XDPEntityElement
3411
3412 IFClsETDef:
3413 @IFQName: XDPNotationElement
3414 @ETQName: xdp|notation
3415 @ClsQName: ManakaiDOMXDPNotationElement
3416
3417 @IFISA: XDPElement
3418 @ClsISA: ManakaiDOMXDPElement
3419
3420 @enDesc:
3421 An <XE::xdp|notation> element represents an XML <XML::NOTATION>
3422 declaration.
3423
3424 @CAttr:
3425 @@Name: dtdText
3426 @@Type: DOMString
3427 @@Get:
3428 @@@PerlDef:
3429 $r = '<!NOTATION'.$self->SUPER::dtd_text.'>';
3430 ##XDPNotationElement
3431
3432 IFClsETDef:
3433 @IFQName: XDPMarkedSectionElement
3434 @ETQName: xdp|marked-section
3435 @ClsQName: ManakaiDOMXDPMarkedSectionElement
3436
3437 @IFISA: XDPElement
3438 @ClsISA: ManakaiDOMXDPElement
3439
3440 @enDesc:
3441 An <XE::xdp|marked-section> element represents an XML conditional
3442 section.
3443
3444 @CAttr:
3445 @@Name: dtdText
3446 @@Type: DOMString
3447 @@Get:
3448 @@@PerlDef:
3449 $r = '<!['.$self->SUPER::dtd_text.']]>';
3450 ##XDPMarkedSectionElement
3451
3452 IFClsETDef:
3453 @IFQName: XDPMarkedSectionStatusElement
3454 @ETQName: xdp|marked-section-status
3455 @ClsQName: ManakaiDOMXDPMarkedSectionStatusElement
3456
3457 @IFISA: XDPElement
3458 @ClsISA: ManakaiDOMXDPElement
3459
3460 @enDesc:
3461 An <XE::xdp|marked-section-status> element represents the
3462 status part of an XML marked section.
3463
3464 @CAttr:
3465 @@Name: dtdText
3466 @@Type: DOMString
3467 @@Get:
3468 @@@PerlDef:
3469 $r = $self->SUPER::dtd_text.'[';
3470 ##XDPMarkedSectionStatusElement
3471
3472 IFClsETDef:
3473 @IFQName: XDPCommentElement
3474 @ETQName: xdp|comment
3475 @ClsQName: ManakaiDOMXDPCommentElement
3476
3477 @IFISA: XDPElement
3478 @ClsISA: ManakaiDOMXDPElement
3479
3480 @enDesc:
3481 An <XE::xdp|comment> element represents an XML comment.
3482
3483 @CAttr:
3484 @@Name: dtdText
3485 @@Type: DOMString
3486 @@Get:
3487 @@@PerlDef:
3488 $r = $self->SUPER::dtd_text;
3489 $r =~ s/--/- - /g;
3490 $r = '<!--'.$r.'-->';
3491 ##XDPCommentElement
3492
3493 IFClsETDef:
3494 @IFQName: XDPPIElement
3495 @ETQName: xdp|pi
3496 @ClsQName: ManakaiDOMXDPPIElement
3497
3498 @IFISA: XDPElement
3499 @ClsISA: ManakaiDOMXDPElement
3500
3501 @enDesc:
3502 An <XE::xdp|pi> element represents an XML processing
3503 instruction.
3504
3505 @CAttr:
3506 @@Name: dtdText
3507 @@Type: DOMString
3508 @@Get:
3509 @@@PerlDef:
3510 $r = $self->SUPER::dtd_text;
3511 $r =~ s/\?>/?&gt;/g;
3512 $r = '<?'.$r.'?>';
3513 ##XDPPIElement
3514
3515 IFClsETDef:
3516 @IFQName: XDPTextDeclElement
3517 @ETQName: xdp|text-decl
3518 @ClsQName: ManakaiDOMXDPTextDeclElement
3519
3520 @IFISA: XDPElement
3521 @ClsISA: ManakaiDOMXDPElement
3522
3523 @enDesc:
3524 An <XE::xdp|text-decl> element represents an XML text declaration.
3525
3526 @CAttr:
3527 @@Name: dtdText
3528 @@Type: DOMString
3529 @@Get:
3530 @@@PerlDef:
3531 $r = $self->SUPER::dtd_text;
3532 $r =~ s/\?>/?&gt;/g;
3533 $r = '<?xml'.$r.'?>';
3534 ##XDPTextDeclElement
3535
3536 IFClsETDef:
3537 @IFQName: XDPPAttrElement
3538 @ETQName: xdp|pattr
3539 @ClsQName: ManakaiDOMXDPPAttrElement
3540
3541 @IFISA: XDPElement
3542 @ClsISA: ManakaiDOMXDPElement
3543
3544 @enDesc:
3545 An <XE::xdp|pattr> element represents a pseudo-attribute.
3546 ##XDPPAttrElement
3547
3548 IFClsETDef:
3549 @IFQName: XDPPERefElement
3550 @ETQName: xdp|peref
3551 @ClsQName: ManakaiDOMXDPPERefElement
3552
3553 @IFISA: XDPElement
3554 @ClsISA: ManakaiDOMXDPElement
3555
3556 @enDesc:
3557 An <XE::xdp|peref> element represents an XML parameter entity
3558 reference.
3559
3560 @CAttr:
3561 @@Name: dtdText
3562 @@Type: DOMString
3563 @@Get:
3564 @@@PerlDef:
3565 $r = '%'.$self->SUPER::dtd_text.';';
3566 ##XDPPERefElement
3567
3568 IFClsETDef:
3569 @IFQName: XDPGERefElement
3570 @ETQName: xdp|geref
3571 @ClsQName: ManakaiDOMXDPGERefElement
3572
3573 @IFISA: XDPElement
3574 @ClsISA: ManakaiDOMXDPElement
3575
3576 @enDesc:
3577 An <XE::xdp|geref> element represents an XML general entity
3578 reference.
3579
3580 @CAttr:
3581 @@Name: dtdText
3582 @@Type: DOMString
3583 @@Get:
3584 @@@PerlDef:
3585 $r = '&'.$self->SUPER::dtd_text.';';
3586 ##XDPGERefElement
3587
3588 IFClsETDef:
3589 @IFQName: XDPNCRElement
3590 @ETQName: xdp|ncr
3591 @ClsQName: ManakaiDOMXDPNCRElement
3592
3593 @IFISA: XDPElement
3594 @ClsISA: ManakaiDOMXDPElement
3595
3596 @enDesc:
3597 An <XE::xdp|ncr> element represents an XML numeric character
3598 reference.
3599
3600 @CAttr:
3601 @@Name: dtdText
3602 @@Type: DOMString
3603 @@Get:
3604 @@@PerlDef:
3605 $r = '&#'.$self->SUPER::dtd_text.';';
3606 ##XDPNCRElement
3607
3608 IFClsETDef:
3609 @IFQName: XDPHCRElement
3610 @ETQName: xdp|hcr
3611 @ClsQName: ManakaiDOMXDPHCRElement
3612
3613 @IFISA: XDPElement
3614 @ClsISA: ManakaiDOMXDPElement
3615
3616 @enDesc:
3617 An <XE::xdp|hcr> element represents an XML hexadecimal character
3618 reference.
3619
3620 @CAttr:
3621 @@Name: dtdText
3622 @@Type: DOMString
3623 @@Get:
3624 @@@PerlDef:
3625 $r = '&#x'.$self->SUPER::dtd_text.';';
3626 ##XDPHCRElement
3627
3628 IFClsETDef:
3629 @IFQName: XDPRNIKeywordElement
3630 @ETQName: xdp|rni-keyword
3631 @ClsQName: ManakaiDOMXDPRNIKeywordElement
3632
3633 @IFISA: XDPElement
3634 @ClsISA: ManakaiDOMXDPElement
3635
3636 @enDesc:
3637 An <XE::xdp|rni-keyword> element represents an XML keyword
3638 prepended by a <CHAR::NUMBER SIGN>.
3639
3640 @CAttr:
3641 @@Name: dtdText
3642 @@Type: DOMString
3643 @@Get:
3644 @@@PerlDef:
3645 $r = '#'.$self->SUPER::dtd_text;
3646 ##XDPRNIKeywordElement
3647
3648 IFClsETDef:
3649 @IFQName: XDPEntityValueElement
3650 @ETQName: xdp|entity-value
3651 @ClsQName: ManakaiDOMXDPEntityValueElement
3652
3653 @IFISA: XDPElement
3654 @ClsISA: ManakaiDOMXDPElement
3655
3656 @enDesc:
3657 An <XE::xdp|entity-value> element represents an XML entity
3658 value.
3659
3660 @CAttr:
3661 @@Name: dtdText
3662 @@Type: DOMString
3663 @@Get:
3664 @@@PerlDef:
3665 require Message::DOM::Traversal;
3666 my $doctrv = $self-><AG::Node.ownerDocument>
3667 -><M::Node.getFeature> (Traversal => '2.0');
3668 my $tw = $doctrv->create_tree_walker
3669 ($self, <C::NodeFilter.SHOW_ELEMENT> |
3670 <C::NodeFilter.SHOW_TEXT> |
3671 <C::NodeFilter.SHOW_CDATA_SECTION>,
3672 sub {
3673 my $node = $_[1];
3674 if ($node-><AG::Node.nodeType>
3675 == <C::Node.ELEMENT_NODE>) {
3676 my $ns = $node-><AG::Node.namespaceURI>;
3677 if (not defined $ns) {
3678 return <C::NodeFilter.FILTER_REJECT>;
3679 } elsif ($ns eq <Q::xdp|>) {
3680 return <C::NodeFilter.FILTER_ACCEPT>;
3681 } else {
3682 return <C::NodeFilter.FILTER_REJECT>;
3683 }
3684 } else {
3685 return <C::NodeFilter.FILTER_ACCEPT>;
3686 }
3687 }, true);
3688 my $current = $tw->first_child;
3689 $r = '';
3690 C: while (defined $current) {
3691 if ($current-><AG::Node.nodeType> == <C::Node.ELEMENT_NODE>) {
3692 if ({
3693 <Q::xdp|peref> => true,
3694 }->{$current->manakai_expanded_uri}) {
3695 $r .= $current-><AG::XDPElement.dtdText>;
3696 } else {
3697 my $v = $current-><AG::XDPElement.dtdText>;
3698 $v =~ s/&/&#x26;/g;
3699 $v =~ s/%/&#x25;/g;
3700 $r .= $v;
3701 }
3702 } else {
3703 my $v = $current-><AG::Node.textContent>;
3704 $v =~ s/&/&#x26;/g;
3705 $v =~ s/%/&#x25;/g;
3706 $r .= $v;
3707 }
3708
3709 $current = $tw->next_sibling;
3710 } # C
3711
3712 if ($r =~ /"/) {
3713 $r =~ s/'/&#x27;/g;
3714 $r = "'".$r."'";
3715 } else {
3716 $r =~ s/"/&#x22;/g;
3717 $r = '"'.$r.'"';
3718 }
3719 ##XDPEntityValueElement
3720
3721 IFClsETDef:
3722 @IFQName: XDPAttrLiteralElement
3723 @ETQName: xdp|attr-literal
3724 @ClsQName: ManakaiDOMXDPAttrLiteralElement
3725
3726 @IFISA: XDPElement
3727 @ClsISA: ManakaiDOMXDPElement
3728
3729 @enDesc:
3730 An <XE::xdp|attr-literal> element represents an XML attribute
3731 value literal.
3732
3733 @CAttr:
3734 @@Name: dtdText
3735 @@Type: DOMString
3736 @@Get:
3737 @@@PerlDef:
3738 require Message::DOM::Traversal;
3739 my $doctrv = $self-><AG::Node.ownerDocument>
3740 -><M::Node.getFeature> (Traversal => '2.0');
3741 my $tw = $doctrv->create_tree_walker
3742 ($self, <C::NodeFilter.SHOW_ELEMENT> |
3743 <C::NodeFilter.SHOW_TEXT> |
3744 <C::NodeFilter.SHOW_CDATA_SECTION>,
3745 sub {
3746 my $node = $_[1];
3747 if ($node-><AG::Node.nodeType>
3748 == <C::Node.ELEMENT_NODE>) {
3749 my $ns = $node-><AG::Node.namespaceURI>;
3750 if (not defined $ns) {
3751 return <C::NodeFilter.FILTER_REJECT>;
3752 } elsif ($ns eq <Q::xdp|>) {
3753 return <C::NodeFilter.FILTER_ACCEPT>;
3754 } else {
3755 return <C::NodeFilter.FILTER_REJECT>;
3756 }
3757 } else {
3758 return <C::NodeFilter.FILTER_ACCEPT>;
3759 }
3760 }, true);
3761 my $current = $tw->first_child;
3762 $r = '';
3763 C: while (defined $current) {
3764 if ($current-><AG::Node.nodeType> == <C::Node.ELEMENT_NODE>) {
3765 if ({
3766 <Q::xdp|geref> => true,
3767 <Q::xdp|ncr> => true,
3768 <Q::xdp|hcr> => true,
3769 }->{$current->manakai_expanded_uri}) {
3770 $r .= $current-><AG::XDPElement.dtdText>;
3771 } else {
3772 my $v = $current-><AG::XDPElement.dtdText>;
3773 $v =~ s/&/&amp;/g;
3774 $r .= $v;
3775 }
3776 } else {
3777 my $v = $current-><AG::Node.textContent>;
3778 $v =~ s/&/&amp;/g;
3779 $r .= $v;
3780 }
3781
3782 $current = $tw->next_sibling;
3783 } # C
3784
3785 if ($r =~ /"/) {
3786 $r =~ s/'/&apos;/g;
3787 $r = "'".$r."'";
3788 } else {
3789 $r =~ s/"/&quot;/g;
3790 $r = '"'.$r.'"';
3791 }
3792 ##XDPPAttrLiteralElement
3793
3794 IFClsETDef:
3795 @IFQName: XDPMinimumLiteralElement
3796 @ETQName: xdp|minimum-literal
3797 @ClsQName: ManakaiDOMXDPMinimumLiteralElement
3798
3799 @IFISA: XDPElement
3800 @ClsISA: ManakaiDOMXDPElement
3801
3802 @enDesc:
3803 An <XE::xdp|minimum-literal> element represents an XML public identifier
3804 literal.
3805
3806 @CAttr:
3807 @@Name: dtdText
3808 @@Type: DOMString
3809 @@Get:
3810 @@@PerlDef:
3811 $r = $self->SUPER::dtd_text;
3812 $r =~ s/"/%22/g;
3813 $r = '"'.$r.'"';
3814 ##XDPMinimumLiteralElement
3815
3816 IFClsETDef:
3817 @IFQName: XDPSystemLiteralElement
3818 @ETQName: xdp|system-literal
3819 @ClsQName: ManakaiDOMXDPSystemLiteralElement
3820
3821 @IFISA: XDPElement
3822 @ClsISA: ManakaiDOMXDPElement
3823
3824 @enDesc:
3825 An <XE::xdp|system-literal> element represents an XML system
3826 literal.
3827
3828 @CAttr:
3829 @@Name: dtdText
3830 @@Type: DOMString
3831 @@Get:
3832 @@@PerlDef:
3833 $r = $self->SUPER::dtd_text;
3834 $r =~ s/"/%22/g;
3835 $r = '"'.$r.'"';
3836 ##XDPSystemLiteralElement

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24