/[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.11 - (show annotations) (download)
Sat Dec 30 08:27:46 2006 UTC (17 years, 10 months ago) by wakaba
Branch: MAIN
Changes since 1.10: +9 -30 lines
++ manakai/bin/ChangeLog	30 Dec 2006 06:47:17 -0000
2006-12-30  Wakaba  <wakaba@suika.fam.cx>

	* idl2dis.pl: Removed.

++ manakai/lib/Message/Markup/ChangeLog	30 Dec 2006 08:26:03 -0000
	* Atom.dis, SuikaWiki.dis, H2H.dis: |WithFor|
	and |DefaultFor| properties are removed.

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

++ manakai/lib/Message/Util/ChangeLog	30 Dec 2006 08:26:59 -0000
	* PerlCode.dis: |WithFor| and |DefaultFor| are removed.

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

++ manakai/lib/Message/DOM/ChangeLog	30 Dec 2006 08:25:38 -0000
        GenericLS.dis, TreeCore.dis, DOMString.dis,
        XML.dis, Element.dis, Document.dis, TreeStore,dis,
        Traversal.dis, XDoctype.dis, XMLParser.dis, DOMLS.dis,
        SimpleLS.dis, DOMMain.dis, XDP.dis: |WithFor| specifications
	and |DefaultFor|s are removed.

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

	* CharacterData.dis, DOMCore.dis, DOMFeature.dis,
++ manakai/lib/Message/URI/ChangeLog	30 Dec 2006 08:26:32 -0000
	* Generic.dis: |WithFor| and |DefaultFor| are removed.

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

++ manakai/lib/Message/Charset/ChangeLog	30 Dec 2006 08:24:04 -0000
	* Encode.dis (Require): |WithFor| specifications are removed.
	(DefaultFor): Removed.

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

++ manakai/lib/manakai/ChangeLog	30 Dec 2006 07:46:56 -0000
2006-12-30  Wakaba  <wakaba@suika.fam.cx>

	* dis.pl: Removed.

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

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24