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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.26 - (show annotations) (download)
Thu Feb 16 20:03:20 2006 UTC (20 years, 6 months ago) by wakaba
Branch: MAIN
Changes since 1.25: +2299 -133 lines
++ manakai/lib/Message/Util/DIS/ChangeLog	16 Feb 2006 20:02:19 -0000
2006-02-16  Wakaba  <wakaba@suika.fam.cx>

	* Test.dis (assertDOMTreeEquals): The |notations| attribute
	support is added.

++ manakai/lib/Message/DOM/ChangeLog	16 Feb 2006 20:01:21 -0000
2006-02-17  Wakaba  <wakaba@suika.fam.cx>

	* XMLParser.dis: Default attribute are now namespace aware.
	(parseString): Don't output |Document| warnings
	during tree construction to standard error output.

2006-02-16  Wakaba  <wakaba@suika.fam.cx>

	* XMLParser.dis: Name check for XML 1.0, XML Namespace 1.0, and
	XML Namespace 1.1 is implemented.  Namespace well-formedness
	error detection is implemented.  Generates |Notation| nodes
	from notation declarations.
	(checkNCName, checkQName): New code fragments.

	* XDoctype.dis (DocumentXDoctype): Factory methods
	don't check |MDOMX:MDOM_BAD_NAME| if |Document.strictErrorChecking|
	is |false|.

	* DOMCore.dis (wf-invalid-character-in-node-name,
	wf-invalid-character): Removed (moved to |MDOM:Tree| module).

	* Tree.dis '(wf-invalid-character-in-node-name,
        wf-invalid-character): New errors (from |MDOM:DOMCore| module).
	(Attr.specified): Setter added.
	(cfg:dtd-default-attributes): New configuration parameter.
	(Document.createEntityReference): Don't check |MDOMX:MDOM_BAD_NAME|
	if |Document.strictErrorChecking| is |false|.

1 Module:
2 @QName: MDOM|XMLParser
3 @Namespace:
4 http://suika.fam.cx/~wakaba/archive/2004/dom/xml-parser#
5
6 @FullName:
7 @@lang:en
8 @@@: XML Parser
9
10 @DISCore:author: DISCore|Wakaba
11 @License: license|Perl+MPL
12 @Date:
13 $Date: 2006/02/15 15:36:16 $
14
15 @DefaultFor: ManakaiDOM|ManakaiDOMLatest
16
17 @Require:
18 @@Module:
19 @@@QName: MDOM|DOMLS
20 @@@WithFor: ManakaiDOM|ManakaiDOMLatest
21 @@Module:
22 @@@QName: MDOM|XDoctype
23 @@@WithFor: ManakaiDOM|ManakaiDOMLatest
24
25 Namespace:
26 @c:
27 http://suika.fam.cx/~wakaba/archive/2004/8/18/dom-core#
28 @cfg:
29 http://suika.fam.cx/www/2006/dom-config/
30 @d:
31 http://suika.fam.cx/~wakaba/archive/2004/dom/xdt#
32 @dis:
33 http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#dis--
34 @dtest:
35 http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/DIS#Test/
36 @dx:
37 http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/Error/DOMException#
38 @ecore:
39 http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/Error/Core/
40 @f:
41 http://suika.fam.cx/~wakaba/archive/2004/dom/feature#
42 @fe:
43 http://suika.fam.cx/www/2006/feature/
44 @gls:
45 http://suika.fam.cx/~wakaba/archive/2004/dom/gls#
46 @idl:
47 http://suika.fam.cx/~wakaba/archive/2004/dis/IDL#
48 @infoset:
49 http://www.w3.org/2001/04/infoset#
50 @lang:
51 http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#
52 @license:
53 http://suika.fam.cx/~wakaba/archive/2004/8/18/license#
54 @LSEV:
55 http://www.w3.org/2002/DOMLS
56 @ManakaiDOM:
57 http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#
58 @ManakaiDOMLS:
59 http://suika.fam.cx/~wakaba/archive/2004/mdom-ls#
60 @MDOM:
61 http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#ManakaiDOM.
62 @MDOMX:
63 http://suika.fam.cx/~wakaba/archive/2004/8/4/manakai-dom-exception#
64 @mn:
65 http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/ManakaiNode#
66 @rdf:
67 http://www.w3.org/1999/02/22-rdf-syntax-ns#
68 @rdfs:
69 http://www.w3.org/2000/01/rdf-schema#
70 @t:
71 http://suika.fam.cx/~wakaba/archive/2004/dom/tree#
72 @test:
73 http://suika.fam.cx/~wakaba/archive/2004/dis/Test#
74 @x:
75 http://suika.fam.cx/~wakaba/archive/2004/dom/xml#
76 @xml:
77 http://www.w3.org/XML/1998/namespace
78 @xml-dtd:
79 http://www.w3.org/TR/REC-xml
80 @xmlns:
81 http://www.w3.org/2000/xmlns/
82 @xp:
83 http://suika.fam.cx/~wakaba/archive/2004/dom/xml-parser#
84
85 ## -- Features
86
87 ElementTypeBinding:
88 @Name: FeatureDef
89 @ElementType:
90 dis:ResourceDef
91 @ShadowContent:
92 @@rdf:type: f|Feature
93 @@For: =ManakaiDOM|all
94
95 ElementTypeBinding:
96 @Name: FeatureVerDef
97 @ElementType:
98 dis:ResourceDef
99 @ShadowContent:
100 @@rdf:type: f|Feature
101
102 ElementTypeBinding:
103 @Name: featureQName
104 @ElementType:
105 f:name
106 @ShadowContent:
107 @@ContentType: DISCore|QName
108
109 ResourceDef:
110 @QName: DOMString
111 @AliasFor: DOMMain|DOMString
112 @For: ManakaiDOM|DOM
113
114 ResourceDef:
115 @QName: Node
116 @AliasFor: t|Node
117 @For: ManakaiDOM|DOM
118
119 ResourceDef:
120 @QName: Element
121 @AliasFor: t|Element
122 @For: ManakaiDOM|DOM
123
124 ResourceDef:
125 @QName: Document
126 @AliasFor: t|Document
127 @For: ManakaiDOM|DOM
128
129 ResourceDef:
130 @QName: DocumentXDoctype
131 @AliasFor: d|DocumentXDoctype
132 @For: ManakaiDOM|DOM
133
134 ResourceDef:
135 @QName: DTDef
136 @AliasFor: d|DocumentTypeDefinition
137 @For: ManakaiDOM|DOM
138
139 ResourceDef:
140 @QName: ETDef
141 @AliasFor: d|ElementTypeDefinition
142 @For: ManakaiDOM|DOM
143
144 ResourceDef:
145 @QName: ATDef
146 @AliasFor: d|AttributeDefinition
147 @For: ManakaiDOM|DOM
148
149 ElementTypeBinding:
150 @Name: ClsDef
151 @ElementType:
152 dis:ResourceDef
153 @ShadowContent:
154 @@rdf:type:
155 @@@@: dis|MultipleResource
156 @@@ForCheck: !ManakaiDOM|ForIF !ManakaiDOM|ForClass
157 @@resourceFor:
158 @@@@: ManakaiDOM|ForClass
159 @@@ForCheck: ManakaiDOM|ManakaiDOM !=ManakaiDOM|ManakaiDOM
160 @@For: ManakaiDOM|DOM3
161 @@For: =ManakaiDOM|ManakaiDOM
162
163 @@rdf:type:
164 @@@@: DISLang|Class
165 @@@ForCheck: ManakaiDOM|ForClass
166
167 ElementTypeBinding:
168 @Name: ClsQName
169 @ElementType:
170 dis:QName
171 @ShadowContent:
172 @@ForCheck: ManakaiDOM|ForClass
173
174 ElementTypeBinding:
175 @Name: ClsISA
176 @ElementType:
177 dis:ISA
178 @ShadowContent:
179 @@ForCheck: ManakaiDOM|ForClass
180
181 ElementTypeBinding:
182 @Name: nullCase
183 @ElementType:
184 dis:ResourceDef
185 @ShadowContent:
186 @@rdf:type: ManakaiDOM|InCase
187 @@Value:
188 @@@is-null:1
189
190 ResourceDef:
191 @QName: LSParser
192 @AliasFor: DOMLS|LSParser
193 @For: ManakaiDOM|DOM3
194
195 ClsDef:
196 @ClsQName: ManakaiXMLParser
197
198 @Implement: DOMLS|LSParser
199
200 @f:implements:
201 @@@: DOMLS|LSFeature30
202 @@For: ManakaiDOM|DOM3
203
204 @DISLang:role: gls|ParserRole
205
206 @enDesc:
207 Note that the <Class::ManakaiXMLParser> reports any XML errors
208 (syntax errors and / or well-formedness constraint errors)
209 via the <IF::DOMCore:error-handler> registered to
210 the <A::DOMLS:LSParser.domConfig> object. Each error has
211 its <A::DOMCore:DOMError.severity>, either <C::DOMCore:SEVERITY_ERROR>
212 or <C::DOMCore:SEVERITY_FATAL_ERROR>. However, their semantics
213 are slight different from the ones of <QUOTE::error> and
214 <QUOTE::fatal error> in XML; in this implemenetation,
215 <C::DOMCore:SEVERITY_ERROR> implies that the parsing process
216 can effectively be continued to detect more errors while
217 <C::DOMCore:SEVERITY_FATAL_ERROR> implies that the error
218 is serious so that the result document tree and any errors
219 might be far from the ones obtained when the error would not
220 be found.
221
222 @Attr:
223 @@Name: domConfig
224 @@enDesc:
225 The configuration of the parser.
226
227 @@Get:
228 @@@Type: DOMCore|DOMConfiguration
229 @@@enDesc: The DOM configuration object.
230 @@@PerlDef:
231 __CODE{DOMCore|getConfigObject::
232 $target => $self,
233 $targetHash => $self,
234 $targetType => {<IFName::LSParser>},
235 $result => $r,
236 }__;
237
238 @Method:
239 @@ManakaiDOM:isForInternal:1
240 @@ForCheck: ManakaiDOM|ForClass
241 @@Operator: DISPerl|NewMethod
242 @@enDesc:
243 Creates a new instance of the object.
244 @@Param:
245 @@@Name: impl
246 @@@Type: gls|GLSImplementation
247 @@@enDesc:
248 The implementation from which the parser is created.
249 @@Param:
250 @@@Name: features
251 @@@Type: DOMString
252 @@@dis:actualType: f|FeaturesString
253 @@@enDesc:
254 The set of features requested for the parser.
255 @@Return:
256 @@@Type: DOMMain|DOMObject
257 @@@dis:actualType: LSParser
258 @@@enDesc:
259 The newly created parser.
260 @@@PerlDef:
261 $r = bless {
262 <H::DOMCore:implementation> => $impl,
263 }, $self;
264
265 @Method:
266 @@Name: parseString
267 @@enImplNote:
268 Non-standard - to be removed
269
270 @@Param:
271 @@@Name: sourceText
272 @@@Type: DOMString
273 @@Return:
274 @@@Type: Document
275 @@@PerlDef:
276
277 $self->{char} = [];
278 $self->{token} = [];
279 $self->{entity} = [{
280 reptxt => \$sourceText,
281 line => 1,
282 column => 1,
283 pos => 0,
284 }];
285 $self->{location} = $self->{entity}->[-1];
286 $self->{entity_char} = [];
287 $self->{entity_token} = [];
288 $self->{xml_version} = '1.0';
289 $self->{standalone} = false;
290 $self->{has_xref} = false;
291 $self->{general_entity} = {
292 lt => {is_predefined => true},
293 gt => {is_predefined => true},
294 amp => {is_predefined => true},
295 quot => {is_predefined => true},
296 apos => {is_predefined => true},
297 };
298 $self->{param_entity} = {};
299 $self->{attr} = {};
300 # $self->{attr}->{$element_type_name}->{$attr_name} = $attr_def
301 $self->{dont_process} = false;
302 ## Don't process |ENTITY| and |ATTLIST| declarations.
303
304 __DEEP{
305 $r = $self->{<H::c|implementation>}-><M::DOMImpl.createDocument>;
306 $self->{doc} = $r;
307 $self->{doc_cfg} = $r-><AG::Document.domConfig>;
308 CORE::delete $self->{docx};
309 CORE::delete $self->{dtdef};
310 CORE::delete $self->{dtdecl};
311
312 $r-><AS::Document.strictErrorChecking> (false);
313 ## NOTE: Any checks such as |Name| validity done by
314 ## methods on DOM nodes are disabled. It might result
315 ## in creating an ill-formed DOM tree when parser
316 ## errors are traped by |error-handler|.
317 $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>
318 (<Q::cfg|entity-reference-read-only> => false);
319 ## NOTE: Turn this configuration parameter off is required
320 ## because entity reference subtree is created by
321 ## the parser rather than |createEntityReference|'s
322 ## cloning. Parser's |cfg:entity-reference-read-only|
323 ## configuration parameter controls whether generated
324 ## subtree is then marked as read-only or not.
325 $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>
326 (<Q::cfg|clone-entity-reference-subtree> => true);
327 ## NOTE: Turn this configuration parameter on makes
328 ## entity reference subtrees in attribute default values
329 ## cloned as is into default attribute node subtrees.
330 $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>
331 (<Q::cfg|dtd-default-attributes> => false);
332 ## NOTE: Don't create DTD default attributes by
333 ## |createElementNS| method.
334 $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>
335 ('error-handler' => sub {
336 my (undef, $err) = @_;
337 return ($err-><AG::c|DOMError.severity> !=
338 <C::c|DOMError.SEVERITY_FATAL_ERROR>);
339 })
340 unless $Message::DOM::XMLParser::DEBUG;
341 ## NOTE: The default error handler in manakai |wanr|s error
342 ## description.
343
344 ## Document entity -> |Document| node
345 $self->_parse_DocumentEntity;
346
347 ## Replacement tree for general |Entity| nodes
348 my @ent = values %{$self->{general_entity}};
349 for my $ent (@ent) {
350 if (exists $ent->{has_replacement_text}) {
351 my $ent_name = $ent->{name};
352 $self->{entity} = [<Code::getCopyOfEntityState::
353 $entity_type = 'general_entity',
354 $entity_name = $ent_name>];
355 $self->{location} = $self->{entity}->[-1];
356 $self->{token} = [];
357 $self->{char} = [];
358 local $ent->{is_opened} = true;
359 ## TODO: External entity support
360 $self->_parse_InternalGeneralParsedEntity ($ent->{node});
361 $ent->{node}-><AS::x|Entity.hasReplacementTree> (true);
362 ## ISSUE: Should errors detected by this phase result
363 ## in |DOMLS:PARSE_ERR| exception thrown?
364 }
365 ## TODO: Read-only if configuration (for all entities)
366 }
367
368 ## Turns flags to their default value
369 $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>
370 (<Q::cfg|entity-reference-read-only> => null);
371 $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>
372 (<Q::cfg|clone-entity-reference-subtree> => null);
373 $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>
374 (<Q::cfg|dtd-default-attributes> => null);
375 $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>
376 ('error-handler' => null);
377 $r-><AS::Document.strictErrorChecking> (true);
378 }__;
379
380 @Method:
381 @@Name: shiftChar
382 @@ManakaiDOM:isForInternal:1
383 @@ForCheck: ManakaiDOM|ForClass
384 @@enDesc:
385 Returns the next character.
386 @@Return:
387 @@@Type: idl|long||ManakaiDOM|all
388 @@@enDesc:
389 The code position number of the next character, if any,
390 or <CODE::-1>.
391 @@@PerlDef:
392 if (@{$self->{char}}) {
393 $r = shift @{$self->{char}};
394 } else {
395 no warnings 'substr';
396 ## substr outside length warnings at the end of the string
397 GETCHAR: {
398 my $char = substr (${$self->{entity}->[-1]->{reptxt}},
399 $self->{entity}->[-1]->{pos}, 1);
400
401 if (defined $char and length $char) {
402 $self->{entity}->[-1]->{pos}++;
403 $r = ord $char;
404 if ($r == 0x000A) {
405 $self->{entity}->[-1]->{line}++;
406 $self->{entity}->[-1]->{column} = 1;
407 } elsif ($r == 0x000D) {
408 my $next_char = substr (${$self->{entity}->[-1]->{reptxt}},
409 $self->{entity}->[-1]->{pos}, 1);
410 if ($next_char eq "\x0A") {
411 $self->{entity}->[-1]->{pos}++;
412 $self->{entity}->[-1]->{line}++;
413 $self->{entity}->[-1]->{column} = 1;
414 } elsif ($next_char eq "\x85") {
415 if ($self->{xml_version} eq '1.1') {
416 if ($self->{entity}->[-1]->{no_xml11_eol}) {
417 my $location = {
418 utf32_offset => $self->{entity}->[-1]->{pos} - 1,
419 line_number => $self->{entity}->[-1]->{line},
420 column_number => $self->{entity}->[-1]->{column},
421 };
422 my $continue = __DOMCore:ERROR{
423 xp|fatal-xml11-end-of-line-in-xml-declaration::
424 DOMCore|location => {$location},
425 xp|character-number => {$r},
426 }__;
427 unless ($continue) {
428 __EXCEPTION{DOMLS|PARSE_ERR}__;
429 }
430 } # no_xml11_eol
431 $self->{entity}->[-1]->{pos}++;
432 $self->{entity}->[-1]->{line}++;
433 $self->{entity}->[-1]->{column} = 1;
434 } else {
435 ## |no_xml11_eol| will be tested later.
436 $self->{entity}->[-1]->{column}++;
437 ## Line number will be increased by next |shiftChar| call.
438 }
439 } else {
440 $self->{entity}->[-1]->{line}++;
441 $self->{entity}->[-1]->{column} = 1;
442 }
443 $r = 0x000A;
444 } elsif (
445 not ((0x0020 <= $r and $r <= 0x007E) or
446 (0x00A0 <= $r and $r <= 0xD7FF) or
447 (0xE000 <= $r and $r <= 0xFFFD) or
448 (0x10000 <= $r and $r <= 0x10FFFF)) and
449 $r != 0x0009 and $r != 0x0085 and
450 not ($self->{xml_version} eq '1.0' and
451 (0x007F <= $r and $r <= 0x009F))
452 ) {
453 my $location = {
454 utf32_offset => $self->{entity}->[-1]->{pos} - 1,
455 line_number => $self->{entity}->[-1]->{line},
456 column_number => $self->{entity}->[-1]->{column},
457 };
458 my $continue = __DOMCore:ERROR{xp|wf-legal-literal-character::
459 DOMCore|location => {$location},
460 xp|character-number => {$r},
461 }__;
462 unless ($continue) {
463 __EXCEPTION{DOMLS|PARSE_ERR}__;
464 }
465 $self->{entity}->[-1]->{column}++;
466 } elsif ($r == 0x0085 or $r == 0x2028) {
467 if ($self->{entity}->[-1]->{no_xml11_eol}) {
468 my $location = {
469 utf32_offset => $self->{entity}->[-1]->{pos} - 1,
470 line_number => $self->{entity}->[-1]->{line},
471 column_number => $self->{entity}->[-1]->{column},
472 };
473 my $continue = __DOMCore:ERROR{
474 xp|fatal-xml11-end-of-line-in-xml-declaration::
475 DOMCore|location => {$location},
476 xp|character-number => {$r},
477 }__;
478 unless ($continue) {
479 __EXCEPTION{DOMLS|PARSE_ERR}__;
480 }
481 } # no_xml11_eol
482 $r = 0x000A if $self->{xml_version} eq '1.1';
483 ## Even in XML 1.0 it increases the line number.
484 $self->{entity}->[-1]->{line}++;
485 $self->{entity}->[-1]->{column} = 1;
486 } else {
487 $self->{entity}->[-1]->{column}++;
488 }
489 } else {
490 $r = -1;
491 }
492 } # GETCHAR
493 }
494
495 @Method:
496 @@ManakaiDOM:isForInternal: 1
497 @@Operator: ManakaiDOM|MUErrorHandler
498 @@enDesc:
499 When a <IF::ecore|ErrorInterface||ManakaiDOM|Perl> is <Perl::report>ed,
500 then this method is invoked.
501
502 The method calls the <cfg::DOMCore|error-handler> if the error is of
503 <IF::DOMCore|DOMError>. Otherwise, the error is re-thrown so that
504 corresponding <Perl::catch> clause, if any, can catch the error.
505 @@Param:
506 @@@Name: err
507 @@@Type: ecore|ErrorInterface||ManakaiDOM|Perl
508 @@@enDesc:
509 The reported error object.
510 @@Return:
511 @@@Type: DISPerl|Any
512 @@@enDesc:
513 If the <P::err> is a <IF::DOMCore|DOMError>, then the return value
514 of the error handler.
515
516 {NOTE:: If the error is thrown, the method never returns.
517 }
518 @@@nullCase:
519 @@@@enDesc:
520 No error handler.
521 @@@PerlDef:
522 if ($err->isa (<IFName::DOMCore|DOMError||ManakaiDOM|ManakaiDOM>)) {
523 __DEEP{
524 A: {
525 my $cfg = $self-><AG::LSParser.domConfig>;
526 my $h = $cfg-><M::DOMCore|DOMConfiguration.getParameter>
527 ('error-handler');
528 $r = $h-><M::DOMCore|DOMErrorHandler.handleError> ($err);
529 } # A
530 }__;
531 } else {
532 $err-><M::ecore|ErrorInterface||ManakaiDOM|Perl.throw>;
533 }
534
535 @DISPerl:dpgDef:
536
537 /*
538 XML Document Entity
539
540 document := prolog element *Misc
541 - *Char RestrictedChar *Char ;; [1]
542 */
543 rule DocumentEntity : standalone {
544 /*
545 prolog := XMLDecl? *Misc [doctypedecl *Misc] ;; [22]
546 */
547 ?lexmode DocumentStart;
548
549 my $doc;
550 lang:Perl {
551 $doc = $self->{doc};
552 }
553
554 ~? (XDO) {
555 ?lexmode XMLDeclarationOrPI;
556 lang:Perl {
557 $self->{entity}->[-1]->{no_xml11_eol} = true;
558 }
559 ~ (S) { // XML declaration
560 &_XMLDeclaration_ ($doc => $doc);
561 ~ (PIC2) {
562 ?lexmode DocumentProlog;
563 } else {
564 ?lexmode DocumentProlog;
565 }
566 } (NameChar) { // Processing instruction whose target begins with |xml|
567 my $target_token;
568 lang:Perl ($v => $token.value) {
569 $target_token = $token;
570 $target_token->{value} = 'xml'.$target_token->{value};
571 $self->{entity}->[-1]->{no_xml11_eol} = false;
572 }
573 ?lexmode PINmtoken;
574 ~? (Nmtoken) {
575 lang:Perl ($v => $token.value) {
576 $target_token->{value} .= $v;
577 }
578 ?lexmode PIName;
579 }
580 lang:Perl {
581 $target_token->{type} = 'Name';
582 $target_token->{location_d} += 3; # 'xml'
583 unshift @{$self->{token}}, $token;
584 $token = $target_token;
585 }
586 &_ProcessingInstruction_ ($doc => $doc, $parent => $doc);
587 ~ (PIC) {
588 ?lexmode DocumentProlog;
589 } else {
590 ?lexmode DocumentProlog;
591 }
592 } else {
593 lang:Perl {
594 $self->{entity}->[-1]->{no_xml11_eol} = false;
595 }
596 }
597 } else {
598 ?lexmode 'DocumentProlog';
599 }
600
601 // *Misc
602 ~* (CDO) {
603 &_CommentDeclaration_ ($doc => $doc, $parent => $doc);
604
605 ~ (MDC) {
606 ?lexmode DocumentProlog;
607 } else {
608 ?lexmode DocumentProlog;
609 }
610 } (PIO) {
611 &_ProcessingInstruction_ ($doc => $doc, $parent => $doc);
612
613 ~ (PIC) {
614 ?lexmode 'DocumentProlog';
615 } else {
616 ?lexmode DocumentProlog;
617 }
618 } (S) {
619 //
620 }
621
622 // doctypedecl
623 ~? (MDO) {
624 &_DocumentTypeDeclaration_ ($doc => $doc);
625
626 ~ (MDC) {
627 ?lexmode DocumentMisc;
628 } else {
629 ?lexmode DocumentMisc;
630 }
631 } else {
632 ?lexmode DocumentMisc;
633 }
634
635 lang:Perl {
636 $self->{doc}-><AS::Document.allDeclarationsProcessed> (true)
637 unless $self->{dont_process};
638 }
639
640 // *Misc
641 ~* (CDO) {
642 &_CommentDeclaration_ ($doc => $doc, $parent => $doc);
643
644 ~ (MDC) {
645 ?lexmode DocumentMisc;
646 } else {
647 ?lexmode DocumentMisc;
648 }
649 } (PIO) {
650 &_ProcessingInstruction_ ($doc => $doc, $parent => $doc);
651
652 ~ (PIC) {
653 ?lexmode 'DocumentMisc';
654 } else {
655 ?lexmode DocumentMisc;
656 }
657 } (S) {
658 //
659 }
660
661 // Document element
662 ~ (STAGO) {
663 &Element_ ($doc => $doc, $parent => $doc)
664 : unshift-current-token;
665 ~ (TAGC) {
666 ?lexmode DocumentEnd;
667 } else {
668 ?lexmode DocumentEnd;
669 }
670 } else {
671 ?lexmode 'DocumentEnd';
672 }
673
674 // *Misc
675 ~* (CDO) {
676 &_CommentDeclaration_ ($doc => $doc, $parent => $doc);
677
678 ~ (MDC) {
679 ?lexmode DocumentEnd;
680 } else {
681 ?lexmode DocumentEnd;
682 }
683 } (PIO) {
684 &_ProcessingInstruction_ ($doc => $doc, $parent => $doc);
685 ~ (PIC) {
686 ?lexmode 'DocumentEnd';
687 } else {
688 ?lexmode DocumentEnd;
689 }
690 } (S) {
691 //
692 }
693
694 ~ (#EOF) { }
695 } // DocumentEntity
696
697 /*
698 Internal General Parsed Entity
699
700 An internal general parsed entity is well-formed if its
701 replacement text matches the production labeled |content|.
702 */
703 rule InternalGeneralParsedEntity ($ent) : standalone {
704 ?lexmode ElementContent;
705
706 my $ns;
707 lang:Perl {
708 $ns = {
709 xml => <Q::xml:>,
710 xmlns => <Q::xmlns:>,
711 };
712 }
713
714 &content ($parent => $ent, $ns => $ns);
715
716 ~ (#EOF) { }
717 } // InternalGeneralParsedEntity
718
719 /*
720 XML Declaration
721
722 XMLDecl := '<?xml' VersionInfo
723 [EncodingDecl]
724 [SDDecl]
725 [S] '?>' ;; [23]
726
727 NOTE: XML declaration is optional in XML 1.0
728 while it is required in XML 1.1.
729 */
730 rule _XMLDeclaration_ {
731 // ~ (XDO) { }
732 ?lexmode XMLDeclaration;
733 //lang:Perl {
734 // $self->{entity}->[-1]->{no_xml11_eol} = true;
735 //}
736 //~ (S) { }
737
738 ~ (Name == 'version') {
739 ~? (S) { }
740 ~ (VI) { }
741 ~? (S) { }
742
743 my $ver;
744 my $bad_token;
745
746 ~ (LIT) {
747 ?lexmode AttributeValueLiteral;
748
749 ~ (STRING) {
750 lang:Perl ($version => $token.value) {
751 $ver = $version;
752 $bad_token = $token;
753 }
754 }
755
756 ~ (LIT) {
757 ?lexmode XMLDeclaration;
758 }
759 } (LITA) {
760 ?lexmode AttributeValueLiteralA;
761
762 ~ (STRING) {
763 lang:Perl ($version => $token.value) {
764 $ver = $version;
765 $bad_token = $token;
766 }
767 }
768
769 ~ (LITA) {
770 ?lexmode XMLDeclaration;
771 }
772 }
773
774 lang:Perl : has-error {
775 unless ($ver eq '1.0' or $ver eq '1.1') {
776 my $location;
777 __CODE{xp|get-location-from-token::
778 $token => {$bad_token},
779 $result => {$location},
780 }__;
781 my $continue = __DOMCore:ERROR{xp|wf-unsupported-xml-version::
782 DOMCore|location => {$location},
783 xp|parent => {$self->{doc}},
784 infoset|version => {$ver},
785 xp|error-token => {$bad_token},
786 }__;
787 unless ($continue) {
788 __EXCEPTION{DOMLS|PARSE_ERR}__;
789 }
790 }
791 $self->{doc}-><AS::Document.xmlVersion> ($ver);
792 $self->{xml_version} = $ver;
793 }
794
795 ~? (S) { }
796 }
797
798 ~? (Name == 'encoding') {
799 ~? (S) { }
800 ~ (VI) { }
801 ~? (S) { }
802
803 my $ver;
804 my $bad_token;
805
806 ~ (LIT) {
807 ?lexmode AttributeValueLiteral;
808
809 ~ (STRING) {
810 lang:Perl ($version => $token.value) {
811 $ver = $version;
812 $bad_token = $token;
813 }
814 }
815
816 ~ (LIT) {
817 ?lexmode XMLDeclaration;
818 }
819 } (LITA) {
820 ?lexmode AttributeValueLiteralA;
821
822 ~ (STRING) {
823 lang:Perl ($version => $token.value) {
824 $ver = $version;
825 $bad_token = $token;
826 }
827 }
828
829 ~ (LITA) {
830 ?lexmode XMLDeclaration;
831 }
832 }
833
834 lang:Perl : has-error {
835 unless ($ver =~ /\A[A-Za-z][A-Za-z0-9._-]*\z/) {
836 my $location;
837 __CODE{xp|get-location-from-token::
838 $token => {$bad_token},
839 $result => {$location},
840 }__;
841 my $continue = __DOMCore:ERROR{xp|wf-malformed-enc-name::
842 DOMCore|location => {$location},
843 xp|parent => {$self->{doc}},
844 xp|name => {$ver},
845 xp|error-token => {$bad_token},
846 }__;
847 unless ($continue) {
848 __EXCEPTION{DOMLS|PARSE_ERR}__;
849 }
850 }
851 $self->{doc}-><AS::Document.xmlEncoding> ($ver);
852 }
853
854 ~? (S) { }
855 }
856
857 ~? (Name == 'standalone') {
858 ~? (S) { }
859 ~ (VI) { }
860 ~? (S) { }
861
862 my $ver;
863 my $bad_token;
864
865 ~ (LIT) {
866 ?lexmode AttributeValueLiteral;
867
868 ~ (STRING) {
869 lang:Perl ($version => $token.value) {
870 $ver = $version;
871 $bad_token = $token;
872 }
873 }
874
875 ~ (LIT) {
876 ?lexmode XMLDeclaration;
877 }
878 } (LITA) {
879 ?lexmode AttributeValueLiteralA;
880
881 ~ (STRING) {
882 lang:Perl ($version => $token.value) {
883 $ver = $version;
884 $bad_token = $token;
885 }
886 }
887
888 ~ (LITA) {
889 ?lexmode XMLDeclaration;
890 }
891 }
892
893 lang:Perl : has-error {
894 unless ($ver eq 'yes' or $ver eq 'no') {
895 my $location;
896 __CODE{xp|get-location-from-token::
897 $token => {$bad_token},
898 $result => {$location},
899 }__;
900 my $continue = __DOMCore:ERROR{xp|wf-malformed-xml-standalone::
901 DOMCore|location => {$location},
902 xp|parent => {$self->{doc}},
903 xp|name => {$ver},
904 xp|error-token => {$bad_token},
905 }__;
906 unless ($continue) {
907 __EXCEPTION{DOMLS|PARSE_ERR}__;
908 }
909 }
910 if ($ver eq 'yes') {
911 $self->{doc}-><AS::Document.xmlStandalone> (true);
912 $self->{standalone} = true;
913 }
914 }
915
916 ~? (S) { }
917 }
918
919 ~ (PIC1) {
920 lang:Perl {
921 $self->{entity}->[-1]->{no_xml11_eol} = false;
922 }
923 } else {
924 lang:Perl {
925 $self->{entity}->[-1]->{no_xml11_eol} = false;
926 }
927 }
928
929 // ~ (PIC2) { }
930 } // _XMLDeclaration_
931
932 /*
933 Comment Declaration
934
935 Comment := '<!--' *(Char - '-' / '-' (Char - '-'))
936 '-->' ;; [15]
937 */
938 rule _CommentDeclaration_ ($doc, $parent) {
939 ?lexmode 'CommentDeclaration';
940
941 ~? (STRING) {
942 lang:Perl ($data => $token.value) {
943 my $com = $doc-><M::Document.createComment> ($data);
944 $parent-><M::Node.appendChild> ($com);
945 }
946 } else {
947 lang:Perl {
948 my $com = $doc-><M::Document.createComment> ('');
949 $parent-><M::Node.appendChild> ($com);
950 }
951 }
952
953 ~ (COM) {
954 ?lexmode MarkupDeclaration;
955 } else {
956 ?lexmode MarkupDeclaration;
957 }
958
959 // ~ (MDC) { }
960 } // _CommentDeclaration
961
962 rule _CommentDeclarationDTD {
963 ?lexmode CommentDeclaration;
964
965 ~? (STRING) {
966 //
967 }
968
969 ~ (COM) {
970 ?lexmode MarkupDeclaration;
971 } else {
972 ?lexmode MarkupDeclaration;
973 }
974
975 ~ (MDC) {
976 ?lexmode DTD;
977 } else {
978 ?lexmode DTD;
979 }
980 } // _CommentDeclarationDTD
981
982 /*
983 Processing Instruction
984
985 PI := '<?' PITarget [S *Char - *Char '?>' *Char]
986 '?>' ;; [16]
987 */
988 rule _ProcessingInstruction_ ($doc, $parent) {
989 ?lexmode 'PIName';
990
991 my $pi;
992
993 ~ (Name) {
994 lang:Perl ($name => $token.value) : has-error {
995 if (lc $name eq 'xml') {
996 my $location;
997 __CODE{xp|get-location-from-token::
998 $token => {$token},
999 $result => {$location},
1000 }__;
1001 my $continue = __DOMCore:ERROR{xp|wf-pi-target-is-xml::
1002 xp|name => {$name},
1003 DOMCore|location => {$location},
1004 xp|parent => {$parent},
1005 }__;
1006 unless ($continue) {
1007 __EXCEPTION{DOMLS|PARSE_ERR::
1008 }__;
1009 }
1010 }
1011 __CODE{checkNCName:: $name => $name}__;
1012
1013 $pi = $doc-><M::Document.createProcessingInstruction>
1014 ($name);
1015 }
1016 } else {
1017 lang:Perl {
1018 $pi = $doc-><M::Document.createProcessingInstruction> ('#INVALID');
1019 }
1020 }
1021
1022 ~? (S) {
1023 ?lexmode 'PIData';
1024
1025 my $tdata;
1026
1027 ~? (DATA) {
1028 lang:Perl ($data => $token.value) {
1029 $tdata = $data;
1030 }
1031 } else {
1032 lang:Perl {
1033 $tdata = '';
1034 }
1035 }
1036
1037 lang:Perl {
1038 $pi-><AS::Node.nodeValue> ($tdata);
1039 }
1040 }
1041
1042 lang:Perl {
1043 $parent-><M::Node.appendChild> ($pi);
1044 }
1045
1046 // ~ (PIC) { }
1047 } // _ProcessingInstruction_
1048
1049 /*
1050 Processing instruction in DTD
1051 */
1052 rule _ProcessingInstructionDTD ($doc, $doctype) {
1053 ?lexmode 'PIName';
1054
1055 my $pi;
1056
1057 ~ (Name) {
1058 lang:Perl ($name => $token.value) : has-error {
1059 if (lc $name eq 'xml') {
1060 my $location;
1061 __CODE{xp|get-location-from-token::
1062 $token => {$token},
1063 $result => {$location},
1064 }__;
1065 my $continue = __DOMCore:ERROR{xp|wf-pi-target-is-xml::
1066 xp|name => {$name},
1067 DOMCore|location => {$location},
1068 xp|parent => {$doctype},
1069 }__;
1070 unless ($continue) {
1071 __EXCEPTION{DOMLS|PARSE_ERR::
1072 }__;
1073 }
1074 }
1075 __CODE{checkNCName:: $name => $name}__;
1076
1077 $pi = $doc-><M::Document.createProcessingInstruction>
1078 ($name);
1079 }
1080 } else {
1081 lang:Perl {
1082 $pi = $doc-><M::Document.createProcessingInstruction> ('#INVALID');
1083 }
1084 }
1085
1086 ~? (S) {
1087 ?lexmode 'PIData';
1088
1089 my $tdata;
1090
1091 ~? (DATA) {
1092 lang:Perl ($data => $token.value) {
1093 $tdata = $data;
1094 }
1095 } else {
1096 lang:Perl {
1097 $tdata = '';
1098 }
1099 }
1100
1101 lang:Perl {
1102 $pi-><AS::Node.nodeValue> ($tdata);
1103 }
1104 }
1105
1106 lang:Perl {
1107 $doctype-><M::Node.appendChild> ($pi);
1108 }
1109
1110 ~ (PIC) {
1111 ?lexmode DTD;
1112 } else {
1113 ?lexmode DTD;
1114 }
1115 } // _ProcessingInstructionDTD
1116
1117 /*
1118 Element content parsing mode
1119
1120 element := EmptyElemTag /
1121 STag content ETag ;; [39]
1122 content := (CharData / element / Reference / CDSect /
1123 PI / Comment) ;; [43]
1124 */
1125 rule Element_ ($doc, $parent, $ns) : standalone {
1126 ?lexmode 'ElementContent';
1127
1128 my $node; // Current "parent" node
1129 my $nodes; // Node stack (w/o $current_node)
1130 my $type; // Current "parent" element type QName
1131 my $types; // Element type stack (w/o $current_type)
1132 //my $ns; // Current in-scope namespace bindings
1133 my $nses; // Namespace binding stack (w/o $current_ns)
1134
1135 lang:Perl {
1136 $node = $parent;
1137 $nodes = [];
1138 $type = '';
1139 $types = [];
1140 $ns ||= {
1141 xml => <Q::xml:>,
1142 xmlns => <Q::xmlns:>,
1143 };
1144 $nses = [];
1145 }
1146
1147 ~* : name => CONTENT
1148 (CharData) {
1149 // Character data
1150 lang:Perl ($data => $token.value) {
1151 $node-><M::Node.appendChild>
1152 ($doc-><M::Document.createTextNode> ($data));
1153 }
1154 } (STAGO) {
1155 // Start tag or empty element tag
1156
1157 ?lexmode 'StartTag';
1158
1159 ~ (Name) {
1160 my $attrs;
1161 lang:Perl ($name => $token.value) : has-error {
1162 __CODE{checkQName:: $name => $name}__;
1163 push @{$types}, $type;
1164 $type = $name;
1165 $attrs = {};
1166 }
1167
1168 ~? (S) {
1169 &AttributeSpecificationList
1170 ($doc => $doc, $attrs => $attrs);
1171 }
1172
1173 my $el;
1174
1175 /*
1176 Note that this implementation does not perform
1177 attribute value tokenization (but does white space
1178 normalization common to attribute types) and
1179 construct the tree as is. DOM Level 3 Core spec
1180 is unclear on this point. With tokenization,
1181 entity references cannot be preserved.
1182
1183 The manakai Node.nodeValue and Attr.value attributes
1184 do tokenization according to attribute types.
1185 */
1186
1187 /*
1188 ISSUE: Should |xml:id| attribute be typed?
1189 */
1190
1191 lang:Perl {
1192 push @{$nses}, $ns;
1193 $ns = {%$ns};
1194
1195 ## Default attributes
1196 DA: for my $atqname (%{$self->{attr}->{$type}}) {
1197 next DA unless $self->{attr}->{$type}->{$atqname};
1198 next DA if exists $attrs->{$atqname}; # specified
1199 my $dtype = $self->{attr}->{$type}->{$atqname}
1200 -><AG::ATDef.defaultType>;
1201 next DA unless $dtype == <C::ATDef.EXPLICIT_DEFAULT> or
1202 $dtype == <C::ATDef.FIXED_DEFAULT>;
1203 $attrs->{$atqname} = {is_default => true, nodes => []};
1204 for (@{$self->{attr}->{$type}->{$atqname}
1205 -><AG::Node.childNodes>}) {
1206 push @{$attrs->{$atqname}->{nodes}},
1207 $_-><M::Node.cloneNode> (true);
1208 }
1209 }
1210
1211 my %gattr;
1212 my %lattr;
1213 for my $atqname (keys %$attrs) {
1214 my ($pfx, $lname) = split /:/, $atqname;
1215 $attrs->{$atqname}->{def} = $self->{attr}->{$type}->{$atqname};
1216 if (defined $lname) { ## Global attribute
1217 if ($pfx eq 'xmlns') {
1218 my $nsuri = $attrs->{$atqname}->{is_default}
1219 ? $attrs->{$atqname}->{def}-><AG::Node.nodeValue>
1220 : $attrs->{$atqname}->{value};
1221 if (not $attrs->{$atqname}->{is_default} and
1222 $attrs->{$atqname}->{def}) {
1223 my $dt = $attrs->{$atqname}->{def}-><AG::ATDef.declaredType>;
1224 if ({
1225 <C::ATDef.ID_ATTR> => true,
1226 <C::ATDef.IDREF_ATTR> => true,
1227 <C::ATDef.IDREFS_ATTR> => true,
1228 <C::ATDef.ENTITY_ATTR> => true,
1229 <C::ATDef.ENTITIES_ATTR> => true,
1230 <C::ATDef.NMTOKEN_ATTR> => true,
1231 <C::ATDef.NMTOKENS_ATTR> => true,
1232 <C::ATDef.NOTATION_ATTR> => true,
1233 <C::ATDef.ENUMERATION_ATTR> => true,
1234 }->{$dt}) {
1235 ## Tokenization (XML 1 3.3.3)
1236 for ($nsuri) {
1237 s/^\x20+//;
1238 s/\x20+\z//;
1239 s/\x20+/ /g;
1240 }
1241 }
1242 }
1243 if ($lname eq 'xml' and
1244 $nsuri ne <Q::xml:>) {
1245 my $location;
1246 __CODE{xp|get-location-from-token::
1247 $token => $token,
1248 $result => $location,
1249 }__;
1250 my $continue = __c|ERROR{xp|nsc-reserved-prefix-xml::
1251 c|location => {$location},
1252 xp|token => {$token},
1253 infoset|prefix => {$lname},
1254 infoset|namespaceName => {$nsuri},
1255 }__;
1256 unless ($continue) {
1257 __EXCEPTION{DOMLS|PARSE_ERR}__;
1258 }
1259 } elsif ($lname eq 'xmlns') {
1260 my $location;
1261 __CODE{xp|get-location-from-token::
1262 $token => $token,
1263 $result => $location,
1264 }__;
1265 my $continue = __c|ERROR{xp|nsc-reserved-prefix-xmlns::
1266 c|location => {$location},
1267 xp|token => {$token},
1268 infoset|prefix => {$lname},
1269 infoset|namespaceName => {$nsuri},
1270 }__;
1271 unless ($continue) {
1272 __EXCEPTION{DOMLS|PARSE_ERR}__;
1273 }
1274 }
1275 if ($nsuri eq '') {
1276 if ($self->{xml_version} eq '1.0') {
1277 my $location;
1278 __CODE{xp|get-location-from-token::
1279 $token => $token,
1280 $result => $location,
1281 }__;
1282 my $continue = __c|ERROR{xp|nswf-empty-namespace-name::
1283 c|location => {$location},
1284 xp|token => {$token},
1285 infoset|namespaceName => {$nsuri},
1286 infoset|prefix => {$lname},
1287 }__;
1288 unless ($continue) {
1289 __EXCEPTION{DOMLS|PARSE_ERR}__;
1290 }
1291 }
1292 } elsif ($nsuri eq <Q::xml:> and
1293 $lname ne 'xml') {
1294 my $location;
1295 __CODE{xp|get-location-from-token::
1296 $token => $token,
1297 $result => $location,
1298 }__;
1299 my $continue = __c|ERROR{
1300 xp|nsc-reserved-namespace-name-xml::
1301 c|location => {$location},
1302 xp|token => {$token},
1303 infoset|prefix => {$lname},
1304 infoset|namespaceName => {$nsuri},
1305 }__;
1306 unless ($continue) {
1307 __EXCEPTION{DOMLS|PARSE_ERR}__;
1308 }
1309 } elsif ($nsuri eq <Q::xmlns:>) {
1310 my $location;
1311 __CODE{xp|get-location-from-token::
1312 $token => $token,
1313 $result => $location,
1314 }__;
1315 my $continue = __c|ERROR{
1316 xp|nsc-reserved-namespace-name-xmlns::
1317 c|location => {$location},
1318 xp|token => {$token},
1319 infoset|prefix => {$lname},
1320 infoset|namespaceName => {$nsuri},
1321 }__;
1322 unless ($continue) {
1323 __EXCEPTION{DOMLS|PARSE_ERR}__;
1324 }
1325 }
1326 $ns->{$lname} = $nsuri;
1327 delete $ns->{$lname} unless length $ns->{$lname};
1328 }
1329 $gattr{$pfx}->{$lname} = $attrs->{$atqname};
1330 } else { ## Local attribute
1331 if ($pfx eq 'xmlns') {
1332 $ns->{''} = $attrs->{xmlns}->{is_default}
1333 ? $attrs->{xmlns}->{def}-><AG::Node.nodeValue>
1334 : $attrs->{xmlns}->{value};
1335 if (not $attrs->{$atqname}->{is_default} and
1336 $attrs->{$atqname}->{def}) {
1337 my $dt = $attrs->{$atqname}->{def}-><AG::ATDef.declaredType>;
1338 if ({
1339 <C::ATDef.ID_ATTR> => true,
1340 <C::ATDef.IDREF_ATTR> => true,
1341 <C::ATDef.IDREFS_ATTR> => true,
1342 <C::ATDef.ENTITY_ATTR> => true,
1343 <C::ATDef.ENTITIES_ATTR> => true,
1344 <C::ATDef.NMTOKEN_ATTR> => true,
1345 <C::ATDef.NMTOKENS_ATTR> => true,
1346 <C::ATDef.NOTATION_ATTR> => true,
1347 <C::ATDef.ENUMERATION_ATTR> => true,
1348 }->{$dt}) {
1349 ## Tokenization (XML 1 3.3.3)
1350 for ($ns->{''}) {
1351 s/^\x20+//;
1352 s/\x20+\z//;
1353 s/\x20+/ /g;
1354 }
1355 }
1356 }
1357 unless ($ns->{''}) {
1358 delete $ns->{''};
1359 } elsif ($ns->{''} eq <Q::xml:>) {
1360 my $location;
1361 __CODE{xp|get-location-from-token::
1362 $token => $token,
1363 $result => $location,
1364 }__;
1365 my $continue = __c|ERROR{
1366 xp|nsc-reserved-namespace-name-xml::
1367 c|location => {$location},
1368 xp|token => {$token},
1369 infoset|prefix => {null},
1370 infoset|namespaceName => {<Q::xml:>},
1371 }__;
1372 unless ($continue) {
1373 __EXCEPTION{DOMLS|PARSE_ERR}__;
1374 }
1375 } elsif ($ns->{''} eq <Q::xmlns:>) {
1376 my $location;
1377 __CODE{xp|get-location-from-token::
1378 $token => $token,
1379 $result => $location,
1380 }__;
1381 my $continue = __c|ERROR{
1382 xp|nsc-reserved-namespace-name-xmlns::
1383 c|location => {$location},
1384 xp|token => {$token},
1385 infoset|prefix => {null},
1386 infoset|namespaceName => {<Q::xmlns:>},
1387 }__;
1388 unless ($continue) {
1389 __EXCEPTION{DOMLS|PARSE_ERR}__;
1390 }
1391 }
1392 } else {
1393 $lattr{$pfx} = $attrs->{$atqname};
1394 }
1395 }
1396 }
1397
1398 my ($pfx, $lname) = split /:/, $type;
1399 my $nsuri;
1400 if (defined $lname) { ## Prefixed namespace
1401 if (defined $ns->{$pfx}) {
1402 $nsuri = $ns->{$pfx};
1403 } else {
1404 my $location;
1405 __CODE{xp|get-location-from-token::
1406 $token => $token,
1407 $result => $location,
1408 }__;
1409 my $continue = __c|ERROR{xp|nsc-prefix-declared::
1410 c|location => {$location},
1411 xp|token => {$token},
1412 infoset|prefix => {$pfx},
1413 xp|name => {$type},
1414 }__;
1415 unless ($continue) {
1416 __EXCEPTION{DOMLS|PARSE_ERR}__;
1417 }
1418 }
1419 } else { ## Default namespace
1420 $nsuri = $ns->{''};
1421 }
1422
1423 $el = $doc-><M::Document.createElementNS>
1424 ($nsuri, $type);
1425
1426 if ($attrs->{xmlns}) {
1427 my $attr = $doc-><M::Document.createAttributeNS>
1428 (<Q::xmlns:>, 'xmlns');
1429 for (@{$attrs->{xmlns}->{nodes}}) {
1430 $attr-><M::Node.appendChild> ($_);
1431 }
1432 if ($attrs->{xmlns}->{def}) {
1433 __CODE{t|setAttrType::
1434 $attr => $attr,
1435 $type => {$attrs->{xmlns}->{def}-><AG::ATDef.declaredType>},
1436 }__;
1437 }
1438 $el-><M::Element.setAttributeNodeNS> ($attr);
1439 $attr-><AS::t|Attr.specified> (false)
1440 if $attrs->{xmlns}->{is_default};
1441 }
1442
1443 for my $lname (keys %lattr) {
1444 my $attr = $doc-><M::Document.createAttributeNS>
1445 (null, $lname);
1446 for (@{$lattr{$lname}->{nodes}}) {
1447 $attr-><M::Node.appendChild> ($_);
1448 }
1449 if ($attrs->{$lname}->{def}) {
1450 __CODE{t|setAttrType::
1451 $attr => $attr,
1452 $type => {$attrs->{$lname}->{def}-><AG::ATDef.declaredType>},
1453 }__;
1454 }
1455 $el-><M::Element.setAttributeNodeNS> ($attr);
1456 $attr-><AS::t|Attr.specified> (false)
1457 if $attrs->{$lname}->{is_default};
1458 }
1459
1460 for my $pfx (keys %gattr) {
1461 LN: for my $lname (keys %{$gattr{$pfx}}) {
1462 my $name = $pfx.':'.$lname;
1463 unless (defined $ns->{$pfx}) {
1464 my $location;
1465 __CODE{xp|get-location-from-token::
1466 $token => $token,
1467 $result => $location,
1468 }__;
1469 my $continue = __c|ERROR{xp|nsc-prefix-declared::
1470 c|location => {$location},
1471 xp|token => {$token},
1472 xp|name => {$name},
1473 infoset|prefix => {$pfx},
1474 }__;
1475 unless ($continue) {
1476 __EXCEPTION{DOMLS|PARSE_ERR}__;
1477 }
1478 }
1479 my $attr = $el-><M::Element.getAttributeNodeNS>
1480 ($ns->{$pfx}, $lname);
1481 if ($attr) {
1482 my $another_name = $attr-><AG::Node.nodeName>;
1483 if ($name ne $another_name) {
1484 my $location;
1485 __CODE{xp|get-location-from-token::
1486 $token => $token,
1487 $result => $location,
1488 }__;
1489 my $continue = __c|ERROR{
1490 xp|nswf-unique-att-spec-expanded-name::
1491 c|location => {$location},
1492 xp|token => {$token},
1493 xp|another-attribute-name => {$another_name},
1494 xp|name => {$name},
1495 infoset|namespaceName => {$ns->{$pfx}},
1496 infoset|localName => {$lname},
1497 }__;
1498 unless ($continue) {
1499 __EXCEPTION{DOMLS|PARSE_ERR}__;
1500 }
1501 unless ($attr-><AG::t|Attr.specified>) {
1502 ## It is a default attribute
1503 $attr = $doc-><M::Document.createAttributeNS>
1504 ($ns->{$pfx}, $name);
1505 } else {
1506 ## It is a specified attribute
1507 next LN;
1508 }
1509 } else { ## There is default attribute
1510 $attr = $doc-><M::Document.createAttributeNS>
1511 ($ns->{$pfx}, $name);
1512 }
1513 } else {
1514 $attr = $doc-><M::Document.createAttributeNS>
1515 ($ns->{$pfx}, $name);
1516 }
1517 for (@{$gattr{$pfx}->{$lname}->{nodes}}) {
1518 $attr-><M::Node.appendChild> ($_);
1519 }
1520 if ($gattr{$pfx}->{$lname}->{def}) {
1521 __CODE{t|setAttrType::
1522 $attr => $attr,
1523 $type => {$gattr{$pfx}->{$lname}
1524 ->{def}-><AG::ATDef.declaredType>},
1525 }__;
1526 }
1527 $el-><M::Element.setAttributeNodeNS> ($attr);
1528 $attr-><AS::t|Attr.specified> (false)
1529 if $gattr{$pfx}->{$lname}->{is_default};
1530 } # PFX
1531 }
1532
1533 $node-><M::Node.appendChild> ($el);
1534 }
1535
1536 ~ (TAGC) {
1537 lang:Perl {
1538 push @{$nodes}, $node;
1539 $node = $el;
1540 }
1541 ?lexmode ElementContent;
1542 } (NESTC) {
1543 my $is_docel;
1544 lang:Perl {
1545 $ns = pop @{$nses};
1546 $type = pop @{$types};
1547 $is_docel = (@{$types} == 0);
1548 }
1549
1550 if-true ($is_docel) {
1551 return;
1552 }
1553
1554 ~ (TAGC) {
1555 ?lexmode ElementContent;
1556 } else {
1557 ?lexmode ElementContent;
1558 }
1559 } else {
1560 ?lexmode ElementContent;
1561 }
1562 } else {
1563 ?lexmode ElementContent;
1564 }
1565
1566 } (ETAGO) {
1567 // End tag
1568
1569 ?lexmode 'EndTag';
1570
1571 my $is_docel;
1572
1573 ~ (Name) {
1574 // No NCName & QName check (it must match to start-tag)
1575 lang:Perl ($name => $token.value) : has-error {
1576 if ($name eq $type) {
1577 $type = pop @{$types};
1578 if ($type eq '') {
1579 $is_docel = true;
1580 }
1581 $node = pop @{$nodes};
1582 $ns = pop @{$nses};
1583 } else {
1584 my $location;
1585 __CODE{xp|get-location-from-token::
1586 $token => $token,
1587 $result => $location,
1588 }__;
1589 my $continue = __DOMCore:ERROR{xp|wf-element-type-match::
1590 DOMCore:location => {$location},
1591 xp|token => {$token},
1592 xp|expected-element-type => {$type},
1593 xp|actual-element-type => {$name},
1594 xp|node => {$node},
1595 }__;
1596 unless ($continue) {
1597 __EXCEPTION{DOMLS|PARSE_ERR}__;
1598 }
1599 }
1600 }
1601 }
1602
1603 ~? (S) { }
1604
1605 if-true ($is_docel) {
1606 lang:Perl : has-error {
1607 if (@{$types}) {
1608 my $location;
1609 __CODE{xp|get-location-from-token::
1610 $token => $token,
1611 $result => $location,
1612 }__;
1613 for my $type (reverse @{$types}) {
1614 my $continue = __DOMCore:ERROR{xp|wf-no-end-tag::
1615 DOMCore:location => {$location},
1616 xp|token => {$token},
1617 xp|expected-element-type => {$type},
1618 xp|node => {$node},
1619 }__;
1620 unless ($continue) {
1621 __EXCEPTION{DOMLS|PARSE_ERR}__;
1622 }
1623 $node = shift @{$nodes};
1624 }
1625 }
1626 }
1627 return;
1628 }
1629
1630 ~ (TAGC) {
1631 ?lexmode ElementContent;
1632 } else {
1633 ?lexmode 'ElementContent';
1634 }
1635
1636 } (HCRO) {
1637 &_HexadecimalCharacterReference_
1638 ($doc => $doc, $parent => $node);
1639
1640 ~ (REFC) {
1641 ?lexmode 'ElementContent';
1642 } else {
1643 ?lexmode ElementContent;
1644 }
1645 } (CRO) {
1646 &_NumericCharacterReference_
1647 ($doc => $doc, $parent => $node);
1648
1649 ~ (REFC) {
1650 ?lexmode 'ElementContent';
1651 } else {
1652 ?lexmode ElementContent;
1653 }
1654 } (ERO) {
1655 &_GeneralEntityReferenceEC
1656 ($doc => $doc, $parent => $node, $ns => $ns);
1657 } (CDO) {
1658 &_CommentDeclaration_ ($doc => $doc, $parent => $node);
1659
1660 ~ (MDC) {
1661 ?lexmode ElementContent;
1662 } else {
1663 ?lexmode ElementContent;
1664 }
1665 } (CDSO) {
1666 &_CDATASection_ ($doc => $doc, $parent => $node);
1667
1668 ~ (MSE) {
1669 ?lexmode 'ElementContent';
1670 } else {
1671 ?lexmode ElementContent;
1672 }
1673 } (PIO) {
1674 &_ProcessingInstruction_ ($doc => $doc, $parent => $node);
1675
1676 ~ (PIC) {
1677 ?lexmode 'ElementContent';
1678 } else {
1679 ?lexmode ElementContent;
1680 }
1681 }
1682
1683 ~ (#NONE) { }
1684 } // Element_
1685
1686 /*
1687 content := [CharData]
1688 *((element / Reference / CDSect / PI / Comment) [CharData])
1689 */
1690 rule content ($parent, $ns) {
1691 // ?lexmode ElementContent;
1692
1693 my $doc;
1694 lang:Perl {
1695 $doc = $self->{doc};
1696 }
1697
1698 ~* (CharData) {
1699 lang:Perl ($data => $token.value) {
1700 $parent-><M::Node.appendChild>
1701 ($self->{doc}-><M::Document.createTextNode> ($data));
1702 }
1703 } (STAGO) {
1704 &Element_ ($doc => $doc, $parent => $parent, $ns => $ns)
1705 : unshift-current-token;
1706 ~ (TAGC) {
1707 ?lexmode ElementContent;
1708 } else {
1709 ?lexmode ElementContent;
1710 }
1711 } (HCRO) {
1712 &_HexadecimalCharacterReference_
1713 ($doc => $doc, $parent => $parent);
1714
1715 ~ (REFC) {
1716 ?lexmode 'ElementContent';
1717 } else {
1718 ?lexmode ElementContent;
1719 }
1720 } (CRO) {
1721 &_NumericCharacterReference_
1722 ($doc => $doc, $parent => $parent);
1723
1724 ~ (REFC) {
1725 ?lexmode 'ElementContent';
1726 } else {
1727 ?lexmode ElementContent;
1728 }
1729 } (ERO) {
1730 &_GeneralEntityReferenceEC
1731 ($doc => $doc, $parent => $parent, $ns => $ns);
1732 } (CDO) {
1733 &_CommentDeclaration_ ($doc => $doc, $parent => $parent);
1734
1735 ~ (MDC) {
1736 ?lexmode ElementContent;
1737 } else {
1738 ?lexmode ElementContent;
1739 }
1740 } (CDSO) {
1741 &_CDATASection_ ($doc => $doc, $parent => $parent);
1742
1743 ~ (MSE) {
1744 ?lexmode 'ElementContent';
1745 } else {
1746 ?lexmode ElementContent;
1747 }
1748 } (PIO) {
1749 &_ProcessingInstruction_ ($doc => $doc, $parent => $parent);
1750
1751 ~ (PIC) {
1752 ?lexmode 'ElementContent';
1753 } else {
1754 ?lexmode ElementContent;
1755 }
1756 }
1757 } // content
1758
1759 rule AttributeSpecificationList ($doc, $attrs)
1760 : standalone
1761 {
1762 ?lexmode 'StartTag';
1763
1764 my $i;
1765 lang:Perl {
1766 $i = 0;
1767 }
1768
1769 ~* (Name) {
1770 my $atqname;
1771 lang:Perl ($name => $token.value) : has-error {
1772 __CODE{checkQName:: $name => $name}__;
1773 $atqname = $name;
1774 }
1775
1776 my $vals;
1777 lang:Perl : has-error {
1778 if ($attrs->{$atqname}) {
1779 my $location;
1780 __CODE{xp|get-location-from-token::
1781 $token => $token,
1782 $result => $location,
1783 }__;
1784 my $continue = __DOMCore:ERROR{xp|wf-unique-att-spec::
1785 DOMCore:location => {$location},
1786 xp|token => {$token},
1787 xp|name => {$atqname},
1788 }__;
1789 unless ($continue) {
1790 __EXCEPTION{DOMLS|PARSE_ERR}__;
1791 }
1792 }
1793
1794 $vals = $attrs->{$atqname} = {
1795 nodes => [],
1796 value => '',
1797 index => $i++,
1798 };
1799 }
1800
1801 ~? (S) { }
1802 ~ (VI) { }
1803 ~? (S) { }
1804
1805 ~ (LIT) {
1806 &_AttributeValueSpecification_
1807 ($doc => $doc, $vals => $vals);
1808
1809 ~ (LIT) {
1810 ?lexmode StartTag;
1811 } else {
1812 ?lexmode StartTag;
1813 }
1814 } (LITA) {
1815 &_AttributeValueSpecificationA_
1816 ($doc => $doc, $vals => $vals);
1817
1818 ~ (LITA) {
1819 ?lexmode StartTag;
1820 } else {
1821 ?lexmode StartTag;
1822 }
1823 }
1824 } (S) : separator : terminator? { }
1825 } // AttributeSpecificationList
1826
1827 rule _AttributeValueSpecification_ ($doc, $vals) {
1828 // ~ (LIT) { }
1829 ?lexmode 'AttributeValueLiteral';
1830
1831 ~* (STRING) {
1832 lang:Perl ($value => $token.value) {
1833 $value =~ s/[\x09\x0A\x0D]/ /g;
1834 my $text = $doc-><M::Document.createTextNode> ($value);
1835 push @{$vals->{nodes}}, $text;
1836 $vals->{value} .= $value;
1837 }
1838 } (HCRO) {
1839 &_HexadecimalCharacterReferenceV_
1840 ($doc => $doc, $vals => $vals);
1841
1842 ~ (REFC) {
1843 ?lexmode AttributeValueLiteral;
1844 } else {
1845 ?lexmode AttributeValueLiteral;
1846 }
1847 } (CRO) {
1848 &_NumericCharacterReferenceV_
1849 ($doc => $doc, $vals => $vals);
1850
1851 ~ (REFC) {
1852 ?lexmode AttributeValueLiteral;
1853 } else {
1854 ?lexmode AttributeValueLiteral;
1855 }
1856 } (ERO) {
1857 // TODO: Attribute value normalization
1858 &_GeneralEntityReferenceV_
1859 ($doc => $doc, $vals => $vals);
1860
1861 ~ (REFC) {
1862 ?lexmode AttributeValueLiteral;
1863 } else {
1864 ?lexmode AttributeValueLiteral;
1865 }
1866 }
1867
1868 // ~ (LIT) { } (LITA) { }
1869 } // _AttributeValueSpecification_
1870
1871 rule _AttributeValueSpecificationA_ ($doc, $vals) {
1872 // ~ (LITA) { }
1873 ?lexmode 'AttributeValueLiteralA';
1874
1875 ~* (STRING) {
1876 lang:Perl ($value => $token.value) {
1877 $value =~ s/[\x09\x0A\x0D]/ /g;
1878 my $text = $doc-><M::Document.createTextNode> ($value);
1879 push @{$vals->{nodes}}, $text;
1880 $vals->{value} .= $value;
1881 }
1882 } (HCRO) {
1883 &_HexadecimalCharacterReferenceV_
1884 ($doc => $doc, $vals => $vals);
1885
1886 ~ (REFC) {
1887 ?lexmode AttributeValueLiteralA;
1888 } else {
1889 ?lexmode AttributeValueLiteralA;
1890 }
1891 } (CRO) {
1892 &_NumericCharacterReferenceV_
1893 ($doc => $doc, $vals => $vals);
1894
1895 ~ (REFC) {
1896 ?lexmode AttributeValueLiteralA;
1897 } else {
1898 ?lexmode AttributeValueLiteralA;
1899 }
1900 } (ERO) {
1901 // TODO: Attribute value normalization
1902 &_GeneralEntityReferenceV_
1903 ($doc => $doc, $vals => $vals);
1904
1905 ~ (REFC) {
1906 ?lexmode AttributeValueLiteralA;
1907 } else {
1908 ?lexmode AttributeValueLiteralA;
1909 }
1910 }
1911
1912 // ~ (LITA) { }
1913 } // _AttributeValueSpecificationA_
1914
1915 /*
1916 Parsing replacement text of an entity referenced in
1917 an attribute value specification.
1918 */
1919 rule AttributeValueLiteralE_ ($parent, $vals)
1920 : recursive
1921 {
1922 // ?lexmode AttributeValueLiteralE;
1923
1924 ~* (STRING) {
1925 lang:Perl ($value => $token.value) {
1926 $value =~ s/[\x09\x0A\x0D]/ /g;
1927 my $text = $self->{doc}-><M::Document.createTextNode> ($value);
1928 $parent-><M::Node.appendChild> ($text);
1929 $vals->{value} .= $value;
1930 }
1931 } (HCRO) {
1932 &_HexadecimalCharacterReferenceAE_
1933 ($parent => $parent, $vals => $vals);
1934
1935 ~ (REFC) {
1936 ?lexmode AttributeValueLiteralE;
1937 } else {
1938 ?lexmode AttributeValueLiteralE;
1939 }
1940 } (CRO) {
1941 &_NumericCharacterReferenceAE_
1942 ($parent => $parent, $vals => $vals);
1943
1944 ~ (REFC) {
1945 ?lexmode AttributeValueLiteralE;
1946 } else {
1947 ?lexmode AttributeValueLiteralE;
1948 }
1949 } (ERO) {
1950 &_GeneralEntityReferenceAE_ ($parent => $parent, $vals => $vals);
1951
1952 ~ (REFC) {
1953 ?lexmode AttributeValueLiteralE;
1954 } else {
1955 ?lexmode AttributeValueLiteralE;
1956 }
1957 } (#INVALID == '<') {
1958 lang:Perl : has-error {
1959 my $location;
1960 __CODE{xp|get-location-from-token::
1961 $token => $token,
1962 $result => $location,
1963 }__;
1964 my $continue = __DOMCore:ERROR{xp|wf-no-lt-in-attribute-values::
1965 c|location => {$location},
1966 xp|token => {$token},
1967 }__;
1968 unless ($continue) {
1969 __EXCEPTION{DOMLS|PARSE_ERR}__;
1970 }
1971
1972 my $text = $self->{doc}-><M::Document.createTextNode> ('<');
1973 $parent-><M::Node.appendChild> ($text);
1974 $vals->{value} .= '<';
1975 }
1976 }
1977
1978 // ~ (#EOF) { }
1979 } // AttributeValueLiteralE_
1980
1981 /*
1982 CDATA Section Content Parsing Mode
1983 */
1984 rule _CDATASection_ ($doc, $parent) {
1985 ?lexmode 'CDATASectionContent';
1986
1987 my $cdata;
1988
1989 ~? (CData) {
1990 lang:Perl ($data => $token.value) {
1991 $cdata = $data;
1992 }
1993 } else {
1994 lang:Perl {
1995 $cdata = '';
1996 }
1997 }
1998
1999 lang:Perl {
2000 my $cdsect = $doc-><M::Document.createCDATASection>
2001 ($cdata);
2002 $parent-><M::Node.appendChild> ($cdsect);
2003 }
2004
2005 // ~ (MSE) { }
2006 } // _CDATASection_
2007
2008 rule _NumericCharacterReference_ ($doc, $parent) {
2009 ?lexmode 'NumericCharacterReference';
2010
2011 ~ (NUMBER) {
2012 lang:Perl ($num => $token.value) : has-error {
2013 $num += 0;
2014 unless (
2015 ($self->{xml_version} eq '1.0' and
2016 ((0x0020 <= $num and $num <= 0xD7FF) or
2017 (0xE000 <= $num and $num <= 0xFFFD) or
2018 (0x10000 <= $num and $num <= 0x10FFFF) or
2019 $num == 0x9 or $num == 0xA or $num == 0xD)) or
2020 ($self->{xml_version} eq '1.1' and
2021 ((0x0001 <= $num and $num <= 0xD7FF) or
2022 (0xE000 <= $num and $num <= 0xFFFD) or
2023 (0x10000 <= $num and $num <= 0x10FFFF)))
2024 ) {
2025 my $location;
2026 __CODE{xp|get-location-from-token::
2027 $token => $token,
2028 $result => $location,
2029 }__;
2030 my $continue = __DOMCore:ERROR{xp|wf-legal-character::
2031 DOMCore:location => {$location},
2032 xp|token => {$token},
2033 xp|character-number => {$num},
2034 xp|parent => {$parent},
2035 }__;
2036 unless ($continue) {
2037 __EXCEPTION{DOMLS|PARSE_ERR}__;
2038 }
2039 }
2040 my $ncr = $doc-><M::Document.createTextNode> (chr $num);
2041 $parent-><M::Node.appendChild> ($ncr);
2042 }
2043 }
2044
2045 // ~ (REFC) { }
2046 } // _NumericCharacterReference_
2047
2048 rule _NumericCharacterReferenceV_ ($doc, $vals) {
2049 ?lexmode 'NumericCharacterReference';
2050
2051 ~ (NUMBER) {
2052 lang:Perl ($num => $token.value) : has-error {
2053 $num += 0;
2054 unless (
2055 ($self->{xml_version} eq '1.0' and
2056 ((0x0020 <= $num and $num <= 0xD7FF) or
2057 (0xE000 <= $num and $num <= 0xFFFD) or
2058 (0x10000 <= $num and $num <= 0x10FFFF) or
2059 $num == 0x9 or $num == 0xA or $num == 0xD)) or
2060 ($self->{xml_version} eq '1.1' and
2061 ((0x0001 <= $num and $num <= 0xD7FF) or
2062 (0xE000 <= $num and $num <= 0xFFFD) or
2063 (0x10000 <= $num and $num <= 0x10FFFF)))
2064 ) {
2065 my $location;
2066 __CODE{xp|get-location-from-token::
2067 $token => $token,
2068 $result => $location,
2069 }__;
2070 my $continue = __DOMCore:ERROR{xp|wf-legal-character::
2071 DOMCore:location => {$location},
2072 xp|token => {$token},
2073 xp|character-number => {$num},
2074 }__;
2075 unless ($continue) {
2076 __EXCEPTION{DOMLS|PARSE_ERR}__;
2077 }
2078 }
2079 my $ncr = $doc-><M::Document.createTextNode>
2080 (my $char = chr $num);
2081 push @{$vals->{nodes}}, $ncr;
2082 $vals->{value} .= $char;
2083 }
2084 }
2085
2086 // ~ (REFC) { }
2087 } // _NumericCharacterReferenceV_
2088
2089 /*
2090 Numeric character reference in the replacement text
2091 of the entity referenced in an attribute value specification
2092 */
2093 rule _NumericCharacterReferenceAE_ ($parent, $vals)
2094 {
2095 ?lexmode NumericCharacterReference;
2096
2097 ~ (NUMBER) {
2098 lang:Perl ($num => $token.value) : has-error {
2099 $num += 0;
2100 unless (
2101 ($self->{xml_version} eq '1.0' and
2102 ((0x0020 <= $num and $num <= 0xD7FF) or
2103 (0xE000 <= $num and $num <= 0xFFFD) or
2104 (0x10000 <= $num and $num <= 0x10FFFF) or
2105 $num == 0x9 or $num == 0xA or $num == 0xD)) or
2106 ($self->{xml_version} eq '1.1' and
2107 ((0x0001 <= $num and $num <= 0xD7FF) or
2108 (0xE000 <= $num and $num <= 0xFFFD) or
2109 (0x10000 <= $num and $num <= 0x10FFFF)))
2110 ) {
2111 my $location;
2112 __CODE{xp|get-location-from-token::
2113 $token => $token,
2114 $result => $location,
2115 }__;
2116 my $continue = __DOMCore:ERROR{xp|wf-legal-character::
2117 DOMCore:location => {$location},
2118 xp|token => {$token},
2119 xp|character-number => {$num},
2120 }__;
2121 unless ($continue) {
2122 __EXCEPTION{DOMLS|PARSE_ERR}__;
2123 }
2124 }
2125 my $ncr = $self->{doc}-><M::Document.createTextNode>
2126 (my $char = chr $num);
2127 $parent-><M::Node.appendChild> ($ncr);
2128 $vals->{value} .= $char;
2129 }
2130 }
2131
2132 // ~ (REFC) { }
2133 } // _NumericCharacterReferenceAE_
2134
2135 rule _NumericCharacterReferenceEV_ ($vals)
2136 {
2137 ?lexmode 'NumericCharacterReference';
2138
2139 ~ (NUMBER) {
2140 lang:Perl ($num => $token.value) : has-error {
2141 $num += 0;
2142 unless (
2143 ($self->{xml_version} eq '1.0' and
2144 ((0x0020 <= $num and $num <= 0xD7FF) or
2145 (0xE000 <= $num and $num <= 0xFFFD) or
2146 (0x10000 <= $num and $num <= 0x10FFFF) or
2147 $num == 0x9 or $num == 0xA or $num == 0xD)) or
2148 ($self->{xml_version} eq '1.1' and
2149 ((0x0001 <= $num and $num <= 0xD7FF) or
2150 (0xE000 <= $num and $num <= 0xFFFD) or
2151 (0x10000 <= $num and $num <= 0x10FFFF)))
2152 ) {
2153 my $location;
2154 __CODE{xp|get-location-from-token::
2155 $token => $token,
2156 $result => $location,
2157 }__;
2158 my $continue = __DOMCore:ERROR{xp|wf-legal-character::
2159 DOMCore:location => {$location},
2160 xp|token => {$token},
2161 xp|character-number => {$num},
2162 }__;
2163 unless ($continue) {
2164 __EXCEPTION{DOMLS|PARSE_ERR}__;
2165 }
2166 }
2167 push @{$vals}, chr $num;
2168 }
2169 }
2170
2171 // ~ (REFC) { }
2172 } // _NumericCharacterReferenceEV_
2173
2174 rule _HexadecimalCharacterReference_ ($doc, $parent) {
2175 ?lexmode 'HexadecimalCharacterReference';
2176
2177 ~ (Hex) {
2178 lang:Perl ($v => $token.value) : has-error {
2179 my $num = hex $v;
2180 unless (
2181 ($self->{xml_version} eq '1.0' and
2182 ((0x0020 <= $num and $num <= 0xD7FF) or
2183 (0xE000 <= $num and $num <= 0xFFFD) or
2184 (0x10000 <= $num and $num <= 0x10FFFF) or
2185 $num == 0x9 or $num == 0xA or $num == 0xD)) or
2186 ($self->{xml_version} eq '1.1' and
2187 ((0x0001 <= $num and $num <= 0xD7FF) or
2188 (0xE000 <= $num and $num <= 0xFFFD) or
2189 (0x10000 <= $num and $num <= 0x10FFFF)))
2190 ) {
2191 my $location;
2192 __CODE{xp|get-location-from-token::
2193 $token => $token,
2194 $result => $location,
2195 }__;
2196 my $continue = __DOMCore:ERROR{xp|wf-legal-character::
2197 DOMCore:location => {$location},
2198 xp|token => {$token},
2199 xp|character-number => {$num},
2200 xp|parent => {$parent},
2201 }__;
2202 unless ($continue) {
2203 __EXCEPTION{DOMLS|PARSE_ERR}__;
2204 }
2205 }
2206 my $ncr = $doc-><M::Document.createTextNode>
2207 (chr $num);
2208 $parent-><M::Node.appendChild> ($ncr);
2209 }
2210 }
2211
2212 // ~ (REFC) { }
2213 } // _HexadecimalCharacterReference_
2214
2215 rule _HexadecimalCharacterReferenceV_ ($doc, $vals) {
2216 ?lexmode 'HexadecimalCharacterReference';
2217
2218 ~ (Hex) {
2219 lang:Perl ($v => $token.value) : has-error {
2220 my $num = hex $v;
2221 unless (
2222 ($self->{xml_version} eq '1.0' and
2223 ((0x0020 <= $num and $num <= 0xD7FF) or
2224 (0xE000 <= $num and $num <= 0xFFFD) or
2225 (0x10000 <= $num and $num <= 0x10FFFF) or
2226 $num == 0x9 or $num == 0xA or $num == 0xD)) or
2227 ($self->{xml_version} eq '1.1' and
2228 ((0x0001 <= $num and $num <= 0xD7FF) or
2229 (0xE000 <= $num and $num <= 0xFFFD) or
2230 (0x10000 <= $num and $num <= 0x10FFFF)))
2231 ) {
2232 my $location;
2233 __CODE{xp|get-location-from-token::
2234 $token => $token,
2235 $result => $location,
2236 }__;
2237 my $continue = __DOMCore:ERROR{xp|wf-legal-character::
2238 DOMCore:location => {$location},
2239 xp|token => {$token},
2240 xp|character-number => {$num},
2241 }__;
2242 unless ($continue) {
2243 __EXCEPTION{DOMLS|PARSE_ERR}__;
2244 }
2245 }
2246 my $ncr = $doc-><M::Document.createTextNode>
2247 (my $char = chr $num);
2248 push @{$vals->{nodes}}, $ncr;
2249 $vals->{value} .= $char;
2250 }
2251 }
2252
2253 // ~ (REFC) { }
2254 } // _HexadecimalCharacterReferenceV_
2255
2256 /*
2257 Hexadecimal character reference in the replacement text
2258 of the entity referenced in an attribute value literal
2259 */
2260 rule _HexadecimalCharacterReferenceAE_ ($parent, $vals)
2261 {
2262 ?lexmode HexadecimalCharacterReference;
2263
2264 ~ (Hex) {
2265 lang:Perl ($v => $token.value) : has-error {
2266 my $num = hex $v;
2267 unless (
2268 ($self->{xml_version} eq '1.0' and
2269 ((0x0020 <= $num and $num <= 0xD7FF) or
2270 (0xE000 <= $num and $num <= 0xFFFD) or
2271 (0x10000 <= $num and $num <= 0x10FFFF) or
2272 $num == 0x9 or $num == 0xA or $num == 0xD)) or
2273 ($self->{xml_version} eq '1.1' and
2274 ((0x0001 <= $num and $num <= 0xD7FF) or
2275 (0xE000 <= $num and $num <= 0xFFFD) or
2276 (0x10000 <= $num and $num <= 0x10FFFF)))
2277 ) {
2278 my $location;
2279 __CODE{xp|get-location-from-token::
2280 $token => $token,
2281 $result => $location,
2282 }__;
2283 my $continue = __DOMCore:ERROR{xp|wf-legal-character::
2284 DOMCore:location => {$location},
2285 xp|token => {$token},
2286 xp|character-number => {$num},
2287 }__;
2288 unless ($continue) {
2289 __EXCEPTION{DOMLS|PARSE_ERR}__;
2290 }
2291 }
2292 my $ncr = $self->{doc}-><M::Document.createTextNode>
2293 (my $char = chr $num);
2294 $parent-><M::Node.appendChild> ($ncr);
2295 $vals->{value} .= $char;
2296 }
2297 }
2298
2299 // ~ (REFC) { }
2300 } // _HexadecimalCharacterReferenceAE_
2301
2302 rule _HexadecimalCharacterReferenceEV_ ($vals) {
2303 ?lexmode HexadecimalCharacterReference;
2304
2305 ~ (Hex) {
2306 lang:Perl ($v => $token.value) : has-error {
2307 my $num = hex $v;
2308 unless (
2309 ($self->{xml_version} eq '1.0' and
2310 ((0x0020 <= $num and $num <= 0xD7FF) or
2311 (0xE000 <= $num and $num <= 0xFFFD) or
2312 (0x10000 <= $num and $num <= 0x10FFFF) or
2313 $num == 0x9 or $num == 0xA or $num == 0xD)) or
2314 ($self->{xml_version} eq '1.1' and
2315 ((0x0001 <= $num and $num <= 0xD7FF) or
2316 (0xE000 <= $num and $num <= 0xFFFD) or
2317 (0x10000 <= $num and $num <= 0x10FFFF)))
2318 ) {
2319 my $location;
2320 __CODE{xp|get-location-from-token::
2321 $token => $token,
2322 $result => $location,
2323 }__;
2324 my $continue = __DOMCore:ERROR{xp|wf-legal-character::
2325 DOMCore:location => {$location},
2326 xp|token => {$token},
2327 xp|character-number => {$num},
2328 }__;
2329 unless ($continue) {
2330 __EXCEPTION{DOMLS|PARSE_ERR}__;
2331 }
2332 }
2333 push @{$vals}, chr $num;
2334 }
2335 }
2336
2337 // ~ (REFC) { }
2338 } // _HexadecimalCharacterReferenceEV_
2339
2340 /*
2341 General entity reference in element's content
2342 */
2343 rule _GeneralEntityReferenceEC ($doc, $parent, $ns)
2344 : recursive
2345 {
2346 ?lexmode 'EntityReference';
2347
2348 ~ (Name == 'lt') {
2349 lang:Perl {
2350 $parent-><M::Node.appendChild>
2351 ($self->{doc}-><M::Document.createTextNode> ('<'));
2352 }
2353 } (Name == 'gt') {
2354 lang:Perl {
2355 $parent-><M::Node.appendChild>
2356 ($self->{doc}-><M::Document.createTextNode> ('>'));
2357 }
2358 } (Name == 'amp') {
2359 lang:Perl {
2360 $parent-><M::Node.appendChild>
2361 ($self->{doc}-><M::Document.createTextNode> ('&'));
2362 }
2363 } (Name == 'quot') {
2364 lang:Perl {
2365 $parent-><M::Node.appendChild>
2366 ($self->{doc}-><M::Document.createTextNode> ('"'));
2367 }
2368 } (Name == 'apos') {
2369 lang:Perl {
2370 $parent-><M::Node.appendChild>
2371 ($self->{doc}-><M::Document.createTextNode> ("'"));
2372 }
2373 } (Name) {
2374 my $er;
2375 lang:Perl ($name => $token.value) : has-error {
2376 __CODE{checkNCName:: $name => $name}__;
2377
2378 $er = $doc-><M::Document.createEntityReference>
2379 ($name);
2380 $er-><AS::Node.textContent> ('');
2381 ## NOTE: When document entity (and entities referenced directly
2382 ## or indirectly from it) is parsed, no general entity
2383 ## node have its replacement tree. During general
2384 ## entity node collection construction, however,
2385 ## some entity node has replacement tree.
2386 $parent-><M::Node.appendChild> ($er);
2387
2388 my $ent = $self->{general_entity}->{$name};
2389 if (not $ent) { # no entity declaration
2390 if ($self->{standalone} or not $self->{has_xref}) { # WFC error
2391 my $location;
2392 __CODE{xp|get-location-from-token::
2393 $token => {$token},
2394 $result => {$location},
2395 }__;
2396 my $continue = __DOMCore:ERROR{xp|wf-entity-declared::
2397 xp|error-token => {$token},
2398 c|location => {$location},
2399 xp|name => {$name},
2400 }__;
2401 unless ($continue) {
2402 __EXCEPTION{DOMLS|PARSE_ERR}__;
2403 }
2404 } # Otherwise VC error
2405 push @{$self->{entity}}, <Code::getEmptyEntityState::
2406 $name = $name>;
2407 $er-><AS::x|EntityReference.isExpanded> (false);
2408
2409 } else { # there IS entity declaration
2410 if (($self->{standalone} or not $self->{has_xref}) and
2411 $ent->{is_externally_declared} and
2412 not $self->{entity}->[-1]->{is_externally_declared}) {
2413 my $location;
2414 __CODE{xp|get-location-from-token::
2415 $token => {$token},
2416 $result => {$location},
2417 }__;
2418 my $continue = __DOMCore:ERROR{xp|wf-entity-declared::
2419 xp|error-token => {$token},
2420 c|location => {$location},
2421 xp|name => {$name},
2422 }__;
2423 unless ($continue) {
2424 __EXCEPTION{DOMLS|PARSE_ERR}__;
2425 }
2426 }
2427 $er-><AS::x|EntityReference.isExpanded>
2428 ($ent->{has_replacement_text});
2429 push @{$self->{entity}}, <Code::getCopyOfEntityState::
2430 $entity_type = 'general_entity',
2431 $entity_name = $name>;
2432
2433 if (defined $ent->{notation}) {
2434 my $location;
2435 __CODE{xp|get-location-from-token::
2436 $token => {$token},
2437 $result => {$location},
2438 }__;
2439 my $continue = __c|ERROR{xp|wf-parsed-entity::
2440 xp|error-token => {$token},
2441 c|location => {$location},
2442 xp|name => {$name},
2443 }__;
2444 unless ($continue) {
2445 __EXCEPTION{DOMLS|PARSE_ERR::
2446 }__;
2447 }
2448 } # if unparsed entity
2449
2450 if ($ent->{is_opened}) {
2451 my $location;
2452 __CODE{xp|get-location-from-token::
2453 $token => {$token},
2454 $result => {$location},
2455 }__;
2456 my $continue = __c|ERROR{xp|wf-no-recursion::
2457 xp|error-token => {$token},
2458 c|location => {$location},
2459 xp|name => {$name},
2460 }__;
2461 unless ($continue) {
2462 __EXCEPTION{DOMLS|PARSE_ERR::
2463 }__;
2464 }
2465 $self->{entity}->[-1]->{reptxt} = \'';
2466 $er-><AS::x|EntityReference.isExpanded> (false);
2467 } # recursive
2468 $ent->{is_opened} = true;
2469 } # entity declared
2470 $self->{location} = $self->{entity}->[-1];
2471 push @{$self->{entity_token}}, $self->{token};
2472 $self->{token} = [];
2473 push @{$self->{entity_char}}, $self->{char};
2474 $self->{char} = [];
2475 }
2476
2477 ?lexmode ElementContent;
2478 &content ($doc => $doc, $parent => $er, $ns => $ns);
2479 ~ (#EOF) { }
2480 lang:Perl {
2481 $self->{general_entity}->{$self->{entity}->[-1]->{name}}
2482 ->{is_opened} = false
2483 if $self->{general_entity}->{$self->{entity}->[-1]->{name}};
2484 $self->{token} = pop @{$self->{entity_token}};
2485 $self->{char} = pop @{$self->{entity_char}};
2486 pop @{$self->{entity}};
2487 $self->{location} = $self->{entity}->[-1];
2488 }
2489
2490 // TODO: Set read-only flag
2491
2492 ?lexmode EntityReference;
2493 ?requires-next-token;
2494 }
2495
2496 ~ (REFC) {
2497 ?lexmode ElementContent;
2498 } else {
2499 ?lexmode ElementContent;
2500 }
2501 } // _GeneralEntityReferenceEC
2502
2503 /*
2504 General entity reference in an attribute value literal
2505 */
2506 rule _GeneralEntityReferenceV_ ($vals) {
2507 ?lexmode EntityReference;
2508
2509 ~ (Name == 'lt') {
2510 lang:Perl {
2511 push @{$vals->{nodes}}, $self->{doc}-><M::Document.createTextNode>
2512 ('<');
2513 $vals->{value} .= '<';
2514 }
2515 } (Name == 'gt') {
2516 lang:Perl {
2517 push @{$vals->{nodes}}, $self->{doc}-><M::Document.createTextNode>
2518 ('>');
2519 $vals->{value} .= '>';
2520 }
2521 } (Name == 'amp') {
2522 lang:Perl {
2523 push @{$vals->{nodes}}, $self->{doc}-><M::Document.createTextNode>
2524 ('&');
2525 $vals->{value} .= '&';
2526 }
2527 } (Name == 'quot') {
2528 lang:Perl {
2529 push @{$vals->{nodes}}, $self->{doc}-><M::Document.createTextNode>
2530 ('"');
2531 $vals->{value} .= '"';
2532 }
2533 } (Name == 'apos') {
2534 lang:Perl {
2535 push @{$vals->{nodes}}, $self->{doc}-><M::Document.createTextNode>
2536 ("'");
2537 $vals->{value} .= "'";
2538 }
2539 } (Name) {
2540 my $er;
2541 lang:Perl ($name => $token.value) : has-error {
2542 __CODE{checkNCName:: $name => $name}__;
2543
2544 $er = $self->{doc}-><M::Document.createEntityReference> ($name);
2545 $er-><AS::Node.textContent> ('');
2546 ## NOTE: When document entity (and entities referenced directly
2547 ## or indirectly from it) is parsed, no general entity
2548 ## node have its replacement tree. During general
2549 ## entity node collection construction, however,
2550 ## some entity node has replacement tree.
2551 my $ent = $self->{general_entity}->{$name};
2552 if (not $ent) { # no entity declaration
2553 if ($self->{standalone} or not $self->{has_xref}) { # WFC error
2554 my $location;
2555 __CODE{xp|get-location-from-token::
2556 $token => {$token},
2557 $result => {$location},
2558 }__;
2559 my $continue = __DOMCore:ERROR{xp|wf-entity-declared::
2560 xp|error-token => {$token},
2561 c|location => {$location},
2562 xp|name => {$name},
2563 }__;
2564 unless ($continue) {
2565 __EXCEPTION{DOMLS|PARSE_ERR}__;
2566 }
2567 } # Otherwise VC error
2568 push @{$self->{entity}}, <Code::getEmptyEntityState::
2569 $name = $name>;
2570 $er-><AS::x|EntityReference.isExpanded> (false);
2571
2572 } else { # there IS entity declaration
2573 if (($self->{standalone} or not $self->{has_xref}) and
2574 $ent->{is_externally_declared} and
2575 not $self->{entity}->[-1]->{is_externally_declared}) {
2576 my $location;
2577 __CODE{xp|get-location-from-token::
2578 $token => {$token},
2579 $result => {$location},
2580 }__;
2581 my $continue = __DOMCore:ERROR{xp|wf-entity-declared::
2582 xp|error-token => {$token},
2583 c|location => {$location},
2584 xp|name => {$name},
2585 }__;
2586 unless ($continue) {
2587 __EXCEPTION{DOMLS|PARSE_ERR}__;
2588 }
2589 }
2590
2591 if ($ent->{is_external_entity}) {
2592 my $location;
2593 __CODE{xp|get-location-from-token::
2594 $token => {$token},
2595 $result => {$location},
2596 }__;
2597 my $continue = __c|ERROR{xp|wf-no-external-entity-references::
2598 xp|error-token => {$token},
2599 c|location => {$location},
2600 xp|name => {$name},
2601 }__;
2602 unless ($continue) {
2603 __EXCEPTION{DOMLS|PARSE_ERR::
2604 }__;
2605 }
2606 ## NOTE: |xp:wf-parsed-entity| is not checked
2607 } # if external entity
2608
2609 $er-><AS::x|EntityReference.isExpanded>
2610 ($ent->{has_replacement_text});
2611 push @{$self->{entity}}, <Code::getCopyOfEntityState::
2612 $entity_type = 'general_entity',
2613 $entity_name = $name>;
2614
2615 if ($ent->{is_opened}) {
2616 my $location;
2617 __CODE{xp|get-location-from-token::
2618 $token => {$token},
2619 $result => {$location},
2620 }__;
2621 my $continue = __c|ERROR{xp|wf-no-recursion::
2622 xp|error-token => {$token},
2623 c|location => {$location},
2624 xp|name => {$name},
2625 }__;
2626 unless ($continue) {
2627 __EXCEPTION{DOMLS|PARSE_ERR::
2628 }__;
2629 }
2630 $self->{entity}->[-1]->{reptxt} = \'';
2631 $er-><AS::x|EntityReference.isExpanded> (false);
2632 } # recursive
2633 $ent->{is_opened} = true;
2634 }
2635 push @{$vals->{nodes}}, $er;
2636 $self->{location} = $self->{entity}->[-1];
2637 push @{$self->{entity_token}}, $self->{token};
2638 $self->{token} = [];
2639 push @{$self->{entity_char}}, $self->{char};
2640 $self->{char} = [];
2641 }
2642
2643 ?lexmode AttributeValueLiteralE;
2644 &AttributeValueLiteralE_ ($parent => $er, $vals => $vals);
2645 ~ (#EOF) { }
2646 lang:Perl {
2647 $self->{general_entity}->{$self->{entity}->[-1]->{name}}
2648 ->{is_opened} = false
2649 if $self->{general_entity}->{$self->{entity}->[-1]->{name}};
2650 $self->{token} = pop @{$self->{entity_token}};
2651 $self->{char} = pop @{$self->{entity_char}};
2652 pop @{$self->{entity}};
2653 $self->{location} = $self->{entity}->[-1];
2654 }
2655
2656 // TODO: Set read-only flag
2657
2658 ?lexmode EntityReference;
2659 ?requires-next-token;
2660 }
2661
2662 // ~ (REFC) { }
2663 } // _GeneralEntityReferenceV_
2664
2665 /*
2666 General entity reference in the replacement text
2667 of the entity referenced in an attribute value literal
2668 */
2669 rule _GeneralEntityReferenceAE_ ($parent, $vals)
2670 {
2671 ?lexmode EntityReference;
2672
2673 ~ (Name == 'lt') {
2674 lang:Perl {
2675 $parent-><M::Node.appendChild>
2676 ($self->{doc}-><M::Document.createTextNode> ('<'));
2677 $vals->{value} .= '<';
2678 }
2679 } (Name == 'gt') {
2680 lang:Perl {
2681 $parent-><M::Node.appendChild>
2682 ($self->{doc}-><M::Document.createTextNode> ('>'));
2683 $vals->{value} .= '>';
2684 }
2685 } (Name == 'amp') {
2686 lang:Perl {
2687 $parent-><M::Node.appendChild>
2688 ($self->{doc}-><M::Document.createTextNode> ('&'));
2689 $vals->{value} .= '&';
2690 }
2691 } (Name == 'quot') {
2692 lang:Perl {
2693 $parent-><M::Node.appendChild>
2694 ($self->{doc}-><M::Document.createTextNode> ('"'));
2695 $vals->{value} .= '"';
2696 }
2697 } (Name == 'apos') {
2698 lang:Perl {
2699 $parent-><M::Node.appendChild>
2700 ($self->{doc}-><M::Document.createTextNode> ("'"));
2701 $vals->{value} .= "'";
2702 }
2703 } (Name) {
2704 my $er;
2705 lang:Perl ($name => $token.value) : has-error {
2706 __CODE{checkNCName:: $name => $name}__;
2707
2708 $er = $self->{doc}-><M::Document.createEntityReference> ($name);
2709 $er-><AS::Node.textContent> ('');
2710 ## NOTE: When document entity (and entities referenced directly
2711 ## or indirectly from it) is parsed, no general entity
2712 ## node have its replacement tree. During general
2713 ## entity node collection construction, however,
2714 ## some entity node has replacement tree.
2715 my $ent = $self->{general_entity}->{$name};
2716 if (not $ent) { # no entity declaration
2717 if ($self->{standalone} or not $self->{has_xref}) { # WFC error
2718 my $location;
2719 __CODE{xp|get-location-from-token::
2720 $token => {$token},
2721 $result => {$location},
2722 }__;
2723 my $continue = __DOMCore:ERROR{xp|wf-entity-declared::
2724 xp|error-token => {$token},
2725 c|location => {$location},
2726 xp|name => {$name},
2727 }__;
2728 unless ($continue) {
2729 __EXCEPTION{DOMLS|PARSE_ERR}__;
2730 }
2731 } # Otherwise VC error
2732 push @{$self->{entity}}, <Code::getEmptyEntityState::
2733 $name = $name>;
2734 $er-><AS::x|EntityReference.isExpanded> (false);
2735
2736 } else { # there IS entity declaration
2737 if (($self->{standalone} or not $self->{has_xref}) and
2738 $ent->{is_externally_declared} and
2739 not $self->{entity}->[-1]->{is_externally_declared}) {
2740 my $location;
2741 __CODE{xp|get-location-from-token::
2742 $token => {$token},
2743 $result => {$location},
2744 }__;
2745 my $continue = __DOMCore:ERROR{xp|wf-entity-declared::
2746 xp|error-token => {$token},
2747 c|location => {$location},
2748 xp|name => {$name},
2749 }__;
2750 unless ($continue) {
2751 __EXCEPTION{DOMLS|PARSE_ERR}__;
2752 }
2753 }
2754
2755 if ($ent->{is_external_entity}) {
2756 my $location;
2757 __CODE{xp|get-location-from-token::
2758 $token => {$token},
2759 $result => {$location},
2760 }__;
2761 my $continue = __c|ERROR{xp|wf-no-external-entity-references::
2762 xp|error-token => {$token},
2763 c|location => {$location},
2764 xp|name => {$name},
2765 }__;
2766 unless ($continue) {
2767 __EXCEPTION{DOMLS|PARSE_ERR::
2768 }__;
2769 }
2770 ## NOTE: |xp:wf-parsed-entity| is not checked
2771 } # if external entity
2772
2773 $er-><AS::x|EntityReference.isExpanded>
2774 ($ent->{has_replacement_text});
2775 push @{$self->{entity}}, <Code::getCopyOfEntityState::
2776 $entity_type = 'general_entity',
2777 $entity_name = $name>;
2778
2779 if ($ent->{is_opened}) {
2780 my $location;
2781 __CODE{xp|get-location-from-token::
2782 $token => {$token},
2783 $result => {$location},
2784 }__;
2785 my $continue = __c|ERROR{xp|wf-no-recursion::
2786 xp|error-token => {$token},
2787 c|location => {$location},
2788 xp|name => {$name},
2789 }__;
2790 unless ($continue) {
2791 __EXCEPTION{DOMLS|PARSE_ERR::
2792 }__;
2793 }
2794 $self->{entity}->[-1]->{reptxt} = \'';
2795 $er-><AS::x|EntityReference.isExpanded> (false);
2796 } # recursive
2797 $ent->{is_opened} = true;
2798 }
2799 $parent-><M::Node.appendChild> ($er);
2800 $self->{location} = $self->{entity}->[-1];
2801 push @{$self->{entity_token}}, $self->{token};
2802 $self->{token} = [];
2803 push @{$self->{entity_char}}, $self->{char};
2804 $self->{char} = [];
2805 }
2806
2807 ?lexmode AttributeValueLiteralE;
2808 &AttributeValueLiteralE_ ($parent => $er, $vals => $vals);
2809 ~ (#EOF) { }
2810 lang:Perl {
2811 $self->{general_entity}->{$self->{entity}->[-1]->{name}}
2812 ->{is_opened} = false
2813 if $self->{general_entity}->{$self->{entity}->[-1]->{name}};
2814 $self->{token} = pop @{$self->{entity_token}};
2815 $self->{char} = pop @{$self->{entity_char}};
2816 pop @{$self->{entity}};
2817 $self->{location} = $self->{entity}->[-1];
2818 }
2819
2820 // TODO: Set read-only flag
2821
2822 ?lexmode EntityReference;
2823 ?requires-next-token;
2824 }
2825
2826 // ~ (REFC) { }
2827 } // _GeneralEntityReferenceAE_
2828
2829 /*
2830 General Entity Reference in Literal Entity Value in Entity Declaration
2831 */
2832 rule _GeneralEntityReferenceEV_ ($vals) {
2833 ?lexmode 'EntityReference';
2834
2835 ~ (Name) {
2836 lang:Perl ($name => $token.value) {
2837 __CODE{checkNCName:: $name => $name}__;
2838 push @$vals, $name;
2839 }
2840 /*
2841 WFCs such as Entity Declared are not checked
2842 <http://www.w3.org/TR/xml11/#bypass>
2843
2844 Note that violation to the Parsed Entity WFC is an error
2845 rather than fatal error here.
2846 */
2847 }
2848
2849 // No expansion
2850
2851 // ~ (REFC) { }
2852 } // _GeneralEntityReferenceEV_
2853
2854 /*
2855 Document Type Declaration
2856 */
2857 rule _DocumentTypeDeclaration_ ($doc) {
2858 ?lexmode MarkupDeclaration;
2859
2860 ~ (Name == 'DOCTYPE') { }
2861
2862 ~ (S) { }
2863
2864 // Document type name
2865 my $name;
2866 ~ (Name) {
2867 lang:Perl ($v => $token.value) {
2868 __CODE{checkQName:: $name => $v}__;
2869 $name = $v;
2870 }
2871 }
2872
2873 my $node;
2874 my $decl;
2875 lang:Perl {
2876 $self->{docx} = $self->{doc}
2877 -><M::Node.getFeature> (<Q::fe:XDoctype>, '3.0');
2878 $node = $self->{docx}-><M::DocumentXDoctype.createDocumentTypeDefinition>
2879 ($name);
2880 $decl = $self->{dtdecl} = $node-><M::Node.getFeature>
2881 (<Q::fe:XDoctypeDeclaration>, '3.0');
2882 }
2883
2884 my $has_extid;
2885 ~? (S) {
2886 ~? (Name == 'PUBLIC') {
2887 ~ (S) { }
2888
2889 &PubidLiteral ($decl => $decl);
2890
2891 ~ (S) { }
2892
2893 &SystemLiteral ($decl => $decl);
2894
2895 ~? (S) { }
2896
2897 lang:Perl {
2898 $self->{has_xref} = true;
2899 $has_extid = true;
2900 }
2901 } (Name == 'SYSTEM') {
2902 ~ (S) { }
2903
2904 &SystemLiteral ($decl => $decl);
2905
2906 ~? (S) { }
2907
2908 lang:Perl {
2909 $self->{has_xref} = true;
2910 $has_extid = true;
2911 }
2912 }
2913 }
2914
2915 lang:Perl {
2916 $self->{dtdef} = $node;
2917 $self->{doc}-><M::Node.appendChild> ($node);
2918 $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>
2919 ('schema-type' => <Q::xml-dtd:>);
2920 ## ISSUE: Should default schema language information be
2921 ## preserved by some other flag?
2922 }
2923
2924 ~? (DSO) {
2925 &InternalSubset ($doc => $doc, $doctype => $node);
2926
2927 ~ (DSC) {
2928 ?lexmode MarkupDeclaration;
2929 } else {
2930 ?lexmode MarkupDeclaration;
2931 }
2932
2933 ~? (S) { }
2934 }
2935
2936 // TODO: Read and process external subset if any.
2937 lang:Perl {
2938 $self->{dont_process} = true if $has_extid;
2939 }
2940
2941 // ~ (MDC) { }
2942 } // _DocumentTypeDeclaration_
2943
2944 /*
2945 Public Identifier Literal
2946 */
2947 rule PubidLiteral ($decl) {
2948 my $pubid;
2949 my $pubid_token;
2950 ~ (LIT) {
2951 ?lexmode SystemLiteral;
2952
2953 ~? (STRING) {
2954 lang:Perl ($v => $token.value) {
2955 $pubid = $v;
2956 $pubid_token = $token;
2957 }
2958 }
2959
2960 ~ (LIT) {
2961 ?lexmode MarkupDeclaration;
2962 } else {
2963 ?lexmode MarkupDeclaration;
2964 }
2965 } (LITA) {
2966 ?lexmode SystemLiteralA;
2967
2968 ~? (STRING) {
2969 lang:Perl ($v => $token.value) {
2970 $pubid = $v;
2971 $pubid_token = $token;
2972 }
2973 }
2974
2975 ~ (LITA) {
2976 ?lexmode MarkupDeclaration;
2977 } else {
2978 ?lexmode MarkupDeclaration;
2979 }
2980 }
2981
2982 if-true ($pubid_token) {
2983 lang:Perl : has-error {
2984 if ($pubid =~ m{[^\x20\x0D\x0Aa-zA-Z0-9'()+,./:=?;!*#\@\$_%-]}s) {
2985 my $location;
2986 __CODE{xp|get-location-from-token::
2987 $token => {$pubid_token},
2988 $result => {$location},
2989 }__;
2990 ## Should this be other (new) error type?
2991 my $continue = __DOMCore:ERROR{xp|wf-syntax-error::
2992 xp|error-token => {$token},
2993 c|location => {$location},
2994 }__;
2995 unless ($continue) {
2996 __EXCEPTION{DOMLS|PARSE_ERR::
2997 }__;
2998 }
2999 }
3000
3001 ## NOTE: U+0009 is syntactically illegal.
3002 $pubid =~ s/[\x09\x0A\x0D\x20]+/\x20/gs;
3003 $pubid =~ s/\A\x20//s;
3004 $pubid =~ s/\x20\z//s;
3005 ## NOTE: Bare attribute name is written.
3006 $decl->public_id ($pubid);
3007 }
3008 }
3009 } // PubidLiteral
3010
3011 /*
3012 System Identifier Literal
3013 */
3014 rule SystemLiteral ($decl) {
3015 ~ (LIT) {
3016 ?lexmode SystemLiteral;
3017 &_SystemLiteral ($decl => $decl);
3018 } (LITA) {
3019 ?lexmode SystemLiteralA;
3020 &_SystemLiteral ($decl => $decl);
3021 }
3022 } // SystemLiteral
3023
3024 /*
3025 System Identifier Literal Content
3026 */
3027 rule _SystemLiteral ($decl) {
3028 // LIT or LITA
3029
3030 ~? (STRING) {
3031 lang:Perl ($v => $token.value) {
3032 ## NOTE: Bare attribute name is written.
3033 $decl->system_id ($v);
3034 }
3035 }
3036
3037 ~ (LIT) {
3038 ?lexmode MarkupDeclaration;
3039 } (LITA) {
3040 ?lexmode MarkupDeclaration;
3041 } else {
3042 ?lexmode MarkupDeclaration;
3043 }
3044 } // _SystemLiteral
3045
3046 /*
3047 DTD Internal Subset
3048
3049 intSubset := *(markupdecl / DeclSep) ;; [28b]
3050 */
3051 rule InternalSubset ($doc, $doctype) {
3052 ?lexmode DTD;
3053
3054 ~* (MDO) {
3055 ?lexmode MarkupDeclaration;
3056
3057 ~ (Name == 'ELEMENT') {
3058 &_ElementDeclaration ($doc => $doc);
3059 } (Name == 'ATTLIST') {
3060 &_AttlistDeclaration ($doc => $doc, $doctype => $doctype);
3061 } (Name == 'ENTITY') {
3062 &_EntityDeclaration ($doc => $doc);
3063 } (Name == 'NOTATION') {
3064 &_NotationDeclaration ($doc => $doc);
3065 }
3066 } (S) {
3067 //
3068 } (CDO) {
3069 &_CommentDeclarationDTD ($doc => $doc);
3070 } (PIO) {
3071 &_ProcessingInstructionDTD ($doc => $doc, $doctype => $doctype);
3072 } (PERO) {
3073 ?lexmode EntityReference;
3074
3075 lang:Perl {
3076 $self->{has_xref} = true;
3077 $self->{dont_process} = true;
3078 }
3079
3080 ~ (Name) {
3081 // TODO: __CODE{checkNCName:: $name => $name}__;
3082
3083 }
3084
3085 ~ (REFC) {
3086 ?lexmode DTD;
3087 } else {
3088 ?lexmode DTD;
3089 }
3090 }
3091 } // InternalSubset
3092
3093 rule _ElementDeclaration ($doc) {
3094 // ~ (MDO) { }
3095 // ?lexmode MarkupDeclaration
3096 // ~ (Name == 'Element') { }
3097
3098 ~ (S) { }
3099
3100 ~ (Name) {
3101 // TODO: __CODE{checkQName:: $name => $name}__;
3102
3103 }
3104
3105 ?lexmode ElementDeclaration;
3106
3107 ~ (S) { }
3108
3109 // contentspec
3110 ~ (MGO) {
3111 &_ContentModel ($doc => $doc);
3112 } (Name == 'EMPTY') {
3113
3114 } (Name == 'ANY') {
3115
3116 }
3117
3118 ~? (S) { }
3119
3120 ~ (MDC) {
3121 ?lexmode DTD;
3122 } else {
3123 ?lexmode DTD;
3124 }
3125 } // _ElementDeclaration
3126
3127 rule _ContentModel ($doc) {
3128 // ~ (MGO) { }
3129
3130 ~? (S) { }
3131
3132 ~ (Name) {
3133 // Element content model
3134 &_ModelGroup ($doc => $doc)
3135 : unshift-current-token;
3136
3137 ~? (OPT) {
3138
3139 } (REP) {
3140
3141 } (PLUS) {
3142
3143 }
3144
3145 } (MDO) {
3146 &_ModelGroup ($doc => $doc)
3147 : unshift-current-token;
3148
3149 ~? (OPT) {
3150
3151 } (REP) {
3152
3153 } (PLUS) {
3154
3155 }
3156
3157 } (PCDATA) {
3158 // Mixed content declaration
3159 ~? (S) { }
3160
3161 ~* (OR) {
3162 ~? (S) { }
3163
3164 ~ (Name) {
3165 // TODO: Name & QName check
3166
3167 }
3168
3169 ~? (S) { }
3170 }
3171
3172 ~ (MGC) { }
3173
3174 ~? (REP) {
3175
3176 } else {
3177 // TODO: error if |Name|
3178 }
3179
3180
3181 }
3182 } // _ContentModel
3183
3184 rule _ModelGroup ($doc)
3185 : standalone
3186 : recursive
3187 {
3188 // ~ (MGO) { }
3189 // ~? (S) { }
3190
3191 &ContentParticle ($doc => $doc);
3192
3193 ~? (S) { }
3194
3195 ~? (OR) {
3196 ~? (S) { }
3197
3198 &ContentParticle ($doc => $doc);
3199
3200 ~? (S) { }
3201
3202 ~* (OR) {
3203 ~? (S) { }
3204
3205 &ContentParticle ($doc => $doc);
3206
3207 ~? (S) { }
3208 }
3209
3210 } (SEQ) {
3211 ~? (S) { }
3212
3213 &ContentParticle ($doc => $doc);
3214
3215 ~? (S) { }
3216
3217 ~* (SEQ) {
3218 ~? (S) { }
3219
3220 &ContentParticle ($doc => $doc);
3221
3222 ~? (S) { }
3223 }
3224
3225 }
3226
3227 ~ (MGC) { }
3228 } // _ModelGroup
3229
3230 rule ContentParticle ($doc) {
3231 ~ (Name) {
3232 // TODO: Name & QName check
3233
3234 } (MGO) {
3235 ~? (S) { }
3236
3237 &_ModelGroup ($doc => $doc);
3238 }
3239
3240 ~? (OPT) {
3241
3242 } (REP) {
3243
3244 } (PLUS) {
3245
3246 }
3247 } // ContentParticle
3248
3249 /*
3250 Attribute list declaration
3251 */
3252 rule _AttlistDeclaration ($doc, $doctype) {
3253 // ~ (MDO) { }
3254 // ~ (Name == 'ATTLIST') { }
3255
3256 ?lexmode AttlistDeclaration;
3257
3258 ~ (S) { }
3259
3260 my $name;
3261 ~ (Name) {
3262 lang:Perl ($v => $token.value) {
3263 __CODE{checkQName:: $name => $v}__;
3264 $name = $v;
3265 }
3266 } else {
3267 lang:Perl { $name = '#ILLEGAL' }
3268 }
3269
3270 my $docxd;
3271 my $et;
3272 lang:Perl {
3273 $et = $doctype-><M::DTDef.getElementTypeDefinitionNode> ($name);
3274 unless ($et) {
3275 $docxd = $doc-><M::Node.getFeature> (<Q::fe:XDoctype>, '3.0');
3276 $et = $docxd-><M::DocumentXDoctype.createElementTypeDefinition>
3277 ($name);
3278 $doctype-><M::DTDef.setElementTypeDefinitionNode> ($et)
3279 unless $name eq '#ILLEGAL';
3280 }
3281 }
3282
3283 ~? (S) { }
3284
3285 ~* (Name) {
3286 my $at;
3287 lang:Perl ($v => $token.value) : has-error {
3288 __CODE{checkQName:: $name => $v}__;
3289 $docxd ||= $doc-><M::Node.getFeature>
3290 (<Q::fe:XDoctype>, '3.0');
3291 $at = $docxd-><M::DocumentXDoctype.createAttributeDefinition> ($v);
3292 if (exists $et-><AG::ETDef.attributeDefinitions>->{$v}) {
3293 my $location;
3294 __CODE{xp|get-location-from-token::
3295 $token => {$token},
3296 $result => {$location},
3297 }__;
3298 my $continue = __c|ERROR{xp|warning-attribute-definition-ignored::
3299 xp|error-token => {$token},
3300 c|location => {$location},
3301 xp|name => {$v},
3302 }__;
3303 unless ($continue) {
3304 __EXCEPTION{DOMLS|PARSE_ERR::
3305 }__;
3306 }
3307 } elsif ($self->{dont_process} and not $self->{standalone}) {
3308 my $location;
3309 __CODE{xp|get-location-from-token::
3310 $token => {$token},
3311 $result => {$location},
3312 }__;
3313 my $continue = __c|ERROR{
3314 xp|warning-attribute-definition-not-processed::
3315 xp|error-token => {$token},
3316 c|location => {$location},
3317 xp|name => {$v},
3318 }__;
3319 unless ($continue) {
3320 __EXCEPTION{DOMLS|PARSE_ERR::
3321 }__;
3322 }
3323 } else {
3324 $et-><M::ETDef.setAttributeDefinitionNode> ($at);
3325 $self->{attr}->{$name}->{$v} = $at;
3326 }
3327 }
3328
3329 ~ (S) { }
3330
3331 // AttType
3332 ~ (Name == 'NOTATION') {
3333 ~ (S) { }
3334
3335 my $kwd;
3336 lang:Perl {
3337 $at-><AS::ATDef.declaredType> (<C::ATDef.NOTATION_ATTR>);
3338 $kwd = $at-><AG::ATDef.allowedTokens>;
3339 }
3340
3341 ~ (EGO) {
3342 ~? (S) { }
3343
3344 ~+ (Name) {
3345 lang:Perl ($v => $token.value) : has-error {
3346 __CODE{checkNCName:: $name => $v}__;
3347 push @$kwd, $v;
3348 }
3349
3350 ~? (S) { }
3351 } (OR) : separator {
3352 ~? (S) { }
3353 }
3354
3355 ~ (EGC) { }
3356 }
3357
3358 } (Name) {
3359 my $type;
3360 lang:Perl ($v => $token.value) : has-error {
3361 my $map = {
3362 CDATA => <C::ATDef.CDATA_ATTR>,
3363 ID => <C::ATDef.ID_ATTR>,
3364 IDREF => <C::ATDef.IDREF_ATTR>,
3365 IDREFS => <C::ATDef.IDREFS_ATTR>,
3366 ENTITY => <C::ATDef.ENTITY_ATTR>,
3367 ENTITIES => <C::ATDef.ENTITIES_ATTR>,
3368 NMTOKEN => <C::ATDef.NMTOKEN_ATTR>,
3369 NMTOKENS => <C::ATDef.NMTOKENS_ATTR>,
3370 };
3371 if ($map->{$v}) {
3372 $at-><AS::ATDef.declaredType> ($map->{$v});
3373 } else {
3374 ## TODO: Exception
3375 }
3376 }
3377
3378 } (EGO) {
3379 ?lexmode Enumeration;
3380
3381 ~? (S) { }
3382
3383 my $kwd;
3384 lang:Perl {
3385 $at-><AS::ATDef.declaredType> (<C::ATDef.ENUMERATION_ATTR>);
3386 $kwd = $at-><AG::ATDef.allowedTokens>;
3387 }
3388
3389 ~+ (Nmtoken) {
3390 lang:Perl ($v => $token.value) {
3391 push @$kwd, $v;
3392 }
3393
3394 ~? (S) { }
3395 } (OR) : separator {
3396 ~? (S) { }
3397 }
3398
3399 ~ (EGC) {
3400 ?lexmode AttlistDeclaration;
3401 } else {
3402 ?lexmode AttlistDeclaration;
3403 }
3404
3405 }
3406
3407 ~ (S) { }
3408
3409 // DefaultDecl
3410 ~ (RNI) {
3411 ~ (Name == 'REQUIRED') {
3412 lang:Perl {
3413 $at-><AS::ATDef.defaultType> (<C::ATDef.REQUIRED_DEFAULT>);
3414 }
3415 } (Name == 'IMPLIED') {
3416 lang:Perl {
3417 $at-><AS::ATDef.defaultType> (<C::ATDef.IMPLIED_DEFAULT>);
3418 }
3419 } (Name == 'FIXED') {
3420 ~ (S) { }
3421
3422 lang:Perl {
3423 $at-><AS::ATDef.defaultType> (<C::ATDef.FIXED_DEFAULT>);
3424 }
3425
3426 ~ (LIT) {
3427 my $vals;
3428 lang:Perl {
3429 $vals = {nodes => [], value => ''};
3430 }
3431
3432 &_AttributeValueSpecification_ ($doc => $doc, $vals => $vals);
3433
3434 lang:Perl {
3435 for (@{$vals->{nodes}}) {
3436 $at-><M::Node.appendChild> ($_);
3437 }
3438 }
3439
3440 ~ (LIT) {
3441 ?lexmode AttlistDeclaration;
3442 } else {
3443 ?lexmode AttlistDeclaration;
3444 }
3445 } (LITA) {
3446 my $vals;
3447 lang:Perl {
3448 $vals = {nodes => [], value => ''};
3449 }
3450
3451 &_AttributeValueSpecificationA_ ($doc => $doc, $vals => $vals);
3452
3453 lang:Perl {
3454 for (@{$vals->{nodes}}) {
3455 $at-><M::Node.appendChild> ($_);
3456 }
3457 }
3458
3459 ~ (LITA) {
3460 ?lexmode AttlistDeclaration;
3461 } else {
3462 ?lexmode AttlistDeclaration;
3463 }
3464 }
3465 }
3466
3467 } (LIT) {
3468 my $vals;
3469 lang:Perl {
3470 $at-><AS::ATDef.defaultType> (<C::ATDef.EXPLICIT_DEFAULT>);
3471 $vals = {nodes => [], value => ''};
3472 }
3473
3474 &_AttributeValueSpecification_ ($doc => $doc, $vals => $vals);
3475
3476 lang:Perl {
3477 for (@{$vals->{nodes}}) {
3478 $at-><M::Node.appendChild> ($_);
3479 }
3480 }
3481
3482 ~ (LIT) {
3483 ?lexmode AttlistDeclaration;
3484 } else {
3485 ?lexmode AttlistDeclaration;
3486 }
3487 } (LITA) {
3488 my $vals;
3489 lang:Perl {
3490 $at-><AS::ATDef.defaultType> (<C::ATDef.EXPLICIT_DEFAULT>);
3491 $vals = {nodes => [], value => ''};
3492 }
3493
3494 &_AttributeValueSpecificationA_ ($doc => $doc, $vals => $vals);
3495
3496 lang:Perl {
3497 for (@{$vals->{nodes}}) {
3498 $at-><M::Node.appendChild> ($_);
3499 }
3500 }
3501
3502 ~ (LITA) {
3503 ?lexmode AttlistDeclaration;
3504 } else {
3505 ?lexmode AttlistDeclaration;
3506 }
3507 }
3508
3509 } (S) : separator : terminator? {
3510 //
3511 }
3512
3513 ~ (MDC) {
3514 ?lexmode DTD;
3515 } else {
3516 ?lexmode DTD;
3517 }
3518 } // _AttlistDeclaration
3519
3520 /*
3521 Entity Declaration
3522 */
3523 rule _EntityDeclaration ($doc) {
3524 // ~ (MDO) { }
3525 // ~ (Name == ENTITY) { }
3526
3527 ~ (S) { }
3528
3529 my $is_param_entity;
3530 my $decl;
3531 lang:Perl { $decl = { name => '#ILLEGAL', reptxt => \'' }; }
3532
3533 ~? (PERO) {
3534 ~ (S) { }
3535 lang:Perl {
3536 $is_param_entity = $decl->{is_param_entity} = true;
3537 }
3538 }
3539
3540 /*
3541 TODO: Set |$decl->{is_externally_declared}| flag
3542 and |Entity.isExternallyDeclared| attribute
3543 for entity declarations in external subset or
3544 in parameter entity.
3545 */
3546
3547 ~ (Name) {
3548 lang:Perl ($v => $token.value) {
3549 __CODE{checkNCName:: $name => $v}__;
3550 $decl->{name} = $v;
3551 }
3552 }
3553
3554 my $node;
3555 lang:Perl {
3556 $node =
3557 $decl->{node} = $self->{docx}-><M::DocumentXDoctype.createGeneralEntity>
3558 ($decl->{name});
3559 ## TODO: Parameter entity...
3560 }
3561
3562 ~ (S) { }
3563
3564 ~ (LIT) {
3565 &_EntityValue ($doc => $doc, $decl => $decl);
3566 } (LITA) {
3567 &_EntityValueA ($doc => $doc, $decl => $decl);
3568 } (Name == 'PUBLIC') {
3569 ~ (S) { }
3570
3571 &PubidLiteral ($decl => $node);
3572
3573 ~ (S) { }
3574
3575 &SystemLiteral ($decl => $node);
3576
3577 lang:Perl {
3578 $decl->{is_external_entity} = true;
3579 }
3580 } (Name == 'SYSTEM') {
3581 ~ (S) { }
3582
3583 &SystemLiteral ($decl => $node);
3584
3585 lang:Perl {
3586 $decl->{is_external_entity} = true;
3587 }
3588 }
3589
3590 ~? (S) {
3591 ~? (Name == 'NDATA') {
3592 if-true ($is_param_entity) {
3593 lang:Perl : has-error {
3594 my $location;
3595 __CODE{xp|get-location-from-token::
3596 $token => {$token},
3597 $result => {$location},
3598 }__;
3599 my $continue = __DOMCore:ERROR{xp|wf-syntax-error::
3600 xp|error-token => {$token},
3601 c|location => {$location},
3602 }__;
3603 unless ($continue) {
3604 __EXCEPTION{DOMLS|PARSE_ERR::
3605 }__;
3606 }
3607 }
3608 }
3609
3610 ~ (S) { }
3611
3612 ~ (Name) {
3613 lang:Perl ($v => $token.value) : has-error {
3614 __CODE{checkNCName:: $name => $v}__;
3615 $decl->{notation} = $v;
3616 $decl->{node}-><AG::x|Entity.notationName> ($v);
3617 }
3618 }
3619
3620 ~? (S) { }
3621 }
3622 }
3623
3624 lang:Perl : has-error {
3625 if ($self->{$decl->{is_param_entity} ? 'param_entity' : 'general_entity'}
3626 ->{$decl->{name}}) {
3627 ## Predefined entity
3628 if (not $decl->{is_param_entity} and
3629 {lt => true, gt => true, amp => true,
3630 quot => true, apos => true}->{$decl->{name}}) {
3631 if ($decl->{is_external_entity}) {
3632 my $location;
3633 __CODE{xp|get-location-from-token::
3634 $token => {$token},
3635 $result => {$location},
3636 }__;
3637 my $continue = __c|ERROR{xp|error-internal-predefined-entity::
3638 xp|error-token => {$token},
3639 c|location => {$location},
3640 xp|name => {$decl->{name}},
3641 }__;
3642 unless ($continue) {
3643 __EXCEPTION{DOMLS|PARSE_ERR::
3644 }__;
3645 }
3646 } elsif (
3647 not ({gt => true, apos => true, quot => true}->{$decl->{name}} and
3648 ${$decl->{reptxt}} eq {
3649 gt => '>', apos => "'", quot => '"',
3650 }->{$decl->{name}}) and
3651 not (${$decl->{reptxt}} =~ /\A&#0*@{[{
3652 lt => '60', gt => '62', amp => '38',
3653 apos => '39', quot => '34',
3654 }->{$decl->{name}}]};\z/) and
3655 not (${$decl->{reptxt}} =~ /\A&#x0*(?:(?i)@{[{
3656 lt => '3C', gt => '3E', amp => '26',
3657 apos => '27', quot => '22',
3658 }->{$decl->{name}}]});\z/)
3659 ) {
3660 ## NOTE: See "SuikaWiki - Predefined Entities"
3661 ## "http://suika.fam.cx/gate/2005/sw/%E5%AE%9A%E7%BE%A9%E6%B8%88%E5%AE%9F%E4%BD%93".
3662 my $location;
3663 __CODE{xp|get-location-from-token::
3664 $token => {$token},
3665 $result => {$location},
3666 }__;
3667 my $continue = __c|ERROR{xp|error-malformed-predefined-entity::
3668 xp|error-token => {$token},
3669 c|location => {$location},
3670 xp|name => {$decl->{name}},
3671 xp|replacement-text => {${$decl->{reptxt}}},
3672 }__;
3673 unless ($continue) {
3674 __EXCEPTION{DOMLS|PARSE_ERR::
3675 }__;
3676 }
3677 }
3678 $self->{dtdecl}->{<H::mn:node>}->{{
3679 lt => <H::d|hasLtDeclaration>,
3680 gt => <H::d|hasGtDeclaration>,
3681 amp => <H::d|hasAmpDeclaration>,
3682 apos => <H::d|hasAposDeclaration>,
3683 quot => <H::d|hasQuotDeclaration>,
3684 }->{$decl->{name}}} = true;
3685 } else { ## Dupulicating declaration
3686 my $location;
3687 __CODE{xp|get-location-from-token::
3688 $token => {$token},
3689 $result => {$location},
3690 }__;
3691 my $continue = __c|ERROR{xp|warning-entity-declaration-ignored::
3692 xp|error-token => {$token},
3693 c|location => {$location},
3694 xp|name => {$decl->{name}},
3695 }__;
3696 unless ($continue) {
3697 __EXCEPTION{DOMLS|PARSE_ERR::
3698 }__;
3699 }
3700 }
3701 } elsif ($self->{dont_process} and not $self->{standalone}) {
3702 ## TODO: |standalone| and parameter entities??
3703 my $location;
3704 __CODE{xp|get-location-from-token::
3705 $token => {$token},
3706 $result => {$location},
3707 }__;
3708 my $continue = __c|ERROR{xp|warning-entity-declaration-not-processed::
3709 xp|error-token => {$token},
3710 c|location => {$location},
3711 xp|name => {$decl->{name}},
3712 }__;
3713 unless ($continue) {
3714 __EXCEPTION{DOMLS|PARSE_ERR::
3715 }__;
3716 }
3717 } else {
3718 $self->{$decl->{is_param_entity} ? 'param_entity' : 'general_entity'}
3719 ->{$decl->{name}} = $decl;
3720 $self->{dtdef}-><M::DTDef.setGeneralEntityNode> ($decl->{node})
3721 unless $decl->{is_param_entity};
3722 }
3723 }
3724
3725 ~ (MDC) {
3726 ?lexmode DTD;
3727 } else {
3728 ?lexmode DTD;
3729 }
3730 } // _EntityDeclaration
3731
3732 /*
3733 Notation Declaration
3734 */
3735 rule _NotationDeclaration {
3736 // ~ (MDO) { }
3737 // ~ (Name == NOTATION) { }
3738
3739 ~ (S) { }
3740
3741 my $name;
3742 ~ (Name) {
3743 lang:Perl ($v => $token.value) : has-error {
3744 __CODE{checkNCName:: $name => $v}__;
3745 $name = $v;
3746 }
3747 } else {
3748 lang:Perl {
3749 $name = '#INVALID';
3750 }
3751 }
3752
3753 ~ (S) { }
3754
3755 lang:Perl {
3756 $decl = $self->{docx}-><M::DocumentXDoctype.createNotation> ($name);
3757 }
3758
3759 ~ (Name == 'PUBLIC') {
3760 ~ (S) { }
3761
3762 &PubidLiteral ($decl => $decl);
3763
3764 ~? (S) {
3765 ~? (LIT) {
3766 ?lexmode SystemLiteral;
3767 &_SystemLiteral ($decl => $decl);
3768
3769 ~? (S) { }
3770 } (LITA) {
3771 ?lexmode SystemLiteralA;
3772 &_SystemLiteral ($decl => $decl);
3773
3774 ~? (S) { }
3775 }
3776 }
3777 } (Name == 'SYSTEM') {
3778 ~ (S) { }
3779
3780 &SystemLiteral ($decl => $decl);
3781
3782 ~? (S) { }
3783 }
3784
3785 lang:Perl : has-error {
3786 if ($self->{dtdef}-><M::DTDef.getNotationNode> ($name)) {
3787 ## Dupulication
3788 my $location;
3789 __CODE{xp|get-location-from-token::
3790 $token => {$token},
3791 $result => {$location},
3792 }__;
3793 my $continue = __c|ERROR{xp|vc-unique-notation-name::
3794 xp|error-token => {$token},
3795 c|location => {$location},
3796 xp|name => {$name},
3797 }__;
3798 unless ($continue) {
3799 __EXCEPTION{DOMLS|PARSE_ERR::
3800 }__;
3801 }
3802 } else {
3803 $self->{dtdef}-><M::DTDef.setNotationNode> ($decl);
3804 }
3805 }
3806
3807 ~ (MDC) {
3808 ?lexmode DTD;
3809 } else {
3810 ?lexmode DTD;
3811 }
3812 } // _NotationDeclaration
3813
3814 rule _EntityValue ($decl) {
3815 ?lexmode EntityValue;
3816
3817 my $vals;
3818 my $reptxt;
3819 lang:Perl {
3820 $vals = [];
3821 $reptxt = '';
3822 }
3823
3824 ~* (STRING) {
3825 lang:Perl ($v => $token.value) {
3826 $reptxt .= $v;
3827 }
3828 } (PERO) {
3829 ?lexmode EntityReference;
3830
3831 lang:Perl {
3832 $self->{has_xref} = true;
3833 $self->{dont_process} = true;
3834 }
3835
3836 // TODO: Expand or wferror if internal subset
3837
3838 ~ (Name) {
3839
3840 // Note that external subset and parameter entities are not supported
3841 lang:Perl ($name => $token.value) : has-error {
3842 __CODE{checkNCName:: $name => $name}__;
3843 my $location;
3844 __CODE{xp|get-location-from-token::
3845 $token => {$token},
3846 $result => {$location},
3847 }__;
3848 my $continue = __c|ERROR{xp|wf-pes-in-internal-subset::
3849 xp|error-token => {$token},
3850 c|location => {$location},
3851 xp|name => {$name},
3852 }__;
3853 unless ($continue) {
3854 __EXCEPTION{DOMLS|PARSE_ERR::
3855 }__;
3856 }
3857 }
3858 }
3859
3860 ~ (REFC) {
3861 ?lexmode EntityValue;
3862 } else {
3863 ?lexmode EntityValue;
3864 }
3865 } (HCRO) {
3866 &_HexadecimalCharacterReferenceEV_ ($vals => $vals);
3867
3868 lang:Perl {
3869 $reptxt .= $vals->[-1];
3870 }
3871
3872 ~ (REFC) {
3873 ?lexmode EntityValue;
3874 } else {
3875 ?lexmode EntityValue;
3876 }
3877 } (CRO) {
3878 &_NumericCharacterReferenceEV_ ($vals => $vals);
3879
3880 lang:Perl {
3881 $reptxt .= $vals->[-1];
3882 }
3883
3884 ~ (REFC) {
3885 ?lexmode EntityValue;
3886 } else {
3887 ?lexmode EntityValue;
3888 }
3889 } (ERO) {
3890 &_GeneralEntityReferenceEV_ ($vals => $vals);
3891
3892 lang:Perl {
3893 $reptxt .= '&' . $vals->[-1] . ';';
3894 }
3895
3896 ~ (REFC) {
3897 ?lexmode EntityValue;
3898 } else {
3899 ?lexmode EntityValue;
3900 }
3901 }
3902
3903 ~ (LIT) {
3904 ?lexmode MarkupDeclaration;
3905 } (LITA) {
3906 ?lexmode MarkupDeclaration;
3907 } else {
3908 ?lexmode MarkupDeclaration;
3909 }
3910
3911 lang:Perl {
3912 $decl->{reptxt} = \$reptxt;
3913 $decl->{has_replacement_text} = true;
3914 }
3915 } // _EntityValue
3916
3917 rule _EntityValueA ($decl) {
3918 ?lexmode EntityValueA;
3919
3920 my $vals;
3921 my $reptxt;
3922 lang:Perl {
3923 $vals = [];
3924 $reptxt = '';
3925 }
3926
3927 ~* (STRING) {
3928 lang:Perl ($v => $token.value) {
3929 $reptxt .= $v;
3930 }
3931 } (PERO) {
3932 ?lexmode EntityReference;
3933
3934 lang:Perl {
3935 $self->{has_xref} = true;
3936 $self->{dont_process} = true;
3937 }
3938
3939 // TODO: implement this
3940 ~ (Name) {
3941
3942 // Note that external subset and parameter entities are not supported
3943 lang:Perl ($name => $token.value) : has-error {
3944 __CODE{checkNCName:: $name => $name}__;
3945 my $location;
3946 __CODE{xp|get-location-from-token::
3947 $token => {$token},
3948 $result => {$location},
3949 }__;
3950 my $continue = __c|ERROR{xp|wf-pes-in-internal-subset::
3951 xp|error-token => {$token},
3952 c|location => {$location},
3953 xp|name => {$name},
3954 }__;
3955 unless ($continue) {
3956 __EXCEPTION{DOMLS|PARSE_ERR::
3957 }__;
3958 }
3959 }
3960 }
3961
3962 ~ (REFC) {
3963 ?lexmode EntityValueA;
3964 } else {
3965 ?lexmode EntityValueA;
3966 }
3967 } (HCRO) {
3968 &_HexadecimalCharacterReferenceEV_ ($vals => $vals);
3969
3970 lang:Perl {
3971 $reptxt .= $vals->[-1];
3972 }
3973
3974
3975 ~ (REFC) {
3976 ?lexmode EntityValueA;
3977 } else {
3978 ?lexmode EntityValueA;
3979 }
3980 } (CRO) {
3981 &_NumericCharacterReferenceEV_ ($vals => $vals);
3982
3983 lang:Perl {
3984 $reptxt .= $vals->[-1];
3985 }
3986
3987 ~ (REFC) {
3988 ?lexmode EntityValueA;
3989 } else {
3990 ?lexmode EntityValueA;
3991 }
3992 } (ERO) {
3993 &_GeneralEntityReferenceEV_ ($vals => $vals);
3994
3995 lang:Perl {
3996 $reptxt .= '&' . $vals->[-1] . ';';
3997 }
3998
3999 ~ (REFC) {
4000 ?lexmode EntityValueA;
4001 } else {
4002 ?lexmode EntityValueA;
4003 }
4004 }
4005
4006 ~ (LITA) {
4007 ?lexmode MarkupDeclaration;
4008 } else {
4009 ?lexmode MarkupDeclaration;
4010 }
4011
4012 lang:Perl {
4013 $decl->{reptxt} = \$reptxt;
4014 $decl->{has_replacement_text} = true;
4015 }
4016 } // _EntityValueA
4017
4018
4019 /*
4020 XML Name
4021 */
4022 lexmode NameChar {
4023 $NameStartChar10 := [
4024 '_' ':'
4025 // Letter
4026 // BaseChar
4027 U+0041..U+005A U+0061..U+007A U+00C0..U+00D6
4028 U+00D8..U+00F6 U+00F8..U+00FF U+0100..U+0131
4029 U+0134..U+013E U+0141..U+0148 U+014A..U+017E
4030 U+0180..U+01C3 U+01CD..U+01F0 U+01F4..U+01F5
4031 U+01FA..U+0217 U+0250..U+02A8 U+02BB..U+02C1
4032 U+0386 U+0388..U+038A U+038C U+038E..U+03A1
4033 U+03A3..U+03CE U+03D0..U+03D6 U+03DA U+03DC
4034 U+03DE U+03E0 U+03E2..U+03F3 U+0401..U+040C
4035 U+040E..U+044F U+0451..U+045C U+045E..U+0481
4036 U+0490..U+04C4 U+04C7..U+04C8 U+04CB..U+04CC
4037 U+04D0..U+04EB U+04EE..U+04F5 U+04F8..U+04F9
4038 U+0531..U+0556 U+0559 U+0561..U+0586
4039 U+05D0..U+05EA U+05F0..U+05F2 U+0621..U+063A
4040 U+0641..U+064A U+0671..U+06B7 U+06BA..U+06BE
4041 U+06C0..U+06CE U+06D0..U+06D3 U+06D5
4042 U+06E5..U+06E6 U+0905..U+0939 U+093D
4043 U+0958..U+0961 U+0985..U+098C U+098F..U+0990
4044 U+0993..U+09A8 U+09AA..U+09B0 U+09B2
4045 U+09B6..U+09B9 U+09DC..U+09DD U+09DF..U+09E1
4046 U+09F0..U+09F1 U+0A05..U+0A0A U+0A0F..U+0A10
4047 U+0A13..U+0A28 U+0A2A..U+0A30 U+0A32..U+0A33
4048 U+0A35..U+0A36 U+0A38..U+0A39 U+0A59..U+0A5C
4049 U+0A5E U+0A72..U+0A74 U+0A85..U+0A8B U+0A8D
4050 U+0A8F..U+0A91 U+0A93..U+0AA8 U+0AAA..U+0AB0
4051 U+0AB2..U+0AB3 U+0AB5..U+0AB9 U+0ABD U+0AE0
4052 U+0B05..U+0B0C U+0B0F..U+0B10 U+0B13..U+0B28
4053 U+0B2A..U+0B30 U+0B32..U+0B33 U+0B36..U+0B39
4054 U+0B3D U+0B5C..U+0B5D U+0B5F..U+0B61
4055 U+0B85..U+0B8A U+0B8E..U+0B90 U+0B92..U+0B95
4056 U+0B99..U+0B9A U+0B9C U+0B9E..U+0B9F
4057 U+0BA3..U+0BA4 U+0BA8..U+0BAA U+0BAE..U+0BB5
4058 U+0BB7..U+0BB9 U+0C05..U+0C0C U+0C0E..U+0C10
4059 U+0C12..U+0C28 U+0C2A..U+0C33 U+0C35..U+0C39
4060 U+0C60..U+0C61 U+0C85..U+0C8C U+0C8E..U+0C90
4061 U+0C92..U+0CA8 U+0CAA..U+0CB3 U+0CB5..U+0CB9
4062 U+0CDE U+0CE0..U+0CE1 U+0D05..U+0D0C
4063 U+0D0E..U+0D10 U+0D12..U+0D28 U+0D2A..U+0D39
4064 U+0D60..U+0D61 U+0E01..U+0E2E U+0E30
4065 U+0E32..U+0E33 U+0E40..U+0E45 U+0E81..U+0E82
4066 U+0E84 U+0E87..U+0E88 U+0E8A U+0E8D
4067 U+0E94..U+0E97 U+0E99..U+0E9F U+0EA1..U+0EA3
4068 U+0EA5 U+0EA7 U+0EAA..U+0EAB U+0EAD..U+0EAE
4069 U+0EB0 U+0EB2..U+0EB3 U+0EBD U+0EC0..U+0EC4
4070 U+0F40..U+0F47 U+0F49..U+0F69 U+10A0..U+10C5
4071 U+10D0..U+10F6 U+1100 U+1102..U+1103
4072 U+1105..U+1107 U+1109 U+110B..U+110C
4073 U+110E..U+1112 U+113C U+113E U+1140 U+114C
4074 U+114E U+1150 U+1154..U+1155 U+1159
4075 U+115F..U+1161 U+1163 U+1165 U+1167 U+1169
4076 U+116D..U+116E U+1172..U+1173 U+1175 U+119E
4077 U+11A8 U+11AB U+11AE..U+11AF U+11B7..U+11B8
4078 U+11BA U+11BC..U+11C2 U+11EB U+11F0 U+11F9
4079 U+1E00..U+1E9B U+1EA0..U+1EF9 U+1F00..U+1F15
4080 U+1F18..U+1F1D U+1F20..U+1F45 U+1F48..U+1F4D
4081 U+1F50..U+1F57 U+1F59 U+1F5B U+1F5D
4082 U+1F5F..U+1F7D U+1F80..U+1FB4 U+1FB6..U+1FBC
4083 U+1FBE U+1FC2..U+1FC4 U+1FC6..U+1FCC
4084 U+1FD0..U+1FD3 U+1FD6..U+1FDB U+1FE0..U+1FEC
4085 U+1FF2..U+1FF4 U+1FF6..U+1FFC U+2126
4086 U+212A..U+212B U+212E U+2180..U+2182
4087 U+3041..U+3094 U+30A1..U+30FA U+3105..U+312C
4088 U+AC00..U+D7A3
4089 // Ideographic
4090 U+4E00..U+9FA5 U+3007 U+3021..U+3029
4091 ];
4092 $NameChar10 := [
4093 '.' '-' '_' ':'
4094 // Letter
4095 // BaseChar
4096 U+0041..U+005A U+0061..U+007A U+00C0..U+00D6
4097 U+00D8..U+00F6 U+00F8..U+00FF U+0100..U+0131
4098 U+0134..U+013E U+0141..U+0148 U+014A..U+017E
4099 U+0180..U+01C3 U+01CD..U+01F0 U+01F4..U+01F5
4100 U+01FA..U+0217 U+0250..U+02A8 U+02BB..U+02C1
4101 U+0386 U+0388..U+038A U+038C U+038E..U+03A1
4102 U+03A3..U+03CE U+03D0..U+03D6 U+03DA U+03DC
4103 U+03DE U+03E0 U+03E2..U+03F3 U+0401..U+040C
4104 U+040E..U+044F U+0451..U+045C U+045E..U+0481
4105 U+0490..U+04C4 U+04C7..U+04C8 U+04CB..U+04CC
4106 U+04D0..U+04EB U+04EE..U+04F5 U+04F8..U+04F9
4107 U+0531..U+0556 U+0559 U+0561..U+0586
4108 U+05D0..U+05EA U+05F0..U+05F2 U+0621..U+063A
4109 U+0641..U+064A U+0671..U+06B7 U+06BA..U+06BE
4110 U+06C0..U+06CE U+06D0..U+06D3 U+06D5
4111 U+06E5..U+06E6 U+0905..U+0939 U+093D
4112 U+0958..U+0961 U+0985..U+098C U+098F..U+0990
4113 U+0993..U+09A8 U+09AA..U+09B0 U+09B2
4114 U+09B6..U+09B9 U+09DC..U+09DD U+09DF..U+09E1
4115 U+09F0..U+09F1 U+0A05..U+0A0A U+0A0F..U+0A10
4116 U+0A13..U+0A28 U+0A2A..U+0A30 U+0A32..U+0A33
4117 U+0A35..U+0A36 U+0A38..U+0A39 U+0A59..U+0A5C
4118 U+0A5E U+0A72..U+0A74 U+0A85..U+0A8B U+0A8D
4119 U+0A8F..U+0A91 U+0A93..U+0AA8 U+0AAA..U+0AB0
4120 U+0AB2..U+0AB3 U+0AB5..U+0AB9 U+0ABD U+0AE0
4121 U+0B05..U+0B0C U+0B0F..U+0B10 U+0B13..U+0B28
4122 U+0B2A..U+0B30 U+0B32..U+0B33 U+0B36..U+0B39
4123 U+0B3D U+0B5C..U+0B5D U+0B5F..U+0B61
4124 U+0B85..U+0B8A U+0B8E..U+0B90 U+0B92..U+0B95
4125 U+0B99..U+0B9A U+0B9C U+0B9E..U+0B9F
4126 U+0BA3..U+0BA4 U+0BA8..U+0BAA U+0BAE..U+0BB5
4127 U+0BB7..U+0BB9 U+0C05..U+0C0C U+0C0E..U+0C10
4128 U+0C12..U+0C28 U+0C2A..U+0C33 U+0C35..U+0C39
4129 U+0C60..U+0C61 U+0C85..U+0C8C U+0C8E..U+0C90
4130 U+0C92..U+0CA8 U+0CAA..U+0CB3 U+0CB5..U+0CB9
4131 U+0CDE U+0CE0..U+0CE1 U+0D05..U+0D0C
4132 U+0D0E..U+0D10 U+0D12..U+0D28 U+0D2A..U+0D39
4133 U+0D60..U+0D61 U+0E01..U+0E2E U+0E30
4134 U+0E32..U+0E33 U+0E40..U+0E45 U+0E81..U+0E82
4135 U+0E84 U+0E87..U+0E88 U+0E8A U+0E8D
4136 U+0E94..U+0E97 U+0E99..U+0E9F U+0EA1..U+0EA3
4137 U+0EA5 U+0EA7 U+0EAA..U+0EAB U+0EAD..U+0EAE
4138 U+0EB0 U+0EB2..U+0EB3 U+0EBD U+0EC0..U+0EC4
4139 U+0F40..U+0F47 U+0F49..U+0F69 U+10A0..U+10C5
4140 U+10D0..U+10F6 U+1100 U+1102..U+1103
4141 U+1105..U+1107 U+1109 U+110B..U+110C
4142 U+110E..U+1112 U+113C U+113E U+1140 U+114C
4143 U+114E U+1150 U+1154..U+1155 U+1159
4144 U+115F..U+1161 U+1163 U+1165 U+1167 U+1169
4145 U+116D..U+116E U+1172..U+1173 U+1175 U+119E
4146 U+11A8 U+11AB U+11AE..U+11AF U+11B7..U+11B8
4147 U+11BA U+11BC..U+11C2 U+11EB U+11F0 U+11F9
4148 U+1E00..U+1E9B U+1EA0..U+1EF9 U+1F00..U+1F15
4149 U+1F18..U+1F1D U+1F20..U+1F45 U+1F48..U+1F4D
4150 U+1F50..U+1F57 U+1F59 U+1F5B U+1F5D
4151 U+1F5F..U+1F7D U+1F80..U+1FB4 U+1FB6..U+1FBC
4152 U+1FBE U+1FC2..U+1FC4 U+1FC6..U+1FCC
4153 U+1FD0..U+1FD3 U+1FD6..U+1FDB U+1FE0..U+1FEC
4154 U+1FF2..U+1FF4 U+1FF6..U+1FFC U+2126
4155 U+212A..U+212B U+212E U+2180..U+2182
4156 U+3041..U+3094 U+30A1..U+30FA U+3105..U+312C
4157 U+AC00..U+D7A3
4158 // Ideographic
4159 U+4E00..U+9FA5 U+3007 U+3021..U+3029
4160 // Digit
4161 U+0030..U+0039 U+0660..U+0669 U+06F0..U+06F9
4162 U+0966..U+096F U+09E6..U+09EF U+0A66..U+0A6F
4163 U+0AE6..U+0AEF U+0B66..U+0B6F U+0BE7..U+0BEF
4164 U+0C66..U+0C6F U+0CE6..U+0CEF U+0D66..U+0D6F
4165 U+0E50..U+0E59 U+0ED0..U+0ED9 U+0F20..U+0F29
4166 // CombiningChar
4167 U+0300..U+0345 U+0360..U+0361 U+0483..U+0486
4168 U+0591..U+05A1 U+05A3..U+05B9 U+05BB..U+05BD
4169 U+05BF U+05C1..U+05C2 U+05C4 U+064B..U+0652
4170 U+0670 U+06D6..U+06DC U+06DD..U+06DF
4171 U+06E0..U+06E4 U+06E7..U+06E8 U+06EA..U+06ED
4172 U+0901..U+0903 U+093C U+093E..U+094C U+094D
4173 U+0951..U+0954 U+0962..U+0963 U+0981..U+0983
4174 U+09BC U+09BE U+09BF U+09C0..U+09C4
4175 U+09C7..U+09C8 U+09CB..U+09CD U+09D7
4176 U+09E2..U+09E3 U+0A02 U+0A3C U+0A3E U+0A3F
4177 U+0A40..U+0A42 U+0A47..U+0A48 U+0A4B..U+0A4D
4178 U+0A70..U+0A71 U+0A81..U+0A83 U+0ABC
4179 U+0ABE..U+0AC5 U+0AC7..U+0AC9 U+0ACB..U+0ACD
4180 U+0B01..U+0B03 U+0B3C U+0B3E..U+0B43
4181 U+0B47..U+0B48 U+0B4B..U+0B4D U+0B56..U+0B57
4182 U+0B82..U+0B83 U+0BBE..U+0BC2 U+0BC6..U+0BC8
4183 U+0BCA..U+0BCD U+0BD7 U+0C01..U+0C03
4184 U+0C3E..U+0C44 U+0C46..U+0C48 U+0C4A..U+0C4D
4185 U+0C55..U+0C56 U+0C82..U+0C83 U+0CBE..U+0CC4
4186 U+0CC6..U+0CC8 U+0CCA..U+0CCD U+0CD5..U+0CD6
4187 U+0D02..U+0D03 U+0D3E..U+0D43 U+0D46..U+0D48
4188 U+0D4A..U+0D4D U+0D57 U+0E31 U+0E34..U+0E3A
4189 U+0E47..U+0E4E U+0EB1 U+0EB4..U+0EB9
4190 U+0EBB..U+0EBC U+0EC8..U+0ECD U+0F18..U+0F19
4191 U+0F35 U+0F37 U+0F39 U+0F3E U+0F3F
4192 U+0F71..U+0F84 U+0F86..U+0F8B U+0F90..U+0F95
4193 U+0F97 U+0F99..U+0FAD U+0FB1..U+0FB7 U+0FB9
4194 U+20D0..U+20DC U+20E1 U+302A..U+302F U+3099
4195 U+309A
4196 // Extender
4197 U+00B7 U+02D0 U+02D1 U+0387 U+0640 U+0E46
4198 U+0EC6 U+3005 U+3031..U+3035 U+309D..U+309E
4199 U+30FC..U+30FE
4200 ];
4201
4202 $NameStartChar11 := [
4203 ':' '_'
4204 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M'
4205 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z'
4206 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm'
4207 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z'
4208 U+00C0..U+00D6 U+00D8..U+00F6 U+00F8..U+02FF
4209 U+0370..U+037D U+037F..U+1FFF U+200C..U+200D
4210 U+2070..U+218F U+2C00..U+2FEF U+3001..U+D7FF
4211 U+F900..U+FDCF U+FDF0..U+FFFD U+10000..U+EFFFF
4212 ];
4213 $NameChar11 := [
4214 '-' '.' '0' '1' '2' '3' '4' '5' '6' '7' '8' '9'
4215 U+00B7 U+0300..U+036F U+203F..U+2040
4216 // NameStartChar
4217 ':' '_'
4218 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M'
4219 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z'
4220 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm'
4221 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z'
4222 U+00C0..U+00D6 U+00D8..U+00F6 U+00F8..U+02FF
4223 U+0370..U+037D U+037F..U+1FFF U+200C..U+200D
4224 U+2070..U+218F U+2C00..U+2FEF U+3001..U+D7FF
4225 U+F900..U+FDCF U+FDF0..U+FFFD U+10000..U+EFFFF
4226 ];
4227 } // NameChar
4228
4229 lexmode Name
4230 : extends => 'NameChar'
4231 {
4232 Name : value := $NameStartChar11 $NameChar11*;
4233 } // Name
4234
4235 lexmode Nmtoken
4236 : extends => 'NameChar'
4237 {
4238 Nmtoken : value := $NameChar11*;
4239 } // Nmtoken
4240
4241 /*
4242 S
4243 */
4244 lexmode S {
4245 $s := [U+0009 U+000A U+000D U+0020];
4246 S := $s+;
4247 } // S
4248
4249 /*
4250 Document end scanning mode
4251 */
4252 lexmode DocumentEnd
4253 : standalone
4254 : extends => 'S'
4255 {
4256 /*
4257 Processing instruction
4258 */
4259 PIO := ['<'] ['?'];
4260
4261 /*
4262 Comment declaration
4263 */
4264 CDO := ['<'] ['!'] ['-'] ['-'];
4265 } // DocumentEnd
4266
4267 /*
4268 Document misc scanning mode
4269
4270 This mode scans |Misc| constructions as well
4271 as document element's start tag.
4272 */
4273 lexmode DocumentMisc
4274 : standalone
4275 : extends => 'DocumentEnd'
4276 {
4277 /*
4278 Document element start tag
4279 */
4280 STAGO := ['<'];
4281 } // DocumentMisc
4282
4283 /*
4284 Document prolog scanning mode
4285 */
4286 lexmode DocumentProlog
4287 : standalone
4288 : extends => 'DocumentMisc'
4289 {
4290 /*
4291 |DOCTYPE| declaration
4292 */
4293 MDO := ['<'] ['!'];
4294 } // DocumentProlog
4295
4296 /*
4297 Document Start Scanning Mode
4298 */
4299 lexmode DocumentStart
4300 : standalone
4301 : extends => 'DocumentProlog'
4302 {
4303 /*
4304 XML declaration
4305 */
4306 XDO := ['<'] ['?'] ['x'] ['m'] ['l'];
4307 } // DocumentStart
4308
4309 /*
4310 Comment declaration scanning mode
4311 */
4312 lexmode CommentDeclaration
4313 : standalone
4314 {
4315 /*
4316 Comment close
4317 */
4318 COM := ['-'] ['-'];
4319
4320 /*
4321 Comment data
4322 */
4323 ?default-token STRING : value;
4324 } // CommentDeclaration
4325
4326 /*
4327 Processing instruction name and |S| scanning mode
4328 */
4329 lexmode PIName
4330 : standalone
4331 : extends => 'Name'
4332 : extends => 'S'
4333 {
4334 /*
4335 Processing instruction close
4336 */
4337 PIC := ['?'] ['>'];
4338 } // PIName
4339
4340 /*
4341 Processing instruction name and |S| scanning mode
4342 */
4343 lexmode PINmtoken
4344 : standalone
4345 : extends => 'Nmtoken'
4346 : extends => 'S'
4347 {
4348 /*
4349 Processing instruction close
4350 */
4351 PIC := ['?'] ['>'];
4352 } // PINmtoken
4353
4354 /*
4355 Processing instruction data scanning mode
4356 */
4357 lexmode PIData
4358 : standalone
4359 {
4360 /*
4361 Processing instruction close
4362 */
4363 PIC := ['?'] ['>'];
4364
4365 /*
4366 Processing instruction target data
4367 */
4368 ?default-token DATA : value;
4369 } // PIData
4370
4371 /*
4372 Content of element scanning mode
4373 */
4374 lexmode ElementContent
4375 : standalone
4376 {
4377 /*
4378 Start tag open
4379 */
4380 STAGO := ['<'];
4381
4382 /*
4383 End tag open
4384 */
4385 ETAGO := ['<'] ['/'];
4386
4387 /*
4388 Hexadecimal character reference open
4389 */
4390 HCRO := ['&'] ['#'] ['x'];
4391
4392 /*
4393 Numeric character reference open
4394 */
4395 CRO := ['&'] ['#'];
4396
4397 /*
4398 General entity reference open
4399 */
4400 ERO := ['&'];
4401
4402 /*
4403 Comment declaration open
4404 */
4405 CDO := ['<'] ['!'] ['-'] ['-'];
4406
4407 /*
4408 CDATA section open
4409 */
4410 CDSO := ['<'] ['!'] ['[']
4411 ['C'] ['D'] ['A'] ['T'] ['A'] ['['];
4412
4413 /*
4414 Processing instruction open
4415 */
4416 PIO := ['<'] ['?'];
4417
4418 /*
4419 Markup section end
4420 */
4421 MSE := [']'] [']'] ['>'];
4422
4423 /*
4424 Character data
4425 */
4426 /*
4427 Character data and/or |MSE|
4428 */
4429 ?default-token CharData : value;
4430 } // ElementContent
4431
4432 /*
4433 CDATA section content scanning mode
4434 */
4435 lexmode CDATASectionContent
4436 : standalone
4437 {
4438 /*
4439 Markup section end
4440 */
4441 MSE := [']'] [']'] ['>'];
4442
4443 /*
4444 Character data
4445 */
4446 ?default-token CData : value;
4447 } // CDATASectionContent
4448
4449 lexmode EntityReference
4450 : standalone
4451 : extends => 'Name'
4452 {
4453 /*
4454 Reference close
4455 */
4456 REFC := [';'];
4457 } // EntityReference
4458
4459 lexmode NumericCharacterReference
4460 : standalone
4461 {
4462 /*
4463 Decimal number
4464 */
4465 $digit := ['0' '1' '2' '3' '4' '5' '6' '7' '8' '9'];
4466 NUMBER : value := $digit+;
4467
4468 /*
4469 Reference close
4470 */
4471 REFC := [';'];
4472 } // NumericCharacterReference
4473
4474 lexmode HexadecimalCharacterReference
4475 : standalone
4476 {
4477 /*
4478 Hexadecimal number
4479 */
4480 $hexdigit := ['0' '1' '2' '3' '4' '5' '6' '7' '8' '9'
4481 'A' 'B' 'C' 'D' 'E' 'F'
4482 'a' 'b' 'c' 'd' 'e' 'f'];
4483 Hex : value := $hexdigit+;
4484
4485 /*
4486 Reference close
4487 */
4488 REFC := [';'];
4489 } // HexadecimalCharacterReference
4490
4491 /*
4492 The XML Declaration and Text Declaration Scanning Mode
4493 */
4494 lexmode XMLDeclaration
4495 : standalone
4496 : extends => 'Name'
4497 : extends => 'S'
4498 {
4499
4500 /*
4501 Value indicator
4502 */
4503 VI := ['='];
4504
4505 /*
4506 Literal open
4507 */
4508 LIT := ['"'];
4509 LITA := [U+0027];
4510
4511 /*
4512 Processing instruction close
4513
4514 The |PIC|, i.e. |?>|, is split into two tokens |PIC1| and |PIC2|
4515 in this scanning mode to set |no_xml11_eol| flag in the
4516 |_XMLDeclaration_| |rule|.
4517 */
4518 PIC1 := ['?'];
4519 PIC2 := ['>'];
4520 } // XMLDeclaration
4521
4522 /*
4523 The XML Declaration or Processing Instruction Scanning Mode
4524
4525 '<?xml' S ...
4526 (DocumentStart) (XMLDeclarationOrPI) (XMLDeclaration)
4527 '<?xml' '1' S ...
4528 (DocumentStart) (XMLDeclarationOrPI) (PINmtoken)(PIName) (PITarget)
4529 '<?xml' '-' 'stylesheet' S ...
4530 (DocumentStart) (XMLDeclarationOrPI) (PINmtoken) (PIName) (PITarget)
4531 */
4532 lexmode XMLDeclarationOrPI
4533 : standalone
4534 : extends => 'NameChar'
4535 : extends => 'S'
4536 {
4537 NameChar : value := $NameChar11;
4538 } // XMLDeclarationOrPI
4539
4540 lexmode StartTag
4541 : standalone
4542 : extends => 'Name'
4543 : extends => 'S'
4544 {
4545
4546 /*
4547 Value indicator
4548 */
4549 VI := ['='];
4550
4551 /*
4552 Literal open
4553 */
4554 LIT := ['"'];
4555 LITA := [U+0027];
4556
4557 /*
4558 Tag close
4559 */
4560 TAGC := ['>'];
4561
4562 /*
4563 Null end-tag enabled start-tag close
4564 */
4565 NESTC := ['/'];
4566 } // StartTag
4567
4568 lexmode EndTag
4569 : standalone
4570 : extends => 'Name'
4571 : extends => 'S'
4572 {
4573 /*
4574 Tag close
4575 */
4576 TAGC := ['>'];
4577 } // EndTag
4578
4579 lexmode AttributeValueLiteral_ {
4580 ERO := ['&'];
4581 CRO := ['&'] ['#'];
4582 HCRO := ['&'] ['#'] ['x'];
4583 } // AttributeValueLiteral_
4584
4585 lexmode AttributeValueLiteral
4586 : standalone
4587 : extends => 'AttributeValueLiteral_'
4588 {
4589 LIT := ['"'];
4590 STRING : value := [^'"' '&' '<']+;
4591 } // AttributeValueLiteral
4592
4593 lexmode AttributeValueLiteralA
4594 : standalone
4595 : extends => 'AttributeValueLiteral_'
4596 {
4597 LITA := [U+0027];
4598 STRING : value := [^U+0027 '&' '<']+;
4599 } // AttributeValueLiteralA
4600
4601 lexmode AttributeValueLiteralE
4602 : standalone
4603 : extends => 'AttributeValueLiteral_'
4604 {
4605 STRING : value := [^'&' '<']+;
4606 } // AttributeValueLiteralE
4607
4608 lexmode EntityValue_ {
4609 PERO := ['%'];
4610 ERO := ['&'];
4611 CRO := ['&'] ['#'];
4612 HCRO := ['&'] ['#'] ['x'];
4613 } // EntityValue_
4614
4615 lexmode EntityValue
4616 : standalone
4617 : extends => 'EntityValue_'
4618 {
4619 LIT := ['"'];
4620 STRING : value := [^'"' '&' '%']+;
4621 } // EntityValue
4622
4623 lexmode EntityValueA
4624 : standalone
4625 : extends => 'EntityValue_'
4626 {
4627 LITA := [U+0027];
4628 STRING : value := [^U+0027 '&' '%']+;
4629 } // EntityValueA
4630
4631 lexmode SystemLiteral
4632 : standalone
4633 {
4634 LIT := ['"'];
4635 ?default-token STRING : value;
4636 } // SystemLiteral
4637
4638 lexmode SystemLiteralA
4639 : standalone
4640 {
4641 LITA := [U+0027];
4642 ?default-token STRING : value;
4643 } // SystemLiteralA
4644
4645 lexmode DTD
4646 : standalone
4647 : extends => 'S'
4648 {
4649 /*
4650 Markup declaration open
4651 */
4652 MDO := ['<'] ['!'];
4653
4654 /*
4655 Comment declaration open
4656 */
4657 CDO := ['<'] ['!'] ['-'] ['-'];
4658
4659 /*
4660 Processing instruction open
4661 */
4662 PIO := ['<'] ['?'];
4663
4664 /*
4665 Parameter entity reference open
4666 */
4667 PERO := ['%'];
4668
4669 /*
4670 Declaration subset close
4671 */
4672 DSC := [']'];
4673
4674 /*
4675 Contition section open
4676 */
4677 CSO := ['<'] ['!'] ['['];
4678 } // DTD
4679
4680 /*
4681 Markup declaration scanning mode
4682
4683 This mode is used to recognize |MDC| that terminates
4684 a comment declaration as well as the base |lexmode|
4685 for e.g. document type declaration scanning mode.
4686 */
4687 lexmode MarkupDeclaration
4688 : standalone
4689 : extends => 'Name'
4690 : extends => 'S'
4691 {
4692 /*
4693 Markup declaration close
4694 */
4695 MDC := ['>'];
4696
4697 /*
4698 Literal open
4699 */
4700 LIT := ['"'];
4701
4702 /*
4703 Alternative literal open
4704 */
4705 LITA := [U+0027];
4706
4707 /*
4708 Parameter entity reference open
4709 */
4710 PERO := ['%'];
4711
4712 /*
4713 Declaration subset open
4714 */
4715 DSO := ['['];
4716 } // MarkupDeclaration
4717
4718 lexmode ElementDeclaration
4719 : standalone
4720 : extends => 'MarkupDeclaration'
4721 {
4722 /*
4723 Model group open
4724 */
4725 MGO := ['('];
4726
4727 /*
4728 Model group close
4729 */
4730 MGC := [')'];
4731
4732 /*
4733 Reserved name indicator
4734 */
4735 RNI := ['#'];
4736
4737 /*
4738 Occurence indicators
4739 */
4740 OPT := ['?'];
4741 REP := ['*'];
4742 PLUS := ['+'];
4743
4744 /*
4745 Connectors
4746 */
4747 OR := ['|'];
4748 SEQ := [','];
4749 } // ElementDeclaration
4750
4751 lexmode AttlistDeclaration
4752 : standalone
4753 : extends => 'MarkupDeclaration'
4754 {
4755 /*
4756 Enumeration group open
4757 */
4758 EGO := ['('];
4759
4760 /*
4761 Enumeration group close
4762 */
4763 EGC := [')'];
4764
4765 /*
4766 Enumeration choice delimiter
4767 */
4768 OR := ['|'];
4769
4770 /*
4771 Reserved name indicator
4772 */
4773 RNI := ['#'];
4774 } // AttlistDeclaration
4775
4776 lexmode Enumeration
4777 : standalone
4778 : extends => 'Nmtoken'
4779 : extends => 'S'
4780 {
4781 /*
4782 Enumeration group close
4783 */
4784 EGC := [')'];
4785
4786 /*
4787 Enumeration choice delimiter
4788 */
4789 OR := ['|'];
4790 } // Enumeration
4791
4792
4793 token-error default : default {
4794 lang:Perl {
4795 my $location;
4796 __CODE{xp|get-location-from-token::
4797 $token => {$token},
4798 $result => {$location},
4799 }__;
4800 my $continue = __DOMCore:ERROR{xp|wf-syntax-error::
4801 xp|error-token => {$token},
4802 DOMCore|location => {$location},
4803 }__;
4804 unless ($continue) {
4805 __EXCEPTION{DOMLS|PARSE_ERR::
4806 }__;
4807 }
4808 }
4809 } // default
4810
4811 @ResourceDef:
4812 @@ForCheck: ManakaiDOM|ForClass
4813 @@QName: checkNCName
4814 @@rdf:type: DISPerl|BlockCode
4815 @@PerlDef:
4816 if (($self->{xml_version} eq '1.0' and
4817 not <Code::DOMMain|testXML10Name:: $INPUT = $name>) or
4818 ($self->{xml_version} eq '1.1' and
4819 not <Code::DOMMain|testXML11Name:: $INPUT = $name>)) {
4820 my $__location;
4821 __CODE{xp|get-location-from-token::
4822 $token => {$token},
4823 $result => {$__location},
4824 }__;
4825 my $__continue = __c|ERROR{xp|wf-invalid-character-in-node-name::
4826 xp|error-token => {$token},
4827 c|location => {$__location},
4828 xp|name => {$name},
4829 infoset|version => {$self->{xml_version}},
4830 }__;
4831 unless ($__continue) {
4832 __EXCEPTION{DOMLS|PARSE_ERR::
4833 }__;
4834 }
4835 } elsif (index ($name, ':') > -1) {
4836 my $__location;
4837 __CODE{xp|get-location-from-token::
4838 $token => {$token},
4839 $result => {$__location},
4840 }__;
4841 my $__continue = __c|ERROR{xp|nswf-legal-ncname::
4842 xp|error-token => {$token},
4843 c|location => {$__location},
4844 xp|name => {$name},
4845 infoset|version => {$self->{xml_version}},
4846 }__;
4847 unless ($__continue) {
4848 __EXCEPTION{DOMLS|PARSE_ERR::
4849 }__;
4850 }
4851 }
4852
4853 @ResourceDef:
4854 @@ForCheck: ManakaiDOM|ForClass
4855 @@QName: checkQName
4856 @@rdf:type: DISPerl|BlockCode
4857 @@PerlDef:
4858 if (($self->{xml_version} eq '1.0' and
4859 not <Code::DOMMain|testXML10Name:: $INPUT = $name>) or
4860 ($self->{xml_version} eq '1.1' and
4861 not <Code::DOMMain|testXML11Name:: $INPUT = $name>)) {
4862 my $__location;
4863 __CODE{xp|get-location-from-token::
4864 $token => {$token},
4865 $result => {$__location},
4866 }__;
4867 my $__continue = __c|ERROR{xp|wf-invalid-character-in-node-name::
4868 xp|error-token => {$token},
4869 c|location => {$__location},
4870 xp|name => {$name},
4871 infoset|version => {$self->{xml_version}},
4872 }__;
4873 unless ($__continue) {
4874 __EXCEPTION{DOMLS|PARSE_ERR::
4875 }__;
4876 }
4877 } elsif (($self->{xml_version} eq '1.0' and
4878 not <Code::DOMMain|testXML10QName:: $INPUT = $name>) or
4879 ($self->{xml_version} eq '1.1' and
4880 not <Code::DOMMain|testXML11QName:: $INPUT = $name>)) {
4881 my $__location;
4882 __CODE{xp|get-location-from-token::
4883 $token => {$token},
4884 $result => {$__location},
4885 }__;
4886 my $__continue = __c|ERROR{xp|nswf-legal-qname::
4887 xp|error-token => {$token},
4888 c|location => {$__location},
4889 xp|name => {$name},
4890 infoset|version => {$self->{xml_version}},
4891 }__;
4892 unless ($__continue) {
4893 __EXCEPTION{DOMLS|PARSE_ERR::
4894 }__;
4895 }
4896 }
4897
4898
4899 @XMLTests:
4900 @@XMLTest:
4901 @@@QName: xp.char.xml10.test
4902 @@@DEnt:
4903 @@@@test:value:
4904 <?xml version="1.0"?>
4905 <p>$u0009$u000A$u000D$u0020$uD7FF$uE000$uFFFD$U00010000$U0010FFFF</p>
4906 @@@test:domTree:
4907 document {
4908 xml-version: '1.0';
4909 element {
4910 text-content: U+0009 U+000A U+000A U+0020 U+D7FF
4911 U+E000 U+FFFD U+10000 U+10FFFF;
4912 }
4913 }
4914 @@XMLTest:
4915 @@@QName: xp.char.xml11.test
4916 @@@DEnt:
4917 @@@@test:value:
4918 <?xml version="1.1"?>
4919 <p>$u0009$u000A$u000D$u0020$uD7FF$uE000$uFFFD$U00010000$U0010FFFF</p>
4920 @@@test:domTree:
4921 document {
4922 xml-version: '1.1';
4923 element {
4924 text-content: U+0009 U+000A U+000A U+0020 U+D7FF
4925 U+E000 U+FFFD U+10000 U+10FFFF;
4926 }
4927 }
4928 @@XMLTest:
4929 @@@QName: xp.char.xml10.c0.test
4930 @@@DEnt:
4931 @@@@test:value:
4932 <?xml version="1.0"?>
4933 <p>$u0000$u0001$u0002$u0003$u0004$u0005$u0006$u0007$u0008$u000B$
4934 $u000C$u000E$u000F$u0010$u0011$u0012$u0013$u0014$u0015$u0016$
4935 $u0017$u0018$u0019$u001A$u001B$u001C$u001D$u001E$u001F</p>
4936 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 4); } /* U+0000 */
4937 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 5); } /* U+0001 */
4938 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 6); } /* U+0002 */
4939 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 7); } /* U+0003 */
4940 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 8); } /* U+0004 */
4941 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 9); } /* U+0005 */
4942 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 10); } /* U+0006 */
4943 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 11); } /* U+0007 */
4944 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 12); } /* U+0008 */
4945 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 13); } /* U+000B */
4946 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 14); } /* U+000C */
4947 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 15); } /* U+000E */
4948 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 16); } /* U+000F */
4949 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 17); } /* U+0010 */
4950 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 18); } /* U+0011 */
4951 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 19); } /* U+0012 */
4952 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 20); } /* U+0013 */
4953 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 21); } /* U+0014 */
4954 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 22); } /* U+0015 */
4955 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 23); } /* U+0016 */
4956 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 24); } /* U+0017 */
4957 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 25); } /* U+0018 */
4958 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 26); } /* U+0019 */
4959 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 27); } /* U+001A */
4960 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 28); } /* U+001B */
4961 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 29); } /* U+001C */
4962 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 30); } /* U+001D */
4963 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 31); } /* U+001E */
4964 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 32); } /* U+001F */
4965 @@XMLTest:
4966 @@@QName: xp.char.xml11.c0.test
4967 @@@DEnt:
4968 @@@@test:value:
4969 <?xml version="1.1"?>
4970 <p>$u0000$u0001$u0002$u0003$u0004$u0005$u0006$u0007$u0008$u000B$
4971 $u000C$u000E$u000F$u0010$u0011$u0012$u0013$u0014$u0015$u0016$
4972 $u0017$u0018$u0019$u001A$u001B$u001C$u001D$u001E$u001F</p>
4973 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 4); } /* U+0000 */
4974 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 5); } /* U+0001 */
4975 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 6); } /* U+0002 */
4976 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 7); } /* U+0003 */
4977 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 8); } /* U+0004 */
4978 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 9); } /* U+0005 */
4979 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 10); } /* U+0006 */
4980 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 11); } /* U+0007 */
4981 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 12); } /* U+0008 */
4982 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 13); } /* U+000B */
4983 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 14); } /* U+000C */
4984 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 15); } /* U+000E */
4985 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 16); } /* U+000F */
4986 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 17); } /* U+0010 */
4987 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 18); } /* U+0011 */
4988 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 19); } /* U+0012 */
4989 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 20); } /* U+0013 */
4990 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 21); } /* U+0014 */
4991 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 22); } /* U+0015 */
4992 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 23); } /* U+0016 */
4993 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 24); } /* U+0017 */
4994 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 25); } /* U+0018 */
4995 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 26); } /* U+0019 */
4996 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 27); } /* U+001A */
4997 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 28); } /* U+001B */
4998 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 29); } /* U+001C */
4999 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 30); } /* U+001D */
5000 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 31); } /* U+001E */
5001 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 32); } /* U+001F */
5002 @@XMLTest:
5003 @@@QName: xp.char.xml10.c1.test
5004 @@@DEnt:
5005 @@@@test:value:
5006 <?xml version="1.0"?>
5007 <p>$u007F$u0080$u0081$u0082$u0083$u0084$u0086$u0087$u0088$
5008 $u0089$u008A$u008B$u008C$
5009 $u008D$u008E$u008F$u0090$u0091$u0092$u0093$u0094$u0095$u0096$
5010 $u0097$u0098$u0099$u009A$u009B$u009C$u009D$u009E$u009F$u0085</p>
5011 @@@test:domTree:
5012 document {
5013 xml-version: '1.0';
5014 element {
5015 text-content: U+007F U+0080 U+0081 U+0082 U+0083 U+0084 U+0086
5016 U+0087 U+0088 U+0089 U+008A U+008B U+008C U+008D
5017 U+008E U+008F U+0090 U+0091 U+0092 U+0093 U+0094
5018 U+0095 U+0096 U+0097 U+0098 U+0099 U+009A U+009B
5019 U+009C U+009D U+009E U+009F U+0085;
5020 }
5021 }
5022 @@XMLTest:
5023 @@@QName: xp.char.xml11.c1.test
5024 @@@DEnt:
5025 @@@@test:value:
5026 <?xml version="1.1"?>
5027 <p>$u007F$u0080$u0081$u0082$u0083$u0084$u0086$u0087$u0088$
5028 $u0089$u008A$u008B$u008C$
5029 $u008D$u008E$u008F$u0090$u0091$u0092$u0093$u0094$u0095$u0096$
5030 $u0097$u0098$u0099$u009A$u009B$u009C$u009D$u009E$u009F$u0085</p>
5031 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 4); } /* U+007F */
5032 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 5); } /* U+0080 */
5033 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 6); } /* U+0081 */
5034 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 7); } /* U+0082 */
5035 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 8); } /* U+0083 */
5036 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 9); } /* U+0084 */
5037 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 10); } /* U+0086 */
5038 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 11); } /* U+0087 */
5039 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 12); } /* U+0088 */
5040 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 13); } /* U+0089 */
5041 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 14); } /* U+008A */
5042 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 15); } /* U+008B */
5043 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 16); } /* U+008C */
5044 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 17); } /* U+008D */
5045 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 18); } /* U+008E */
5046 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 19); } /* U+008F */
5047 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 20); } /* U+0090 */
5048 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 21); } /* U+0091 */
5049 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 22); } /* U+0092 */
5050 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 23); } /* U+0093 */
5051 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 24); } /* U+0094 */
5052 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 25); } /* U+0095 */
5053 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 26); } /* U+0096 */
5054 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 27); } /* U+0097 */
5055 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 28); } /* U+0098 */
5056 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 29); } /* U+0099 */
5057 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 30); } /* U+009A */
5058 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 31); } /* U+009B */
5059 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 32); } /* U+009C */
5060 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 33); } /* U+009D */
5061 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 34); } /* U+009E */
5062 @@@c:erred: <[[xp|wf-legal-literal-character]]> { (2, 35); } /* U+009F */
5063
5064 @@XMLTest:
5065 @@@QName: xp.syntax.empty.test
5066 @@@DEnt:
5067 @@@@test:value: \
5068 @@@c:erred:
5069 <[[xp:wf-syntax-error]]> { (1, 1); }
5070 @@XMLTest:
5071 @@@QName: xp.syntax.space.test
5072 @@@DEnt:
5073 @@@@test:value: \
5074 @@@c:erred:
5075 <[[xp:wf-syntax-error]]> { (1, 4); }
5076 @@XMLTest:
5077 @@@QName: xp.syntax.newlines.test
5078 @@@DEnt:
5079 @@@@test:value:
5080 \
5081 \
5082 \
5083 @@@c:erred:
5084 <[[xp:wf-syntax-error]]> { (3, 1); }
5085
5086 @@XMLTest:
5087 @@@QName: xp.only.docel.test
5088 @@@DEnt:
5089 @@@@test:value:
5090 <p></p>
5091 @@@test:domTree:
5092 document {
5093 xml-version: '1.0';
5094 xml-encoding: null;
5095 xml-standalone: false;
5096 element {
5097 namespace-uri: null;
5098 prefix: null;
5099 local-name: 'p';
5100 text-content: '';
5101 }
5102 }
5103 @@XMLTest:
5104 @@@QName: xp.only.docel.emptyelemtag.test
5105 @@@DEnt:
5106 @@@@test:value:
5107 <p/>
5108 @@@test:domTree:
5109 document {
5110 xml-version: '1.0';
5111 xml-encoding: null;
5112 xml-standalone: false;
5113 element {
5114 namespace-uri: null;
5115 prefix: null;
5116 local-name: 'p';
5117 text-content: '';
5118 }
5119 }
5120 @@XMLTest:
5121 @@@QName: xp.root.s.1.test
5122 @@@DEnt:
5123 @@@@test:value:
5124 <?xml version="1.0"?>$u0020$u000D$u000A$u0009
5125 <p></p>
5126 @@@test:domTree:
5127 document {
5128 element { }
5129 }
5130
5131 @@XMLTest:
5132 @@@QName: xp.Name.1.test
5133 @@@DEnt:
5134 @@@@test:value: <name/>
5135 @@@test:domTree:
5136 document {
5137 element {
5138 node-name: 'name';
5139 }
5140 }
5141 @@XMLTest:
5142 @@@QName: xp.Name.2.test
5143 @@@DEnt:
5144 @@@@test:value: <name0/>
5145 @@@test:domTree:
5146 document {
5147 element {
5148 node-name: 'name0';
5149 }
5150 }
5151 @@enImplNote:
5152 @@@ddid: xml11name
5153 @@@@:
5154 {TODO:: XML 1.1 Name tests required
5155 }
5156
5157 @@XMLTest:
5158 @@@QName: xp.content.mse.1.test
5159 @@@DEnt:
5160 @@@@test:value:
5161 <p>]]></p>
5162 @@@c:erred:
5163 <[[xp|wf-syntax-error]]> { (1, 4)..(1, 6); }
5164 @@XMLTest:
5165 @@@QName: xp.content.mse.2.test
5166 @@@DEnt:
5167 @@@@test:value:
5168 <p>aaa]]>bbb</p>
5169 @@@c:erred:
5170 <[[xp|wf-syntax-error]]> { (1, 7)..(1, 9); }
5171
5172 @@XMLTest:
5173 @@@QName: xp.root.comment.1.test
5174 @@@DEnt:
5175 @@@@test:value:
5176 <!--comment data-->
5177 <p/>
5178 @@@test:domTree:
5179 document {
5180 comment {
5181 data: 'comment data';
5182 }
5183 element { }
5184 }
5185 @@XMLTest:
5186 @@@QName: xp.root.comment.2.test
5187 @@@DEnt:
5188 @@@@test:value:
5189 <!---->
5190 <p/>
5191 @@@test:domTree:
5192 document {
5193 comment {
5194 data: '';
5195 }
5196 element { }
5197 }
5198 @@XMLTest:
5199 @@@QName: xp.root.after.pi.comment.1.test
5200 @@@DEnt:
5201 @@@@test:value:
5202 <?pi?>
5203 <!--comment data-->
5204 <p/>
5205 @@@test:domTree:
5206 document {
5207 pi { }
5208 comment {
5209 data: 'comment data';
5210 }
5211 element { }
5212 }
5213 @@XMLTest:
5214 @@@QName: xp.root.after.pi.comment.2.test
5215 @@@DEnt:
5216 @@@@test:value:
5217 <?pi?>
5218 <!---->
5219 <p/>
5220 @@@test:domTree:
5221 document {
5222 pi { }
5223 comment {
5224 data: '';
5225 }
5226 element { }
5227 }
5228 @@XMLTest:
5229 @@@QName: xp.root.after.element.comment.1.test
5230 @@@DEnt:
5231 @@@@test:value:
5232 <p/>
5233 <!--comment data-->
5234 @@@test:domTree:
5235 document {
5236 element { }
5237 comment {
5238 data: 'comment data';
5239 }
5240 }
5241 @@XMLTest:
5242 @@@QName: xp.root.after.element.comment.2.test
5243 @@@DEnt:
5244 @@@@test:value:
5245 <p/>
5246 <!---->
5247 @@@test:domTree:
5248 document {
5249 element { }
5250 comment {
5251 data: '';
5252 }
5253 }
5254 @@XMLTest:
5255 @@@QName: xp.doctype.intsubset.comment.1.test
5256 @@@DEnt:
5257 @@@@test:value:
5258 <!DOCTYPE a [
5259 <!--comment data-->
5260 ]>
5261 <p/>
5262 @@@test:domTree:
5263 document {
5264 document-type { }
5265 element { }
5266 }
5267 @@XMLTest:
5268 @@@QName: xp.doctype.intsubset.comment.2.test
5269 @@@DEnt:
5270 @@@@test:value:
5271 <!DOCTYPE a [
5272 <!---->
5273 ]>
5274 <p/>
5275 @@@test:domTree:
5276 document {
5277 document-type { }
5278 element { }
5279 }
5280 @@XMLTest:
5281 @@@QName: xp.doctype.intsubset.comment.3.test
5282 @@@DEnt:
5283 @@@@test:value:
5284 <!DOCTYPE a [
5285 <?pi?>
5286 <!---->
5287 ]>
5288 <p/>
5289 @@@test:domTree:
5290 document {
5291 document-type {
5292 pi { }
5293 }
5294 element { }
5295 }
5296 @@XMLTest:
5297 @@@QName: xp.content.comment.1.test
5298 @@@DEnt:
5299 @@@@test:value:
5300 <p><!--comment data--></p>
5301 @@@test:domTree:
5302 document {
5303 element {
5304 comment {
5305 data: 'comment data';
5306 }
5307 }
5308 }
5309 @@XMLTest:
5310 @@@QName: xp.content.comment.2.test
5311 @@@DEnt:
5312 @@@@test:value:
5313 <p><!----></p>
5314 @@@test:domTree:
5315 document {
5316 element {
5317 comment {
5318 data: '';
5319 }
5320 }
5321 }
5322 @@XMLTest:
5323 @@@QName: xp.content.comment.3.test
5324 @@@DEnt:
5325 @@@@test:value:
5326 <p>aaaaa<!---->bbbbb</p>
5327 @@@test:domTree:
5328 document {
5329 element {
5330 text {
5331 data: 'aaaaa';
5332 }
5333 comment {
5334 data: '';
5335 }
5336 text {
5337 data: 'bbbbb';
5338 }
5339 }
5340 }
5341 @@XMLTest:
5342 @@@QName: xp.content.comment.--.1.test
5343 @@@DEnt:
5344 @@@@test:value:
5345 <p><!--data--data--></p>
5346 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 12)..(1, 17); }
5347 @@XMLTest:
5348 @@@QName: xp.content.comment.---gt.test
5349 @@@DEnt:
5350 @@@@test:value:
5351 <p><!--data---></p>
5352 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 12)..(1, 15); }
5353
5354 @@XMLTest:
5355 @@@QName: xp.xmldecl.version.1.0.test
5356 @@@DEnt:
5357 @@@@test:value:
5358 <?xml version="1.0"?>
5359 <p></p>
5360 @@@test:domTree:
5361 document {
5362 xml-version: '1.0';
5363 xml-encoding: null;
5364 xml-standalone: false;
5365 element { }
5366 }
5367 @@XMLTest:
5368 @@@QName: xp.xmldecl.version.1.0.lita.test
5369 @@@DEnt:
5370 @@@@test:value:
5371 <?xml version='1.0'?>
5372 <p></p>
5373 @@@test:domTree:
5374 document {
5375 xml-version: '1.0';
5376 xml-encoding: null;
5377 xml-standalone: false;
5378 element { }
5379 }
5380 @@XMLTest:
5381 @@@QName: xp.xmldecl.version.1.0.s.test
5382 @@@DEnt:
5383 @@@@test:value:
5384 <?xml version = "1.0" ?>
5385 <p></p>
5386 @@@test:domTree:
5387 document {
5388 xml-version: '1.0';
5389 xml-encoding: null;
5390 xml-standalone: false;
5391 element { }
5392 }
5393 @@XMLTest:
5394 @@@QName: xp.xmldecl.version.1.1.test
5395 @@@DEnt:
5396 @@@@test:value:
5397 <?xml version="1.1"?>
5398 <p></p>
5399 @@@test:domTree:
5400 document {
5401 xml-version: '1.1';
5402 xml-encoding: null;
5403 xml-standalone: false;
5404 element { }
5405 }
5406
5407 @@XMLTest:
5408 @@@QName: xp.xmldecl.version.1.0.encoding.usascii.test
5409 @@@DEnt:
5410 @@@@test:value:
5411 <?xml version="1.0" encoding="US-ascii"?>
5412 <p></p>
5413 @@@test:domTree:
5414 document {
5415 xml-version: '1.0';
5416 xml-encoding: 'US-ascii';
5417 xml-standalone: false;
5418 element { }
5419 }
5420 @@XMLTest:
5421 @@@QName: xp.xmldecl.version.1.0.encoding.usascii.lita.test
5422 @@@DEnt:
5423 @@@@test:value:
5424 <?xml version="1.0" encoding='US-ascii'?>
5425 <p></p>
5426 @@@test:domTree:
5427 document {
5428 xml-version: '1.0';
5429 xml-encoding: 'US-ascii';
5430 xml-standalone: false;
5431 element { }
5432 }
5433 @@XMLTest:
5434 @@@QName: xp.xmldecl.version.1.0.encoding.usascii.s.test
5435 @@@DEnt:
5436 @@@@test:value:
5437 <?xml version="1.0" encoding = "US-ascii" ?>
5438 <p></p>
5439 @@@test:domTree:
5440 document {
5441 xml-version: '1.0';
5442 xml-encoding: 'US-ascii';
5443 xml-standalone: false;
5444 element { }
5445 }
5446
5447 @@XMLTest:
5448 @@@QName: xp.xmldecl.version.1.0.encoding.usascii.standalone.yes.test
5449 @@@DEnt:
5450 @@@@test:value:
5451 <?xml version="1.0" encoding="us-ascii" standalone="yes"?>
5452 <p></p>
5453 @@@test:domTree:
5454 document {
5455 xml-version: '1.0';
5456 xml-encoding: 'us-ascii';
5457 xml-standalone: true;
5458 element { }
5459 }
5460 @@XMLTest:
5461 @@@QName: xp.xmldecl.version.1.0.encoding.usascii.standalone.no.test
5462 @@@DEnt:
5463 @@@@test:value:
5464 <?xml version="1.0" encoding="us-ascii" standalone="no"?>
5465 <p></p>
5466 @@@test:domTree:
5467 document {
5468 xml-version: '1.0';
5469 xml-encoding: 'us-ascii';
5470 xml-standalone: false;
5471 element { }
5472 }
5473 @@XMLTest:
5474 @@@QName: xp.xmldecl.version.1.0.encoding.usascii.standalone.yes.lita.test
5475 @@@DEnt:
5476 @@@@test:value:
5477 <?xml version="1.0" encoding="us-ascii" standalone='yes'?>
5478 <p></p>
5479 @@@test:domTree:
5480 document {
5481 xml-version: '1.0';
5482 xml-encoding: 'us-ascii';
5483 xml-standalone: true;
5484 element { }
5485 }
5486 @@XMLTest:
5487 @@@QName: xp.xmldecl.version.1.0.encoding.usascii.standalone.yes.s.test
5488 @@@DEnt:
5489 @@@@test:value:
5490 <?xml version="1.0" encoding="us-ascii" standalone = "yes" ?>
5491 <p></p>
5492 @@@test:domTree:
5493 document {
5494 xml-version: '1.0';
5495 xml-encoding: 'us-ascii';
5496 xml-standalone: true;
5497 element { }
5498 }
5499 @@XMLTest:
5500 @@@QName: xp.xmldecl.no.encoding.but.standalone.attr.test
5501 @@@DEnt:
5502 @@@@test:value:
5503 <?xml version="1.0" standalone="yes"?>
5504 <p></p>
5505 @@@test:domTree:
5506 document {
5507 xml-version: '1.0';
5508 xml-encoding: null;
5509 xml-standalone: true;
5510 element { }
5511 }
5512 @@XMLTest:
5513 @@@QName: xp.xmldecl.encoding.encname.test
5514 @@@DEnt:
5515 @@@@test:value:
5516 <?xml version="1.0" encoding="a-._01-"?>
5517 <p></p>
5518 @@@test:domTree:
5519 document {
5520 xml-version: '1.0';
5521 xml-encoding: 'a-._01-';
5522 xml-standalone: false;
5523 element { }
5524 }
5525
5526 @@XMLTest:
5527 @@@QName: xp.xmldecl.no.s.no.attr.test
5528 @@@DEnt:
5529 @@@@test:value:
5530 <?xml?>
5531 <p></p>
5532 @@@c:erred:
5533 <[[xp:wf-syntax-error]]> { (1, 1)..(1, 7); }
5534 @@XMLTest:
5535 @@@QName: xp.xmldecl.s.no.attr.test
5536 @@@DEnt:
5537 @@@@test:value:
5538 <?xml ?>
5539 <p></p>
5540 @@@c:erred:
5541 <[[xp:wf-syntax-error]]> { (1, 8)..(1, 9); }
5542 @@XMLTest:
5543 @@@QName: xp.xmldecl.unknown.attr.test
5544 @@@DEnt:
5545 @@@@test:value:
5546 <?xml unknown="value"?>
5547 <p></p>
5548 @@@c:erred:
5549 <[[xp:wf-syntax-error]]> { (1, 8)..(1, 22); }
5550 @@XMLTest:
5551 @@@QName: xp.xmldecl.version.unknown.attr.test
5552 @@@DEnt:
5553 @@@@test:value:
5554 <?xml version="1.0" unknown="value"?>
5555 <p></p>
5556 @@@c:erred:
5557 <[[xp:wf-syntax-error]]> { (1, 21)..(1, 35); }
5558 @@XMLTest:
5559 @@@QName: xp.xmldecl.version.encoding.unknown.attr.test
5560 @@@DEnt:
5561 @@@@test:value:
5562 <?xml version="1.0" encoding="us-ascii" unknown="value"?>
5563 <p></p>
5564 @@@c:erred:
5565 <[[xp:wf-syntax-error]]> { (1, 41)..(1, 55); }
5566 @@XMLTest:
5567 @@@QName: xp.xmldecl.version.encoding.standalone.unknown.attr.test
5568 @@@DEnt:
5569 @@@@test:value:
5570 <?xml version="1.0" encoding="us-ascii" standalone="yes"
5571 unknown="value"?>
5572 <p></p>
5573 @@@c:erred:
5574 <[[xp:wf-syntax-error]]> { (2, 1)..(2, 15); }
5575 @@XMLTest:
5576 @@@QName: xp.xmldecl.no.version.but.encoding.attr.test
5577 @@@DEnt:
5578 @@@@test:value:
5579 <?xml encoding="us-ascii"?>
5580 <p></p>
5581 @@@c:erred:
5582 <[[xp:wf-syntax-error]]> { (1, 7)..(1, 25); }
5583 @@XMLTest:
5584 @@@QName: xp.xmldecl.no.version.but.standalone.attr.test
5585 @@@DEnt:
5586 @@@@test:value:
5587 <?xml standalone="yes"?>
5588 <p></p>
5589 @@@c:erred:
5590 <[[xp:wf-syntax-error]]> { (1, 7)..(1, 24); }
5591 @@XMLTest:
5592 @@@QName: xp.xmldecl.version.unsupported.test
5593 @@@DEnt:
5594 @@@@test:value:
5595 <?xml version="1.2"?>
5596 <p></p>
5597 @@@c:erred:
5598 <[[xp:wf-unsupported-xml-version]]> { (1, 7)..(1, 19); }
5599 @@XMLTest:
5600 @@@QName: xp.xmldecl.version.unsupported.2.test
5601 @@@DEnt:
5602 @@@@test:value:
5603 <?xml version=" 1.0 "?>
5604 <p></p>
5605 @@@c:erred:
5606 <[[xp:wf-unsupported-xml-version]]> { (1, 7)..(1, 21); }
5607 @@XMLTest:
5608 @@@QName: xp.xmldecl.version.unsupported.3.test
5609 @@@DEnt:
5610 @@@@test:value:
5611 <?xml version="01.00"?>
5612 <p></p>
5613 @@@c:erred:
5614 <[[xp:wf-unsupported-xml-version]]> { (1, 7)..(1, 21); }
5615 @@XMLTest:
5616 @@@QName: xp.xmldecl.encoding.malformed.1.test
5617 @@@DEnt:
5618 @@@@test:value:
5619 <?xml version="1.0" encoding="0088"?>
5620 <p></p>
5621 @@@c:erred:
5622 <[[xp:wf-malformed-enc-name]]> { (1, 21)..(1, 35); }
5623 @@XMLTest:
5624 @@@QName: xp.xmldecl.encoding.malformed.2.test
5625 @@@DEnt:
5626 @@@@test:value:
5627 <?xml version="1.0" encoding="D.V.D!"?>
5628 <p></p>
5629 @@@c:erred:
5630 <[[xp:wf-malformed-enc-name]]> { (1, 21)..(1, 38); }
5631 @@XMLTest:
5632 @@@QName: xp.xmldecl.standalone.malformed.1.test
5633 @@@DEnt:
5634 @@@@test:value:
5635 <?xml version="1.0" standalone="true"?>
5636 <p></p>
5637 @@@c:erred:
5638 <[[xp:wf-malformed-xml-standalone]]> { (1, 21)..(1, 38); }
5639 @@XMLTest:
5640 @@@QName: xp.xmldecl.standalone.malformed.2.test
5641 @@@DEnt:
5642 @@@@test:value:
5643 <?xml version="1.0" standalone="YES"?>
5644 <p></p>
5645 @@@c:erred:
5646 <[[xp:wf-malformed-xml-standalone]]> { (1, 21)..(1, 37); }
5647 @@XMLTest:
5648 @@@QName: xp.xmldecl.standalone.malformed.3.test
5649 @@@DEnt:
5650 @@@@test:value:
5651 <?xml version="1.0" standalone="no "?>
5652 <p></p>
5653 @@@c:erred:
5654 <[[xp:wf-malformed-xml-standalone]]> { (1, 21)..(1, 38); }
5655
5656 @@XMLTest:
5657 @@@QName: xp.no-xmldecl.xml...-pi.test
5658 @@@DEnt:
5659 @@@@test:value:
5660 <?xmldeclaration?>
5661 <a></a>
5662 @@@test:domTree:
5663 document {
5664 pi {
5665 node-name: 'xmldeclaration';
5666 node-value: '';
5667 }
5668 element { }
5669 }
5670 @@XMLTest:
5671 @@@QName: xp.no-xmldecl.xml...-pi.after.document.element.test
5672 @@@DEnt:
5673 @@@@test:value:
5674 <a></a>
5675 <?xmldeclaration?>
5676 @@@test:domTree:
5677 document {
5678 element { }
5679 pi {
5680 node-name: 'xmldeclaration';
5681 node-value: '';
5682 }
5683 }
5684 @@XMLTest:
5685 @@@QName: xp.no-xmldecl.xml...-pi.in.document.element.test
5686 @@@DEnt:
5687 @@@@test:value:
5688 <a>
5689 <?xmldeclaration?>
5690 </a>
5691 @@@test:domTree:
5692 document {
5693 element {
5694 text { }
5695 pi {
5696 node-name: 'xmldeclaration';
5697 node-value: '';
5698 }
5699 text { }
5700 }
5701 }
5702 @@XMLTest:
5703 @@@QName: xp.no-xmldecl.xml...-pi.in.doctype.test
5704 @@@DEnt:
5705 @@@@test:value:
5706 <!DOCTYPE a [
5707 <?xmldeclaration?>
5708 ]>
5709 <a></a>
5710 @@@test:domTree:
5711 document {
5712 document-type {
5713 pi {
5714 node-name: 'xmldeclaration';
5715 node-value: '';
5716 }
5717 }
5718 element { }
5719 }
5720
5721 @@XMLTest:
5722 @@@QName: xp.XMLdecl.test
5723 @@@DEnt:
5724 @@@@test:value:
5725 <?XML version="1.0"?>
5726 <p></p>
5727 @@@c:erred:
5728 <[[xp:wf-pi-target-is-xml]]> { (1, 1)..(1, 5); }
5729 @@XMLTest:
5730 @@@QName: xp.Xmldecl.test
5731 @@@DEnt:
5732 @@@@test:value:
5733 <?Xml version="1.0"?>
5734 <p></p>
5735 @@@c:erred:
5736 <[[xp:wf-pi-target-is-xml]]> { (1, 1)..(1, 5); }
5737 @@XMLTest:
5738 @@@QName: xp.xmldecl.after.document.element.empty.test
5739 @@@DEnt:
5740 @@@@test:value:
5741 <p></p>
5742 <?xml?>
5743 @@@c:erred:
5744 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5745 @@XMLTest:
5746 @@@QName: xp.xmldecl.after.document.element.test
5747 @@@DEnt:
5748 @@@@test:value:
5749 <p></p>
5750 <?xml version="1.0"?>
5751 @@@c:erred:
5752 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5753 @@XMLTest:
5754 @@@QName: xp.xmldecl.in.element.empty.test
5755 @@@DEnt:
5756 @@@@test:value:
5757 <p>
5758 <?xml?>
5759 </p>
5760 @@@c:erred:
5761 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5762 @@XMLTest:
5763 @@@QName: xp.xmldecl.in.element.test
5764 @@@DEnt:
5765 @@@@test:value:
5766 <p>
5767 <?xml version="1.0"?>
5768 </p>
5769 @@@c:erred:
5770 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5771 @@XMLTest:
5772 @@@QName: xp.xmldecl.after.comment.test
5773 @@@DEnt:
5774 @@@@test:value:
5775 <!---->
5776 <?xml version="1.0"?>
5777 <p></p>
5778 @@@c:erred:
5779 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5780 @@XMLTest:
5781 @@@QName: xp.xmldecl.after.comment.empty.test
5782 @@@DEnt:
5783 @@@@test:value:
5784 <!---->
5785 <?xml?>
5786 <p></p>
5787 @@@c:erred:
5788 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5789 @@XMLTest:
5790 @@@QName: xp.xmldecl.after.pi.test
5791 @@@DEnt:
5792 @@@@test:value:
5793 <?xml-declaration?>
5794 <?xml version="1.0"?>
5795 <p></p>
5796 @@@c:erred:
5797 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5798 @@XMLTest:
5799 @@@QName: xp.xmldecl.after.pi.empty.test
5800 @@@DEnt:
5801 @@@@test:value:
5802 <?xml-declaration?>
5803 <?xml?>
5804 <p></p>
5805 @@@c:erred:
5806 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5807 @@XMLTest:
5808 @@@QName: xp.xmldecl.after.pi.2.test
5809 @@@DEnt:
5810 @@@@test:value:
5811 <?declaration?>
5812 <?xml version="1.0"?>
5813 <p></p>
5814 @@@c:erred:
5815 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5816 @@XMLTest:
5817 @@@QName: xp.xmldecl.after.pi.empty.2.test
5818 @@@DEnt:
5819 @@@@test:value:
5820 <?declaration?>
5821 <?xml?>
5822 <p></p>
5823 @@@c:erred:
5824 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5825 @@XMLTest:
5826 @@@QName: xp.xmldecl.after.doctype.test
5827 @@@DEnt:
5828 @@@@test:value:
5829 <!DOCTYPE a>
5830 <?xml version="1.0"?>
5831 <p></p>
5832 @@@c:erred:
5833 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5834 @@XMLTest:
5835 @@@QName: xp.xmldecl.after.doctype.empty.test
5836 @@@DEnt:
5837 @@@@test:value:
5838 <!DOCTYPE a>
5839 <?xml?>
5840 <p></p>
5841 @@@c:erred:
5842 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5843 @@XMLTest:
5844 @@@QName: xp.xmldecl.in.doctype.test
5845 @@@DEnt:
5846 @@@@test:value:
5847 <!DOCTYPE a [
5848 <?xml version="1.0"?>
5849 ]>
5850 <p></p>
5851 @@@c:erred:
5852 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5853 @@XMLTest:
5854 @@@QName: xp.xmldecl.in.doctype.empty.test
5855 @@@DEnt:
5856 @@@@test:value:
5857 <!DOCTYPE a [
5858 <?xml?>
5859 ]>
5860 <p></p>
5861 @@@c:erred:
5862 <[[xp:wf-pi-target-is-xml]]> { (2, 1)..(2, 5); }
5863
5864 @@XMLTest:
5865 @@@QName: xp.pi.before.element.empty.test
5866 @@@DEnt:
5867 @@@@test:value:
5868 <?target?>
5869 <a></a>
5870 @@@test:domTree:
5871 document {
5872 pi {
5873 node-name: 'target';
5874 node-value: '';
5875 }
5876 element { }
5877 }
5878 @@XMLTest:
5879 @@@QName: xp.pi.before.element.s.test
5880 @@@DEnt:
5881 @@@@test:value:
5882 <?target ?>
5883 <a></a>
5884 @@@test:domTree:
5885 document {
5886 pi {
5887 node-name: 'target';
5888 node-value: '';
5889 }
5890 element { }
5891 }
5892 @@XMLTest:
5893 @@@QName: xp.pi.before.element.string.test
5894 @@@DEnt:
5895 @@@@test:value:
5896 <?target string?>
5897 <a></a>
5898 @@@test:domTree:
5899 document {
5900 pi {
5901 node-name: 'target';
5902 node-value: 'string';
5903 }
5904 element { }
5905 }
5906 @@XMLTest:
5907 @@@QName: xp.pi.before.element.string.s.test
5908 @@@DEnt:
5909 @@@@test:value:
5910 <?target string ?>
5911 <a></a>
5912 @@@test:domTree:
5913 document {
5914 pi {
5915 node-name: 'target';
5916 node-value: 'string ';
5917 }
5918 element { }
5919 }
5920 @@XMLTest:
5921 @@@QName: xp.pi.before.element.gt.test
5922 @@@DEnt:
5923 @@@@test:value:
5924 <?target string>string?>
5925 <a></a>
5926 @@@test:domTree:
5927 document {
5928 pi {
5929 node-name: 'target';
5930 node-value: 'string>string';
5931 }
5932 element { }
5933 }
5934 @@XMLTest:
5935 @@@QName: xp.pi.doctype.empty.test
5936 @@@DEnt:
5937 @@@@test:value:
5938 <!DOCTYPE a [
5939 <?target?>
5940 ]>
5941 <a></a>
5942 @@@test:domTree:
5943 document {
5944 document-type {
5945 pi {
5946 node-name: 'target';
5947 node-value: '';
5948 }
5949 }
5950 element { }
5951 }
5952
5953 @@XMLTest:
5954 @@@QName: xp.pi.no.target.test
5955 @@@DEnt:
5956 @@@@test:value:
5957 <??>
5958 <p></p>
5959 @@@c:erred:
5960 <[[xp:wf-syntax-error]]> { (1, 3)..(1, 4); }
5961 @@XMLTest:
5962 @@@QName: xp.pi.no.target.2.test
5963 @@@DEnt:
5964 @@@@test:value:
5965 <? ?>
5966 <p></p>
5967 @@@c:erred:
5968 <[[xp:wf-syntax-error]]> { (1, 3)..(1, 4); }
5969 @@XMLTest:
5970 @@@QName: xp.pi.bad.target.1.test
5971 @@@DEnt:
5972 @@@@test:value:
5973 <?target! ?>
5974 <p></p>
5975 @@@c:erred:
5976 <[[xp:wf-syntax-error]]> { (1, 9)..(1, 9); }
5977 @@XMLTest:
5978 @@@QName: xp.pi.bad.target.2.test
5979 @@@DEnt:
5980 @@@@test:value:
5981 <?0target ?>
5982 <p></p>
5983 @@@c:erred:
5984 <[[xp:wf-syntax-error]]> { (1, 3)..(1, 3); }
5985
5986 @@XMLTest:
5987 @@@QName: xp.cdatasection.empty.1.test
5988 @@@DEnt:
5989 @@@@test:value:
5990 <p><![CDATA[]]></p>
5991 @@@test:domTree:
5992 document {
5993 element {
5994 cdata-section {
5995 data: '';
5996 }
5997 }
5998 }
5999 @@XMLTest:
6000 @@@QName: xp.cdatasection.empty.2.test
6001 @@@DEnt:
6002 @@@@test:value:
6003 <p>aa<![CDATA[]]>bb</p>
6004 @@@test:domTree:
6005 document {
6006 element {
6007 text { data: 'aa'; }
6008 cdata-section {
6009 data: '';
6010 }
6011 text { data: 'bb'; }
6012 }
6013 }
6014 @@XMLTest:
6015 @@@QName: xp.cdatasection.1.test
6016 @@@DEnt:
6017 @@@@test:value:
6018 <p><![CDATA[abcdefg]]></p>
6019 @@@test:domTree:
6020 document {
6021 element {
6022 cdata-section {
6023 data: 'abcdefg';
6024 }
6025 }
6026 }
6027 @@XMLTest:
6028 @@@QName: xp.cdatasection.2.test
6029 @@@DEnt:
6030 @@@@test:value:
6031 <p>aa<![CDATA[abcdefg]]>bb</p>
6032 @@@test:domTree:
6033 document {
6034 element {
6035 text { data: 'aa'; }
6036 cdata-section {
6037 data: 'abcdefg';
6038 }
6039 text { data: 'bb'; }
6040 }
6041 }
6042 @@XMLTest:
6043 @@@QName: xp.cdatasection.ref.1.test
6044 @@@DEnt:
6045 @@@@test:value:
6046 <p><![CDATA[a&amp;&#x32;&#32;%abc;&def;]]&gt;b]]></p>
6047 @@@test:domTree:
6048 document {
6049 element {
6050 cdata-section {
6051 data: 'a&amp;&#x32;&#32;%abc;&def;]]&gt;b';
6052 }
6053 }
6054 }
6055 @@XMLTest:
6056 @@@QName: xp.cdatasection.in.general.entity.test
6057 @@@DEnt:
6058 @@@@test:value:
6059 <!DOCTYPE p [
6060 <!ENTITY cdata "<![CDATA[text]]>">
6061 ]>
6062 <p>&cdata;</p>
6063 @@@test:domTree:
6064 document {
6065 document-type {
6066 general-entity {
6067 node-name: 'cdata';
6068 cdata-section {
6069 data: 'text';
6070 }
6071 }
6072 }
6073 element {
6074 general-entity-reference {
6075 node-name: 'cdata';
6076 is-expanded: true;
6077 cdata-section {
6078 data: 'text';
6079 }
6080 }
6081 }
6082 }
6083 @@XMLTest:
6084 @@@QName: xp.cdatasection.no.mse.test
6085 @@@DEnt:
6086 @@@@test:value:
6087 <p><![CDATA[text</p>
6088 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 21); }
6089 @@XMLTest:
6090 @@@QName: xp.cdatasection.nest.test
6091 @@@DEnt:
6092 @@@@test:value:
6093 <p><![CDATA[text01<![CDATA[txt2]]>text3]]></p>
6094 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 40)..(1, 42); }
6095
6096 @@XMLTest:
6097 @@@QName: xp.doctype.empty.test
6098 @@@DEnt:
6099 @@@@test:value:
6100 <!DOCTYPE a>
6101 <a></a>
6102 @@@test:domTree:
6103 document {
6104 xml-version: '1.0';
6105 xml-encoding: null;
6106 xml-standalone: false;
6107 document-type {
6108 node-name: 'a';
6109 public-id: null;
6110 system-id: null;
6111 }
6112 element {
6113 namespace-uri: null;
6114 prefix: null;
6115 local-name: 'a';
6116 text-content: '';
6117 }
6118 }
6119 @@XMLTest:
6120 @@@QName: xp.doctype.empty.after.document.element.test
6121 @@@DEnt:
6122 @@@@test:value:
6123 <a></a>
6124 <!DOCTYPE a>
6125 @@@c:erred: <[[xp|wf-syntax-error]]> { (2, 1)..(2, 12); }
6126 @@XMLTest:
6127 @@@QName: xp.doctype.empty.in.element.test
6128 @@@DEnt:
6129 @@@@test:value:
6130 <a>
6131 <!DOCTYPE a>
6132 </a>
6133 @@@c:erred: <[[xp|wf-syntax-error]]> { (2, 1)..(2, 12); }
6134 @@XMLTest:
6135 @@@QName: xp.doctype.empty.dup.test
6136 @@@DEnt:
6137 @@@@test:value:
6138 <!DOCTYPE a>
6139 <!DOCTYPE a>
6140 <a></a>
6141 @@@c:erred: <[[xp|wf-syntax-error]]> { (2, 1)..(2, 12); }
6142 @@XMLTest:
6143 @@@QName: xp.doctype.empty.in.intsubset.test
6144 @@@DEnt:
6145 @@@@test:value:
6146 <!DOCTYPE a [
6147 <!DOCTYPE a>
6148 ]>
6149 <a></a>
6150 @@@c:erred: <[[xp|wf-syntax-error]]> { (2, 1)..(2, 12); }
6151 @@XMLTest:
6152 @@@QName: xp.doctype.no.s.no.name.test
6153 @@@DEnt:
6154 @@@@test:value:
6155 <!DOCTYPE>
6156 <a></a>
6157 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 10); }
6158 @@XMLTest:
6159 @@@QName: xp.doctype.no.name.test
6160 @@@DEnt:
6161 @@@@test:value:
6162 <!DOCTYPE >
6163 <a></a>
6164 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 11); }
6165 @@XMLTest:
6166 @@@QName: xp.doctype.name.s.test
6167 @@@DEnt:
6168 @@@@test:value:
6169 <!DOCTYPE aa >
6170 <aa></aa>
6171 @@@test:domTree:
6172 document {
6173 document-type {
6174 node-name: 'aa';
6175 public-id: null;
6176 system-id: null;
6177 }
6178 element { }
6179 }
6180 @@XMLTest:
6181 @@@QName: xp.doctype.no.mdc.test
6182 @@@DEnt:
6183 @@@@test:value:
6184 <!DOCTYPE aa
6185 <aa></aa>
6186 @@@c:erred: <[[xp|wf-syntax-error]]> { (2, 1); }
6187
6188 @@XMLTest:
6189 @@@QName: xp.doctype.intsubset.empty.1.test
6190 @@@DEnt:
6191 @@@@test:value:
6192 <!DOCTYPE a []>
6193 <a></a>
6194 @@@test:domTree:
6195 document {
6196 xml-version: '1.0';
6197 xml-encoding: null;
6198 xml-standalone: false;
6199 document-type {
6200 node-name: 'a';
6201 public-id: null;
6202 system-id: null;
6203 }
6204 element {
6205 namespace-uri: null;
6206 prefix: null;
6207 local-name: 'a';
6208 text-content: '';
6209 }
6210 }
6211 @@XMLTest:
6212 @@@QName: xp.doctype.intsubset.empty.2.test
6213 @@@DEnt:
6214 @@@@test:value:
6215 <!DOCTYPE a [
6216
6217 ]>
6218 <a></a>
6219 @@@test:domTree:
6220 document {
6221 xml-version: '1.0';
6222 xml-encoding: null;
6223 xml-standalone: false;
6224 document-type {
6225 node-name: 'a';
6226 public-id: null;
6227 system-id: null;
6228 }
6229 element {
6230 namespace-uri: null;
6231 prefix: null;
6232 local-name: 'a';
6233 text-content: '';
6234 }
6235 }
6236 @@XMLTest:
6237 @@@QName: xp.doctype.intsubset.empty.3.test
6238 @@@DEnt:
6239 @@@@test:value:
6240 <!DOCTYPE a[]>
6241 <a></a>
6242 @@@test:domTree:
6243 document {
6244 document-type {
6245 node-name: 'a';
6246 public-id: null;
6247 system-id: null;
6248 }
6249 element { }
6250 }
6251 @@XMLTest:
6252 @@@QName: xp.doctype.intsubset.empty.4.test
6253 @@@DEnt:
6254 @@@@test:value:
6255 <!DOCTYPE a[] >
6256 <a></a>
6257 @@@test:domTree:
6258 document {
6259 document-type {
6260 node-name: 'a';
6261 public-id: null;
6262 system-id: null;
6263 }
6264 element { }
6265 }
6266 @@XMLTest:
6267 @@@QName: xp.doctype.intsubset.no.dsc.1.test
6268 @@@DEnt:
6269 @@@@test:value:
6270 <!DOCTYPE a [>
6271 <a></a>
6272 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 14); }
6273 @@XMLTest:
6274 @@@QName: xp.doctype.intsubset.no.dsc.2.test
6275 @@@DEnt:
6276 @@@@test:value:
6277 <!DOCTYPE a [
6278 <a></a>
6279 @@@c:erred: <[[xp|wf-syntax-error]]> { (2, 1); }
6280 @@XMLTest:
6281 @@@QName: xp.doctype.intsubset.no.dsc.3.test
6282 @@@DEnt:
6283 @@@@test:value:
6284 <!DOCTYPE a [
6285 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 14); }
6286 @@XMLTest:
6287 @@@QName: xp.doctype.intsubset.no.mdc.1.test
6288 @@@DEnt:
6289 @@@@test:value:
6290 <!DOCTYPE a []
6291 <a/>
6292 @@@c:erred: <[[xp|wf-syntax-error]]> { (2, 1); }
6293 @@XMLTest:
6294 @@@QName: xp.doctype.intsubset.no.mdc.2.test
6295 @@@DEnt:
6296 @@@@test:value:
6297 <!DOCTYPE a []]>
6298 <a/>
6299 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 15); }
6300 @@XMLTest:
6301 @@@QName: xp.doctype.pubid.sysid.1.test
6302 @@@DEnt:
6303 @@@@test:value:
6304 <!DOCTYPE a PUBLIC "pubid" "sysid">
6305 <a/>
6306 @@@test:domTree:
6307 document {
6308 document-type {
6309 node-name: 'a';
6310 public-id: 'pubid';
6311 system-id: 'sysid';
6312 }
6313 element { }
6314 }
6315 @@XMLTest:
6316 @@@QName: xp.doctype.pubid.sysid.2.test
6317 @@@DEnt:
6318 @@@@test:value:
6319 <!DOCTYPE a PUBLIC 'pubid' "sysid">
6320 <a/>
6321 @@@test:domTree:
6322 document {
6323 document-type {
6324 node-name: 'a';
6325 public-id: 'pubid';
6326 system-id: 'sysid';
6327 }
6328 element { }
6329 }
6330 @@XMLTest:
6331 @@@QName: xp.doctype.pubid.sysid.3.test
6332 @@@DEnt:
6333 @@@@test:value:
6334 <!DOCTYPE a PUBLIC "pubid" 'sysid'>
6335 <a/>
6336 @@@test:domTree:
6337 document {
6338 document-type {
6339 node-name: 'a';
6340 public-id: 'pubid';
6341 system-id: 'sysid';
6342 }
6343 element { }
6344 }
6345 @@XMLTest:
6346 @@@QName: xp.doctype.pubid.sysid.4.test
6347 @@@DEnt:
6348 @@@@test:value:
6349 <!DOCTYPE a PUBLIC 'pubid' 'sysid'>
6350 <a/>
6351 @@@test:domTree:
6352 document {
6353 document-type {
6354 node-name: 'a';
6355 public-id: 'pubid';
6356 system-id: 'sysid';
6357 }
6358 element { }
6359 }
6360 @@XMLTest:
6361 @@@QName: xp.doctype.pubid.sysid.5.test
6362 @@@DEnt:
6363 @@@@test:value:
6364 <!DOCTYPE a PUBLIC "pubid" "sysid" >
6365 <a/>
6366 @@@test:domTree:
6367 document {
6368 document-type {
6369 node-name: 'a';
6370 public-id: 'pubid';
6371 system-id: 'sysid';
6372 }
6373 element { }
6374 }
6375 @@XMLTest:
6376 @@@QName: xp.doctype.pubid.sysid.6.test
6377 @@@DEnt:
6378 @@@@test:value:
6379 <!DOCTYPE a PUBLIC 'pubid' 'sysid' >
6380 <a/>
6381 @@@test:domTree:
6382 document {
6383 document-type {
6384 node-name: 'a';
6385 public-id: 'pubid';
6386 system-id: 'sysid';
6387 }
6388 element { }
6389 }
6390 @@XMLTest:
6391 @@@QName: xp.doctype.pubid.sysid.intsubset.1.test
6392 @@@DEnt:
6393 @@@@test:value:
6394 <!DOCTYPE a PUBLIC "pubid" "sysid"[]>
6395 <a/>
6396 @@@test:domTree:
6397 document {
6398 document-type {
6399 node-name: 'a';
6400 public-id: 'pubid';
6401 system-id: 'sysid';
6402 }
6403 element { }
6404 }
6405 @@XMLTest:
6406 @@@QName: xp.doctype.pubid.sysid.intsubset.2.test
6407 @@@DEnt:
6408 @@@@test:value:
6409 <!DOCTYPE a PUBLIC "pubid" "sysid" []>
6410 <a/>
6411 @@@test:domTree:
6412 document {
6413 document-type {
6414 node-name: 'a';
6415 public-id: 'pubid';
6416 system-id: 'sysid';
6417 }
6418 element { }
6419 }
6420 @@XMLTest:
6421 @@@QName: xp.doctype.pubid.sysid.intsubset.3.test
6422 @@@DEnt:
6423 @@@@test:value:
6424 <!DOCTYPE a PUBLIC 'pubid' 'sysid'[]>
6425 <a/>
6426 @@@test:domTree:
6427 document {
6428 document-type {
6429 node-name: 'a';
6430 public-id: 'pubid';
6431 system-id: 'sysid';
6432 }
6433 element { }
6434 }
6435 @@XMLTest:
6436 @@@QName: xp.doctype.pubid.sysid.intsubset.4.test
6437 @@@DEnt:
6438 @@@@test:value:
6439 <!DOCTYPE a PUBLIC 'pubid' 'sysid' []>
6440 <a/>
6441 @@@test:domTree:
6442 document {
6443 document-type {
6444 node-name: 'a';
6445 public-id: 'pubid';
6446 system-id: 'sysid';
6447 }
6448 element { }
6449 }
6450 @@XMLTest:
6451 @@@QName: xp.doctype.sysid.1.test
6452 @@@DEnt:
6453 @@@@test:value:
6454 <!DOCTYPE a SYSTEM "sysid">
6455 <a/>
6456 @@@test:domTree:
6457 document {
6458 document-type {
6459 node-name: 'a';
6460 public-id: null;
6461 system-id: 'sysid';
6462 }
6463 element { }
6464 }
6465 @@XMLTest:
6466 @@@QName: xp.doctype.sysid.2.test
6467 @@@DEnt:
6468 @@@@test:value:
6469 <!DOCTYPE a SYSTEM 'sysid'>
6470 <a/>
6471 @@@test:domTree:
6472 document {
6473 document-type {
6474 node-name: 'a';
6475 public-id: null;
6476 system-id: 'sysid';
6477 }
6478 element { }
6479 }
6480 @@XMLTest:
6481 @@@QName: xp.doctype.sysid.3.test
6482 @@@DEnt:
6483 @@@@test:value:
6484 <!DOCTYPE a SYSTEM "sysid" >
6485 <a/>
6486 @@@test:domTree:
6487 document {
6488 document-type {
6489 node-name: 'a';
6490 public-id: null;
6491 system-id: 'sysid';
6492 }
6493 element { }
6494 }
6495 @@XMLTest:
6496 @@@QName: xp.doctype.sysid.4.test
6497 @@@DEnt:
6498 @@@@test:value:
6499 <!DOCTYPE a SYSTEM 'sysid' >
6500 <a/>
6501 @@@test:domTree:
6502 document {
6503 document-type {
6504 node-name: 'a';
6505 public-id: null;
6506 system-id: 'sysid';
6507 }
6508 element { }
6509 }
6510 @@XMLTest:
6511 @@@QName: xp.doctype.sysid.intsubset.1.test
6512 @@@DEnt:
6513 @@@@test:value:
6514 <!DOCTYPE a SYSTEM "sysid"[]>
6515 <a/>
6516 @@@test:domTree:
6517 document {
6518 document-type {
6519 node-name: 'a';
6520 public-id: null;
6521 system-id: 'sysid';
6522 }
6523 element { }
6524 }
6525 @@XMLTest:
6526 @@@QName: xp.doctype.sysid.intsubset.2.test
6527 @@@DEnt:
6528 @@@@test:value:
6529 <!DOCTYPE a SYSTEM "sysid" []>
6530 <a/>
6531 @@@test:domTree:
6532 document {
6533 document-type {
6534 node-name: 'a';
6535 public-id: null;
6536 system-id: 'sysid';
6537 }
6538 element { }
6539 }
6540 @@XMLTest:
6541 @@@QName: xp.doctype.sysid.intsubset.3.test
6542 @@@DEnt:
6543 @@@@test:value:
6544 <!DOCTYPE a SYSTEM 'sysid'[]>
6545 <a/>
6546 @@@test:domTree:
6547 document {
6548 document-type {
6549 node-name: 'a';
6550 public-id: null;
6551 system-id: 'sysid';
6552 }
6553 element { }
6554 }
6555 @@XMLTest:
6556 @@@QName: xp.doctype.sysid.intsubset.4.test
6557 @@@DEnt:
6558 @@@@test:value:
6559 <!DOCTYPE a SYSTEM 'sysid' []>
6560 <a/>
6561 @@@test:domTree:
6562 document {
6563 document-type {
6564 node-name: 'a';
6565 public-id: null;
6566 system-id: 'sysid';
6567 }
6568 element { }
6569 }
6570 @@XMLTest:
6571 @@@QName: xp.doctype.public.stago.test
6572 @@@DEnt:
6573 @@@@test:value:
6574 <!DOCTYPE a PUBLIC<a/>
6575 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 19); }
6576 @@XMLTest:
6577 @@@QName: xp.doctype.public.mdc.test
6578 @@@DEnt:
6579 @@@@test:value:
6580 <!DOCTYPE a PUBLIC>
6581 <a/>
6582 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 19); }
6583 @@XMLTest:
6584 @@@QName: xp.doctype.public.s.stago.test
6585 @@@DEnt:
6586 @@@@test:value:
6587 <!DOCTYPE a PUBLIC <a/>
6588 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 20); }
6589 @@XMLTest:
6590 @@@QName: xp.doctype.public.s.mdc.test
6591 @@@DEnt:
6592 @@@@test:value:
6593 <!DOCTYPE a PUBLIC >
6594 <a/>
6595 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 20); }
6596 @@XMLTest:
6597 @@@QName: xp.doctype.public.lit.test
6598 @@@DEnt:
6599 @@@@test:value:
6600 <!DOCTYPE a PUBLIC"p" "s">
6601 <a/>
6602 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 19); }
6603 @@XMLTest:
6604 @@@QName: xp.doctype.public.lita.test
6605 @@@DEnt:
6606 @@@@test:value:
6607 <!DOCTYPE a PUBLIC'p' "s">
6608 <a/>
6609 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 19); }
6610 @@XMLTest:
6611 @@@QName: xp.doctype.pubid.lit.lita.unmatched.1.test
6612 @@@DEnt:
6613 @@@@test:value:
6614 <!DOCTYPE a PUBLIC "p' "s">
6615 <a/>
6616 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 25); }
6617 @@XMLTest:
6618 @@@QName: xp.doctype.pubid.lit.lita.unmatched.2.test
6619 @@@DEnt:
6620 @@@@test:value:
6621 <!DOCTYPE a PUBLIC "p' 's'><a/>
6622 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 32); }
6623 @@XMLTest:
6624 @@@QName: xp.doctype.pubid.lita.lit.unmatched.1.test
6625 @@@DEnt:
6626 @@@@test:value:
6627 <!DOCTYPE a PUBLIC 'p" "s"><a/>
6628 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 32); }
6629 @@XMLTest:
6630 @@@QName: xp.doctype.pubid.lita.lit.unmatched.2.test
6631 @@@DEnt:
6632 @@@@test:value:
6633 <!DOCTYPE a PUBLIC 'p" 's'>
6634 <a/>
6635 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 21)..(1, 25); }
6636 @@XMLTest:
6637 @@@QName: xp.doctype.public.s.lit.mdc.test
6638 @@@DEnt:
6639 @@@@test:value:
6640 <!DOCTYPE a PUBLIC "><a/>
6641 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 26); }
6642 @@XMLTest:
6643 @@@QName: xp.doctype.public.s.lita.mdc.test
6644 @@@DEnt:
6645 @@@@test:value:
6646 <!DOCTYPE a PUBLIC '><a/>
6647 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 26); }
6648 @@XMLTest:
6649 @@@QName: xp.doctype.public.lit.pubid.lit.mdc.test
6650 @@@DEnt:
6651 @@@@test:value:
6652 <!DOCTYPE a PUBLIC "p">
6653 <a/>
6654 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 23); }
6655 @@XMLTest:
6656 @@@QName: xp.doctype.public.lita.pubid.lita.mdc.test
6657 @@@DEnt:
6658 @@@@test:value:
6659 <!DOCTYPE a PUBLIC 'p'>
6660 <a/>
6661 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 23); }
6662 @@XMLTest:
6663 @@@QName: xp.doctype.public.lit.pubid.lit.s.mdc.test
6664 @@@DEnt:
6665 @@@@test:value:
6666 <!DOCTYPE a PUBLIC "p" >
6667 <a/>
6668 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 24); }
6669 @@XMLTest:
6670 @@@QName: xp.doctype.public.lita.pubid.lita.s.mdc.test
6671 @@@DEnt:
6672 @@@@test:value:
6673 <!DOCTYPE a PUBLIC 'p' >
6674 <a/>
6675 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 24); }
6676 @@XMLTest:
6677 @@@QName: xp.doctype.public.lit.pubid.lit.s.lit.mdc.test
6678 @@@DEnt:
6679 @@@@test:value:
6680 <!DOCTYPE a PUBLIC "p" "><a/>
6681 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 30); }
6682 @@XMLTest:
6683 @@@QName: xp.doctype.public.lit.pubid.lit.s.lita.mdc.test
6684 @@@DEnt:
6685 @@@@test:value:
6686 <!DOCTYPE a PUBLIC "p" '><a/>
6687 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 30); }
6688 @@XMLTest:
6689 @@@QName: xp.doctype.public.lita.pubid.lita.s.lit.mdc.test
6690 @@@DEnt:
6691 @@@@test:value:
6692 <!DOCTYPE a PUBLIC 'p' "><a/>
6693 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 30); }
6694 @@XMLTest:
6695 @@@QName: xp.doctype.public.lita.pubid.lita.s.lita.mdc.test
6696 @@@DEnt:
6697 @@@@test:value:
6698 <!DOCTYPE a PUBLIC 'p' '><a/>
6699 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 30); }
6700 @@XMLTest:
6701 @@@QName: xp.doctype.public.lit.pubid.lit.lit.lita.unmatched.mdc.test
6702 @@@DEnt:
6703 @@@@test:value:
6704 <!DOCTYPE a PUBLIC "p" "s'><a/>
6705 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 32); }
6706 @@XMLTest:
6707 @@@QName: xp.doctype.public.lita.pubid.lita.lita.lit.unmatched.mdc.test
6708 @@@DEnt:
6709 @@@@test:value:
6710 <!DOCTYPE a PUBLIC 'p' 's"><a/>
6711 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 32); }
6712 @@XMLTest:
6713 @@@QName: xp.doctype.pubid.sysid.stago.1.test
6714 @@@DEnt:
6715 @@@@test:value:
6716 <!DOCTYPE a PUBLIC "p" "s"<a/>
6717 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 27); }
6718 @@XMLTest:
6719 @@@QName: xp.doctype.pubid.sysid.stago.2.test
6720 @@@DEnt:
6721 @@@@test:value:
6722 <!DOCTYPE a PUBLIC "p" 's'<a/>
6723 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 27); }
6724 @@XMLTest:
6725 @@@QName: xp.doctype.pubid.sysid.stago.s.1.test
6726 @@@DEnt:
6727 @@@@test:value:
6728 <!DOCTYPE a PUBLIC "p" "s" <a/>
6729 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 28); }
6730 @@XMLTest:
6731 @@@QName: xp.doctype.pubid.sysid.stago.s.2.test
6732 @@@DEnt:
6733 @@@@test:value:
6734 <!DOCTYPE a PUBLIC "p" 's' <a/>
6735 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 28); }
6736
6737 @@XMLTest:
6738 @@@QName: xp.endofline.1.0.crlf.test
6739 @@@DEnt:
6740 @@@@test:value:
6741 <?xml version="1.0"?>
6742 <p>aaa$u000D$u000Abbb</p>
6743 @@@test:domTree:
6744 document {
6745 xml-version: '1.0';
6746 element {
6747 text-content: 'aaa' U+000A 'bbb';
6748 }
6749 }
6750 @@XMLTest:
6751 @@@QName: xp.endofline.1.1.crlf.test
6752 @@@DEnt:
6753 @@@@test:value:
6754 <?xml version="1.1"?>
6755 <p>aaa$u000D$u000Abbb</p>
6756 @@@test:domTree:
6757 document {
6758 xml-version: '1.1';
6759 element {
6760 text-content: 'aaa' U+000A 'bbb';
6761 }
6762 }
6763 @@XMLTest:
6764 @@@QName: xp.endofline.1.0.crnl.test
6765 @@@DEnt:
6766 @@@@test:value:
6767 <?xml version="1.0"?>
6768 <p>aaa$u000D$u0085bbb</p>
6769 @@@test:domTree:
6770 document {
6771 xml-version: '1.0';
6772 element {
6773 text-content: 'aaa' U+000A U+0085 'bbb';
6774 }
6775 }
6776 @@XMLTest:
6777 @@@QName: xp.endofline.1.1.crnl.test
6778 @@@DEnt:
6779 @@@@test:value:
6780 <?xml version="1.1"?>
6781 <p>aaa$u000D$u0085bbb</p>
6782 @@@test:domTree:
6783 document {
6784 xml-version: '1.1';
6785 element {
6786 text-content: 'aaa' U+000A 'bbb';
6787 }
6788 }
6789 @@XMLTest:
6790 @@@QName: xp.endofline.1.0.nl.test
6791 @@@DEnt:
6792 @@@@test:value:
6793 <?xml version="1.0"?>
6794 <p>aaa$u0085bbb</p>
6795 @@@test:domTree:
6796 document {
6797 xml-version: '1.0';
6798 element {
6799 text-content: 'aaa' U+0085 'bbb';
6800 }
6801 }
6802 @@XMLTest:
6803 @@@QName: xp.endofline.1.1.nl.test
6804 @@@DEnt:
6805 @@@@test:value:
6806 <?xml version="1.1"?>
6807 <p>aaa$u0085bbb</p>
6808 @@@test:domTree:
6809 document {
6810 xml-version: '1.1';
6811 element {
6812 text-content: 'aaa' U+000A 'bbb';
6813 }
6814 }
6815 @@XMLTest:
6816 @@@QName: xp.endofline.1.0.ls.test
6817 @@@DEnt:
6818 @@@@test:value:
6819 <?xml version="1.0"?>
6820 <p>aaa$u2028bbb</p>
6821 @@@test:domTree:
6822 document {
6823 xml-version: '1.0';
6824 element {
6825 text-content: 'aaa' U+2028 'bbb';
6826 }
6827 }
6828 @@XMLTest:
6829 @@@QName: xp.endofline.1.1.ls.test
6830 @@@DEnt:
6831 @@@@test:value:
6832 <?xml version="1.1"?>
6833 <p>aaa$u2028bbb</p>
6834 @@@test:domTree:
6835 document {
6836 xml-version: '1.1';
6837 element {
6838 text-content: 'aaa' U+000A 'bbb';
6839 }
6840 }
6841 @@XMLTest:
6842 @@@QName: xp.endofline.1.0.cr.test
6843 @@@DEnt:
6844 @@@@test:value:
6845 <?xml version="1.0"?>
6846 <p>aaa$u000Dbbb</p>
6847 @@@test:domTree:
6848 document {
6849 xml-version: '1.0';
6850 element {
6851 text-content: 'aaa' U+000A 'bbb';
6852 }
6853 }
6854 @@XMLTest:
6855 @@@QName: xp.endofline.1.1.cr.test
6856 @@@DEnt:
6857 @@@@test:value:
6858 <?xml version="1.1"?>
6859 <p>aaa$u000Dbbb</p>
6860 @@@test:domTree:
6861 document {
6862 xml-version: '1.1';
6863 element {
6864 text-content: 'aaa' U+000A 'bbb';
6865 }
6866 }
6867 @@XMLTest:
6868 @@@QName: xp.endofline.1.0.lf.test
6869 @@@DEnt:
6870 @@@@test:value:
6871 <?xml version="1.0"?>
6872 <p>aaa$u000Abbb</p>
6873 @@@test:domTree:
6874 document {
6875 xml-version: '1.0';
6876 element {
6877 text-content: 'aaa' U+000A 'bbb';
6878 }
6879 }
6880 @@XMLTest:
6881 @@@QName: xp.endofline.1.1.lf.test
6882 @@@DEnt:
6883 @@@@test:value:
6884 <?xml version="1.1"?>
6885 <p>aaa$u000Abbb</p>
6886 @@@test:domTree:
6887 document {
6888 xml-version: '1.1';
6889 element {
6890 text-content: 'aaa' U+000A 'bbb';
6891 }
6892 }
6893 @@XMLTest:
6894 @@@QName: xp.xml10.endofline.nl.in.xmldecl.1.test
6895 @@@DEnt:
6896 @@@@test:value:
6897 <?xml$u0085version="1.0"?>
6898 <p/>
6899 @@@c:erred:
6900 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 6)..(2, 0); }
6901 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6902 @@XMLTest:
6903 @@@QName: xp.xml11.endofline.nl.in.xmldecl.1.test
6904 @@@DEnt:
6905 @@@@test:value:
6906 <?xml$u0085version="1.1"?>
6907 (err)<p/>
6908 @@@c:erred:
6909 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 6)..(2, 0); }
6910 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6911 @@XMLTest:
6912 @@@QName: xp.xml10.endofline.crnl.in.xmldecl.1.test
6913 @@@DEnt:
6914 @@@@test:value:
6915 <?xml$u000D$u0085version="1.0"?>
6916 <p/>
6917 @@@c:erred:
6918 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 6)..(2, 0); }
6919 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6920 @@XMLTest:
6921 @@@QName: xp.xml11.endofline.crnl.in.xmldecl.1.test
6922 @@@DEnt:
6923 @@@@test:value:
6924 <?xml$u000D$u0085version="1.1"?>
6925 (err)<p/>
6926 @@@c:erred:
6927 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 6)..(2, 0); }
6928 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6929 @@XMLTest:
6930 @@@QName: xp.xml10.endofline.ls.in.xmldecl.1.test
6931 @@@DEnt:
6932 @@@@test:value:
6933 <?xml$u2028version="1.0"?>
6934 <p/>
6935 @@@c:erred:
6936 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 6)..(2, 0); }
6937 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6938 @@XMLTest:
6939 @@@QName: xp.xml11.endofline.ls.in.xmldecl.1.test
6940 @@@DEnt:
6941 @@@@test:value:
6942 <?xml$u2028version="1.1"?>
6943 (err)<p/>
6944 @@@c:erred:
6945 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 6)..(2, 0); }
6946 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6947 @@XMLTest:
6948 @@@QName: xp.xml10.endofline.nl.in.xmldecl.2.test
6949 @@@DEnt:
6950 @@@@test:value:
6951 <?xml version="1.0"$u0085?>
6952 <p/>
6953 @@@c:erred:
6954 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 20)..(2, 0); }
6955 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6956 @@XMLTest:
6957 @@@QName: xp.xml11.endofline.nl.in.xmldecl.2.test
6958 @@@DEnt:
6959 @@@@test:value:
6960 <?xml version="1.1"$u0085?>
6961 (err)<p/>
6962 @@@c:erred:
6963 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 20)..(2, 0); }
6964 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6965 @@XMLTest:
6966 @@@QName: xp.xml10.endofline.crnl.in.xmldecl.2.test
6967 @@@DEnt:
6968 @@@@test:value:
6969 <?xml version="1.0"$u000D$u0085?>
6970 <p/>
6971 @@@c:erred:
6972 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 20)..(2, 0); }
6973 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6974 @@XMLTest:
6975 @@@QName: xp.xml11.endofline.crnl.in.xmldecl.2.test
6976 @@@DEnt:
6977 @@@@test:value:
6978 <?xml version="1.1"$u000D$u0085?>
6979 (err)<p/>
6980 @@@c:erred:
6981 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 20)..(2, 0); }
6982 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6983 @@XMLTest:
6984 @@@QName: xp.xml10.endofline.ls.in.xmldecl.2.test
6985 @@@DEnt:
6986 @@@@test:value:
6987 <?xml version="1.0"$u2028?>
6988 <p/>
6989 @@@c:erred:
6990 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 20)..(2, 0); }
6991 @@@c:erred: <[[xp|wf-syntax-error]]> { }
6992 @@XMLTest:
6993 @@@QName: xp.xml11.endofline.ls.in.xmldecl.2.test
6994 @@@DEnt:
6995 @@@@test:value:
6996 <?xml version="1.1"$u2028?>
6997 (err)<p/>
6998 @@@c:erred:
6999 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 20)..(2, 0); }
7000 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7001 @@XMLTest:
7002 @@@QName: xp.xml10.endofline.nl.in.xmldecl.3.test
7003 @@@DEnt:
7004 @@@@test:value:
7005 <?xml $u0085version="1.0"?>
7006 <p/>
7007 @@@c:erred:
7008 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 7)..(2, 0); }
7009 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7010 @@XMLTest:
7011 @@@QName: xp.xml11.endofline.nl.in.xmldecl.3.test
7012 @@@DEnt:
7013 @@@@test:value:
7014 <?xml $u0085version="1.1"?>
7015 (err)<p/>
7016 @@@c:erred:
7017 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 7)..(2, 0); }
7018 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7019 @@XMLTest:
7020 @@@QName: xp.xml10.endofline.crnl.in.xmldecl.3.test
7021 @@@DEnt:
7022 @@@@test:value:
7023 <?xml $u000D$u0085version="1.0"?>
7024 <p/>
7025 @@@c:erred:
7026 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 7)..(2, 0); }
7027 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7028 @@XMLTest:
7029 @@@QName: xp.xml11.endofline.crnl.in.xmldecl.3.test
7030 @@@DEnt:
7031 @@@@test:value:
7032 <?xml $u000D$u0085version="1.1"?>
7033 (err)<p/>
7034 @@@c:erred:
7035 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 7)..(2, 0); }
7036 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7037 @@XMLTest:
7038 @@@QName: xp.xml10.endofline.ls.in.xmldecl.3.test
7039 @@@DEnt:
7040 @@@@test:value:
7041 <?xml $u2028version="1.0"?>
7042 <p/>
7043 @@@c:erred:
7044 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 7)..(2, 0); }
7045 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7046 @@XMLTest:
7047 @@@QName: xp.xml11.endofline.ls.in.xmldecl.3.test
7048 @@@DEnt:
7049 @@@@test:value:
7050 <?xml $u2028version="1.1"?>
7051 (err)<p/>
7052 @@@c:erred:
7053 <[[xp|fatal-xml11-end-of-line-in-xml-declaration]]> { (1, 7)..(2, 0); }
7054 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7055 @@XMLTest:
7056 @@@QName: xp.xml10implied.endofline.nl.in.pi.1.test
7057 @@@DEnt:
7058 @@@@test:value:
7059 <?xml-$u0085?>
7060 <p/>
7061 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 7)..(2, 0); }
7062 @@XMLTest:
7063 @@@QName: xp.xml10.endofline.nl.in.pi.1.test
7064 @@@DEnt:
7065 @@@@test:value:
7066 <?xml version="1.0"?>
7067 <?xml-$u0085?>
7068 <p/>
7069 @@@c:erred: <[[xp|wf-syntax-error]]> { (2, 7)..(3, 0); }
7070 @@XMLTest:
7071 @@@QName: xp.xml11.endofline.nl.in.pi.1.test
7072 @@@DEnt:
7073 @@@@test:value:
7074 <?xml version="1.1"?>
7075 <?xml-$u0085?>
7076 <p/>
7077 @@@test:domTree:
7078 document {
7079 xml-version: '1.1';
7080 pi {
7081 node-name: 'xml-';
7082 node-value: '';
7083 }
7084 element { }
7085 }
7086 @@XMLTest:
7087 @@@QName: xp.xml10implied.endofline.crnl.in.pi.1.test
7088 @@@DEnt:
7089 @@@@test:value:
7090 <?xml-$u000D$u0085?>
7091 <p/>
7092 @@@test:domTree:
7093 document {
7094 xml-version: '1.0';
7095 pi {
7096 node-name: 'xml-';
7097 node-value: U+0085;
7098 }
7099 element { }
7100 }
7101 @@XMLTest:
7102 @@@QName: xp.xml10.endofline.crnl.in.pi.1.test
7103 @@@DEnt:
7104 @@@@test:value:
7105 <?xml version="1.0"?>
7106 <?xml-$u000D$u0085?>
7107 <p/>
7108 @@@test:domTree:
7109 document {
7110 xml-version: '1.0';
7111 pi {
7112 node-name: 'xml-';
7113 node-value: U+0085;
7114 }
7115 element { }
7116 }
7117 @@XMLTest:
7118 @@@QName: xp.xml11.endofline.crnl.in.pi.1.test
7119 @@@DEnt:
7120 @@@@test:value:
7121 <?xml version="1.1"?>
7122 <?xml-$u000D$u0085?>
7123 <p/>
7124 @@@test:domTree:
7125 document {
7126 xml-version: '1.1';
7127 pi {
7128 node-name: 'xml-';
7129 node-value: '';
7130 }
7131 element { }
7132 }
7133 @@XMLTest:
7134 @@@QName: xp.xml10implied.endofline.ls.in.pi.1.test
7135 @@@DEnt:
7136 @@@@test:value:
7137 <?xml-$u2028?>
7138 <p/>
7139 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 7)..(2, 0); }
7140 @@XMLTest:
7141 @@@QName: xp.xml10.endofline.ls.in.pi.1.test
7142 @@@DEnt:
7143 @@@@test:value:
7144 <?xml version="1.0"?>
7145 <?xml-$u2028?>
7146 <p/>
7147 @@@c:erred: <[[xp|wf-syntax-error]]> { (2, 7)..(3, 0); }
7148 @@XMLTest:
7149 @@@QName: xp.xml11.endofline.ls.in.pi.1.test
7150 @@@DEnt:
7151 @@@@test:value:
7152 <?xml version="1.1"?>
7153 <?xml-$u2028?>
7154 <p/>
7155 @@@test:domTree:
7156 document {
7157 xml-version: '1.1';
7158 pi {
7159 node-name: 'xml-';
7160 node-value: '';
7161 }
7162 element { }
7163 }
7164 @@XMLTest:
7165 @@@QName: xp.noxmldecl.pi.pi.test
7166 @@@DEnt:
7167 @@@@test:value:
7168 <?noxml 1?><?noxml 2?><p/>
7169 @@@test:domTree:
7170 document {
7171 xml-version: '1.0';
7172 pi {
7173 node-name: 'noxml';
7174 node-value: '1';
7175 }
7176 pi {
7177 node-name: 'noxml';
7178 node-value: '2';
7179 }
7180 element { }
7181 }
7182 @@XMLTest:
7183 @@@QName: xp.noxmldecl.pi.pi.2.test
7184 @@@DEnt:
7185 @@@@test:value:
7186 <?xmlno 1?><?xmlno 2?><p/>
7187 @@@test:domTree:
7188 document {
7189 xml-version: '1.0';
7190 pi {
7191 node-name: 'xmlno';
7192 node-value: '1';
7193 }
7194 pi {
7195 node-name: 'xmlno';
7196 node-value: '2';
7197 }
7198 element { }
7199 }
7200 @@XMLTest:
7201 @@@QName: xp.noxmldecl.pi.pi.3.test
7202 @@@DEnt:
7203 @@@@test:value:
7204 <?xmln 1?><?xmln 2?><p/>
7205 @@@test:domTree:
7206 document {
7207 xml-version: '1.0';
7208 pi {
7209 node-name: 'xmln';
7210 node-value: '1';
7211 }
7212 pi {
7213 node-name: 'xmln';
7214 node-value: '2';
7215 }
7216 element { }
7217 }
7218 @@XMLTest:
7219 @@@QName: xp.noxml.s.nl.test
7220 @@@DEnt:
7221 @@@@test:value:
7222 $u0085<p/>
7223 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 1)..(2, 0); }
7224 @@XMLTest:
7225 @@@QName: xp.noxml.s.crnl.test
7226 @@@DEnt:
7227 @@@@test:value:
7228 $u000D$u0085<p/>
7229 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 1)..(2, 0); }
7230 @@XMLTest:
7231 @@@QName: xp.noxml.s.ls.test
7232 @@@DEnt:
7233 @@@@test:value:
7234 $u2028<p/>
7235 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 1)..(2, 0); }
7236 @@XMLTest:
7237 @@@QName: xp.xml10.decl.s.nl.test
7238 @@@DEnt:
7239 @@@@test:value:
7240 <?xml version="1.0"?>$u0085<p/>
7241 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 22)..(2, 0); }
7242 @@XMLTest:
7243 @@@QName: xp.xml10.decl.s.crnl.test
7244 @@@DEnt:
7245 @@@@test:value:
7246 <?xml version="1.0"?>$u000D$u0085<p/>
7247 @@@c:erred: <[[xp|wf-syntax-error]]> { (2, 0)..(3, 0); }
7248 @@XMLTest:
7249 @@@QName: xp.xml10.decl.s.ls.test
7250 @@@DEnt:
7251 @@@@test:value:
7252 <?xml version="1.0"?>$u2028<p/>
7253 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 22)..(2, 0); }
7254 @@XMLTest:
7255 @@@QName: xp.xml11.decl.s.nl.test
7256 @@@DEnt:
7257 @@@@test:value:
7258 <?xml version="1.1"?>$u0085<p/>
7259 @@@test:domTree:
7260 document {
7261 xml-version: '1.1';
7262 element { }
7263 }
7264 @@XMLTest:
7265 @@@QName: xp.xml11.decl.s.crnl.test
7266 @@@DEnt:
7267 @@@@test:value:
7268 <?xml version="1.1"?>$u000D$u0085<p/>
7269 @@@test:domTree:
7270 document {
7271 xml-version: '1.1';
7272 element { }
7273 }
7274 @@XMLTest:
7275 @@@QName: xp.xml11.decl.s.ls.test
7276 @@@DEnt:
7277 @@@@test:value:
7278 <?xml version="1.1"?>$u2028<p/>
7279 @@@test:domTree:
7280 document {
7281 xml-version: '1.1';
7282 element { }
7283 }
7284
7285 @@XMLTest:
7286 @@@QName: xp.element.type.match.1.test
7287 @@@DEnt:
7288 @@@@test:value:
7289 <p></pa>(err)
7290 @@@c:erred: <[[xp|wf-element-type-match]]> { (1, 4)..(1, 8); }
7291 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7292 @@XMLTest:
7293 @@@QName: xp.element.type.match.2.test
7294 @@@DEnt:
7295 @@@@test:value:
7296 <p><pa></pa></pa>(err)
7297 @@@c:erred: <[[xp|wf-element-type-match]]> { (1, 13)..(1, 17); }
7298 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7299 @@XMLTest:
7300 @@@QName: xp.element.type.match.3.test
7301 @@@DEnt:
7302 @@@@test:value:
7303 <p><pa></p></p>(err)
7304 @@@c:erred: <[[xp|wf-element-type-match]]> { (1, 8)..(1, 11); }
7305 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7306 @@XMLTest:
7307 @@@QName: xp.element.type.match.4.test
7308 @@@DEnt:
7309 @@@@test:value:
7310 <a:p xmlns:a="about:1"></p>(err)
7311 @@@c:erred: <[[xp|wf-element-type-match]]> { (1, 24)..(1, 27); }
7312 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7313 @@XMLTest:
7314 @@@QName: xp.element.type.match.5.test
7315 @@@DEnt:
7316 @@@@test:value:
7317 <a:p xmlns:a="about:1" xmlns:b="about:1"></b:p>(err)
7318 @@@c:erred: <[[xp|wf-element-type-match]]> { (1, 42)..(1, 47); }
7319 @@@c:erred: <[[xp|wf-syntax-error]]> { }
7320
7321 @@XMLTest:
7322 @@@QName: xp.stag.stago.name.etago.test
7323 @@@DEnt:
7324 @@@@test:value:
7325 <a</a>
7326 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 3); }
7327 @@XMLTest:
7328 @@@QName: xp.stag.stago.name.s.etago.test
7329 @@@DEnt:
7330 @@@@test:value:
7331 <a </a>
7332 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 4); }
7333 @@XMLTest:
7334 @@@QName: xp.stag.stago.name.s.attr.etago.test
7335 @@@DEnt:
7336 @@@@test:value:
7337 <a a="b"</a>
7338 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 9); }
7339 @@XMLTest:
7340 @@@QName: xp.stag.stago.name.s.attr.s.attr.etago.test
7341 @@@DEnt:
7342 @@@@test:value:
7343 <a a="b" c="d"</a>
7344 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 15); }
7345 @@XMLTest:
7346 @@@QName: xp.stag.stago.name.s.attr.s.etago.test
7347 @@@DEnt:
7348 @@@@test:value:
7349 <a a="b" </a>
7350 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 10); }
7351 @@XMLTest:
7352 @@@QName: xp.stag.etag.1.test
7353 @@@DEnt:
7354 @@@@test:value:
7355 <root><a></a></root>
7356 @@@test:domTree:
7357 document {
7358 element {
7359 element {
7360 node-name: 'a';
7361 }
7362 }
7363 }
7364 @@XMLTest:
7365 @@@QName: xp.stag.etag.2.test
7366 @@@DEnt:
7367 @@@@test:value:
7368 <root><ab></ab></root>
7369 @@@test:domTree:
7370 document {
7371 element {
7372 element {
7373 node-name: 'ab';
7374 }
7375 }
7376 }
7377 @@XMLTest:
7378 @@@QName: xp.stag.etag.s.1.test
7379 @@@DEnt:
7380 @@@@test:value:
7381 <root><a ></a ></root>
7382 @@@test:domTree:
7383 document {
7384 element {
7385 element {
7386 node-name: 'a';
7387 }
7388 }
7389 }
7390 @@XMLTest:
7391 @@@QName: xp.etag.1.test
7392 @@@DEnt:
7393 @@@@test:value:
7394 <root><a/></root>
7395 @@@test:domTree:
7396 document {
7397 element {
7398 element {
7399 node-name: 'a';
7400 }
7401 }
7402 }
7403 @@XMLTest:
7404 @@@QName: xp.etag.2.test
7405 @@@DEnt:
7406 @@@@test:value:
7407 <root><a /></root>
7408 @@@test:domTree:
7409 document {
7410 element {
7411 element {
7412 node-name: 'a';
7413 }
7414 }
7415 }
7416 @@XMLTest:
7417 @@@QName: xp.stag.etag.attr.1.test
7418 @@@DEnt:
7419 @@@@test:value:
7420 <root><a at="v"></a></root>
7421 @@@test:domTree:
7422 document {
7423 element {
7424 element {
7425 node-name: 'a';
7426 attribute {
7427 node-name: 'at';
7428 value: 'v';
7429 }
7430 }
7431 }
7432 }
7433 @@XMLTest:
7434 @@@QName: xp.stag.etag.attr.2.test
7435 @@@DEnt:
7436 @@@@test:value:
7437 <root><a at="v" ></a></root>
7438 @@@test:domTree:
7439 document {
7440 element {
7441 element {
7442 node-name: 'a';
7443 attribute {
7444 node-name: 'at';
7445 value: 'v';
7446 }
7447 }
7448 }
7449 }
7450 @@XMLTest:
7451 @@@QName: xp.stag.etag.attr.3.test
7452 @@@DEnt:
7453 @@@@test:value:
7454 <root><a at ="v"></a></root>
7455 @@@test:domTree:
7456 document {
7457 element {
7458 element {
7459 node-name: 'a';
7460 attribute {
7461 node-name: 'at';
7462 value: 'v';
7463 }
7464 }
7465 }
7466 }
7467 @@XMLTest:
7468 @@@QName: xp.stag.etag.attr.4.test
7469 @@@DEnt:
7470 @@@@test:value:
7471 <root><a at= "v"></a></root>
7472 @@@test:domTree:
7473 document {
7474 element {
7475 element {
7476 node-name: 'a';
7477 attribute {
7478 node-name: 'at';
7479 value: 'v';
7480 }
7481 }
7482 }
7483 }
7484 @@XMLTest:
7485 @@@QName: xp.stag.etag.attr.5.test
7486 @@@DEnt:
7487 @@@@test:value:
7488 <root><a at='v'></a></root>
7489 @@@test:domTree:
7490 document {
7491 element {
7492 element {
7493 node-name: 'a';
7494 attribute {
7495 node-name: 'at';
7496 value: 'v';
7497 }
7498 }
7499 }
7500 }
7501 @@XMLTest:
7502 @@@QName: xp.stag.etag.attr.6.test
7503 @@@DEnt:
7504 @@@@test:value:
7505 <root><a at= 'v' ></a></root>
7506 @@@test:domTree:
7507 document {
7508 element {
7509 element {
7510 node-name: 'a';
7511 attribute {
7512 node-name: 'at';
7513 value: 'v';
7514 }
7515 }
7516 }
7517 }
7518 @@XMLTest:
7519 @@@QName: xp.stag.etag.attr.attr.1.test
7520 @@@DEnt:
7521 @@@@test:value:
7522 <root><a at="v" tr="w"></a></root>
7523 @@@test:domTree:
7524 document {
7525 element {
7526 element {
7527 node-name: 'a';
7528 attribute {
7529 node-name: 'at';
7530 value: 'v';
7531 }
7532 attribute {
7533 node-name: 'tr';
7534 value: 'w';
7535 }
7536 }
7537 }
7538 }
7539 @@XMLTest:
7540 @@@QName: xp.stag.etag.attr.attr.2.test
7541 @@@DEnt:
7542 @@@@test:value:
7543 <root><a tr="w" at="v"></a></root>
7544 @@@test:domTree:
7545 document {
7546 element {
7547 element {
7548 node-name: 'a';
7549 attribute {
7550 node-name: 'at';
7551 value: 'v';
7552 }
7553 attribute {
7554 node-name: 'tr';
7555 value: 'w';
7556 }
7557 }
7558 }
7559 }
7560 @@XMLTest:
7561 @@@QName: xp.stag.etag.attr.no.s.attr.test
7562 @@@DEnt:
7563 @@@@test:value:
7564 <root><a at="v"tr="w"></a></root>
7565 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 16)..(1, 17); }
7566 @@XMLTest:
7567 @@@QName: xp.etag.attr.1.test
7568 @@@DEnt:
7569 @@@@test:value:
7570 <root><a at="v" tr="w"></a b="c"></root>
7571 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 28); }
7572 @@XMLTest:
7573 @@@QName: xp.etag.no.etagc.1.test
7574 @@@DEnt:
7575 @@@@test:value:
7576 <root><a at="v" tr="w"></a</root>
7577 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 27)..(1, 28); }
7578 @@XMLTest:
7579 @@@QName: xp.etag.no.etagc.2.test
7580 @@@DEnt:
7581 @@@@test:value:
7582 <root><a at="v" tr="w"></a </root>
7583 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 29)..(1, 30); }
7584 @@XMLTest:
7585 @@@QName: xp.mtag.attr.1.test
7586 @@@DEnt:
7587 @@@@test:value:
7588 <root><a b="c"/></root>
7589 @@@test:domTree:
7590 document {
7591 element {
7592 element {
7593 node-name: 'a';
7594 attribute {
7595 node-name: 'b';
7596 value: 'c';
7597 }
7598 }
7599 }
7600 }
7601 @@XMLTest:
7602 @@@QName: xp.mtag.attr.2.test
7603 @@@DEnt:
7604 @@@@test:value:
7605 <root><a b="c" /></root>
7606 @@@test:domTree:
7607 document {
7608 element {
7609 element {
7610 node-name: 'a';
7611 attribute {
7612 node-name: 'b';
7613 value: 'c';
7614 }
7615 }
7616 }
7617 }
7618 @@XMLTest:
7619 @@@QName: xp.mtag.attr.3.test
7620 @@@DEnt:
7621 @@@@test:value:
7622 <root><a b='c'/></root>
7623 @@@test:domTree:
7624 document {
7625 element {
7626 element {
7627 node-name: 'a';
7628 attribute {
7629 node-name: 'b';
7630 value: 'c';
7631 }
7632 }
7633 }
7634 }
7635 @@XMLTest:
7636 @@@QName: xp.mtag.attr.4.test
7637 @@@DEnt:
7638 @@@@test:value:
7639 <root><a b="c" d="e"/></root>
7640 @@@test:domTree:
7641 document {
7642 element {
7643 element {
7644 node-name: 'a';
7645 attribute {
7646 node-name: 'b';
7647 value: 'c';
7648 }
7649 attribute {
7650 node-name: 'd';
7651 value: 'e';
7652 }
7653 }
7654 }
7655 }
7656
7657 @@XMLTest:
7658 @@@QName: xp.attvalue.lt.1.test
7659 @@@DEnt:
7660 @@@@test:value:
7661 <a b="aa<dd"/>
7662 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 9); }
7663 @@XMLTest:
7664 @@@QName: xp.attvalue.lt.2.test
7665 @@@DEnt:
7666 @@@@test:value:
7667 <a b='aa<dd'/>
7668 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 9); }
7669 @@XMLTest:
7670 @@@QName: xp.attvalue.amp.1.test
7671 @@@DEnt:
7672 @@@@test:value:
7673 <a b="aa& dd"/>
7674 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 9)..(1, 12); }
7675 @@XMLTest:
7676 @@@QName: xp.attvalue.amp.2.test
7677 @@@DEnt:
7678 @@@@test:value:
7679 <a b='aa& dd'/>
7680 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 9)..(1, 12); }
7681 @@XMLTest:
7682 @@@QName: xp.attvalue.amp.3.test
7683 @@@DEnt:
7684 @@@@test:value:
7685 <a b="aa&# dd"/>
7686 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 9)..(1, 13); }
7687 @@XMLTest:
7688 @@@QName: xp.attvalue.amp.4.test
7689 @@@DEnt:
7690 @@@@test:value:
7691 <a b="aa&#x dd"/>
7692 @@@c:erred: <[[xp|wf-syntax-error]]> { (1, 9)..(1, 14); }
7693
7694 @@XMLTest:
7695 @@@QName: xp.unique.att.spec.1.test
7696 @@@DEnt:
7697 @@@@test:value:
7698 <a b="c" b="d"/>
7699 @@@c:erred: <[[xp|wf-unique-att-spec]]> { (1, 4)..(1, 14); }
7700 @@XMLTest:
7701 @@@QName: xp.unique.att.spec.2.test
7702 @@@DEnt:
7703 @@@@test:value:
7704 <a d:b="c" d:b="d" xmlns:d="about:2"/>
7705 @@@c:erred: <[[xp|wf-unique-att-spec]]> { (1, 4)..(1, 18); }
7706
7707 @@XMLTest:
7708 @@@QName: xp.no.external.entity.references.1.test
7709 @@@DEnt:
7710 @@@@test:value:
7711 <!DOCTYPE a [
7712 <!ENTITY ent SYSTEM "something">
7713 ]>
7714 <a b="c&ent;"/>
7715 @@@c:erred: <[[xp|wf-no-external-entity-references]]> { (4, 8)..(4, 12); }
7716 @@XMLTest:
7717 @@@QName: xp.no.external.entity.references.2.test
7718 @@@DEnt:
7719 @@@@test:value:
7720 <!DOCTYPE a [
7721 <!NOTATION n SYSTEM "notation">
7722 <!ENTITY ent SYSTEM "something" NDATA n>
7723 ]>
7724 <a b="c&ent;"/>
7725 @@@c:erred: <[[xp|wf-no-external-entity-references]]> { (5, 8)..(5, 12); }
7726 @@XMLTest:
7727 @@@QName: xp.no.external.entity.references.3.test
7728 @@@DEnt:
7729 @@@@test:value:
7730 <!DOCTYPE a [
7731 <!ENTITY ent SYSTEM "something">
7732 <!ENTITY ent2 "ddd&ent;">
7733 ]>
7734 <a b="c&ent2;"/>
7735 @@@c:erred: <[[xp|wf-no-external-entity-references]]> { (1, 4)..(1, 8); }
7736 @@XMLTest:
7737 @@@QName: xp.no.external.entity.references.4.test
7738 @@@DEnt:
7739 @@@@test:value:
7740 <!DOCTYPE a [
7741 <!NOTATION n SYSTEM "notation">
7742 <!ENTITY ent SYSTEM "something" NDATA n>
7743 <!ENTITY ent2 "ddd&ent;">
7744 ]>
7745 <a b="c&ent2;"/>
7746 @@@c:erred: <[[xp|wf-no-external-entity-references]]> { (1, 4)..(1, 8); }
7747 @@@c:erred: <[[xp|wf-parsed-entity]]> { }
7748 @@XMLTest:
7749 @@@QName: xp.no.lt.in.attr.value.1.test
7750 @@@DEnt:
7751 @@@@test:value:
7752 <!DOCTYPE a [
7753 <!ENTITY ent "aa<bb">
7754 ]>
7755 <a b="c&ent;"/>
7756 @@@c:erred: <[[xp|wf-no-lt-in-attribute-values]]> { (1, 3); }
7757 @@@c:erred:
7758 @@@@@: <[[xp|wf-syntax-error]]> { (1, 3)..(1, 6); }
7759 @@@@enImplNote: When entity node is created.
7760 @@XMLTest:
7761 @@@QName: xp.no.lt.in.attr.value.2.test
7762 @@@DEnt:
7763 @@@@test:value:
7764 <!DOCTYPE a [
7765 <!ENTITY ent "aa<bb">
7766 <!ENTITY ent2 "ccc&ent;">
7767 ]>
7768 <a b="c&ent2;"/>
7769 @@@c:erred: <[[xp|wf-no-lt-in-attribute-values]]> { (1, 3); }
7770 @@@c:erred:
7771 @@@@@: <[[xp|wf-syntax-error]]> { (1, 3)..(1, 6); }
7772 @@@@enImplNote: When entity node is created.
7773 @@XMLTest:
7774 @@@QName: xp.no.lt.in.attr.value.3.test
7775 @@@DEnt:
7776 @@@@test:value:
7777 <!DOCTYPE a [
7778 <!ENTITY ent "aa&#x3C;bb">
7779 ]>
7780 <a b="c&ent;"/>
7781 @@@c:erred: <[[xp|wf-no-lt-in-attribute-values]]> { (1, 3); }
7782 @@@c:erred:
7783 @@@@@: <[[xp|wf-syntax-error]]> { (1, 3)..(1, 6); }
7784 @@@@enImplNote: When entity node is created.
7785 @@XMLTest:
7786 @@@QName: xp.no.lt.in.attr.value.4.test
7787 @@@DEnt:
7788 @@@@test:value:
7789 <!DOCTYPE a [
7790 <!ENTITY ent "aa&#x3C;bb">
7791 <!ENTITY ent2 "ccc&ent;">
7792 ]>
7793 <a b="c&ent2;"/>
7794 @@@c:erred: <[[xp|wf-no-lt-in-attribute-values]]> { (1, 3); }
7795 @@@c:erred:
7796 @@@@@: <[[xp|wf-syntax-error]]> { (1, 3)..(1, 6); }
7797 @@@@enImplNote: When entity node is created.
7798 @@XMLTest:
7799 @@@QName: xp.ger.lt.in.attr.value.1.test
7800 @@@DEnt:
7801 @@@@test:value:
7802 <!DOCTYPE a [
7803 <!ENTITY ent "aa&lt;bb">
7804 ]>
7805 <a b="c&ent;"/>
7806 @@@test:domTree:
7807 document {
7808 document-type {
7809 general-entity {
7810 node-name: 'ent';
7811 text-content: 'aa<bb';
7812 }
7813 }
7814 element {
7815 attribute {
7816 node-name: 'b';
7817 text { data: 'c'; }
7818 general-entity-reference {
7819 is-expanded: true;
7820 node-name: 'ent';
7821 text-content: 'aa<bb';
7822 }
7823 }
7824 }
7825 }
7826 @@XMLTest:
7827 @@@QName: xp.ger.lt.in.attr.value.2.test
7828 @@@DEnt:
7829 @@@@test:value:
7830 <!DOCTYPE a [
7831 <!ENTITY ent "aa&lt;bb">
7832 <!ENTITY ent2 "ccc&ent;">
7833 ]>
7834 <a b="c&ent2;"/>
7835 @@@test:domTree:
7836 document {
7837 document-type {
7838 general-entity {
7839 node-name: 'ent';
7840 text-content: 'aa<bb';
7841 }
7842 general-entity {
7843 node-name: 'ent2';
7844 text { data: 'ccc'; }
7845 general-entity-reference {
7846 node-name: 'ent';
7847 text-content: 'aa<bb';
7848 is-expanded: true;
7849 }
7850 }
7851 }
7852 element {
7853 attribute {
7854 node-name: 'b';
7855 text { data: 'c'; }
7856 general-entity-reference {
7857 node-name: 'ent2';
7858 text { data: 'ccc'; }
7859 general-entity-reference {
7860 node-name: 'ent';
7861 text-content: 'aa<bb';
7862 is-expanded: true;
7863 }
7864 is-expanded: true;
7865 }
7866 }
7867 }
7868 }
7869
7870 @@XMLTest:
7871 @@@QName: xp.doctype.intsubset.pi.test
7872 @@@DEnt:
7873 @@@@test:value:
7874 <!DOCTYPE a [
7875 <?pi data ?>
7876 ]>
7877 <a></a>
7878 @@@test:domTree:
7879 document {
7880 xml-version: '1.0';
7881 xml-encoding: null;
7882 xml-standalone: false;
7883 document-type {
7884 node-name: 'a';
7885 pi {
7886 target: 'pi';
7887 data: 'data ';
7888 }
7889 }
7890 element {
7891 namespace-uri: null;
7892 prefix: null;
7893 local-name: 'a';
7894 text-content: '';
7895 }
7896 }
7897 @@@enImplNote:
7898 A DOM PI node in doctype node is a manakai extension.
7899
7900
7901 @@XMLTest:
7902 @@@QName: xp.doctype.intsubset.entity.general.internal.test
7903 @@@DEnt:
7904 @@@@test:value:
7905 <!DOCTYPE a [
7906 <!ENTITY entity "entity value">
7907 ]>
7908 <a></a>
7909 @@@test:domTree:
7910 document {
7911 xml-version: '1.0';
7912 xml-encoding: null;
7913 xml-standalone: false;
7914 document-type {
7915 node-name: 'a';
7916 general-entity {
7917 node-name: 'entity';
7918 text-content: 'entity value';
7919 has-replacement-tree: true;
7920 }
7921 }
7922 element {
7923 namespace-uri: null;
7924 prefix: null;
7925 local-name: 'a';
7926 text-content: '';
7927 }
7928 }
7929 @@XMLTest:
7930 @@@QName: xp.doctype.intsubset.entity.parameter.internal.test
7931 @@@DEnt:
7932 @@@@test:value:
7933 <!DOCTYPE a [
7934 <!ENTITY % entity "entity value">
7935 ]>
7936 <a></a>
7937 @@@test:domTree:
7938 document {
7939 xml-version: '1.0';
7940 xml-encoding: null;
7941 xml-standalone: false;
7942 document-type {
7943 node-name: 'a';
7944 }
7945 element {
7946 namespace-uri: null;
7947 prefix: null;
7948 local-name: 'a';
7949 text-content: '';
7950 }
7951 }
7952
7953 @@XMLTest:
7954 @@@QName: xp.doctype.internal.entity.root.element.text.only.test
7955 @@@DEnt:
7956 @@@@test:value:
7957 <!DOCTYPE a [
7958 <!ENTITY entity "entity value">
7959 ]>
7960 <a>&entity;</a>
7961 @@@test:domTree:
7962 document {
7963 xml-version: '1.0';
7964 xml-encoding: null;
7965 xml-standalone: false;
7966 document-type {
7967 node-name: 'a';
7968 general-entity {
7969 node-name: 'entity';
7970 text-content: 'entity value';
7971 has-replacement-tree: true;
7972 }
7973 }
7974 element {
7975 namespace-uri: null;
7976 prefix: null;
7977 local-name: 'a';
7978 general-entity-reference {
7979 node-name: 'entity';
7980 text {
7981 data: 'entity value';
7982 }
7983 is-expanded: true;
7984 }
7985 }
7986 }
7987 @@XMLTest:
7988 @@@QName: xp.doctype.internal.entity.root.element.text.mult.test
7989 @@@DEnt:
7990 @@@@test:value:
7991 <!DOCTYPE a [
7992 <!ENTITY entity "entity value">
7993 ]>
7994 <a>&entity; and &entity;</a>
7995 @@@test:domTree:
7996 document {
7997 xml-version: '1.0';
7998 xml-encoding: null;
7999 xml-standalone: false;
8000 document-type {
8001 node-name: 'a';
8002 general-entity {
8003 node-name: 'entity';
8004 text-content: 'entity value';
8005 has-replacement-tree: true;
8006 }
8007 }
8008 element {
8009 namespace-uri: null;
8010 prefix: null;
8011 local-name: 'a';
8012 general-entity-reference {
8013 node-name: 'entity';
8014 text {
8015 data: 'entity value';
8016 }
8017 is-expanded: true;
8018 }
8019 text { data: ' and '; }
8020 general-entity-reference {
8021 node-name: 'entity';
8022 text {
8023 data: 'entity value';
8024 }
8025 is-expanded: true;
8026 }
8027 }
8028 }
8029 @@XMLTest:
8030 @@@QName: xp.doctype.internal.entity.root.element.text.element.test
8031 @@@DEnt:
8032 @@@@test:value:
8033 <!DOCTYPE a [
8034 <!ENTITY entity "entity <p>value</p> with <e>element</e> ">
8035 ]>
8036 <a>&entity;</a>
8037 @@@test:domTree:
8038 document {
8039 xml-version: '1.0';
8040 xml-encoding: null;
8041 xml-standalone: false;
8042 document-type {
8043 node-name: 'a';
8044 general-entity {
8045 node-name: 'entity';
8046 has-replacement-tree: true;
8047 text { data: 'entity '; }
8048 element {
8049 node-name: 'p';
8050 text-content: 'value';
8051 }
8052 text { data: ' with '; }
8053 element {
8054 node-name: 'e';
8055 text-content: 'element';
8056 }
8057 text { data: ' '; }
8058 }
8059 }
8060 element {
8061 namespace-uri: null;
8062 prefix: null;
8063 local-name: 'a';
8064 general-entity-reference {
8065 node-name: 'entity';
8066 is-expanded: true;
8067 text {
8068 data: 'entity ';
8069 }
8070 element {
8071 namespace-uri: null;
8072 prefix: null;
8073 local-name: 'p';
8074 text {
8075 data: 'value';
8076 }
8077 }
8078 text {
8079 data: ' with ';
8080 }
8081 element {
8082 namespace-uri: null;
8083 prefix: null;
8084 local-name: 'e';
8085 text {
8086 data: 'element';
8087 }
8088 }
8089 text {
8090 data: ' ';
8091 }
8092 }
8093 }
8094 }
8095 @@XMLTest:
8096 @@@QName: xp.doctype.internal.entity.root.element.text.in.ent.test
8097 @@@DEnt:
8098 @@@@test:value:
8099 <!DOCTYPE a [
8100 <!ENTITY entity1 "entity value">
8101 <!ENTITY entity2 "e&entity1;n">
8102 ]>
8103 <a>&entity2;</a>
8104 @@@test:domTree:
8105 document {
8106 xml-version: '1.0';
8107 xml-encoding: null;
8108 xml-standalone: false;
8109 document-type {
8110 node-name: 'a';
8111 general-entity {
8112 node-name: 'entity1';
8113 text-content: 'entity value';
8114 }
8115 general-entity {
8116 node-name: 'entity2';
8117 text { data: 'e'; }
8118 general-entity-reference {
8119 node-name: 'entity1';
8120 text-content: 'entity value';
8121 is-expanded: true;
8122 }
8123 text { data: 'n'; }
8124 }
8125 }
8126 element {
8127 namespace-uri: null;
8128 prefix: null;
8129 local-name: 'a';
8130 general-entity-reference {
8131 node-name: 'entity2';
8132 text { data: 'e'; }
8133 is-expanded: true;
8134 general-entity-reference {
8135 node-name: 'entity1';
8136 text {
8137 data: 'entity value';
8138 }
8139 is-expanded: true;
8140 }
8141 text { data: 'n'; }
8142 }
8143 }
8144 }
8145
8146 @@XMLTest:
8147 @@@QName: xp.doctype.entity.value.charref.test
8148 @@@DEnt:
8149 @@@@test:value:
8150 <!DOCTYPE a [
8151 <!ENTITY entity1 "entity &#x21;value&#35;">
8152 <!ENTITY entity2 '&#x21;value&#35;'>
8153 ]>
8154 <a></a>
8155 @@@test:domTree:
8156 document {
8157 document-type {
8158 general-entity {
8159 node-name: 'entity1';
8160 text-content: 'entity !value#';
8161 has-replacement-tree: true;
8162 }
8163 general-entity {
8164 node-name: 'entity2';
8165 text-content: '!value#';
8166 has-replacement-tree: true;
8167 }
8168 }
8169 element { }
8170 }
8171
8172 @@XMLTest:
8173 @@@QName: xp.predefined.in.content.test
8174 @@@DEnt:
8175 @@@@test:value:
8176 <a>_&lt;_&gt;_&quot;_&apos;_&amp;_</a>
8177 @@@test:domTree:
8178 document {
8179 element {
8180 text-content: '_<_>_"_' U+0027 '_&_';
8181 }
8182 }
8183 @@XMLTest:
8184 @@@QName: xp.predefined.in.attr.test
8185 @@@DEnt:
8186 @@@@test:value:
8187 <a at="_&lt;_&gt;_&quot;_&apos;_&amp;_"></a>
8188 @@@test:domTree:
8189 document {
8190 element {
8191 attribute {
8192 node-name: 'at';
8193 text-content: '_<_>_"_' U+0027 '_&_';
8194 }
8195 }
8196 }
8197 @@XMLTest:
8198 @@@QName: xp.predefined.in.content.in.entity.test
8199 @@@DEnt:
8200 @@@@test:value:
8201 <!DOCTYPE a [
8202 <!ENTITY ent "_&lt;_&gt;_&quot;_&apos;_&amp;_">
8203 ]>
8204 <a>&ent;</a>
8205 @@@test:domTree:
8206 document {
8207 document-type {
8208 general-entity {
8209 node-name: 'ent';
8210 text-content: '_<_>_"_' U+0027 '_&_';
8211 }
8212 }
8213 element {
8214 text-content: '_<_>_"_' U+0027 '_&_';
8215 }
8216 }
8217 @@XMLTest:
8218 @@@QName: xp.predefined.decl.ignore.test
8219 @@@DEnt:
8220 @@@@test:value:
8221 <!DOCTYPE a [
8222 <!ENTITY lt "&#x26;#x3C;">
8223 <!ENTITY gt "&#x3E;">
8224 <!ENTITY amp "&#x26;#x26;">
8225 <!ENTITY quot "&#x22;">
8226 <!ENTITY apos "&#x27;">
8227 <!ENTITY other "other">
8228 ]>
8229 <a>_&lt;_&gt;_&quot;_&apos;_&amp;_&other;_</a>
8230 @@@test:domTree:
8231 document {
8232 document-type {
8233 general-entity {
8234 node-name: 'other';
8235 text-content: 'other';
8236 }
8237 }
8238 element {
8239 text-content: '_<_>_"_' U+0027 '_&_other_';
8240 }
8241 }
8242
8243 @@XMLTest:
8244 @@@QName: xp.doctype.internal.attr.empty.test
8245 @@@DEnt:
8246 @@@@test:value:
8247 <!DOCTYPE a [
8248 <!ATTLIST a>
8249 ]>
8250 <a></a>
8251 @@@test:domTree:
8252 document {
8253 xml-version: '1.0';
8254 xml-encoding: null;
8255 xml-standalone: false;
8256 document-type {
8257 node-name: 'a';
8258 element-type-definition {
8259 node-name: 'a';
8260 }
8261 }
8262 element {
8263 namespace-uri: null;
8264 local-name: 'a';
8265 }
8266 }
8267 @@XMLTest:
8268 @@@QName: xp.doctype.internal.attr.cdata.implied.test
8269 @@@DEnt:
8270 @@@@test:value:
8271 <!DOCTYPE a [
8272 <!ATTLIST a
8273 at CDATA #IMPLIED
8274 >
8275 ]>
8276 <a></a>
8277 @@@test:domTree:
8278 document {
8279 xml-version: '1.0';
8280 xml-encoding: null;
8281 xml-standalone: false;
8282 document-type {
8283 node-name: 'a';
8284 element-type-definition {
8285 node-name: 'a';
8286 attribute-definition {
8287 node-name: 'at';
8288 declared-type: const (CDATA_ATTR);
8289 allowed-tokens: DOMStringList ();
8290 default-type: const (IMPLIED_DEFAULT);
8291 text-content: '';
8292 }
8293 }
8294 }
8295 element {
8296 namespace-uri: null;
8297 local-name: 'a';
8298 }
8299 }
8300 @@XMLTest:
8301 @@@QName: xp.doctype.internal.attr.types.implied.test
8302 @@@DEnt:
8303 @@@@test:value:
8304 <!DOCTYPE a [
8305 <!ATTLIST a
8306 at1 ID #IMPLIED
8307 at2 IDREF #IMPLIED
8308 at3 IDREFS #IMPLIED
8309 at4 ENTITY #IMPLIED
8310 at5 ENTITIES #IMPLIED
8311 at6 NMTOKEN #IMPLIED
8312 at7 NMTOKENS #IMPLIED
8313 at8 NOTATION (n1 | n2|n3) #IMPLIED
8314 at9 (e1| e2| e3 ) #IMPLIED
8315 >
8316 ]>
8317 <a></a>
8318 @@@test:domTree:
8319 document {
8320 xml-version: '1.0';
8321 xml-encoding: null;
8322 xml-standalone: false;
8323 document-type {
8324 node-name: 'a';
8325 element-type-definition {
8326 node-name: 'a';
8327 attribute-definition {
8328 node-name: 'at1';
8329 declared-type: const (ID_ATTR);
8330 allowed-tokens: DOMStringList ();
8331 default-type: const (IMPLIED_DEFAULT);
8332 text-content: '';
8333 }
8334 attribute-definition {
8335 node-name: 'at2';
8336 declared-type: const (IDREF_ATTR);
8337 allowed-tokens: DOMStringList ();
8338 default-type: const (IMPLIED_DEFAULT);
8339 text-content: '';
8340 }
8341 attribute-definition {
8342 node-name: 'at3';
8343 declared-type: const (IDREFS_ATTR);
8344 allowed-tokens: DOMStringList ();
8345 default-type: const (IMPLIED_DEFAULT);
8346 text-content: '';
8347 }
8348 attribute-definition {
8349 node-name: 'at4';
8350 declared-type: const (ENTITY_ATTR);
8351 allowed-tokens: DOMStringList ();
8352 default-type: const (IMPLIED_DEFAULT);
8353 text-content: '';
8354 }
8355 attribute-definition {
8356 node-name: 'at5';
8357 declared-type: const (ENTITIES_ATTR);
8358 allowed-tokens: DOMStringList ();
8359 default-type: const (IMPLIED_DEFAULT);
8360 text-content: '';
8361 }
8362 attribute-definition {
8363 node-name: 'at6';
8364 declared-type: const (NMTOKEN_ATTR);
8365 allowed-tokens: DOMStringList ();
8366 default-type: const (IMPLIED_DEFAULT);
8367 text-content: '';
8368 }
8369 attribute-definition {
8370 node-name: 'at7';
8371 declared-type: const (NMTOKENS_ATTR);
8372 allowed-tokens: DOMStringList ();
8373 default-type: const (IMPLIED_DEFAULT);
8374 text-content: '';
8375 }
8376 attribute-definition {
8377 node-name: 'at8';
8378 declared-type: const (NOTATION_ATTR);
8379 allowed-tokens: DOMStringList ('n1', 'n2', 'n3');
8380 default-type: const (IMPLIED_DEFAULT);
8381 text-content: '';
8382 }
8383 attribute-definition {
8384 node-name: 'at9';
8385 declared-type: const (ENUMERATION_ATTR);
8386 allowed-tokens: DOMStringList ('e1', 'e2', 'e3');
8387 default-type: const (IMPLIED_DEFAULT);
8388 text-content: '';
8389 }
8390 }
8391 }
8392 element {
8393 namespace-uri: null;
8394 local-name: 'a';
8395 }
8396 }
8397 @@XMLTest:
8398 @@@QName: xp.doctype.internal.attr.cdata.defaults.test
8399 @@@DEnt:
8400 @@@@test:value:
8401 <!DOCTYPE a [
8402 <!ATTLIST a
8403 at1 CDATA #IMPLIED
8404 at2 CDATA #REQUIRED
8405 at3 CDATA #FIXED "value3"
8406 at4 CDATA "value4"
8407 at5 CDATA #FIXED 'value5'
8408 at6 CDATA 'value6'
8409 >
8410 ]>
8411 <a></a>
8412 @@@test:domTree:
8413 document {
8414 xml-version: '1.0';
8415 xml-encoding: null;
8416 xml-standalone: false;
8417 document-type {
8418 node-name: 'a';
8419 element-type-definition {
8420 node-name: 'a';
8421 attribute-definition {
8422 node-name: 'at1';
8423 declared-type: const (CDATA_ATTR);
8424 allowed-tokens: DOMStringList ();
8425 default-type: const (IMPLIED_DEFAULT);
8426 text-content: '';
8427 }
8428 attribute-definition {
8429 node-name: 'at2';
8430 declared-type: const (CDATA_ATTR);
8431 allowed-tokens: DOMStringList ();
8432 default-type: const (REQUIRED_DEFAULT);
8433 text-content: '';
8434 }
8435 attribute-definition {
8436 node-name: 'at3';
8437 declared-type: const (CDATA_ATTR);
8438 allowed-tokens: DOMStringList ();
8439 default-type: const (FIXED_DEFAULT);
8440 text-content: 'value3';
8441 }
8442 attribute-definition {
8443 node-name: 'at4';
8444 declared-type: const (CDATA_ATTR);
8445 allowed-tokens: DOMStringList ();
8446 default-type: const (EXPLICIT_DEFAULT);
8447 text-content: 'value4';
8448 }
8449 attribute-definition {
8450 node-name: 'at5';
8451 declared-type: const (CDATA_ATTR);
8452 allowed-tokens: DOMStringList ();
8453 default-type: const (FIXED_DEFAULT);
8454 text-content: 'value5';
8455 }
8456 attribute-definition {
8457 node-name: 'at6';
8458 declared-type: const (CDATA_ATTR);
8459 allowed-tokens: DOMStringList ();
8460 default-type: const (EXPLICIT_DEFAULT);
8461 text-content: 'value6';
8462 }
8463 }
8464 }
8465 element {
8466 namespace-uri: null;
8467 local-name: 'a';
8468 attribute {
8469 node-name: 'at3';
8470 text-content: 'value3';
8471 specified: false;
8472 }
8473 attribute {
8474 node-name: 'at4';
8475 text-content: 'value4';
8476 specified: false;
8477 }
8478 attribute {
8479 node-name: 'at5';
8480 text-content: 'value5';
8481 specified: false;
8482 }
8483 attribute {
8484 node-name: 'at6';
8485 text-content: 'value6';
8486 specified: false;
8487 }
8488 }
8489 }
8490
8491 @@XMLTest:
8492 @@@QName: xp.doctype.internal.attr.cdata.default.normalize.test
8493 @@@DEnt:
8494 @@@@test:value:
8495 <!DOCTYPE a [
8496 <!ATTLIST a
8497 at CDATA " default &#x0A;value "
8498 >
8499 ]>
8500 <a></a>
8501 @@@test:domTree:
8502 document {
8503 xml-version: '1.0';
8504 xml-encoding: null;
8505 xml-standalone: false;
8506 document-type {
8507 node-name: 'a';
8508 element-type-definition {
8509 node-name: 'a';
8510 attribute-definition {
8511 node-name: 'at';
8512 declared-type: const (CDATA_ATTR);
8513 allowed-tokens: DOMStringList ();
8514 default-type: const (EXPLICIT_DEFAULT);
8515 text-content: ' default ' U+000A 'value ';
8516 }
8517 }
8518 }
8519 element {
8520 namespace-uri: null;
8521 local-name: 'a';
8522 attribute {
8523 node-name: 'at';
8524 text-content: ' default ' U+000A 'value ';
8525 specified: false;
8526 }
8527 }
8528 }
8529 @@XMLTest:
8530 @@@QName: xp.doctype.internal.attr.nmtoken.default.normalize.test
8531 @@@DEnt:
8532 @@@@test:value:
8533 <!DOCTYPE a [
8534 <!ATTLIST a
8535 at NMTOKEN " default &#x0A;value "
8536 >
8537 ]>
8538 <a></a>
8539 @@@test:domTree:
8540 document {
8541 xml-version: '1.0';
8542 xml-encoding: null;
8543 xml-standalone: false;
8544 document-type {
8545 node-name: 'a';
8546 element-type-definition {
8547 node-name: 'a';
8548 attribute-definition {
8549 node-name: 'at';
8550 declared-type: const (NMTOKEN_ATTR);
8551 allowed-tokens: DOMStringList ();
8552 default-type: const (EXPLICIT_DEFAULT);
8553 text-content: ' default ' U+000A 'value ';
8554 }
8555 }
8556 }
8557 element {
8558 namespace-uri: null;
8559 local-name: 'a';
8560 attribute {
8561 node-name: 'at';
8562 text-content: ' default ' U+000A 'value ';
8563 specified: false;
8564 }
8565 }
8566 }
8567
8568 @@XMLTest:
8569 @@@QName: xp.doctype.attrtype.no-value.test
8570 @@@DEnt:
8571 @@@@test:value:
8572 <!DOCTYPE a>
8573 <a at=" at value "></a>
8574 @@@test:domTree:
8575 document {
8576 xml-version: '1.0';
8577 xml-encoding: null;
8578 xml-standalone: false;
8579 document-type { }
8580 element {
8581 namespace-uri: null;
8582 local-name: 'a';
8583 attribute {
8584 namespace-uri: null;
8585 local-name: 'at';
8586 value: ' at value ';
8587 text {
8588 data: ' at value ';
8589 }
8590 schema-type-info: TypeInfo (null, null);
8591 specified: true;
8592 }
8593 }
8594 }
8595 @@XMLTest:
8596 @@@QName: xp.doctype.attrtype.cdata.test
8597 @@@DEnt:
8598 @@@@test:value:
8599 <!DOCTYPE a [
8600 <!ATTLIST a
8601 at CDATA #IMPLIED
8602 >
8603 ]>
8604 <a at=" at value "></a>
8605 @@@test:domTree:
8606 document {
8607 xml-version: '1.0';
8608 xml-encoding: null;
8609 xml-standalone: false;
8610 document-type { }
8611 element {
8612 namespace-uri: null;
8613 local-name: 'a';
8614 attribute {
8615 namespace-uri: null;
8616 local-name: 'at';
8617 value: ' at value ';
8618 text {
8619 data: ' at value ';
8620 }
8621 schema-type-info:
8622 TypeInfo ('http://www.w3.org/TR/REC-xml', 'CDATA');
8623 specified: true;
8624 }
8625 }
8626 }
8627 @@XMLTest:
8628 @@@QName: xp.doctype.attrtype.nmtoken.test
8629 @@@DEnt:
8630 @@@@test:value:
8631 <!DOCTYPE a [
8632 <!ATTLIST a
8633 at NMTOKEN #IMPLIED
8634 >
8635 ]>
8636 <a at=" at value "></a>
8637 @@@test:domTree:
8638 document {
8639 xml-version: '1.0';
8640 xml-encoding: null;
8641 xml-standalone: false;
8642 document-type { }
8643 element {
8644 namespace-uri: null;
8645 local-name: 'a';
8646 attribute {
8647 namespace-uri: null;
8648 local-name: 'at';
8649 value: 'at value';
8650 text {
8651 data: ' at value ';
8652 }
8653 schema-type-info:
8654 TypeInfo ('http://www.w3.org/TR/REC-xml', 'NMTOKEN');
8655 specified: true;
8656 }
8657 }
8658 }
8659
8660 @@XMLTest:
8661 @@@QName: xp.doctype.attr.normalization.1.test
8662 @@@DEnt:
8663 @@@@test:value:
8664 <a at=" at &#xA;value "></a>
8665 @@@test:domTree:
8666 document {
8667 element {
8668 attribute {
8669 node-name: 'at';
8670 value: ' at ' U+000A 'value ';
8671 schema-type-info: TypeInfo (null, null);
8672 specified: true;
8673 }
8674 }
8675 }
8676 @@XMLTest:
8677 @@@QName: xp.doctype.attr.normalization.2.test
8678 @@@DEnt:
8679 @@@@test:value:
8680 <a at=" at &#xD;value "></a>
8681 @@@test:domTree:
8682 document {
8683 element {
8684 attribute {
8685 value: ' at ' U+000D 'value ';
8686 schema-type-info: TypeInfo (null, null);
8687 specified: true;
8688 }
8689 }
8690 }
8691 @@XMLTest:
8692 @@@QName: xp.doctype.attr.normalization.3.test
8693 @@@DEnt:
8694 @@@@test:value:
8695 <a at=" at &#x9;value "></a>
8696 @@@test:domTree:
8697 document {
8698 element {
8699 attribute {
8700 node-name: 'at';
8701 value: ' at ' U+0009 'value ';
8702 schema-type-info: TypeInfo (null, null);
8703 specified: true;
8704 }
8705 }
8706 }
8707
8708 @@XMLTest:
8709 @@@QName: xp.doctype.attr.specified.1.test
8710 @@@DEnt:
8711 @@@@test:value:
8712 <!DOCTYPE a [
8713 <!ATTLIST a
8714 at CDATA "default"
8715 >
8716 ]>
8717 <a></a>
8718 @@@test:domTree:
8719 document {
8720 document-type { }
8721 element {
8722 attribute {
8723 node-name: 'at';
8724 value: 'default';
8725 specified: false;
8726 }
8727 }
8728 }
8729 @@XMLTest:
8730 @@@QName: xp.doctype.attr.specified.2.test
8731 @@@DEnt:
8732 @@@@test:value:
8733 <!DOCTYPE a [
8734 <!ATTLIST a
8735 at CDATA "default"
8736 >
8737 ]>
8738 <a at2="specified"></a>
8739 @@@test:domTree:
8740 document {
8741 document-type { }
8742 element {
8743 attribute {
8744 node-name: 'at';
8745 value: 'default';
8746 specified: false;
8747 }
8748 attribute {
8749 node-name: 'at2';
8750 value: 'specified';
8751 specified: true;
8752 }
8753 }
8754 }
8755 @@XMLTest:
8756 @@@QName: xp.doctype.attr.specified.3.test
8757 @@@DEnt:
8758 @@@@test:value:
8759 <!DOCTYPE a [
8760 <!ATTLIST a
8761 at CDATA "default"
8762 >
8763 ]>
8764 <a at="specified"></a>
8765 @@@test:domTree:
8766 document {
8767 document-type { }
8768 element {
8769 attribute {
8770 node-name: 'at';
8771 value: 'specified';
8772 specified: true;
8773 }
8774 }
8775 }
8776
8777 @@XMLTest:
8778 @@@QName: xp.attr.literal.charref.test
8779 @@@DEnt:
8780 @@@@test:value:
8781 <a at1 = "value&#33;_&#x25;value"
8782 at2 = 'value&#x25;_&#33;value'></a>
8783 @@@test:domTree:
8784 document {
8785 element {
8786 attribute {
8787 node-name: 'at1';
8788 text-content: 'value!_%value';
8789 }
8790 attribute {
8791 node-name: 'at2';
8792 text-content: 'value%_!value';
8793 }
8794 }
8795 }
8796 @@XMLTest:
8797 @@@QName: xp.attr.literal.entref.test
8798 @@@DEnt:
8799 @@@@test:value:
8800 <!DOCTYPE a [
8801 <!ENTITY ent "entity&#x26;#33;_&#x26;#x29;value">
8802 ]>
8803 <a at1 = "value&ent;value"
8804 at2 = 'value&ent;value'></a>
8805 @@@test:domTree:
8806 document {
8807 document-type {
8808 general-entity {
8809 node-name: 'ent';
8810 text-content: 'entity!_)value';
8811 }
8812 }
8813 element {
8814 attribute {
8815 node-name: 'at1';
8816 text-content: 'valueentity!_)valuevalue';
8817 }
8818 attribute {
8819 node-name: 'at2';
8820 text-content: 'valueentity!_)valuevalue';
8821 }
8822 }
8823 }
8824 @@XMLTest:
8825 @@@QName: xp.attr.literal.entref.nest.test
8826 @@@DEnt:
8827 @@@@test:value:
8828 <!DOCTYPE a [
8829 <!ENTITY ent1 "entity&#x26;#33;_&#x26;#x29;value">
8830 <!ENTITY ent2 "@&ent1;@">
8831 ]>
8832 <a at1 = "value&ent2;value"
8833 at2 = 'value&ent2;value'></a>
8834 @@@test:domTree:
8835 document {
8836 document-type {
8837 general-entity {
8838 node-name: 'ent1';
8839 text-content: 'entity!_)value';
8840 }
8841 general-entity {
8842 node-name: 'ent2';
8843 text-content: '@entity!_)value@';
8844 }
8845 }
8846 element {
8847 attribute {
8848 node-name: 'at1';
8849 text-content: 'value@entity!_)value@value';
8850 }
8851 attribute {
8852 node-name: 'at2';
8853 text-content: 'value@entity!_)value@value';
8854 }
8855 }
8856 }
8857
8858 @@XMLTest:
8859 @@@QName: xp.element.content.ncr.1.test
8860 @@@DEnt:
8861 @@@@test:value:
8862 <e>&#33;</e>
8863 @@@test:domTree:
8864 document {
8865 element {
8866 text-content: '!';
8867 }
8868 }
8869 @@XMLTest:
8870 @@@QName: xp.element.content.ncr.2.test
8871 @@@DEnt:
8872 @@@@test:value:
8873 <e>aaaa&#33;bbbb</e>
8874 @@@test:domTree:
8875 document {
8876 element {
8877 text-content: 'aaaa!bbbb';
8878 }
8879 }
8880 @@XMLTest:
8881 @@@QName: xp.attrval.ncr.1.test
8882 @@@DEnt:
8883 @@@@test:value:
8884 <e a="&#33;"/>
8885 @@@test:domTree:
8886 document {
8887 element {
8888 attribute {
8889 node-name: 'a';
8890 text-content: '!';
8891 }
8892 }
8893 }
8894 @@XMLTest:
8895 @@@QName: xp.attrval.ncr.2.test
8896 @@@DEnt:
8897 @@@@test:value:
8898 <e a="aaaaa&#33;bbbbb"/>
8899 @@@test:domTree:
8900 document {
8901 element {
8902 attribute {
8903 node-name: 'a';
8904 text-content: 'aaaaa!bbbbb';
8905 }
8906 }
8907 }
8908 @@XMLTest:
8909 @@@QName: xp.attrval.ncr.3.test
8910 @@@DEnt:
8911 @@@@test:value:
8912 <e a='&#33;'/>
8913 @@@test:domTree:
8914 document {
8915 element {
8916 attribute {
8917 node-name: 'a';
8918 text-content: '!';
8919 }
8920 }
8921 }
8922 @@XMLTest:
8923 @@@QName: xp.attrval.ncr.4.test
8924 @@@DEnt:
8925 @@@@test:value:
8926 <e a='aaaaa&#33;bbbbb'/>
8927 @@@test:domTree:
8928 document {
8929 element {
8930 attribute {
8931 node-name: 'a';
8932 text-content: 'aaaaa!bbbbb';
8933 }
8934 }
8935 }
8936 @@XMLTest:
8937 @@@QName: xp.entval.ncr.1.test
8938 @@@DEnt:
8939 @@@@test:value:
8940 <!DOCTYPE e [
8941 <!ENTITY ent "&#33;">
8942 ]>
8943 <e/>
8944 @@@test:domTree:
8945 document {
8946 document-type {
8947 general-entity {
8948 node-name: 'ent';
8949 text-content: '!';
8950 }
8951 }
8952 element { }
8953 }
8954 @@XMLTest:
8955 @@@QName: xp.entval.ncr.2.test
8956 @@@DEnt:
8957 @@@@test:value:
8958 <!DOCTYPE e [
8959 <!ENTITY ent "aaaaa&#33;bbbbb">
8960 ]>
8961 <e/>
8962 @@@test:domTree:
8963 document {
8964 document-type {
8965 general-entity {
8966 node-name: 'ent';
8967 text-content: 'aaaaa!bbbbb';
8968 }
8969 }
8970 element { }
8971 }
8972 @@XMLTest:
8973 @@@QName: xp.element.content.reptxt.ncr.1.test
8974 @@@DEnt:
8975 @@@@test:value:
8976 <!DOCTYPE e [
8977 <!ENTITY ent "&#38;#33;">
8978 ]>
8979 <e>&ent;</e>
8980 @@@test:domTree:
8981 document {
8982 document-type { }
8983 element {
8984 general-entity-reference {
8985 node-name: 'ent';
8986 text-content: '!';
8987 is-expanded: true;
8988 }
8989 }
8990 }
8991 @@XMLTest:
8992 @@@QName: xp.element.content.reptxt.ncr.2.test
8993 @@@DEnt:
8994 @@@@test:value:
8995 <!DOCTYPE e [
8996 <!ENTITY ent "aaaaa&#38;#33;bbbbb">
8997 ]>
8998 <e>&ent;</e>
8999 @@@test:domTree:
9000 document {
9001 document-type { }
9002 element {
9003 general-entity-reference {
9004 node-name: 'ent';
9005 text-content: 'aaaaa!bbbbb';
9006 is-expanded: true;
9007 }
9008 }
9009 }
9010 @@XMLTest:
9011 @@@QName: xp.element.content.reptxt.reptxt.ncr.1.test
9012 @@@DEnt:
9013 @@@@test:value:
9014 <!DOCTYPE e [
9015 <!ENTITY ent "&#38;#33;">
9016 <!ENTITY ent2 "&ent;">
9017 ]>
9018 <e>&ent2;</e>
9019 @@@test:domTree:
9020 document {
9021 document-type { }
9022 element {
9023 general-entity-reference {
9024 node-name: 'ent2';
9025 general-entity-reference {
9026 node-name: 'ent';
9027 text-content: '!';
9028 is-expanded: true;
9029 }
9030 is-expanded: true;
9031 }
9032 }
9033 }
9034 @@XMLTest:
9035 @@@QName: xp.element.content.reptxt.reptxt.ncr.2.test
9036 @@@DEnt:
9037 @@@@test:value:
9038 <!DOCTYPE e [
9039 <!ENTITY ent "aa&#38;#33;bb">
9040 <!ENTITY ent2 "&ent;">
9041 ]>
9042 <e>&ent2;</e>
9043 @@@test:domTree:
9044 document {
9045 document-type { }
9046 element {
9047 general-entity-reference {
9048 node-name: 'ent2';
9049 general-entity-reference {
9050 node-name: 'ent';
9051 text-content: 'aa!bb';
9052 is-expanded: true;
9053 }
9054 is-expanded: true;
9055 }
9056 }
9057 }
9058 @@XMLTest:
9059 @@@QName: xp.attval.reptxt.ncr.1.test
9060 @@@DEnt:
9061 @@@@test:value:
9062 <!DOCTYPE e [
9063 <!ENTITY ent "&#38;#33;">
9064 ]>
9065 <e a="&ent;"/>
9066 @@@test:domTree:
9067 document {
9068 document-type { }
9069 element {
9070 attribute {
9071 node-name: 'a';
9072 general-entity-reference {
9073 node-name: 'ent';
9074 text-content: '!';
9075 is-expanded: true;
9076 }
9077 }
9078 }
9079 }
9080 @@XMLTest:
9081 @@@QName: xp.attval.reptxt.ncr.2.test
9082 @@@DEnt:
9083 @@@@test:value:
9084 <!DOCTYPE e [
9085 <!ENTITY ent "aaaaa&#38;#33;bbbbb">
9086 ]>
9087 <e a="&ent;"/>
9088 @@@test:domTree:
9089 document {
9090 document-type { }
9091 element {
9092 attribute {
9093 node-name: 'a';
9094 general-entity-reference {
9095 node-name: 'ent';
9096 text-content: 'aaaaa!bbbbb';
9097 is-expanded: true;
9098 }
9099 }
9100 }
9101 }
9102 @@XMLTest:
9103 @@@QName: xp.attval.reptxt.reptxt.ncr.1.test
9104 @@@DEnt:
9105 @@@@test:value:
9106 <!DOCTYPE e [
9107 <!ENTITY ent "&#38;#33;">
9108 <!ENTITY ent2 "&ent;">
9109 ]>
9110 <e a="&ent2;"/>
9111 @@@test:domTree:
9112 document {
9113 document-type { }
9114 element {
9115 attribute {
9116 node-name: 'a';
9117 general-entity-reference {
9118 node-name: 'ent2';
9119 is-expanded: true;
9120 general-entity-reference {
9121 node-name: 'ent';
9122 text-content: '!';
9123 is-expanded: true;
9124 }
9125 }
9126 }
9127 }
9128 }
9129 @@XMLTest:
9130 @@@QName: xp.attval.reptxt.reptxt.ncr.2.test
9131 @@@DEnt:
9132 @@@@test:value:
9133 <!DOCTYPE e [
9134 <!ENTITY ent "aa&#38;#33;bb">
9135 <!ENTITY ent2 "&ent;">
9136 ]>
9137 <e a="&ent2;"/>
9138 @@@test:domTree:
9139 document {
9140 document-type { }
9141 element {
9142 attribute {
9143 node-name: 'a';
9144 general-entity-reference {
9145 node-name: 'ent2';
9146 is-expanded: true;
9147 general-entity-reference {
9148 node-name: 'ent';
9149 text-content: 'aa!bb';
9150 is-expanded: true;
9151 }
9152 }
9153 }
9154 }
9155 }
9156
9157 @@XMLTest:
9158 @@@QName: xp.element.content.hcr.1.test
9159 @@@DEnt:
9160 @@@@test:value:
9161 <e>&#x21;</e>
9162 @@@test:domTree:
9163 document {
9164 element {
9165 text-content: '!';
9166 }
9167 }
9168 @@XMLTest:
9169 @@@QName: xp.element.content.hcr.2.test
9170 @@@DEnt:
9171 @@@@test:value:
9172 <e>aaaa&#x21;bbbb</e>
9173 @@@test:domTree:
9174 document {
9175 element {
9176 text-content: 'aaaa!bbbb';
9177 }
9178 }
9179 @@XMLTest:
9180 @@@QName: xp.attrval.hcr.1.test
9181 @@@DEnt:
9182 @@@@test:value:
9183 <e a="&#x21;"/>
9184 @@@test:domTree:
9185 document {
9186 element {
9187 attribute {
9188 node-name: 'a';
9189 text-content: '!';
9190 }
9191 }
9192 }
9193 @@XMLTest:
9194 @@@QName: xp.attrval.hcr.2.test
9195 @@@DEnt:
9196 @@@@test:value:
9197 <e a="aaaaa&#x21;bbbbb"/>
9198 @@@test:domTree:
9199 document {
9200 element {
9201 attribute {
9202 node-name: 'a';
9203 text-content: 'aaaaa!bbbbb';
9204 }
9205 }
9206 }
9207 @@XMLTest:
9208 @@@QName: xp.attrval.hcr.3.test
9209 @@@DEnt:
9210 @@@@test:value:
9211 <e a='&#x21;'/>
9212 @@@test:domTree:
9213 document {
9214 element {
9215 attribute {
9216 node-name: 'a';
9217 text-content: '!';
9218 }
9219 }
9220 }
9221 @@XMLTest:
9222 @@@QName: xp.attrval.hcr.4.test
9223 @@@DEnt:
9224 @@@@test:value:
9225 <e a='aaaaa&#x21;bbbbb'/>
9226 @@@test:domTree:
9227 document {
9228 element {
9229 attribute {
9230 node-name: 'a';
9231 text-content: 'aaaaa!bbbbb';
9232 }
9233 }
9234 }
9235 @@XMLTest:
9236 @@@QName: xp.entval.hcr.1.test
9237 @@@DEnt:
9238 @@@@test:value:
9239 <!DOCTYPE e [
9240 <!ENTITY ent "&#x21;">
9241 ]>
9242 <e/>
9243 @@@test:domTree:
9244 document {
9245 document-type {
9246 general-entity {
9247 node-name: 'ent';
9248 text-content: '!';
9249 }
9250 }
9251 element { }
9252 }
9253 @@XMLTest:
9254 @@@QName: xp.entval.hcr.2.test
9255 @@@DEnt:
9256 @@@@test:value:
9257 <!DOCTYPE e [
9258 <!ENTITY ent "aaaaa&#x21;bbbbb">
9259 ]>
9260 <e/>
9261 @@@test:domTree:
9262 document {
9263 document-type {
9264 general-entity {
9265 node-name: 'ent';
9266 text-content: 'aaaaa!bbbbb';
9267 }
9268 }
9269 element { }
9270 }
9271 @@XMLTest:
9272 @@@QName: xp.element.content.reptxt.hcr.1.test
9273 @@@DEnt:
9274 @@@@test:value:
9275 <!DOCTYPE e [
9276 <!ENTITY ent "&#38;#x21;">
9277 ]>
9278 <e>&ent;</e>
9279 @@@test:domTree:
9280 document {
9281 document-type { }
9282 element {
9283 general-entity-reference {
9284 node-name: 'ent';
9285 text-content: '!';
9286 is-expanded: true;
9287 }
9288 }
9289 }
9290 @@XMLTest:
9291 @@@QName: xp.element.content.reptxt.hcr.2.test
9292 @@@DEnt:
9293 @@@@test:value:
9294 <!DOCTYPE e [
9295 <!ENTITY ent "aaaaa&#38;#x21;bbbbb">
9296 ]>
9297 <e>&ent;</e>
9298 @@@test:domTree:
9299 document {
9300 document-type { }
9301 element {
9302 general-entity-reference {
9303 node-name: 'ent';
9304 text-content: 'aaaaa!bbbbb';
9305 is-expanded: true;
9306 }
9307 }
9308 }
9309 @@XMLTest:
9310 @@@QName: xp.element.content.reptxt.reptxt.hcr.1.test
9311 @@@DEnt:
9312 @@@@test:value:
9313 <!DOCTYPE e [
9314 <!ENTITY ent "&#38;#x21;">
9315 <!ENTITY ent2 "&ent;">
9316 ]>
9317 <e>&ent2;</e>
9318 @@@test:domTree:
9319 document {
9320 document-type { }
9321 element {
9322 general-entity-reference {
9323 node-name: 'ent2';
9324 is-expanded: true;
9325 general-entity-reference {
9326 node-name: 'ent';
9327 text-content: '!';
9328 is-expanded: true;
9329 }
9330 }
9331 }
9332 }
9333 @@XMLTest:
9334 @@@QName: xp.element.content.reptxt.reptxt.hcr.2.test
9335 @@@DEnt:
9336 @@@@test:value:
9337 <!DOCTYPE e [
9338 <!ENTITY ent "aa&#38;#x21;bb">
9339 <!ENTITY ent2 "&ent;">
9340 ]>
9341 <e>&ent2;</e>
9342 @@@test:domTree:
9343 document {
9344 document-type { }
9345 element {
9346 general-entity-reference {
9347 node-name: 'ent2';
9348 is-expanded: true;
9349 general-entity-reference {
9350 node-name: 'ent';
9351 is-expanded: true;
9352 text-content: 'aa!bb';
9353 }
9354 }
9355 }
9356 }
9357 @@XMLTest:
9358 @@@QName: xp.attval.reptxt.hcr.1.test
9359 @@@DEnt:
9360 @@@@test:value:
9361 <!DOCTYPE e [
9362 <!ENTITY ent "&#38;#x21;">
9363 ]>
9364 <e a="&ent;"/>
9365 @@@test:domTree:
9366 document {
9367 document-type { }
9368 element {
9369 attribute {
9370 node-name: 'a';
9371 general-entity-reference {
9372 node-name: 'ent';
9373 is-expanded: true;
9374 text-content: '!';
9375 }
9376 }
9377 }
9378 }
9379 @@XMLTest:
9380 @@@QName: xp.attval.reptxt.hcr.2.test
9381 @@@DEnt:
9382 @@@@test:value:
9383 <!DOCTYPE e [
9384 <!ENTITY ent "aaaaa&#38;#x21;bbbbb">
9385 ]>
9386 <e a="&ent;"/>
9387 @@@test:domTree:
9388 document {
9389 document-type { }
9390 element {
9391 attribute {
9392 node-name: 'a';
9393 general-entity-reference {
9394 node-name: 'ent';
9395 is-expanded: true;
9396 text-content: 'aaaaa!bbbbb';
9397 }
9398 }
9399 }
9400 }
9401 @@XMLTest:
9402 @@@QName: xp.attval.reptxt.reptxt.hcr.1.test
9403 @@@DEnt:
9404 @@@@test:value:
9405 <!DOCTYPE e [
9406 <!ENTITY ent "&#38;#x21;">
9407 <!ENTITY ent2 "&ent;">
9408 ]>
9409 <e a="&ent2;"/>
9410 @@@test:domTree:
9411 document {
9412 document-type { }
9413 element {
9414 attribute {
9415 node-name: 'a';
9416 general-entity-reference {
9417 node-name: 'ent2';
9418 is-expanded: true;
9419 general-entity-reference {
9420 node-name: 'ent';
9421 is-expanded: true;
9422 text-content: '!';
9423 }
9424 }
9425 }
9426 }
9427 }
9428 @@XMLTest:
9429 @@@QName: xp.attval.reptxt.reptxt.hcr.2.test
9430 @@@DEnt:
9431 @@@@test:value:
9432 <!DOCTYPE e [
9433 <!ENTITY ent "aa&#38;#x21;bb">
9434 <!ENTITY ent2 "&ent;">
9435 ]>
9436 <e a="&ent2;"/>
9437 @@@test:domTree:
9438 document {
9439 document-type { }
9440 element {
9441 attribute {
9442 node-name: 'a';
9443 general-entity-reference {
9444 node-name: 'ent2';
9445 is-expanded: true;
9446 general-entity-reference {
9447 node-name: 'ent';
9448 is-expanded: true;
9449 text-content: 'aa!bb';
9450 }
9451 }
9452 }
9453 }
9454 }
9455
9456 @@XMLTest:
9457 @@@QName: xp.element.content.ncr.legal.char.1.0.1.test
9458 @@@DEnt:
9459 @@@@test:value:
9460 <?xml version="1.0"?>
9461 <e>&#0;</e>
9462 @@@c:erred: <[[xp|wf-legal-character]]> { (2, 4)..(2, 7); }
9463 @@XMLTest:
9464 @@@QName: xp.element.content.ncr.legal.char.1.1.1.test
9465 @@@DEnt:
9466 @@@@test:value:
9467 <?xml version="1.1"?>
9468 <e>&#0;</e>
9469 @@@c:erred: <[[xp|wf-legal-character]]> { (2, 4)..(2, 7); }
9470 @@XMLTest:
9471 @@@QName: xp.element.content.ncr.legal.char.1.0.2.test
9472 @@@DEnt:
9473 @@@@test:value:
9474 <?xml version="1.0"?>
9475 <e>&#1;</e>
9476 @@@c:erred: <[[xp|wf-legal-character]]> { (2, 4)..(2, 7); }
9477 @@XMLTest:
9478 @@@QName: xp.element.content.ncr.legal.char.1.1.2.test
9479 @@@DEnt:
9480 @@@@test:value:
9481 <?xml version="1.1"?>
9482 <e>&#1;</e>
9483 @@@test:domTree:
9484 document {
9485 xml-version: '1.1';
9486 element {
9487 text-content: U+0001;
9488 }
9489 }
9490 @@XMLTest:
9491 @@@QName: xp.element.content.hcr.legal.char.1.0.1.test
9492 @@@DEnt:
9493 @@@@test:value:
9494 <?xml version="1.0"?>
9495 <e>&#x0;</e>
9496 @@@c:erred: <[[xp|wf-legal-character]]> { (2, 4)..(2, 8); }
9497 @@XMLTest:
9498 @@@QName: xp.element.content.hcr.legal.char.1.1.1.test
9499 @@@DEnt:
9500 @@@@test:value:
9501 <?xml version="1.1"?>
9502 <e>&#x0;</e>
9503 @@@c:erred: <[[xp|wf-legal-character]]> { (2, 4)..(2, 8); }
9504 @@XMLTest:
9505 @@@QName: xp.element.content.hcr.legal.char.1.0.2.test
9506 @@@DEnt:
9507 @@@@test:value:
9508 <?xml version="1.0"?>
9509 <e>&#x1;</e>
9510 @@@c:erred: <[[xp|wf-legal-character]]> { (2, 4)..(2, 8); }
9511 @@XMLTest:
9512 @@@QName: xp.element.content.hcr.legal.char.1.1.2.test
9513 @@@DEnt:
9514 @@@@test:value:
9515 <?xml version="1.1"?>
9516 <e>&#x1;</e>
9517 @@@test:domTree:
9518 document {
9519 xml-version: '1.1';
9520 element {
9521 text-content: U+0001;
9522 }
9523 }
9524
9525 @@XMLTest:
9526 @@@QName: xp.element.content.ger.entity.declared.nodtd.1.test
9527 @@@DEnt:
9528 @@@@test:value:
9529 <p>&entity;</p>
9530 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 4)..(1, 11); }
9531 @@XMLTest:
9532 @@@QName: xp.element.content.ger.entity.declared.nodtd.2.test
9533 @@@DEnt:
9534 @@@@test:value:
9535 <?xml version="1.0" standalone="yes"?>
9536 <p>&entity;</p>
9537 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 4)..(2, 11); }
9538 @@XMLTest:
9539 @@@QName: xp.element.content.ger.entity.declared.nodtd.3.test
9540 @@@DEnt:
9541 @@@@test:value:
9542 <?xml version="1.0" standalone="no"?>
9543 <p>&entity;</p>
9544 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 4)..(2, 11); }
9545 @@XMLTest:
9546 @@@QName: xp.element.content.ger.entity.declared.nodtd.-1.test
9547 @@@DEnt:
9548 @@@@test:value:
9549 <p>&lt;&gt;&amp;&quot;&apos;</p>
9550 @@@test:domTree:
9551 document {
9552 element {
9553 text-content: '<>&"' U+0027;
9554 }
9555 }
9556 @@XMLTest:
9557 @@@QName: xp.element.content.ger.entity.declared.nopref.1.test
9558 @@@DEnt:
9559 @@@@test:value:
9560 <!DOCTYPE p []>
9561 <p>&entity;</p>
9562 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 4)..(2, 11); }
9563 @@XMLTest:
9564 @@@QName: xp.element.content.ger.entity.declared.nopref.2.test
9565 @@@DEnt:
9566 @@@@test:value:
9567 <!DOCTYPE p [
9568 <!ENTITY other "aa">
9569 <!ENTITY % another "aa">
9570 ]>
9571 <p>&entity;</p>
9572 @@@c:erred: <[[xp|wf-entity-declared]]> { (5, 4)..(5, 11); }
9573 @@XMLTest:
9574 @@@QName: xp.element.content.ger.entity.declared.nopref.3.test
9575 @@@DEnt:
9576 @@@@test:value:
9577 <?xml version="1.0" standalone="yes"?>
9578 <!DOCTYPE p []>
9579 <p>&entity;</p>
9580 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 4)..(3, 11); }
9581 @@XMLTest:
9582 @@@QName: xp.element.content.ger.entity.declared.nopref.4.test
9583 @@@DEnt:
9584 @@@@test:value:
9585 <?xml version="1.0" standalone="no"?>
9586 <!DOCTYPE p []>
9587 <p>&entity;</p>
9588 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 4)..(3, 11); }
9589 @@XMLTest:
9590 @@@QName: xp.element.content.ger.entity.declared.nopref.5.test
9591 @@@DEnt:
9592 @@@@test:value:
9593 <?xml version="1.0" standalone="yes"?>
9594 <!DOCTYPE p [
9595 <!ENTITY other "aa">
9596 <!ENTITY % another "aa">
9597 ]>
9598 <p>&entity;</p>
9599 @@@c:erred: <[[xp|wf-entity-declared]]> { (6, 4)..(6, 11); }
9600 @@XMLTest:
9601 @@@QName: xp.element.content.ger.entity.declared.nopref.6.test
9602 @@@DEnt:
9603 @@@@test:value:
9604 <?xml version="1.0" standalone="no"?>
9605 <!DOCTYPE p [
9606 <!ENTITY other "aa">
9607 <!ENTITY % another "aa">
9608 ]>
9609 <p>&entity;</p>
9610 @@@c:erred: <[[xp|wf-entity-declared]]> { (6, 4)..(6, 11); }
9611 @@XMLTest:
9612 @@@QName: xp.element.content.ger.entity.declared.nopref.-1.test
9613 @@@DEnt:
9614 @@@@test:value:
9615 <!DOCTYPE p [
9616 <!ENTITY entity "value">
9617 ]>
9618 <p>&entity;</p>
9619 @@@test:domTree:
9620 document {
9621 document-type {
9622 general-entity {
9623 node-name: 'entity';
9624 text-content: 'value';
9625 }
9626 }
9627 element {
9628 general-entity-reference {
9629 node-name: 'entity';
9630 is-expanded: true;
9631 text-content: 'value';
9632 }
9633 }
9634 }
9635 @@XMLTest:
9636 @@@QName: xp.element.content.ger.entity.declared.nopref.-2.test
9637 @@@DEnt:
9638 @@@@test:value:
9639 <!DOCTYPE p [
9640 <!ENTITY entity "value">
9641 <!ENTITY another SYSTEM "another">
9642 ]>
9643 <p>&entity;</p>
9644 @@@test:domTree:
9645 document {
9646 document-type {
9647 general-entity {
9648 node-name: 'entity';
9649 text-content: 'value';
9650 }
9651 general-entity {
9652 node-name: 'another';
9653 public-id: null;
9654 system-id: 'another';
9655 }
9656 }
9657 element {
9658 general-entity-reference {
9659 node-name: 'entity';
9660 is-expanded: true;
9661 text-content: 'value';
9662 }
9663 }
9664 }
9665 @@XMLTest:
9666 @@@QName: xp.element.content.ger.entity.declared.standalone.1.test
9667 @@@DEnt:
9668 @@@@test:value:
9669 <?xml version="1.0" standalone="yes"?>
9670 <p>&entity;</p>
9671 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 4)..(2, 11); }
9672 @@XMLTest:
9673 @@@QName: xp.element.content.ger.entity.declared.standalone.2.test
9674 @@@DEnt:
9675 @@@@test:value:
9676 <?xml version="1.0" standalone="yes"?>
9677 <!DOCTYPE p []>
9678 <p>&entity;</p>
9679 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 4)..(3, 11); }
9680 @@XMLTest:
9681 @@@QName: xp.element.content.ger.entity.declared.standalone.3.test
9682 @@@DEnt:
9683 @@@@test:value:
9684 <?xml version="1.0" standalone="yes"?>
9685 <!DOCTYPE p [
9686 <!ENTITY % para "<!-- -->">
9687 %para;
9688 ]>
9689 <p>&entity;</p>
9690 @@@c:erred: <[[xp|wf-entity-declared]]> { (6, 4)..(6, 11); }
9691 @@XMLTest:
9692 @@@QName: xp.element.content.ger.entity.declared.standalone.-1.test
9693 @@@DEnt:
9694 @@@@test:value:
9695 <?xml version="1.0" standalone="no"?>
9696 <!DOCTYPE p [
9697 <!ENTITY % para "<!-- -->">
9698 %para;
9699 ]>
9700 <p>&entity;</p>
9701 @@@test:domTree:
9702 document {
9703 document-type { }
9704 element {
9705 general-entity-reference {
9706 is-expanded: false;
9707 }
9708 }
9709 }
9710 @@XMLTest:
9711 @@@QName: xp.element.content.ger.entity.declared.standalone.-2.test
9712 @@@DEnt:
9713 @@@@test:value:
9714 <!DOCTYPE p [
9715 <!ENTITY % para "<!-- -->">
9716 %para;
9717 ]>
9718 <p>&entity;</p>
9719 @@@test:domTree:
9720 document {
9721 document-type { }
9722 element {
9723 general-entity-reference {
9724 is-expanded: false;
9725 }
9726 }
9727 }
9728 @@XMLTest:
9729 @@@QName: xp.element.content.ger.entity.declared.standalone.4.test
9730 @@@DEnt:
9731 @@@@test:value:
9732 <?xml version="1.0" standalone="yes"?>
9733 <!DOCTYPE p [
9734 <!ENTITY % para SYSTEM "para">
9735 %para;
9736 ]>
9737 <p>&entity;</p>
9738 @@@c:erred: <[[xp|wf-entity-declared]]> { (6, 4)..(6, 11); }
9739 @@XMLTest:
9740 @@@QName: xp.element.content.ger.entity.declared.standalone.-3.test
9741 @@@DEnt:
9742 @@@@test:value:
9743 <?xml version="1.0" standalone="no"?>
9744 <!DOCTYPE p [
9745 <!ENTITY % para SYSTEM "para">
9746 %para;
9747 ]>
9748 <p>&entity;</p>
9749 @@@test:domTree:
9750 document {
9751 document-type { }
9752 element {
9753 general-entity-reference {
9754 is-expanded: false;
9755 }
9756 }
9757 }
9758 @@XMLTest:
9759 @@@QName: xp.element.content.ger.entity.declared.standalone.-4.test
9760 @@@DEnt:
9761 @@@@test:value:
9762 <!DOCTYPE p [
9763 <!ENTITY % para SYSTEM "para">
9764 %para;
9765 ]>
9766 <p>&entity;</p>
9767 @@@test:domTree:
9768 document {
9769 document-type { }
9770 element {
9771 general-entity-reference {
9772 is-expanded: false;
9773 }
9774 }
9775 }
9776 @@XMLTest:
9777 @@@QName: xp.element.content.ger.entity.declared.standalone.5.test
9778 @@@DEnt:
9779 @@@@test:value:
9780 <?xml version="1.0" standalone="yes"?>
9781 <!DOCTYPE p SYSTEM "dtd">
9782 <p>&entity;</p>
9783 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 4)..(3, 11); }
9784 @@XMLTest:
9785 @@@QName: xp.element.content.ger.entity.declared.standalone.-5.test
9786 @@@DEnt:
9787 @@@@test:value:
9788 <?xml version="1.0" standalone="no"?>
9789 <!DOCTYPE p SYSTEM "dtd">
9790 <p>&entity;</p>
9791 @@@test:domTree:
9792 document {
9793 document-type { }
9794 element {
9795 general-entity-reference {
9796 is-expanded: false;
9797 }
9798 }
9799 }
9800 @@XMLTest:
9801 @@@QName: xp.element.content.ger.entity.declared.standalone.-6.test
9802 @@@DEnt:
9803 @@@@test:value:
9804 <!DOCTYPE p SYSTEM "dtd">
9805 <p>&entity;</p>
9806 @@@test:domTree:
9807 document {
9808 document-type { }
9809 element {
9810 general-entity-reference {
9811 is-expanded: false;
9812 }
9813 }
9814 }
9815
9816 @@XMLTest:
9817 @@@QName: xp.reptxt.element.content.ger.entity.declared.nopref.1.test
9818 @@@DEnt:
9819 @@@@test:value:
9820 <!DOCTYPE p [
9821 <!ENTITY c "&entity;">
9822 ]>
9823 <p>&c;</p>
9824 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
9825 @@XMLTest:
9826 @@@QName: xp.reptxt.element.content.ger.entity.declared.nopref.2.test
9827 @@@DEnt:
9828 @@@@test:value:
9829 <!DOCTYPE p [
9830 <!ENTITY other "aa">
9831 <!ENTITY % another "aa">
9832 <!ENTITY c "&entity;">
9833 ]>
9834 <p>&c;</p>
9835 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
9836 @@XMLTest:
9837 @@@QName: xp.reptxt.element.content.ger.entity.declared.nopref.3.test
9838 @@@DEnt:
9839 @@@@test:value:
9840 <?xml version="1.0" standalone="yes"?>
9841 <!DOCTYPE p [
9842 <!ENTITY c "&entity;">
9843 ]>
9844 <p>&c;</p>
9845 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
9846 @@XMLTest:
9847 @@@QName: xp.reptxt.element.content.ger.entity.declared.nopref.4.test
9848 @@@DEnt:
9849 @@@@test:value:
9850 <?xml version="1.0" standalone="no"?>
9851 <!DOCTYPE p [
9852 <!ENTITY c "&entity;">
9853 ]>
9854 <p>&c;</p>
9855 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
9856 @@XMLTest:
9857 @@@QName: xp.reptxt.element.content.ger.entity.declared.nopref.5.test
9858 @@@DEnt:
9859 @@@@test:value:
9860 <?xml version="1.0" standalone="yes"?>
9861 <!DOCTYPE p [
9862 <!ENTITY other "aa">
9863 <!ENTITY % another "aa">
9864 <!ENTITY c "&entity;">
9865 ]>
9866 <p>&c;</p>
9867 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
9868 @@XMLTest:
9869 @@@QName: xp.reptxt.element.content.ger.entity.declared.nopref.6.test
9870 @@@DEnt:
9871 @@@@test:value:
9872 <?xml version="1.0" standalone="no"?>
9873 <!DOCTYPE p [
9874 <!ENTITY other "aa">
9875 <!ENTITY % another "aa">
9876 <!ENTITY c "&entity;">
9877 ]>
9878 <p>&c;</p>
9879 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
9880 @@XMLTest:
9881 @@@QName: xp.reptxt.element.content.ger.entity.declared.nopref.-1.test
9882 @@@DEnt:
9883 @@@@test:value:
9884 <!DOCTYPE p [
9885 <!ENTITY entity "value">
9886 <!ENTITY c "&entity;">
9887 ]>
9888 <p>&c;</p>
9889 @@@test:domTree:
9890 document {
9891 document-type {
9892 general-entity {
9893 node-name: 'entity';
9894 text-content: 'value';
9895 }
9896 general-entity {
9897 node-name: 'c';
9898 general-entity-reference {
9899 node-name: 'entity';
9900 text-content: 'value';
9901 }
9902 }
9903 }
9904 element {
9905 general-entity-reference {
9906 node-name: 'c';
9907 general-entity-reference {
9908 node-name: 'entity';
9909 text-content: 'value';
9910 }
9911 }
9912 }
9913 }
9914 @@XMLTest:
9915 @@@QName: xp.reptxt.element.content.ger.entity.declared.nopref.-2.test
9916 @@@DEnt:
9917 @@@@test:value:
9918 <!DOCTYPE p [
9919 <!ENTITY entity "value">
9920 <!ENTITY another SYSTEM "another">
9921 <!ENTITY c "&entity;">
9922 ]>
9923 <p>&c;</p>
9924 @@@test:domTree:
9925 document {
9926 document-type {
9927 general-entity {
9928 node-name: 'entity';
9929 text-content: 'value';
9930 }
9931 general-entity {
9932 node-name: 'c';
9933 general-entity-reference {
9934 node-name: 'entity';
9935 is-expanded: true;
9936 text-content: 'value';
9937 }
9938 }
9939 general-entity {
9940 node-name: 'another';
9941 public-id: null;
9942 system-id: 'another';
9943 has-replacement-tree: false;
9944 }
9945 }
9946 element {
9947 general-entity-reference {
9948 node-name: 'c';
9949 is-expanded: true;
9950 general-entity-reference {
9951 node-name: 'entity';
9952 is-expanded: true;
9953 text-content: 'value';
9954 }
9955 }
9956 }
9957 }
9958 @@XMLTest:
9959 @@@QName: xp.reptxt.element.content.ger.entity.declared.standalone.2.test
9960 @@@DEnt:
9961 @@@@test:value:
9962 <?xml version="1.0" standalone="yes"?>
9963 <!DOCTYPE p [
9964 <!ENTITY c "&entity;">
9965 ]>
9966 <p>&c;</p>
9967 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
9968 @@XMLTest:
9969 @@@QName: xp.reptxt.element.content.ger.entity.declared.standalone.3.test
9970 @@@DEnt:
9971 @@@@test:value:
9972 <?xml version="1.0" standalone="yes"?>
9973 <!DOCTYPE p [
9974 <!ENTITY % para "<!-- -->">
9975 %para;
9976 <!ENTITY c "&entity;">
9977 ]>
9978 <p>&c;</p>
9979 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
9980 @@XMLTest:
9981 @@@QName: xp.reptxt.element.content.ger.entity.declared.standalone.-1.test
9982 @@@DEnt:
9983 @@@@test:value:
9984 <?xml version="1.0" standalone="no"?>
9985 <!DOCTYPE p [
9986 <!ENTITY c "&entity;">
9987 <!ENTITY % para "<!-- -->">
9988 %para;
9989 ]>
9990 <p>&c;</p>
9991 @@@test:domTree:
9992 document {
9993 document-type {
9994 general-entity {
9995 node-name: 'c';
9996 general-entity-reference {
9997 node-name: 'entity';
9998 is-expanded: false;
9999 }
10000 }
10001 }
10002 element {
10003 general-entity-reference {
10004 node-name: 'c';
10005 general-entity-reference {
10006 node-name: 'entity';
10007 is-expanded: false;
10008 }
10009 }
10010 }
10011 }
10012 @@XMLTest:
10013 @@@QName:
10014 xp.reptxt.element.content.ger.entity.declared.standalone.-1.2.test
10015 @@@DEnt:
10016 @@@@test:value:
10017 <?xml version="1.0" standalone="no"?>
10018 <!DOCTYPE p [
10019 <!ENTITY % para "<!-- -->">
10020 %para;
10021 <!ENTITY c "&entity;">
10022 ]>
10023 <p>&c;</p>
10024 @@@test:domTree:
10025 document {
10026 document-type { }
10027 element {
10028 general-entity-reference {
10029 node-name: 'c';
10030 is-expanded: false;
10031 }
10032 }
10033 }
10034 @@XMLTest:
10035 @@@QName: xp.reptxt.element.content.ger.entity.declared.standalone.-2.test
10036 @@@DEnt:
10037 @@@@test:value:
10038 <!DOCTYPE p [
10039 <!ENTITY c "&entity;">
10040 <!ENTITY % para "<!-- -->">
10041 %para;
10042 ]>
10043 <p>&c;</p>
10044 @@@test:domTree:
10045 document {
10046 document-type { }
10047 element {
10048 general-entity-reference {
10049 node-name: 'c';
10050 is-expanded: true;
10051 general-entity-reference {
10052 node-name: 'entity';
10053 is-expanded: false;
10054 }
10055 }
10056 }
10057 }
10058 @@XMLTest:
10059 @@@QName:
10060 xp.reptxt.element.content.ger.entity.declared.standalone.-2.2.test
10061 @@@DEnt:
10062 @@@@test:value:
10063 <!DOCTYPE p [
10064 <!ENTITY % para "<!-- -->">
10065 %para;
10066 <!ENTITY c "&entity;">
10067 ]>
10068 <p>&c;</p>
10069 @@@test:domTree:
10070 document {
10071 document-type { }
10072 element {
10073 general-entity-reference {
10074 node-name: 'c';
10075 is-expanded: false;
10076 }
10077 }
10078 }
10079 @@XMLTest:
10080 @@@QName: xp.reptxt.element.content.ger.entity.declared.standalone.4.test
10081 @@@DEnt:
10082 @@@@test:value:
10083 <?xml version="1.0" standalone="yes"?>
10084 <!DOCTYPE p [
10085 <!ENTITY % para SYSTEM "para">
10086 %para;
10087 <!ENTITY c "&entity;">
10088 ]>
10089 <p>&c;</p>
10090 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10091 @@XMLTest:
10092 @@@QName: xp.reptxt.element.content.ger.entity.declared.standalone.-3.test
10093 @@@DEnt:
10094 @@@@test:value:
10095 <?xml version="1.0" standalone="no"?>
10096 <!DOCTYPE p [
10097 <!ENTITY c "&entity;">
10098 <!ENTITY % para SYSTEM "para">
10099 %para;
10100 ]>
10101 <p>&c;</p>
10102 @@@test:domTree:
10103 document {
10104 document-type { }
10105 element {
10106 general-entity-reference {
10107 node-name: 'c';
10108 is-expanded: true;
10109 general-entity-reference {
10110 node-name: 'entity';
10111 is-expanded: false;
10112 }
10113 }
10114 }
10115 }
10116 @@XMLTest:
10117 @@@QName:
10118 xp.reptxt.element.content.ger.entity.declared.standalone.-3.2.test
10119 @@@DEnt:
10120 @@@@test:value:
10121 <?xml version="1.0" standalone="no"?>
10122 <!DOCTYPE p [
10123 <!ENTITY % para SYSTEM "para">
10124 %para;
10125 <!ENTITY c "&entity;">
10126 ]>
10127 <p>&c;</p>
10128 @@@test:domTree:
10129 document {
10130 document-type { }
10131 element {
10132 general-entity-reference {
10133 node-name: 'c';
10134 is-expanded: false;
10135 }
10136 }
10137 }
10138 @@XMLTest:
10139 @@@QName: xp.reptxt.element.content.ger.entity.declared.standalone.-4.test
10140 @@@DEnt:
10141 @@@@test:value:
10142 <!DOCTYPE p [
10143 <!ENTITY c "&entity;">
10144 <!ENTITY % para SYSTEM "para">
10145 %para;
10146 ]>
10147 <p>&c;</p>
10148 @@@test:domTree:
10149 document {
10150 document-type { }
10151 element {
10152 general-entity-reference {
10153 node-name: 'c';
10154 is-expanded: true;
10155 general-entity-reference {
10156 node-name: 'entity';
10157 is-expanded: false;
10158 }
10159 }
10160 }
10161 }
10162 @@XMLTest:
10163 @@@QName:
10164 xp.reptxt.element.content.ger.entity.declared.standalone.-4.2.test
10165 @@@DEnt:
10166 @@@@test:value:
10167 <!DOCTYPE p [
10168 <!ENTITY % para SYSTEM "para">
10169 %para;
10170 <!ENTITY c "&entity;">
10171 ]>
10172 <p>&c;</p>
10173 @@@test:domTree:
10174 document {
10175 document-type { }
10176 element {
10177 general-entity-reference {
10178 node-name: 'c';
10179 is-expanded: false;
10180 }
10181 }
10182 }
10183 @@XMLTest:
10184 @@@QName: xp.reptxt.element.content.ger.entity.declared.standalone.5.test
10185 @@@DEnt:
10186 @@@@test:value:
10187 <?xml version="1.0" standalone="yes"?>
10188 <!DOCTYPE p SYSTEM "dtd" [
10189 <!ENTITY c "&entity;">
10190 ]>
10191 <p>&c;</p>
10192 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10193 @@XMLTest:
10194 @@@QName: xp.reptxt.element.content.ger.entity.declared.standalone.-5.test
10195 @@@DEnt:
10196 @@@@test:value:
10197 <?xml version="1.0" standalone="no"?>
10198 <!DOCTYPE p SYSTEM "dtd" [
10199 <!ENTITY c "&entity;">
10200 ]>
10201 <p>&c;</p>
10202 @@@test:domTree:
10203 document {
10204 document-type { }
10205 element {
10206 general-entity-reference {
10207 node-name: 'c';
10208 is-expanded: true;
10209 general-entity-reference {
10210 node-name: 'entity';
10211 is-expanded: false;
10212 }
10213 }
10214 }
10215 }
10216 @@XMLTest:
10217 @@@QName: xp.reptxt.element.content.ger.entity.declared.standalone.-6.test
10218 @@@DEnt:
10219 @@@@test:value:
10220 <!DOCTYPE p SYSTEM "dtd" [<!ENTITY c "&entity;">]>
10221 <p>&c;</p>
10222 @@@test:domTree:
10223 document {
10224 document-type { }
10225 element {
10226 general-entity-reference {
10227 node-name: 'c';
10228 is-expanded: true;
10229 general-entity-reference {
10230 node-name: 'entity';
10231 is-expanded: false;
10232 }
10233 }
10234 }
10235 }
10236
10237 @@XMLTest:
10238 @@@QName: xp.attval.ger.entity.declared.nodtd.1.test
10239 @@@DEnt:
10240 @@@@test:value:
10241 <p a="&entity;"/>
10242 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 7)..(1, 14); }
10243 @@XMLTest:
10244 @@@QName: xp.attval.ger.entity.declared.nodtd.2.test
10245 @@@DEnt:
10246 @@@@test:value:
10247 <?xml version="1.0" standalone="yes"?>
10248 <p a="&entity;"/>
10249 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 7)..(2, 14); }
10250 @@XMLTest:
10251 @@@QName: xp.attval.ger.entity.declared.nodtd.3.test
10252 @@@DEnt:
10253 @@@@test:value:
10254 <?xml version="1.0" standalone="no"?>
10255 <p a="&entity;"/>
10256 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 7)..(2, 14); }
10257 @@XMLTest:
10258 @@@QName: xp.attval.ger.entity.declared.nodtd.-1.test
10259 @@@DEnt:
10260 @@@@test:value:
10261 <p a="&lt;&gt;&amp;&quot;&apos;"/>
10262 @@@test:domTree:
10263 document {
10264 element {
10265 attribute {
10266 node-name: 'a';
10267 text-content: '<>&"' U+0027;
10268 }
10269 }
10270 }
10271 @@XMLTest:
10272 @@@QName: xp.attval.ger.entity.declared.nopref.1.test
10273 @@@DEnt:
10274 @@@@test:value:
10275 <!DOCTYPE p []>
10276 <p a="&entity;"/>
10277 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 7)..(2, 14); }
10278 @@XMLTest:
10279 @@@QName: xp.attval.ger.entity.declared.nopref.2.test
10280 @@@DEnt:
10281 @@@@test:value:
10282 <!DOCTYPE p [
10283 <!ENTITY other "aa">
10284 <!ENTITY % another "aa">
10285 ]>
10286 <p a="&entity;"/>
10287 @@@c:erred: <[[xp|wf-entity-declared]]> { (5, 7)..(5, 14); }
10288 @@XMLTest:
10289 @@@QName: xp.attval.ger.entity.declared.nopref.3.test
10290 @@@DEnt:
10291 @@@@test:value:
10292 <?xml version="1.0" standalone="yes"?>
10293 <!DOCTYPE p []>
10294 <p a="&entity;"/>
10295 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 7)..(3, 14); }
10296 @@XMLTest:
10297 @@@QName: xp.attval.ger.entity.declared.nopref.4.test
10298 @@@DEnt:
10299 @@@@test:value:
10300 <?xml version="1.0" standalone="no"?>
10301 <!DOCTYPE p []>
10302 <p a="&entity;"/>
10303 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 7)..(3, 14); }
10304 @@XMLTest:
10305 @@@QName: xp.attval.ger.entity.declared.nopref.5.test
10306 @@@DEnt:
10307 @@@@test:value:
10308 <?xml version="1.0" standalone="yes"?>
10309 <!DOCTYPE p [
10310 <!ENTITY other "aa">
10311 <!ENTITY % another "aa">
10312 ]>
10313 <p a="&entity;"/>
10314 @@@c:erred: <[[xp|wf-entity-declared]]> { (6, 7)..(6, 14); }
10315 @@XMLTest:
10316 @@@QName: xp.attval.ger.entity.declared.nopref.6.test
10317 @@@DEnt:
10318 @@@@test:value:
10319 <?xml version="1.0" standalone="no"?>
10320 <!DOCTYPE p [
10321 <!ENTITY other "aa">
10322 <!ENTITY % another "aa">
10323 ]>
10324 <p a="&entity;"/>
10325 @@@c:erred: <[[xp|wf-entity-declared]]> { (6, 7)..(6, 14); }
10326 @@XMLTest:
10327 @@@QName: xp.attval.ger.entity.declared.nopref.-1.test
10328 @@@DEnt:
10329 @@@@test:value:
10330 <!DOCTYPE p [
10331 <!ENTITY entity "value">
10332 ]>
10333 <p a="&entity;"/>
10334 @@@test:domTree:
10335 document {
10336 document-type {
10337 general-entity {
10338 node-name: 'entity';
10339 text-content: 'value';
10340 }
10341 }
10342 element {
10343 attribute {
10344 node-name: 'a';
10345 general-entity-reference {
10346 node-name: 'entity';
10347 is-expanded: true;
10348 text-content: 'value';
10349 }
10350 }
10351 }
10352 }
10353 @@XMLTest:
10354 @@@QName: xp.attval.ger.entity.declared.nopref.-2.test
10355 @@@DEnt:
10356 @@@@test:value:
10357 <!DOCTYPE p [
10358 <!ENTITY entity "value">
10359 <!ENTITY another SYSTEM "another">
10360 ]>
10361 <p a="&entity;"/>
10362 @@@test:domTree:
10363 document {
10364 document-type {
10365 general-entity {
10366 node-name: 'entity';
10367 text-content: 'value';
10368 has-replacement-tree: true;
10369 }
10370 general-entity {
10371 node-name: 'another';
10372 public-id: null;
10373 system-id: 'another';
10374 has-replacement-tree: false;
10375 }
10376 }
10377 element {
10378 attribute {
10379 node-name: 'a';
10380 general-entity-reference {
10381 node-name: 'entity';
10382 is-expanded: true;
10383 text-content: 'value';
10384 }
10385 }
10386 }
10387 }
10388 @@XMLTest:
10389 @@@QName: xp.attval.ger.entity.declared.standalone.1.test
10390 @@@DEnt:
10391 @@@@test:value:
10392 <?xml version="1.0" standalone="yes"?>
10393 <p a="&entity;"/>
10394 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 7)..(2, 14); }
10395 @@XMLTest:
10396 @@@QName: xp.attval.ger.entity.declared.standalone.2.test
10397 @@@DEnt:
10398 @@@@test:value:
10399 <?xml version="1.0" standalone="yes"?>
10400 <!DOCTYPE p []>
10401 <p a="&entity;"/>
10402 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 7)..(3, 14); }
10403 @@XMLTest:
10404 @@@QName: xp.attval.ger.entity.declared.standalone.3.test
10405 @@@DEnt:
10406 @@@@test:value:
10407 <?xml version="1.0" standalone="yes"?>
10408 <!DOCTYPE p [
10409 <!ENTITY % para "<!-- -->">
10410 %para;
10411 ]>
10412 <p a="&entity;"/>
10413 @@@c:erred: <[[xp|wf-entity-declared]]> { (6, 7)..(6, 14); }
10414 @@XMLTest:
10415 @@@QName: xp.attval.ger.entity.declared.standalone.-1.test
10416 @@@DEnt:
10417 @@@@test:value:
10418 <?xml version="1.0" standalone="no"?>
10419 <!DOCTYPE p [
10420 <!ENTITY % para "<!-- -->">
10421 %para;
10422 ]>
10423 <p a="&entity;"/>
10424 @@@test:domTree:
10425 document {
10426 document-type { }
10427 element {
10428 attribute {
10429 node-name: 'a';
10430 general-entity-reference {
10431 is-expanded: false;
10432 }
10433 }
10434 }
10435 }
10436 @@XMLTest:
10437 @@@QName: xp.attval.ger.entity.declared.standalone.-2.test
10438 @@@DEnt:
10439 @@@@test:value:
10440 <!DOCTYPE p [
10441 <!ENTITY % para "<!-- -->">
10442 %para;
10443 ]>
10444 <p a="&entity;"/>
10445 @@@test:domTree:
10446 document {
10447 document-type { }
10448 element {
10449 attribute {
10450 node-name: 'a';
10451 general-entity-reference {
10452 is-expanded: false;
10453 }
10454 }
10455 }
10456 }
10457 @@XMLTest:
10458 @@@QName: xp.attval.ger.entity.declared.standalone.4.test
10459 @@@DEnt:
10460 @@@@test:value:
10461 <?xml version="1.0" standalone="yes"?>
10462 <!DOCTYPE p [
10463 <!ENTITY % para SYSTEM "para">
10464 %para;
10465 ]>
10466 <p a="&entity;"/>
10467 @@@c:erred: <[[xp|wf-entity-declared]]> { (6, 7)..(6, 14); }
10468 @@XMLTest:
10469 @@@QName: xp.attval.ger.entity.declared.standalone.-3.test
10470 @@@DEnt:
10471 @@@@test:value:
10472 <?xml version="1.0" standalone="no"?>
10473 <!DOCTYPE p [
10474 <!ENTITY % para SYSTEM "para">
10475 %para;
10476 ]>
10477 <p a="&entity;"/>
10478 @@@test:domTree:
10479 document {
10480 document-type { }
10481 element {
10482 attribute {
10483 node-name: 'a';
10484 general-entity-reference {
10485 is-expanded: false;
10486 }
10487 }
10488 }
10489 }
10490 @@XMLTest:
10491 @@@QName: xp.attval.ger.entity.declared.standalone.-4.test
10492 @@@DEnt:
10493 @@@@test:value:
10494 <!DOCTYPE p [
10495 <!ENTITY % para SYSTEM "para">
10496 %para;
10497 ]>
10498 <p a="&entity;"/>
10499 @@@test:domTree:
10500 document {
10501 document-type { }
10502 element {
10503 attribute {
10504 node-name: 'a';
10505 general-entity-reference {
10506 is-expanded: false;
10507 }
10508 }
10509 }
10510 }
10511 @@XMLTest:
10512 @@@QName: xp.attval.ger.entity.declared.standalone.5.test
10513 @@@DEnt:
10514 @@@@test:value:
10515 <?xml version="1.0" standalone="yes"?>
10516 <!DOCTYPE p SYSTEM "dtd">
10517 <p a="&entity;"/>
10518 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 7)..(3, 14); }
10519 @@XMLTest:
10520 @@@QName: xp.attval.ger.entity.declared.standalone.-5.test
10521 @@@DEnt:
10522 @@@@test:value:
10523 <?xml version="1.0" standalone="no"?>
10524 <!DOCTYPE p SYSTEM "dtd">
10525 <p a="&entity;"/>
10526 @@@test:domTree:
10527 document {
10528 document-type { }
10529 element {
10530 attribute {
10531 node-name: 'a';
10532 general-entity-reference {
10533 is-expanded: false;
10534 }
10535 }
10536 }
10537 }
10538 @@XMLTest:
10539 @@@QName: xp.attval.ger.entity.declared.standalone.-6.test
10540 @@@DEnt:
10541 @@@@test:value:
10542 <!DOCTYPE p SYSTEM "dtd">
10543 <p a="&entity;"/>
10544 @@@test:domTree:
10545 document {
10546 document-type { }
10547 element {
10548 attribute {
10549 node-name: 'a';
10550 general-entity-reference {
10551 is-expanded: false;
10552 }
10553 }
10554 }
10555 }
10556
10557 @@XMLTest:
10558 @@@QName: xp.reptxt.attval.ger.entity.declared.nopref.1.test
10559 @@@DEnt:
10560 @@@@test:value:
10561 <!DOCTYPE p [
10562 <!ENTITY c "&entity;">
10563 ]>
10564 <p a="&c;"/>
10565 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10566 @@XMLTest:
10567 @@@QName: xp.reptxt.attval.ger.entity.declared.nopref.2.test
10568 @@@DEnt:
10569 @@@@test:value:
10570 <!DOCTYPE p [
10571 <!ENTITY other "aa">
10572 <!ENTITY % another "aa">
10573 <!ENTITY c "&entity;">
10574 ]>
10575 <p a="&c;"/>
10576 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10577 @@XMLTest:
10578 @@@QName: xp.reptxt.attval.ger.entity.declared.nopref.3.test
10579 @@@DEnt:
10580 @@@@test:value:
10581 <?xml version="1.0" standalone="yes"?>
10582 <!DOCTYPE p [
10583 <!ENTITY c "&entity;">
10584 ]>
10585 <p a="&c;"/>
10586 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10587 @@XMLTest:
10588 @@@QName: xp.reptxt.attval.ger.entity.declared.nopref.4.test
10589 @@@DEnt:
10590 @@@@test:value:
10591 <?xml version="1.0" standalone="no"?>
10592 <!DOCTYPE p [
10593 <!ENTITY c "&entity;">
10594 ]>
10595 <p a="&c;"/>
10596 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10597 @@XMLTest:
10598 @@@QName: xp.reptxt.attval.ger.entity.declared.nopref.5.test
10599 @@@DEnt:
10600 @@@@test:value:
10601 <?xml version="1.0" standalone="yes"?>
10602 <!DOCTYPE p [
10603 <!ENTITY other "aa">
10604 <!ENTITY % another "aa">
10605 <!ENTITY c "&entity;">
10606 ]>
10607 <p a="&c;"/>
10608 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10609 @@XMLTest:
10610 @@@QName: xp.reptxt.attval.ger.entity.declared.nopref.6.test
10611 @@@DEnt:
10612 @@@@test:value:
10613 <?xml version="1.0" standalone="no"?>
10614 <!DOCTYPE p [
10615 <!ENTITY other "aa">
10616 <!ENTITY % another "aa">
10617 <!ENTITY c "&entity;">
10618 ]>
10619 <p a="&c;"/>
10620 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10621 @@XMLTest:
10622 @@@QName: xp.reptxt.attval.ger.entity.declared.nopref.-1.test
10623 @@@DEnt:
10624 @@@@test:value:
10625 <!DOCTYPE p [
10626 <!ENTITY entity "value">
10627 <!ENTITY c "&entity;">
10628 ]>
10629 <p a="&c;"/>
10630 @@@test:domTree:
10631 document {
10632 document-type {
10633 general-entity {
10634 node-name: 'entity';
10635 text-content: 'value';
10636 }
10637 general-entity {
10638 node-name: 'c';
10639 general-entity-reference {
10640 node-name: 'entity';
10641 text-content: 'value';
10642 }
10643 }
10644 }
10645 element {
10646 attribute {
10647 node-name: 'a';
10648 general-entity-reference {
10649 node-name: 'c';
10650 general-entity-reference {
10651 node-name: 'entity';
10652 text-content: 'value';
10653 }
10654 }
10655 }
10656 }
10657 }
10658 @@XMLTest:
10659 @@@QName: xp.reptxt.attval.ger.entity.declared.nopref.-2.test
10660 @@@DEnt:
10661 @@@@test:value:
10662 <!DOCTYPE p [
10663 <!ENTITY entity "value">
10664 <!ENTITY another SYSTEM "another">
10665 <!ENTITY c "&entity;">
10666 ]>
10667 <p a="&c;"/>
10668 @@@test:domTree:
10669 document {
10670 document-type {
10671 general-entity {
10672 node-name: 'entity';
10673 text-content: 'value';
10674 }
10675 general-entity {
10676 node-name: 'c';
10677 general-entity-reference {
10678 node-name: 'entity';
10679 text-content: 'value';
10680 }
10681 }
10682 general-entity {
10683 node-name: 'another';
10684 public-id: null;
10685 system-id: 'another';
10686 has-replacement-tree: false;
10687 }
10688 }
10689 element {
10690 attribute {
10691 node-name: 'a';
10692 general-entity-reference {
10693 node-name: 'c';
10694 general-entity-reference {
10695 node-name: 'entity';
10696 text-content: 'value';
10697 }
10698 }
10699 }
10700 }
10701 }
10702 @@XMLTest:
10703 @@@QName: xp.reptxt.attval.ger.entity.declared.standalone.2.test
10704 @@@DEnt:
10705 @@@@test:value:
10706 <?xml version="1.0" standalone="yes"?>
10707 <!DOCTYPE p [
10708 <!ENTITY c "&entity;">
10709 ]>
10710 <p a="&c;"/>
10711 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10712 @@XMLTest:
10713 @@@QName: xp.reptxt.attval.ger.entity.declared.standalone.3.test
10714 @@@DEnt:
10715 @@@@test:value:
10716 <?xml version="1.0" standalone="yes"?>
10717 <!DOCTYPE p [
10718 <!ENTITY % para "<!-- -->">
10719 %para;
10720 <!ENTITY c "&entity;">
10721 ]>
10722 <p a="&c;"/>
10723 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10724 @@XMLTest:
10725 @@@QName: xp.reptxt.attval.ger.entity.declared.standalone.-1.test
10726 @@@DEnt:
10727 @@@@test:value:
10728 <?xml version="1.0" standalone="no"?>
10729 <!DOCTYPE p [
10730 <!ENTITY c "&entity;">
10731 <!ENTITY % para "<!-- -->">
10732 %para;
10733 ]>
10734 <p a="&c;"/>
10735 @@@test:domTree:
10736 document {
10737 document-type {
10738 general-entity {
10739 node-name: 'c';
10740 general-entity-reference {
10741 node-name: 'entity';
10742 is-expanded: false;
10743 }
10744 }
10745 }
10746 element {
10747 attribute {
10748 node-name: 'a';
10749 general-entity-reference {
10750 node-name: 'c';
10751 general-entity-reference {
10752 node-name: 'entity';
10753 is-expanded: false;
10754 }
10755 }
10756 }
10757 }
10758 }
10759 @@XMLTest:
10760 @@@QName:
10761 xp.reptxt.attval.ger.entity.declared.standalone.-1.2.test
10762 @@@DEnt:
10763 @@@@test:value:
10764 <?xml version="1.0" standalone="no"?>
10765 <!DOCTYPE p [
10766 <!ENTITY % para "<!-- -->">
10767 %para;
10768 <!ENTITY c "&entity;">
10769 ]>
10770 <p a="&c;"/>
10771 @@@test:domTree:
10772 document {
10773 document-type { }
10774 element {
10775 attribute {
10776 node-name: 'a';
10777 general-entity-reference {
10778 node-name: 'c';
10779 is-expanded: false;
10780 }
10781 }
10782 }
10783 }
10784 @@XMLTest:
10785 @@@QName: xp.reptxt.attval.ger.entity.declared.standalone.-2.test
10786 @@@DEnt:
10787 @@@@test:value:
10788 <!DOCTYPE p [
10789 <!ENTITY c "&entity;">
10790 <!ENTITY % para "<!-- -->">
10791 %para;
10792 ]>
10793 <p a="&c;"/>
10794 @@@test:domTree:
10795 document {
10796 document-type { }
10797 element {
10798 attribute {
10799 node-name: 'a';
10800 general-entity-reference {
10801 node-name: 'c';
10802 is-expanded: true;
10803 general-entity-reference {
10804 node-name: 'entity';
10805 is-expanded: false;
10806 }
10807 }
10808 }
10809 }
10810 }
10811 @@XMLTest:
10812 @@@QName:
10813 xp.reptxt.attval.ger.entity.declared.standalone.-2.2.test
10814 @@@DEnt:
10815 @@@@test:value:
10816 <!DOCTYPE p [
10817 <!ENTITY % para "<!-- -->">
10818 %para;
10819 <!ENTITY c "&entity;">
10820 ]>
10821 <p a="&c;"/>
10822 @@@test:domTree:
10823 document {
10824 document-type { }
10825 element {
10826 attribute {
10827 node-name: 'a';
10828 general-entity-reference {
10829 node-name: 'c';
10830 is-expanded: false;
10831 }
10832 }
10833 }
10834 }
10835 @@XMLTest:
10836 @@@QName: xp.reptxt.attval.ger.entity.declared.standalone.4.test
10837 @@@DEnt:
10838 @@@@test:value:
10839 <?xml version="1.0" standalone="yes"?>
10840 <!DOCTYPE p [
10841 <!ENTITY % para SYSTEM "para">
10842 %para;
10843 <!ENTITY c "&entity;">
10844 ]>
10845 <p a="&c;"/>
10846 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10847 @@XMLTest:
10848 @@@QName: xp.reptxt.attval.ger.entity.declared.standalone.-3.test
10849 @@@DEnt:
10850 @@@@test:value:
10851 <?xml version="1.0" standalone="no"?>
10852 <!DOCTYPE p [
10853 <!ENTITY c "&entity;">
10854 <!ENTITY % para SYSTEM "para">
10855 %para;
10856 ]>
10857 <p a="&c;"/>
10858 @@@test:domTree:
10859 document {
10860 document-type { }
10861 element {
10862 attribute {
10863 node-name: 'a';
10864 general-entity-reference {
10865 node-name: 'c';
10866 is-expanded: true;
10867 general-entity-reference {
10868 node-name: 'entity';
10869 is-expanded: false;
10870 }
10871 }
10872 }
10873 }
10874 }
10875 @@XMLTest:
10876 @@@QName:
10877 xp.reptxt.attval.ger.entity.declared.standalone.-3.2.test
10878 @@@DEnt:
10879 @@@@test:value:
10880 <?xml version="1.0" standalone="no"?>
10881 <!DOCTYPE p [
10882 <!ENTITY % para SYSTEM "para">
10883 %para;
10884 <!ENTITY c "&entity;">
10885 ]>
10886 <p a="&c;"/>
10887 @@@test:domTree:
10888 document {
10889 document-type { }
10890 element {
10891 attribute {
10892 node-name: 'a';
10893 general-entity-reference {
10894 node-name: 'c';
10895 is-expanded: false;
10896 }
10897 }
10898 }
10899 }
10900 @@XMLTest:
10901 @@@QName: xp.reptxt.attval.ger.entity.declared.standalone.-4.test
10902 @@@DEnt:
10903 @@@@test:value:
10904 <!DOCTYPE p [
10905 <!ENTITY c "&entity;">
10906 <!ENTITY % para SYSTEM "para">
10907 %para;
10908 ]>
10909 <p a="&c;"/>
10910 @@@test:domTree:
10911 document {
10912 document-type { }
10913 element {
10914 attribute {
10915 node-name: 'a';
10916 general-entity-reference {
10917 node-name: 'c';
10918 is-expanded: true;
10919 general-entity-reference {
10920 node-name: 'entity';
10921 is-expanded: false;
10922 }
10923 }
10924 }
10925 }
10926 }
10927 @@XMLTest:
10928 @@@QName:
10929 xp.reptxt.attval.ger.entity.declared.standalone.-4.2.test
10930 @@@DEnt:
10931 @@@@test:value:
10932 <!DOCTYPE p [
10933 <!ENTITY % para SYSTEM "para">
10934 %para;
10935 <!ENTITY c "&entity;">
10936 ]>
10937 <p a="&c;"/>
10938 @@@test:domTree:
10939 document {
10940 document-type { }
10941 element {
10942 attribute {
10943 node-name: 'a';
10944 general-entity-reference {
10945 node-name: 'c';
10946 is-expanded: false;
10947 }
10948 }
10949 }
10950 }
10951 @@XMLTest:
10952 @@@QName: xp.reptxt.attval.ger.entity.declared.standalone.5.test
10953 @@@DEnt:
10954 @@@@test:value:
10955 <?xml version="1.0" standalone="yes"?>
10956 <!DOCTYPE p SYSTEM "dtd" [
10957 <!ENTITY c "&entity;">
10958 ]>
10959 <p a="&c;"/>
10960 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
10961 @@XMLTest:
10962 @@@QName: xp.reptxt.attval.ger.entity.declared.standalone.-5.test
10963 @@@DEnt:
10964 @@@@test:value:
10965 <?xml version="1.0" standalone="no"?>
10966 <!DOCTYPE p SYSTEM "dtd" [
10967 <!ENTITY c "&entity;">
10968 ]>
10969 <p a="&c;"/>
10970 @@@test:domTree:
10971 document {
10972 document-type { }
10973 element {
10974 attribute {
10975 node-name: 'a';
10976 general-entity-reference {
10977 node-name: 'c';
10978 is-expanded: true;
10979 general-entity-reference {
10980 node-name: 'entity';
10981 is-expanded: false;
10982 }
10983 }
10984 }
10985 }
10986 }
10987 @@XMLTest:
10988 @@@QName: xp.reptxt.attval.ger.entity.declared.standalone.-6.test
10989 @@@DEnt:
10990 @@@@test:value:
10991 <!DOCTYPE p SYSTEM "dtd" [<!ENTITY c "&entity;">]>
10992 <p a="&c;"/>
10993 @@@test:domTree:
10994 document {
10995 document-type { }
10996 element {
10997 attribute {
10998 node-name: 'a';
10999 general-entity-reference {
11000 node-name: 'c';
11001 is-expanded: true;
11002 general-entity-reference {
11003 node-name: 'entity';
11004 is-expanded: false;
11005 }
11006 }
11007 }
11008 }
11009 }
11010
11011 @@XMLTest:
11012 @@@QName: xp.attlist.dup.entity.declared.1.test
11013 @@@DEnt:
11014 @@@@test:value:
11015 <!DOCTYPE p [
11016 <!ATTLIST p a CDATA "no-entity">
11017 <!ATTLIST p a CDATA "&entity;">
11018 ]>
11019 <p/>
11020 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 21)..(3, 29); }
11021 @@XMLTest:
11022 @@@QName: xp.attlist.dup.entity.declared.2.test
11023 @@@DEnt:
11024 @@@@test:value:
11025 <!DOCTYPE p [
11026 <!ATTLIST p a CDATA "no-entity"
11027 a CDATA "&entity;">
11028 ]>
11029 <p/>
11030 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 21)..(3, 29); }
11031 @@XMLTest:
11032 @@@QName: xp.attlist.unused.entity.declared.1.test
11033 @@@DEnt:
11034 @@@@test:value:
11035 <!DOCTYPE p [
11036 <!ATTLIST q a CDATA "&entity;">
11037 ]>
11038 <p/>
11039 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 21)..(2, 29); }
11040 @@XMLTest:
11041 @@@QName: xp.attlist.unused.entity.declared.2.test
11042 @@@DEnt:
11043 @@@@test:value:
11044 <!DOCTYPE p [
11045 <!ATTLIST p a CDATA "&entity;">
11046 ]>
11047 <p a="bb"/>
11048 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 21)..(2, 29); }
11049
11050 @@XMLTest:
11051 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.nopref.1.test
11052 @@@DEnt:
11053 @@@@test:value:
11054 <!DOCTYPE p [
11055 <!ENTITY c "&entity;">
11056 <!ATTLIST p a CDATA "&c;">
11057 ]>
11058 <p/>
11059 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11060 @@XMLTest:
11061 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.nopref.2.test
11062 @@@DEnt:
11063 @@@@test:value:
11064 <!DOCTYPE p [
11065 <!ENTITY other "aa">
11066 <!ENTITY % another "aa">
11067 <!ENTITY c "&entity;">
11068 <!ATTLIST p a CDATA "&c;">
11069 ]>
11070 <p/>
11071 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11072 @@XMLTest:
11073 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.nopref.3.test
11074 @@@DEnt:
11075 @@@@test:value:
11076 <?xml version="1.0" standalone="yes"?>
11077 <!DOCTYPE p [
11078 <!ENTITY c "&entity;">
11079 <!ATTLIST p a CDATA "&c;">
11080 ]>
11081 <p/>
11082 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11083 @@XMLTest:
11084 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.nopref.4.test
11085 @@@DEnt:
11086 @@@@test:value:
11087 <?xml version="1.0" standalone="no"?>
11088 <!DOCTYPE p [
11089 <!ENTITY c "&entity;">
11090 <!ATTLIST p a CDATA "&c;">
11091 ]>
11092 <p/>
11093 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11094 @@XMLTest:
11095 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.nopref.5.test
11096 @@@DEnt:
11097 @@@@test:value:
11098 <?xml version="1.0" standalone="yes"?>
11099 <!DOCTYPE p [
11100 <!ENTITY other "aa">
11101 <!ENTITY % another "aa">
11102 <!ENTITY c "&entity;">
11103 <!ATTLIST p a CDATA "&c;">
11104 ]>
11105 <p/>
11106 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11107 @@XMLTest:
11108 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.nopref.6.test
11109 @@@DEnt:
11110 @@@@test:value:
11111 <?xml version="1.0" standalone="no"?>
11112 <!DOCTYPE p [
11113 <!ENTITY other "aa">
11114 <!ENTITY % another "aa">
11115 <!ENTITY c "&entity;">
11116 <!ATTLIST p a CDATA "&c;">
11117 ]>
11118 <p/>
11119 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11120 @@XMLTest:
11121 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.nopref.-1.test
11122 @@@DEnt:
11123 @@@@test:value:
11124 <!DOCTYPE p [
11125 <!ENTITY entity "value">
11126 <!ENTITY c "&entity;">
11127 <!ATTLIST p a CDATA "&c;">
11128 ]>
11129 <p/>
11130 @@@test:domTree:
11131 document {
11132 document-type {
11133 general-entity {
11134 node-name: 'entity';
11135 text-content: 'value';
11136 }
11137 general-entity {
11138 node-name: 'c';
11139 general-entity-reference {
11140 node-name: 'entity';
11141 is-expanded: true;
11142 text-content: 'value';
11143 }
11144 }
11145 element-type-definition {
11146 node-name: 'p';
11147 attribute-definition {
11148 node-name: 'a';
11149 general-entity-reference {
11150 node-name: 'c';
11151 is-expanded: true;
11152 general-entity-reference {
11153 node-name: 'entity';
11154 is-expanded: true;
11155 text-content: 'value';
11156 }
11157 }
11158 }
11159 }
11160 }
11161 element {
11162 attribute {
11163 node-name: 'a';
11164 specified: false;
11165 general-entity-reference {
11166 node-name: 'c';
11167 general-entity-reference {
11168 node-name: 'entity';
11169 text-content: 'value';
11170 }
11171 }
11172 }
11173 }
11174 }
11175 @@XMLTest:
11176 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.nopref.-2.test
11177 @@@DEnt:
11178 @@@@test:value:
11179 <!DOCTYPE p [
11180 <!ENTITY entity "value">
11181 <!ENTITY another SYSTEM "another">
11182 <!ENTITY c "&entity;">
11183 <!ATTLIST p a CDATA "&c;">
11184 ]>
11185 <p/>
11186 @@@test:domTree:
11187 document {
11188 document-type {
11189 general-entity {
11190 node-name: 'entity';
11191 text-content: 'value';
11192 }
11193 general-entity {
11194 node-name: 'c';
11195 general-entity-reference {
11196 node-name: 'entity';
11197 text-content: 'value';
11198 }
11199 }
11200 general-entity {
11201 node-name: 'another';
11202 public-id: null;
11203 system-id: 'another';
11204 has-replacement-tree: false;
11205 }
11206 element-type-definition {
11207 node-name: 'p';
11208 attribute-definition {
11209 node-name: 'a';
11210 general-entity-reference {
11211 node-name: 'c';
11212 is-expanded: true;
11213 general-entity-reference {
11214 node-name: 'entity';
11215 is-expanded: true;
11216 text-content: 'value';
11217 }
11218 }
11219 }
11220 }
11221 }
11222 element {
11223 attribute {
11224 node-name: 'a';
11225 specified: false;
11226 general-entity-reference {
11227 node-name: 'c';
11228 general-entity-reference {
11229 node-name: 'entity';
11230 text-content: 'value';
11231 }
11232 }
11233 }
11234 }
11235 }
11236 @@XMLTest:
11237 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.standalone.2.test
11238 @@@DEnt:
11239 @@@@test:value:
11240 <?xml version="1.0" standalone="yes"?>
11241 <!DOCTYPE p [
11242 <!ENTITY c "&entity;">
11243 <!ATTLIST p a CDATA "&c;">
11244 ]>
11245 <p/>
11246 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11247 @@XMLTest:
11248 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.standalone.3.test
11249 @@@DEnt:
11250 @@@@test:value:
11251 <?xml version="1.0" standalone="yes"?>
11252 <!DOCTYPE p [
11253 <!ENTITY % para "<!-- -->">
11254 %para;
11255 <!ENTITY c "&entity;">
11256 <!ATTLIST p a CDATA "&c;">
11257 ]>
11258 <p/>
11259 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11260 @@XMLTest:
11261 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.standalone.-1.test
11262 @@@DEnt:
11263 @@@@test:value:
11264 <?xml version="1.0" standalone="no"?>
11265 <!DOCTYPE p [
11266 <!ENTITY c "&entity;">
11267 <!ATTLIST p a CDATA "&c;">
11268 <!ENTITY % para "<!-- -->">
11269 %para;
11270 ]>
11271 <p/>
11272 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11273 @@XMLTest:
11274 @@@QName:
11275 xp.reptxt.attlist.attval.ger.entity.declared.standalone.-1.2.test
11276 @@@DEnt:
11277 @@@@test:value:
11278 <?xml version="1.0" standalone="no"?>
11279 <!DOCTYPE p [
11280 <!ENTITY % para "<!-- -->">
11281 %para;
11282 <!ENTITY c "&entity;">
11283 <!ATTLIST p a CDATA "&c;">
11284 ]>
11285 <p g="h"/>
11286 @@@test:domTree:
11287 document {
11288 document-type { }
11289 element {
11290 attribute {
11291 node-name: 'g';
11292 text-content: 'h';
11293 }
11294 }
11295 }
11296 @@XMLTest:
11297 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.standalone.-2.test
11298 @@@DEnt:
11299 @@@@test:value:
11300 <!DOCTYPE p [
11301 <!ENTITY c "&entity;">
11302 <!ATTLIST p a CDATA "&c;">
11303 <!ENTITY % para "<!-- -->">
11304 %para;
11305 ]>
11306 <p/>
11307 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11308 @@XMLTest:
11309 @@@QName:
11310 xp.reptxt.attlist.attval.ger.entity.declared.standalone.-2.2.test
11311 @@@DEnt:
11312 @@@@test:value:
11313 <!DOCTYPE p [
11314 <!ENTITY % para "<!-- -->">
11315 %para;
11316 <!ENTITY c "&entity;">
11317 <!ATTLIST p a CDATA "&c;">
11318 ]>
11319 <p g="h"/>
11320 @@@test:domTree:
11321 document {
11322 document-type { }
11323 element {
11324 attribute {
11325 node-name: 'g';
11326 text-content: 'h';
11327 }
11328 }
11329 }
11330 @@XMLTest:
11331 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.standalone.4.test
11332 @@@DEnt:
11333 @@@@test:value:
11334 <?xml version="1.0" standalone="yes"?>
11335 <!DOCTYPE p [
11336 <!ENTITY % para SYSTEM "para">
11337 %para;
11338 <!ENTITY c "&entity;">
11339 <!ATTLIST p a CDATA "&c;">
11340 ]>
11341 <p/>
11342 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11343 @@XMLTest:
11344 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.standalone.-3.test
11345 @@@DEnt:
11346 @@@@test:value:
11347 <?xml version="1.0" standalone="no"?>
11348 <!DOCTYPE p [
11349 <!ENTITY c "&entity;">
11350 <!ATTLIST p a CDATA "&c;">
11351 <!ENTITY % para SYSTEM "para">
11352 %para;
11353 ]>
11354 <p/>
11355 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11356 @@XMLTest:
11357 @@@QName:
11358 xp.reptxt.attlist.attval.ger.entity.declared.standalone.-3.2.test
11359 @@@DEnt:
11360 @@@@test:value:
11361 <?xml version="1.0" standalone="no"?>
11362 <!DOCTYPE p [
11363 <!ENTITY % para SYSTEM "para">
11364 %para;
11365 <!ENTITY c "&entity;">
11366 <!ATTLIST p a CDATA "&c;">
11367 ]>
11368 <p g="h"/>
11369 @@@test:domTree:
11370 document {
11371 document-type { }
11372 element {
11373 attribute {
11374 node-name: 'g';
11375 text-content: 'h';
11376 }
11377 }
11378 }
11379 @@XMLTest:
11380 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.standalone.-4.test
11381 @@@DEnt:
11382 @@@@test:value:
11383 <!DOCTYPE p [
11384 <!ENTITY c "&entity;">
11385 <!ATTLIST p a CDATA "&c;">
11386 <!ENTITY % para SYSTEM "para">
11387 %para;
11388 ]>
11389 <p/>
11390 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11391 @@XMLTest:
11392 @@@QName:
11393 xp.reptxt.attlist.attval.ger.entity.declared.standalone.-4.2.test
11394 @@@DEnt:
11395 @@@@test:value:
11396 <!DOCTYPE p [
11397 <!ENTITY % para SYSTEM "para">
11398 %para;
11399 <!ENTITY c "&entity;">
11400 <!ATTLIST p a CDATA "&c;">
11401 ]>
11402 <p g="h"/>
11403 @@@test:domTree:
11404 document {
11405 document-type { }
11406 element {
11407 attribute {
11408 node-name: 'g';
11409 text-content: 'h';
11410 }
11411 }
11412 }
11413 @@XMLTest:
11414 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.standalone.5.test
11415 @@@DEnt:
11416 @@@@test:value:
11417 <?xml version="1.0" standalone="yes"?>
11418 <!DOCTYPE p SYSTEM "dtd" [
11419 <!ENTITY c "&entity;">
11420 <!ATTLIST p a CDATA "&c;">
11421 ]>
11422 <p/>
11423 @@@c:erred: <[[xp|wf-entity-declared]]> { (1, 1)..(1, 8); }
11424 @@XMLTest:
11425 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.standalone.-5.test
11426 @@@DEnt:
11427 @@@@test:value:
11428 <?xml version="1.0" standalone="no"?>
11429 <!DOCTYPE p SYSTEM "dtd" [
11430 <!ENTITY c "&entity;">
11431 <!ATTLIST p a CDATA "&c;">
11432 ]>
11433 <p/>
11434 @@@test:domTree:
11435 document {
11436 document-type { }
11437 element {
11438 attribute {
11439 node-name: 'a';
11440 specified: false;
11441 general-entity-reference {
11442 node-name: 'c';
11443 is-expanded: true;
11444 general-entity-reference {
11445 node-name: 'entity';
11446 is-expanded: false;
11447 }
11448 }
11449 }
11450 }
11451 }
11452 @@XMLTest:
11453 @@@QName: xp.reptxt.attlist.attval.ger.entity.declared.standalone.-6.test
11454 @@@DEnt:
11455 @@@@test:value:
11456 <!DOCTYPE p SYSTEM "dtd" [<!ENTITY c "&entity;">
11457 <!ATTLIST p a CDATA "&c;">
11458 ]>
11459 <p/>
11460 @@@test:domTree:
11461 document {
11462 document-type { }
11463 element {
11464 attribute {
11465 node-name: 'a';
11466 specified: false;
11467 general-entity-reference {
11468 node-name: 'c';
11469 is-expanded: true;
11470 general-entity-reference {
11471 node-name: 'entity';
11472 is-expanded: false;
11473 }
11474 }
11475 }
11476 }
11477 }
11478
11479 @@XMLTest:
11480 @@@QName: xp.attlist.attval.ger.entity.declared.nopref.1.test
11481 @@@DEnt:
11482 @@@@test:value:
11483 <!DOCTYPE p [
11484 <!ATTLIST p a CDATA "&entity;">
11485 ]>
11486 <p/>
11487 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 22)..(2, 29); }
11488 @@XMLTest:
11489 @@@QName: xp.attlist.attval.ger.entity.declared.nopref.2.test
11490 @@@DEnt:
11491 @@@@test:value:
11492 <!DOCTYPE p [
11493 <!ENTITY other "aa">
11494 <!ENTITY % another "aa">
11495 <!ATTLIST p a CDATA "&entity;">
11496 ]>
11497 <p/>
11498 @@@c:erred: <[[xp|wf-entity-declared]]> { (4, 22)..(4, 29); }
11499 @@XMLTest:
11500 @@@QName: xp.attlist.attval.ger.entity.declared.nopref.3.test
11501 @@@DEnt:
11502 @@@@test:value:
11503 <?xml version="1.0" standalone="yes"?>
11504 <!DOCTYPE p [
11505 <!ATTLIST p a CDATA "&entity;">
11506 ]>
11507 <p/>
11508 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 22)..(3, 29); }
11509 @@XMLTest:
11510 @@@QName: xp.attlist.attval.ger.entity.declared.nopref.4.test
11511 @@@DEnt:
11512 @@@@test:value:
11513 <?xml version="1.0" standalone="no"?>
11514 <!DOCTYPE p [
11515 <!ATTLIST p a CDATA "&entity;">
11516 ]>
11517 <p/>
11518 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 22)..(3, 29); }
11519 @@XMLTest:
11520 @@@QName: xp.attlist.attval.ger.entity.declared.nopref.5.test
11521 @@@DEnt:
11522 @@@@test:value:
11523 <?xml version="1.0" standalone="yes"?>
11524 <!DOCTYPE p [
11525 <!ENTITY other "aa">
11526 <!ENTITY % another "aa">
11527 <!ATTLIST p a CDATA "&entity;">
11528 ]>
11529 <p/>
11530 @@@c:erred: <[[xp|wf-entity-declared]]> { (5, 22)..(5, 29); }
11531 @@XMLTest:
11532 @@@QName: xp.attlist.attval.ger.entity.declared.nopref.6.test
11533 @@@DEnt:
11534 @@@@test:value:
11535 <?xml version="1.0" standalone="no"?>
11536 <!DOCTYPE p [
11537 <!ENTITY other "aa">
11538 <!ENTITY % another "aa">
11539 <!ATTLIST p a CDATA "&entity;">
11540 ]>
11541 <p/>
11542 @@@c:erred: <[[xp|wf-entity-declared]]> { (5, 22)..(5, 29); }
11543 @@XMLTest:
11544 @@@QName: xp.attlist.attval.ger.entity.declared.nopref.-1.test
11545 @@@DEnt:
11546 @@@@test:value:
11547 <!DOCTYPE p [
11548 <!ENTITY entity "value">
11549 <!ATTLIST p a CDATA "&entity;">
11550 ]>
11551 <p/>
11552 @@@test:domTree:
11553 document {
11554 document-type {
11555 general-entity {
11556 node-name: 'entity';
11557 text-content: 'value';
11558 }
11559 element-type-definition {
11560 node-name: 'p';
11561 attribute-definition {
11562 node-name: 'a';
11563 general-entity-reference {
11564 node-name: 'entity';
11565 is-expanded: true;
11566 text-content: 'value';
11567 }
11568 }
11569 }
11570 }
11571 element {
11572 attribute {
11573 node-name: 'a';
11574 specified: false;
11575 general-entity-reference {
11576 node-name: 'entity';
11577 is-expanded: true;
11578 text-content: 'value';
11579 }
11580 }
11581 }
11582 }
11583 @@XMLTest:
11584 @@@QName: xp.attlist.attval.ger.entity.declared.nopref.-1.2.test
11585 @@@DEnt:
11586 @@@@test:value:
11587 <!DOCTYPE p [
11588 <!ATTLIST p a CDATA "&entity;">
11589 <!ENTITY entity "value">
11590 ]>
11591 <p/>
11592 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 22)..(2, 29); }
11593 @@XMLTest:
11594 @@@QName: xp.attlist.attval.ger.entity.declared.nopref.-2.test
11595 @@@DEnt:
11596 @@@@test:value:
11597 <!DOCTYPE p [
11598 <!ENTITY entity "value">
11599 <!ENTITY another SYSTEM "another">
11600 <!ATTLIST p a CDATA "&entity;">
11601 ]>
11602 <p/>
11603 @@@test:domTree:
11604 document {
11605 document-type {
11606 element-type-definition {
11607 node-name: 'p';
11608 attribute-definition {
11609 node-name: 'a';
11610 general-entity-reference {
11611 node-name: 'entity';
11612 is-expanded: true;
11613 text-content: 'value';
11614 }
11615 }
11616 }
11617 general-entity {
11618 node-name: 'entity';
11619 text-content: 'value';
11620 has-replacement-tree: true;
11621 }
11622 general-entity {
11623 node-name: 'another';
11624 public-id: null;
11625 system-id: 'another';
11626 has-replacement-tree: false;
11627 }
11628 }
11629 element {
11630 attribute {
11631 node-name: 'a';
11632 specified: false;
11633 general-entity-reference {
11634 node-name: 'entity';
11635 is-expanded: true;
11636 text-content: 'value';
11637 }
11638 }
11639 }
11640 }
11641 @@XMLTest:
11642 @@@QName: xp.attlist.attval.ger.entity.declared.nopref.-2.2.test
11643 @@@DEnt:
11644 @@@@test:value:
11645 <!DOCTYPE p [
11646 <!ATTLIST p a CDATA "&entity;">
11647 <!ENTITY entity "value">
11648 <!ENTITY another SYSTEM "another">
11649 ]>
11650 <p/>
11651 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 22)..(2, 29); }
11652 @@XMLTest:
11653 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.2.test
11654 @@@DEnt:
11655 @@@@test:value:
11656 <?xml version="1.0" standalone="yes"?>
11657 <!DOCTYPE p [
11658 <!ATTLIST p a CDATA "&entity;">
11659 ]>
11660 <p/>
11661 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 22)..(3, 29); }
11662 @@XMLTest:
11663 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.3.test
11664 @@@DEnt:
11665 @@@@test:value:
11666 <?xml version="1.0" standalone="yes"?>
11667 <!DOCTYPE p [
11668 <!ATTLIST p a CDATA "&entity;">
11669 <!ENTITY % para "<!-- -->">
11670 %para;
11671 ]>
11672 <p/>
11673 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 22)..(3, 29); }
11674 @@XMLTest:
11675 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.3.2.test
11676 @@@DEnt:
11677 @@@@test:value:
11678 <?xml version="1.0" standalone="yes"?>
11679 <!DOCTYPE p [
11680 <!ENTITY % para "<!-- -->">
11681 %para;
11682 <!ATTLIST p a CDATA "&entity;">
11683 ]>
11684 <p/>
11685 @@@c:erred: <[[xp|wf-entity-declared]]> { (5, 22)..(5, 29); }
11686 @@@enImplNote:
11687 The <XML::ATTLIST> declaration is processed since
11688 it is a <XA::standalone> document.
11689 @@XMLTest:
11690 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.-1.test
11691 @@@DEnt:
11692 @@@@test:value:
11693 <?xml version="1.0" standalone="no"?>
11694 <!DOCTYPE p [
11695 <!ATTLIST p a CDATA "&entity;">
11696 <!ENTITY % para "<!-- -->">
11697 %para;
11698 ]>
11699 <p/>
11700 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 22)..(3, 29); }
11701 @@XMLTest:
11702 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.-1.2.test
11703 @@@DEnt:
11704 @@@@test:value:
11705 <?xml version="1.0" standalone="no"?>
11706 <!DOCTYPE p [
11707 <!ATTLIST p b CDATA #IMPLIED>
11708 <!ENTITY % para "<!-- -->">
11709 %para;
11710 <!ATTLIST p a CDATA "&entity;">
11711 ]>
11712 <p c="d"/>
11713 @@@c:erred:
11714 <[[xp|warning-attribute-definition-not-processed]]> { (6, 13)..(6, 30); }
11715 @@@test:domTree:
11716 document {
11717 document-type {
11718 element-type-definition {
11719 node-name: 'p';
11720 attribute-definition {
11721 node-name: 'b';
11722 }
11723 }
11724 }
11725 element {
11726 attribute {
11727 node-name: 'c';
11728 text-content: 'd';
11729 }
11730 }
11731 }
11732 @@@enImplNote:
11733 The second <XML::ATTLIST> declaration is read but not processed
11734 and its <XML::&entity;> general entity reference violates
11735 entity declared validty constraint rather than well-formedness
11736 constraint.
11737 @@XMLTest:
11738 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.-2.test
11739 @@@DEnt:
11740 @@@@test:value:
11741 <!DOCTYPE p [
11742 <!ATTLIST p a CDATA "&entity;">
11743 <!ENTITY % para "<!-- -->">
11744 %para;
11745 ]>
11746 <p/>
11747 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 22)..(2, 29); }
11748 @@XMLTest:
11749 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.-2.2.test
11750 @@@DEnt:
11751 @@@@test:value:
11752 <!DOCTYPE p [
11753 <!ATTLIST p b CDATA #IMPLIED>
11754 <!ENTITY % para "<!-- -->">
11755 %para;
11756 <!ATTLIST p a CDATA "&entity;">
11757 ]>
11758 <p c="d"/>
11759 @@@c:erred:
11760 <[[xp|warning-attribute-definition-not-processed]]> { (5, 13)..(5, 30); }
11761 @@@test:domTree:
11762 document {
11763 document-type {
11764 element-type-definition {
11765 node-name: 'p';
11766 attribute-definition {
11767 node-name: 'b';
11768 }
11769 }
11770 }
11771 element {
11772 attribute {
11773 node-name: 'c';
11774 text-content: 'd';
11775 }
11776 }
11777 }
11778 @@XMLTest:
11779 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.4.test
11780 @@@DEnt:
11781 @@@@test:value:
11782 <?xml version="1.0" standalone="yes"?>
11783 <!DOCTYPE p [
11784 <!ATTLIST p a CDATA "&entity;">
11785 <!ENTITY % para SYSTEM "p">
11786 %para;
11787 ]>
11788 <p/>
11789 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 22)..(3, 29); }
11790 @@XMLTest:
11791 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.4.2.test
11792 @@@DEnt:
11793 @@@@test:value:
11794 <?xml version="1.0" standalone="yes"?>
11795 <!DOCTYPE p [
11796 <!ENTITY % para SYSTEM "p">
11797 %para;
11798 <!ATTLIST p a CDATA "&entity;">
11799 ]>
11800 <p/>
11801 @@@c:erred: <[[xp|wf-entity-declared]]> { (5, 22)..(5, 29); }
11802 @@@enImplNote:
11803 The <XML::ATTLIST> declaration is processed since
11804 it is a <XA::standalone> document.
11805 @@XMLTest:
11806 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.-3.test
11807 @@@DEnt:
11808 @@@@test:value:
11809 <?xml version="1.0" standalone="no"?>
11810 <!DOCTYPE p [
11811 <!ATTLIST p a CDATA "&entity;">
11812 <!ENTITY % para SYSTEM "p">
11813 %para;
11814 ]>
11815 <p/>
11816 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 22)..(3, 29); }
11817 @@@enImplNote:
11818 Is this well-formed? It has a parameter entity reference,
11819 therefore, it does not violates Entity Declared WFC, isn't it?
11820
11821 Note that Firefox 1.5 and Opera 9 TP1 reports that this document has a
11822 fatal error (also note that they does not support unexpanded).
11823
11824 See also:
11825 <URI::http://suika.fam.cx/gate/2005/sw/%E5%B1%9E%E6%80%A7%E5%80%A4%E8%A1%A8%E8%A8%98#anchor-8>
11826 @@XMLTest:
11827 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.-3.2.test
11828 @@@DEnt:
11829 @@@@test:value:
11830 <?xml version="1.0" standalone="no"?>
11831 <!DOCTYPE p [
11832 <!ATTLIST p b CDATA #IMPLIED>
11833 <!ENTITY % para SYSTEM "p">
11834 %para;
11835 <!ATTLIST p a CDATA "&entity;">
11836 ]>
11837 <p c="d"/>
11838 @@@c:erred:
11839 <[[xp|warning-attribute-definition-not-processed]]> { (6, 13)..(6, 30); }
11840 @@@test:domTree:
11841 document {
11842 document-type {
11843 element-type-definition {
11844 node-name: 'p';
11845 attribute-definition {
11846 node-name: 'b';
11847 }
11848 }
11849 }
11850 element {
11851 attribute {
11852 node-name: 'c';
11853 text-content: 'd';
11854 }
11855 }
11856 }
11857 @@@enImplNote:
11858 The second <XML::ATTLIST> declaration is read but not processed
11859 and its <XML::&entity;> general entity reference violates
11860 entity declared validty constraint rather than well-formedness
11861 constraint.
11862 @@XMLTest:
11863 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.-4.test
11864 @@@DEnt:
11865 @@@@test:value:
11866 <!DOCTYPE p [
11867 <!ATTLIST p a CDATA "&entity;">
11868 <!ENTITY % para SYSTEM "p">
11869 %para;
11870 ]>
11871 <p/>
11872 @@@c:erred: <[[xp|wf-entity-declared]]> { (2, 22)..(2, 29); }
11873 @@XMLTest:
11874 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.-4.2.test
11875 @@@DEnt:
11876 @@@@test:value:
11877 <!DOCTYPE p [
11878 <!ATTLIST p b CDATA #IMPLIED>
11879 <!ENTITY % para SYSTEM "p">
11880 %para;
11881 <!ATTLIST p a CDATA "&entity;">
11882 ]>
11883 <p c="d"/>
11884 @@@c:erred:
11885 <[[xp|warning-attribute-definition-not-processed]]> { (5, 13)..(5, 30); }
11886 @@@test:domTree:
11887 document {
11888 document-type {
11889 element-type-definition {
11890 node-name: 'p';
11891 attribute-definition {
11892 node-name: 'b';
11893 }
11894 }
11895 }
11896 element {
11897 attribute {
11898 node-name: 'c';
11899 text-content: 'd';
11900 }
11901 }
11902 }
11903 @@XMLTest:
11904 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.5.test
11905 @@@DEnt:
11906 @@@@test:value:
11907 <?xml version="1.0" standalone="yes"?>
11908 <!DOCTYPE p SYSTEM "dtd" [
11909 <!ATTLIST p a CDATA "&entity;">
11910 ]>
11911 <p/>
11912 @@@c:erred: <[[xp|wf-entity-declared]]> { (3, 22)..(3, 29); }
11913 @@@enImplNote:
11914 This document has an error - result is implementation dependent.
11915 @@XMLTest:
11916 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.-5.test
11917 @@@DEnt:
11918 @@@@test:value:
11919 <?xml version="1.0" standalone="no"?>
11920 <!DOCTYPE p SYSTEM "dtd" [
11921 <!ATTLIST p a CDATA "&entity;">
11922 ]>
11923 <p/>
11924 @@@test:domTree:
11925 document {
11926 document-type {
11927 element-type-definition {
11928 node-name: 'p';
11929 attribute-definition {
11930 node-name: 'a';
11931 general-entity-reference {
11932 node-name: 'entity';
11933 is-expanded: false;
11934 }
11935 }
11936 }
11937 }
11938 element {
11939 attribute {
11940 node-name: 'a';
11941 specified: false;
11942 general-entity-reference {
11943 node-name: 'entity';
11944 is-expanded: false;
11945 }
11946 }
11947 }
11948 }
11949 @@@enImplNote:
11950 This document has an error - result is implementation dependent.
11951 @@XMLTest:
11952 @@@QName: xp.attlist.attval.ger.entity.declared.standalone.-6.test
11953 @@@DEnt:
11954 @@@@test:value:
11955 <!DOCTYPE p SYSTEM "dtd" [
11956 <!ATTLIST p a CDATA "&entity;">
11957 ]>
11958 <p/>
11959 @@@test:domTree:
11960 document {
11961 document-type {
11962 element-type-definition {
11963 node-name: 'p';
11964 attribute-definition {
11965 node-name: 'a';
11966 general-entity-reference {
11967 node-name: 'entity';
11968 is-expanded: false;
11969 }
11970 }
11971 }
11972 }
11973 element {
11974 attribute {
11975 node-name: 'a';
11976 specified: false;
11977 general-entity-reference {
11978 node-name: 'entity';
11979 is-expanded: false;
11980 }
11981 }
11982 }
11983 }
11984 @@@enImplNote:
11985 This document has an error - result is implementation dependent.
11986
11987 @@enImplNote:
11988 {TODO:: Entity declared WFC for
11989
11990 - General entity references in entity value??
11991
11992 }
11993
11994 @@XMLTest:
11995 @@@QName: xp.element.content.parsed.entity.reference.test
11996 @@@DEnt:
11997 @@@@test:value:
11998 <!DOCTYPE p [
11999 <!NOTATION n SYSTEM "notation">
12000 <!ENTITY ext SYSTEM "system" NDATA n>
12001 ]>
12002 <p>&ext;</p>
12003 @@@c:erred: <[[xp|wf-parsed-entity]]> { (5, 4)..(5, 8); }
12004 @@XMLTest:
12005 @@@QName: xp.attval.parsed.entity.reference.test
12006 @@@DEnt:
12007 @@@@test:value:
12008 <!DOCTYPE p [
12009 <!NOTATION n SYSTEM "notation">
12010 <!ENTITY ext SYSTEM "system" NDATA n>
12011 ]>
12012 <p a="&ext;"/>
12013 # @@@c:erred: <[[xp|wf-parsed-entity]]> { (5, 7)..(5, 11); }
12014 @@@c:erred: <[[xp|wf-no-external-entity-references]]> { (5, 7)..(5, 11); }
12015 @@XMLTest:
12016 @@@QName: xp.element.content.reptxt.parsed.entity.reference.test
12017 @@@DEnt:
12018 @@@@test:value:
12019 <!DOCTYPE p [
12020 <!NOTATION n SYSTEM "notation">
12021 <!ENTITY ext SYSTEM "system" NDATA n>
12022 <!ENTITY c "&#x26;ext;">
12023 ]>
12024 <p>&c;</p>
12025 @@@c:erred: <[[xp|wf-parsed-entity]]> { (1, 1)..(1, 5); }
12026 @@XMLTest:
12027 @@@QName: xp.attval.reptxt.parsed.entity.reference.test
12028 @@@DEnt:
12029 @@@@test:value:
12030 <!DOCTYPE p [
12031 <!NOTATION n SYSTEM "notation">
12032 <!ENTITY ext SYSTEM "system" NDATA n>
12033 <!ENTITY c "&#x26;ext;">
12034 ]>
12035 <p a="&c;"/>
12036 @@@c:erred: <[[xp|wf-no-external-entity-references]]> { (1, 1)..(1, 5); }
12037 @@@c:erred:
12038 @@@@@: <[[xp|wf-parsed-entity]]> { }
12039 @@@@enImplNote: During entity node construction.
12040 @@XMLTest:
12041 @@@QName: xp.element.content.entval.parsed.entity.reference.test
12042 @@@DEnt:
12043 @@@@test:value:
12044 <!DOCTYPE p [
12045 <!NOTATION n SYSTEM "notation">
12046 <!ENTITY ext SYSTEM "system" NDATA n>
12047 <!ENTITY c "&ext;">
12048 ]>
12049 <p>&c;</p>
12050 @@@c:erred: <[[xp|wf-parsed-entity]]> { }
12051 @@XMLTest:
12052 @@@QName: xp.attval.entval.parsed.entity.reference.test
12053 @@@DEnt:
12054 @@@@test:value:
12055 <!DOCTYPE p [
12056 <!NOTATION n SYSTEM "notation">
12057 <!ENTITY ext SYSTEM "system" NDATA n>
12058 <!ENTITY c "&ext;">
12059 ]>
12060 <p a="&c;"/>
12061 @@@c:erred: <[[xp|wf-no-external-entity-references]]> { }
12062 @@@c:erred: <[[xp|wf-parsed-entity]]> { }
12063
12064 @@XMLTest:
12065 @@@QName: xp.element.content.no.recursion.direct.test
12066 @@@DEnt:
12067 @@@@test:value:
12068 <!DOCTYPE p [
12069 <!ENTITY c "&c;">
12070 ]>
12071 <p>&c;</p>
12072 @@@c:erred: <[[xp|wf-no-recursion]]> { (1, 1)..(1, 3); }
12073 @@XMLTest:
12074 @@@QName: xp.element.content.no.recursion.indirect.test
12075 @@@DEnt:
12076 @@@@test:value:
12077 <!DOCTYPE p [
12078 <!ENTITY d "&c;">
12079 <!ENTITY c "&d;">
12080 ]>
12081 <p>&c;</p>
12082 @@@c:erred: <[[xp|wf-no-recursion]]> { /* |d| */ (1, 1)..(1, 3); }
12083 @@XMLTest:
12084 @@@QName: xp.attval.no.recursion.direct.test
12085 @@@DEnt:
12086 @@@@test:value:
12087 <!DOCTYPE p [
12088 <!ENTITY c "&c;">
12089 ]>
12090 <p a="&c;"/>
12091 @@@c:erred: <[[xp|wf-no-recursion]]> { (1, 1)..(1, 3); }
12092 @@XMLTest:
12093 @@@QName: xp.attval.no.recursion.indirect.test
12094 @@@DEnt:
12095 @@@@test:value:
12096 <!DOCTYPE p [
12097 <!ENTITY d "&c;">
12098 <!ENTITY c "&d;">
12099 ]>
12100 <p a="&c;"/>
12101 @@@c:erred: <[[xp|wf-no-recursion]]> { /* |d| */ (1, 1)..(1, 3); }
12102 @@XMLTest:
12103 @@@QName: xp.reptxt.element.content.no.recursion.direct.test
12104 @@@DEnt:
12105 @@@@test:value:
12106 <!DOCTYPE p [
12107 <!ENTITY c "&c;">
12108 <!ENTITY e "&#x26;c;">
12109 ]>
12110 <p>&e;</p>
12111 @@@c:erred: <[[xp|wf-no-recursion]]> { /* |e| */ (1, 1)..(1, 3); }
12112 @@XMLTest:
12113 @@@QName: xp.reptxt.element.content.no.recursion.indirect.test
12114 @@@DEnt:
12115 @@@@test:value:
12116 <!DOCTYPE p [
12117 <!ENTITY d "&c;">
12118 <!ENTITY c "&d;">
12119 <!ENTITY e "&#x26;c;">
12120 ]>
12121 <p>&e;</p>
12122 @@@c:erred: <[[xp|wf-no-recursion]]> { /* |d| */ (1, 1)..(1, 3); }
12123 @@XMLTest:
12124 @@@QName: xp.reptxt.attval.no.recursion.direct.test
12125 @@@DEnt:
12126 @@@@test:value:
12127 <!DOCTYPE p [
12128 <!ENTITY c "&c;">
12129 <!ENTITY e "&#x26;c;">
12130 ]>
12131 <p a="&e;"/>
12132 @@@c:erred: <[[xp|wf-no-recursion]]> { /* |e| */ (1, 1)..(1, 3); }
12133 @@XMLTest:
12134 @@@QName: xp.reptxt.attval.no.recursion.indirect.test
12135 @@@DEnt:
12136 @@@@test:value:
12137 <!DOCTYPE p [
12138 <!ENTITY d "&c;">
12139 <!ENTITY c "&d;">
12140 <!ENTITY e "&#x26;c;">
12141 ]>
12142 <p a="&e;"/>
12143 @@@c:erred: <[[xp|wf-no-recursion]]> { /* |d| */ (1, 1)..(1, 3); }
12144
12145 @@XMLTest:
12146 @@@QName: xp.ENTITY.system.ndata.name.test
12147 @@@DEnt:
12148 @@@@test:value:
12149 <!DOCTYPE a [
12150 <!NOTATION n SYSTEM "n">
12151 <!ENTITY % e SYSTEM "sys" NDATA n>
12152 ]><a/>
12153 @@@c:erred: <[[xp|wf-syntax-error]]> { (3, 26)..(3, 30); }
12154 @@XMLTest:
12155 @@@QName: xp.ENTITY.public.ndata.name.test
12156 @@@DEnt:
12157 @@@@test:value:
12158 <!DOCTYPE a [
12159 <!NOTATION n SYSTEM "n">
12160 <!ENTITY % e PUBLIC "pub" "sys" NDATA n>
12161 ]><a/>
12162 @@@c:erred: <[[xp|wf-syntax-error]]> { (3, 33)..(3, 37); }
12163 @@XMLTest:
12164 @@@QName: xp.ENTITY.public.ndata.name.-1.test
12165 @@@DEnt:
12166 @@@@test:value:
12167 <!DOCTYPE a [
12168 <!NOTATION n SYSTEM "n">
12169 <!ENTITY % e PUBLIC "pub" "sys" >
12170 ]><a/>
12171 @@@test:domTree:
12172 document { }
12173
12174 @@XMLTest:
12175 @@@QName: xp.ENTITY.pubid.1.test
12176 @@@DEnt:
12177 @@@@test:value:
12178 <!DOCTYPE a [
12179 <!ENTITY e PUBLIC "p" "s">
12180 ]><a/>
12181 @@@test:domTree:
12182 document {
12183 document-type {
12184 general-entity {
12185 node-name: 'e';
12186 public-id: 'p';
12187 system-id: 's';
12188 }
12189 }
12190 element { }
12191 }
12192 @@XMLTest:
12193 @@@QName: xp.ENTITY.pubid.2.test
12194 @@@DEnt:
12195 @@@@test:value:
12196 <!DOCTYPE a [
12197 <!ENTITY e PUBLIC " p " "s">
12198 ]><a/>
12199 @@@test:domTree:
12200 document {
12201 document-type {
12202 general-entity {
12203 node-name: 'e';
12204 public-id: 'p';
12205 system-id: 's';
12206 }
12207 }
12208 element { }
12209 }
12210 @@XMLTest:
12211 @@@QName: xp.ENTITY.pubid.3.test
12212 @@@DEnt:
12213 @@@@test:value:
12214 <!DOCTYPE a [
12215 <!ENTITY e PUBLIC " p $u000Aq$u000A " "s">
12216 ]><a/>
12217 @@@test:domTree:
12218 document {
12219 document-type {
12220 general-entity {
12221 node-name: 'e';
12222 public-id: 'p q';
12223 system-id: 's';
12224 }
12225 }
12226 element { }
12227 }
12228 @@XMLTest:
12229 @@@QName: xp.ENTITY.pubid.4.test
12230 @@@DEnt:
12231 @@@@test:value:
12232 <!DOCTYPE a [
12233 <!ENTITY e PUBLIC " p $u000D$u000Aq" "s">
12234 ]><a/>
12235 @@@test:domTree:
12236 document {
12237 document-type {
12238 general-entity {
12239 node-name: 'e';
12240 public-id: 'p q';
12241 system-id: 's';
12242 }
12243 }
12244 element { }
12245 }
12246 @@XMLTest:
12247 @@@QName: xp.ENTITY.pubid.5.test
12248 @@@DEnt:
12249 @@@@test:value:
12250 <?xml version="1.1"?>
12251 <!DOCTYPE a [
12252 <!ENTITY e PUBLIC " p $u0085$u000Aq" "s">
12253 ]><a/>
12254 @@@test:domTree:
12255 document {
12256 document-type {
12257 general-entity {
12258 node-name: 'e';
12259 public-id: 'p q';
12260 system-id: 's';
12261 }
12262 }
12263 element { }
12264 }
12265
12266 @@XMLTest:
12267 @@@QName: xp.ENTITY.ignored.test
12268 @@@DEnt:
12269 @@@@test:value:
12270 <!DOCTYPE a [
12271 <!ENTITY e "a">
12272 <!ENTITY e "b">
12273 ]><a/>
12274 @@@test:domTree:
12275 document {
12276 document-type {
12277 general-entity {
12278 node-name: 'e';
12279 text-content: 'a';
12280 }
12281 }
12282 element { }
12283 }
12284 @@@c:erred:
12285 <[[xp|warning-entity-declaration-ignored]]> { (3, 1)..(3, 15); }
12286 @@XMLTest:
12287 @@@QName: xp.ENTITY.ignored.2.test
12288 @@@DEnt:
12289 @@@@test:value:
12290 <!DOCTYPE a [
12291 <!ENTITY % e "a">
12292 <!ENTITY % e "b">
12293 ]><a/>
12294 @@@test:domTree:
12295 document { }
12296 @@@c:erred:
12297 <[[xp|warning-entity-declaration-ignored]]> { (3, 1)..(3, 17); }
12298
12299 @@XMLTest:
12300 @@@QName: xp.ENTITY.predefined.1.test
12301 @@@DEnt:
12302 @@@@test:value:
12303 <!DOCTYPE a [
12304 <!ENTITY lt "&#38;#60;">
12305 <!ENTITY gt "&#62;">
12306 <!ENTITY amp "&#38;#38;">
12307 <!ENTITY apos "&#39;">
12308 <!ENTITY quot "&#34;">
12309 <!ENTITY e "f">
12310 ]><a>&lt;&gt;&amp;&apos;&quot;</a>
12311 @@@test:domTree:
12312 document {
12313 document-type {
12314 general-entity {
12315 node-name: 'e';
12316 text-content: 'f';
12317 }
12318 }
12319 element {
12320 text-content: '<>&' U+0027 '"';
12321 }
12322 }
12323 @@XMLTest:
12324 @@@QName: xp.ENTITY.predefined.2.test
12325 @@@DEnt:
12326 @@@@test:value:
12327 <!DOCTYPE a [
12328 <!ENTITY lt "&#38;#60;">
12329 <!ENTITY gt "&#x26;#62;">
12330 <!ENTITY amp "&#38;#38;">
12331 <!ENTITY apos "&#x26;#39;">
12332 <!ENTITY quot "&#x26;#34;">
12333 <!ENTITY e "f">
12334 ]><a>&lt;&gt;&amp;&apos;&quot;</a>
12335 @@@test:domTree:
12336 document {
12337 document-type {
12338 general-entity {
12339 node-name: 'e';
12340 text-content: 'f';
12341 }
12342 }
12343 element {
12344 text-content: '<>&' U+0027 '"';
12345 }
12346 }
12347 @@XMLTest:
12348 @@@QName: xp.ENTITY.predefined.3.test
12349 @@@DEnt:
12350 @@@@test:value:
12351 <!DOCTYPE a [
12352 <!ENTITY lt "&#60;">
12353 <!ENTITY gt "&#62;">
12354 <!ENTITY amp "&#38;">
12355 <!ENTITY apos "&#39;">
12356 <!ENTITY quot "&#34;">
12357 <!ENTITY e "f">
12358 ]><a>&lt;&gt;&amp;&apos;&quot;</a>
12359 @@@c:erred: <[[xp|error-malformed-predefined-entity]]> { (2, 1)..(2, 24); }
12360 @@@c:erred: <[[xp|error-malformed-predefined-entity]]> { (4, 1)..(4, 24); }
12361 @@@test:domTree:
12362 document {
12363 document-type {
12364 general-entity {
12365 node-name: 'e';
12366 text-content: 'f';
12367 }
12368 }
12369 element {
12370 text-content: '<>&' U+0027 '"';
12371 }
12372 }
12373 @@XMLTest:
12374 @@@QName: xp.ENTITY.predefined.4.test
12375 @@@DEnt:
12376 @@@@test:value:
12377 <!DOCTYPE a [
12378 <!ENTITY lt "1">
12379 <!ENTITY gt "2">
12380 <!ENTITY amp "3">
12381 <!ENTITY apos "4">
12382 <!ENTITY quot "5">
12383 <!ENTITY e "f">
12384 ]><a>&lt;&gt;&amp;&apos;&quot;</a>
12385 @@@c:erred: <[[xp|error-malformed-predefined-entity]]> { (2, 1)..(2, 24); }
12386 @@@c:erred: <[[xp|error-malformed-predefined-entity]]> { (3, 1)..(3, 24); }
12387 @@@c:erred: <[[xp|error-malformed-predefined-entity]]> { (4, 1)..(4, 24); }
12388 @@@c:erred: <[[xp|error-malformed-predefined-entity]]> { (5, 1)..(5, 24); }
12389 @@@c:erred: <[[xp|error-malformed-predefined-entity]]> { (6, 1)..(6, 24); }
12390 @@@test:domTree:
12391 document {
12392 document-type {
12393 general-entity {
12394 node-name: 'e';
12395 text-content: 'f';
12396 }
12397 }
12398 element {
12399 text-content: '<>&' U+0027 '"';
12400 }
12401 }
12402 @@XMLTest:
12403 @@@QName: xp.ENTITY.predefined.5.test
12404 @@@DEnt:
12405 @@@@test:value:
12406 <!DOCTYPE a [
12407 <!ENTITY lt SYSTEM "1">
12408 <!ENTITY gt SYSTEM "2">
12409 <!ENTITY amp SYSTEM "3">
12410 <!ENTITY apos SYSTEM "4">
12411 <!ENTITY quot SYSTEM "5">
12412 <!ENTITY e "f">
12413 ]><a>&lt;&gt;&amp;&apos;&quot;</a>
12414 @@@c:erred: <[[xp|error-internal-predefined-entity]]> { (2, 1)..(2, 27); }
12415 @@@c:erred: <[[xp|error-internal-predefined-entity]]> { (3, 1)..(3, 27); }
12416 @@@c:erred: <[[xp|error-internal-predefined-entity]]> { (4, 1)..(4, 27); }
12417 @@@c:erred: <[[xp|error-internal-predefined-entity]]> { (5, 1)..(5, 27); }
12418 @@@c:erred: <[[xp|error-internal-predefined-entity]]> { (6, 1)..(6, 27); }
12419 @@@test:domTree:
12420 document {
12421 document-type {
12422 general-entity {
12423 node-name: 'e';
12424 text-content: 'f';
12425 }
12426 }
12427 element {
12428 text-content: '<>&' U+0027 '"';
12429 }
12430 }
12431 @@XMLTest:
12432 @@@QName: xp.ENTITY.predefined.6.test
12433 @@@DEnt:
12434 @@@@test:value:
12435 <!DOCTYPE a [
12436 <!ENTITY % lt SYSTEM "1">
12437 <!ENTITY % gt SYSTEM "2">
12438 <!ENTITY % amp SYSTEM "3">
12439 <!ENTITY % apos SYSTEM "4">
12440 <!ENTITY % quot SYSTEM "5">
12441 <!ENTITY e "f">
12442 ]><a>&lt;&gt;&amp;&apos;&quot;</a>
12443 @@@test:domTree:
12444 document {
12445 document-type {
12446 general-entity {
12447 node-name: 'e';
12448 text-content: 'f';
12449 }
12450 }
12451 element {
12452 text-content: '<>&' U+0027 '"';
12453 }
12454 }
12455 @@XMLTest:
12456 @@@QName: xp.ENTITY.predefined.7.test
12457 @@@DEnt:
12458 @@@@test:value:
12459 <!DOCTYPE a [
12460 <!ENTITY lt "&#38;#x3C;">
12461 <!ENTITY gt "&#x3E;">
12462 <!ENTITY amp "&#38;#x26;">
12463 <!ENTITY apos "&#x27;">
12464 <!ENTITY quot "&#x22;">
12465 <!ENTITY e "f">
12466 ]><a>&lt;&gt;&amp;&apos;&quot;</a>
12467 @@@test:domTree:
12468 document {
12469 document-type {
12470 general-entity {
12471 node-name: 'e';
12472 text-content: 'f';
12473 }
12474 }
12475 element {
12476 text-content: '<>&' U+0027 '"';
12477 }
12478 }
12479 @@XMLTest:
12480 @@@QName: xp.ENTITY.predefined.8.test
12481 @@@DEnt:
12482 @@@@test:value:
12483 <!DOCTYPE a [
12484 <!ENTITY lt "&#38;#x3c;">
12485 <!ENTITY gt "&#x3e;">
12486 <!ENTITY amp "&#38;#x26;">
12487 <!ENTITY apos "&#x27;">
12488 <!ENTITY quot "&#x22;">
12489 <!ENTITY e "f">
12490 ]><a>&lt;&gt;&amp;&apos;&quot;</a>
12491 @@@test:domTree:
12492 document {
12493 document-type {
12494 general-entity {
12495 node-name: 'e';
12496 text-content: 'f';
12497 }
12498 }
12499 element {
12500 text-content: '<>&' U+0027 '"';
12501 }
12502 }
12503 @@XMLTest:
12504 @@@QName: xp.ENTITY.predefined.9.test
12505 @@@DEnt:
12506 @@@@test:value:
12507 <!DOCTYPE a [
12508 <!ENTITY lt "&#38;#x00003C;">
12509 <!ENTITY gt "&#x0003E;">
12510 <!ENTITY amp "&#38;#x026;">
12511 <!ENTITY apos "&#x000027;">
12512 <!ENTITY quot "&#x0022;">
12513 <!ENTITY e "f">
12514 ]><a>&lt;&gt;&amp;&apos;&quot;</a>
12515 @@@test:domTree:
12516 document {
12517 document-type {
12518 general-entity {
12519 node-name: 'e';
12520 text-content: 'f';
12521 }
12522 }
12523 element {
12524 text-content: '<>&' U+0027 '"';
12525 }
12526 }
12527 @@XMLTest:
12528 @@@QName: xp.ENTITY.predefined.10.test
12529 @@@DEnt:
12530 @@@@test:value:
12531 <!DOCTYPE a [
12532 <!ENTITY lt "&#38;#00060;">
12533 <!ENTITY gt "&#062;">
12534 <!ENTITY amp "&#38;#000038;">
12535 <!ENTITY apos "&#0000039;">
12536 <!ENTITY quot "&#0034;">
12537 <!ENTITY e "f">
12538 ]><a>&lt;&gt;&amp;&apos;&quot;</a>
12539 @@@test:domTree:
12540 document {
12541 document-type {
12542 general-entity {
12543 node-name: 'e';
12544 text-content: 'f';
12545 }
12546 }
12547 element {
12548 text-content: '<>&' U+0027 '"';
12549 }
12550 }
12551
12552 @@XMLTest:
12553 @@@QName: xp.processed.1.test
12554 @@@DEnt:
12555 @@@@test:value:
12556 <a/>
12557 @@@test:domTree:
12558 document {
12559 all-declarations-processed: true;
12560 element { }
12561 }
12562 @@XMLTest:
12563 @@@QName: xp.processed.2.test
12564 @@@DEnt:
12565 @@@@test:value:
12566 <!DOCTYPE a [
12567 <!ENTITY e "f">
12568 <!ATTLIST a b NMTOKEN " c ">
12569 ]><a>&e;</a>
12570 @@@test:domTree:
12571 document {
12572 document-type {
12573 general-entity {
12574 node-name: 'e';
12575 }
12576 element-type-definition {
12577 node-name: 'a';
12578 attribute-definition {
12579 node-name: 'b';
12580 }
12581 }
12582 }
12583 all-declarations-processed: true;
12584 element {
12585 attribute {
12586 node-name: 'b';
12587 node-value: 'c';
12588 }
12589 text-content: 'f';
12590 }
12591 }
12592 @@XMLTest:
12593 @@@QName: xp.processed.3.test
12594 @@@DEnt:
12595 @@@@test:value:
12596 <!DOCTYPE a [
12597 <!ENTITY % p SYSTEM "p">
12598 %p;
12599 <!ENTITY e "f">
12600 <!ATTLIST a b NMTOKEN " c ">
12601 ]><a d="e">&e;</a>
12602 @@@test:domTree:
12603 document {
12604 document-type { }
12605 all-declarations-processed: false;
12606 element {
12607 attribute {
12608 node-name: 'd';
12609 node-value: 'e';
12610 }
12611 general-entity-reference {
12612 node-name: 'e';
12613 is-expanded: false;
12614 }
12615 }
12616 }
12617 @@@c:erred:
12618 <[[xp|warning-entity-declaration-not-processed]]> { (4, 1)..(4, 20); }
12619 @@@c:erred:
12620 <[[xp|warning-attribute-definition-not-processed]]> { (5, 13)..(5, 31); }
12621 @@XMLTest:
12622 @@@QName: xp.processed.4.test
12623 @@@DEnt:
12624 @@@@test:value:
12625 <?xml version="1.1" standalone="yes"?>
12626 <!DOCTYPE a [
12627 <!ENTITY % p SYSTEM "p">
12628 %p;
12629 <!ENTITY e "f">
12630 <!ATTLIST a b NMTOKEN " c ">
12631 ]><a>&e;</a>
12632 @@@test:domTree:
12633 document {
12634 document-type {
12635 general-entity {
12636 node-name: 'e';
12637 }
12638 element-type-definition {
12639 node-name: 'a';
12640 attribute-definition {
12641 node-name: 'b';
12642 }
12643 }
12644 }
12645 all-declarations-processed: false;
12646 element {
12647 attribute {
12648 node-name: 'b';
12649 node-value: 'c';
12650 }
12651 text-content: 'f';
12652 }
12653 }
12654 @@XMLTest:
12655 @@@QName: xp.processed.5.test
12656 @@@DEnt:
12657 @@@@test:value:
12658 <!DOCTYPE a SYSTEM "p" [
12659 <!ENTITY e "f">
12660 <!ATTLIST a b NMTOKEN " c ">
12661 ]><a>&e;</a>
12662 @@@test:domTree:
12663 document {
12664 document-type {
12665 general-entity {
12666 node-name: 'e';
12667 }
12668 element-type-definition {
12669 node-name: 'a';
12670 attribute-definition {
12671 node-name: 'b';
12672 }
12673 }
12674 }
12675 all-declarations-processed: false;
12676 element {
12677 attribute {
12678 node-name: 'b';
12679 node-value: 'c';
12680 }
12681 text-content: 'f';
12682 }
12683 }
12684
12685 @@XMLTest:
12686 @@@QName: xp.PEs.in.internal.subset.1.test
12687 @@@DEnt:
12688 @@@@test:value:
12689 <!DOCTYPE a [
12690 <!ENTITY % p " ">
12691 <!ENTITY % q "%p;">
12692 ]><a/>
12693 @@@c:erred: <[[xp|wf-pes-in-internal-subset]]> { (3, 15)..(3, 17); }
12694 @@XMLTest:
12695 @@@QName: xp.PEs.in.internal.subset.2.test
12696 @@@DEnt:
12697 @@@@test:value:
12698 <!DOCTYPE a [
12699 <!ENTITY % p " ">
12700 <!ENTITY % q '%p;'>
12701 ]><a/>
12702 @@@c:erred: <[[xp|wf-pes-in-internal-subset]]> { (3, 15)..(3, 17); }
12703
12704 @@XMLTest:
12705 @@@QName: xp.name.pitarget.content.1.0.2.test
12706 @@@DEnt:
12707 @@@@test:value:
12708 <?xml version="1.0"?>
12709 <p>
12710 <?$u3001$u3002?>
12711 </p>
12712 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]> { (3, 3)..(3, 4); }
12713 @@XMLTest:
12714 @@@QName: xp.name.pitarget.content.1.1.2.test
12715 @@@DEnt:
12716 @@@@test:value:
12717 <?xml version="1.1"?>
12718 <p>$
12719 <?$u3001$u3002?>$
12720 </p>
12721 @@@test:domTree:
12722 document {
12723 xml-version: '1.1';
12724 element {
12725 pi {
12726 node-name: U+3001 U+3002;
12727 }
12728 }
12729 }
12730 @@XMLTest:
12731 @@@QName: xp.name.pitarget.content.1.0.3.test
12732 @@@DEnt:
12733 @@@@test:value:
12734 <?xml version="1.0"?>
12735 <p>
12736 <?$u3005b?>
12737 </p>
12738 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]> { (3, 3)..(3, 4); }
12739 @@XMLTest:
12740 @@@QName: xp.name.pitarget.content.1.1.3.test
12741 @@@DEnt:
12742 @@@@test:value:
12743 <?xml version="1.1"?>
12744 <p>$
12745 <?$u3005b?>$
12746 </p>
12747 @@@test:domTree:
12748 document {
12749 xml-version: '1.1';
12750 element {
12751 pi {
12752 node-name: U+3005 'b';
12753 }
12754 }
12755 }
12756 @@XMLTest:
12757 @@@QName: xp.name.pitarget.content.names.1.0.1.test
12758 @@@DEnt:
12759 @@@@test:value:
12760 <?xml version="1.0"?>
12761 <p>
12762 <?a:b?>
12763 </p>
12764 @@@c:erred: <[[xp|nswf-legal-ncname]]> { (3, 3)..(3, 5); }
12765 @@XMLTest:
12766 @@@QName: xp.name.pitarget.content.names.1.1.1.test
12767 @@@DEnt:
12768 @@@@test:value:
12769 <?xml version="1.1"?>
12770 <p>
12771 <?a:b?>
12772 </p>
12773 @@@c:erred: <[[xp|nswf-legal-ncname]]> { (3, 3)..(3, 5); }
12774 @@XMLTest:
12775 @@@QName: xp.name.pitarget.intsubset.1.0.2.test
12776 @@@DEnt:
12777 @@@@test:value:
12778 <?xml version="1.0"?>
12779 <!DOCTYPE p [
12780 <?$u3001$u3002?>
12781 ]><p/>
12782 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]> { (3, 3)..(3, 4); }
12783 @@XMLTest:
12784 @@@QName: xp.name.pitarget.intsubset.1.1.2.test
12785 @@@DEnt:
12786 @@@@test:value:
12787 <?xml version="1.1"?>
12788 <!DOCTYPE p [
12789 <?$u3001$u3002?>
12790 ]><p/>
12791 @@@test:domTree:
12792 document {
12793 xml-version: '1.1';
12794 document-type {
12795 pi {
12796 node-name: U+3001 U+3002;
12797 }
12798 }
12799 element { }
12800 }
12801 @@XMLTest:
12802 @@@QName: xp.name.pitarget.intsubset.1.0.3.test
12803 @@@DEnt:
12804 @@@@test:value:
12805 <?xml version="1.0"?>
12806 <!DOCTYPE p [
12807 <?$u3005b?>
12808 ]><p/>
12809 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]> { (3, 3)..(3, 4); }
12810 @@XMLTest:
12811 @@@QName: xp.name.pitarget.intsubset.1.1.3.test
12812 @@@DEnt:
12813 @@@@test:value:
12814 <?xml version="1.1"?>
12815 <!DOCTYPE p [
12816 <?$u3005b?>
12817 ]><p/>
12818 @@@test:domTree:
12819 document {
12820 xml-version: '1.1';
12821 document-type {
12822 pi {
12823 node-name: U+3005 'b';
12824 }
12825 }
12826 element { }
12827 }
12828 @@XMLTest:
12829 @@@QName: xp.name.pitarget.intsubset.names.1.0.1.test
12830 @@@DEnt:
12831 @@@@test:value:
12832 <?xml version="1.0"?>
12833 <!DOCTYPE p [
12834 <?a:b?>
12835 ]><p/>
12836 @@@c:erred: <[[xp|nswf-legal-ncname]]> { (3, 3)..(3, 5); }
12837 @@XMLTest:
12838 @@@QName: xp.name.pitarget.intsubset.names.1.1.1.test
12839 @@@DEnt:
12840 @@@@test:value:
12841 <?xml version="1.1"?>
12842 <!DOCTYPE p [
12843 <?a:b?>
12844 ]><p/>
12845 @@@c:erred: <[[xp|nswf-legal-ncname]]> { (3, 3)..(3, 5); }
12846 @@XMLTest:
12847 @@@QName: xp.name.doctypedecl.stag.etag.1.0.2.test
12848 @@@DEnt:
12849 @@@@test:value:
12850 <?xml version="1.0"?>
12851 <!DOCTYPE $u3001$u3002>
12852 <$u3001$u3002>
12853 </$u3001$u3002>
12854 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (2, 11)..(2, 12); }
12855 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (3, 2)..(3, 3); }
12856 # @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (4, 3)..(4, 4); }
12857 @@XMLTest:
12858 @@@QName: xp.name.doctypedecl.stag.etag.1.1.2.test
12859 @@@DEnt:
12860 @@@@test:value:
12861 <?xml version="1.1"?>
12862 <!DOCTYPE $u3001$u3002>
12863 <$u3001$u3002>
12864 </$u3001$u3002>
12865 @@@test:domTree:
12866 document {
12867 xml-version: '1.1';
12868 document-type {
12869 node-name: U+3001 U+3002;
12870 }
12871 element {
12872 node-name: U+3001 U+3002;
12873 }
12874 }
12875 @@XMLTest:
12876 @@@QName: xp.name.doctypedecl.stag.etag.1.0.3.test
12877 @@@DEnt:
12878 @@@@test:value:
12879 <?xml version="1.0"?>
12880 <!DOCTYPE $u3005b>
12881 <$u3005b>
12882 </$u3005b>
12883 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (2, 11)..(2, 12); }
12884 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (3, 2)..(3, 3); }
12885 # @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (4, 3)..(4, 4); }
12886 @@XMLTest:
12887 @@@QName: xp.name.doctype.decl.stag.etag.1.1.3.test
12888 @@@DEnt:
12889 @@@@test:value:
12890 <?xml version="1.1"?>
12891 <!DOCTYPE $u3005b>
12892 <$u3005b>
12893 </$u3005b>
12894 @@@test:domTree:
12895 document {
12896 xml-version: '1.1';
12897 document-type {
12898 node-name: U+3005 'b';
12899 }
12900 element {
12901 node-name: U+3005 'b';
12902 }
12903 }
12904 @@XMLTest:
12905 @@@QName: xp.name.doctypedecl.stag.etag.names.1.0.1.test
12906 @@@DEnt:
12907 @@@@test:value:
12908 <?xml version="1.0"?>
12909 <!DOCTYPE a:b>
12910 <a:b xmlns:a="http://a.example/">
12911 </a:b>
12912 @@@test:domTree:
12913 document {
12914 xml-version: '1.0';
12915 document-type {
12916 node-name: 'a:b';
12917 }
12918 element {
12919 prefix: 'a';
12920 local-name: 'b';
12921 namespace-uri: 'http://a.example/';
12922 attribute {
12923 namespace-uri: 'http://www.w3.org/2000/xmlns/';
12924 prefix: 'xmlns';
12925 local-name: 'a';
12926 value: 'http://a.example/';
12927 specified: true;
12928 }
12929 }
12930 }
12931 @@XMLTest:
12932 @@@QName: xp.name.doctypedecl.stag.etag.names.1.1.1.test
12933 @@@DEnt:
12934 @@@@test:value:
12935 <?xml version="1.1"?>
12936 <!DOCTYPE a:b>
12937 <a:b xmlns:a="http://a.example/">
12938 </a:b>
12939 @@@test:domTree:
12940 document {
12941 xml-version: '1.1';
12942 document-type {
12943 node-name: 'a:b';
12944 }
12945 element {
12946 prefix: 'a';
12947 local-name: 'b';
12948 namespace-uri: 'http://a.example/';
12949 attribute {
12950 namespace-uri: 'http://www.w3.org/2000/xmlns/';
12951 prefix: 'xmlns';
12952 local-name: 'a';
12953 specified: true;
12954 }
12955 }
12956 }
12957 @@XMLTest:
12958 @@@QName: xp.name.doctypedecl.stag.etag.names.1.0.2.test
12959 @@@DEnt:
12960 @@@@test:value:
12961 <?xml version="1.0"?>
12962 <!DOCTYPE :ab>
12963 <:ab>
12964 </:ab>
12965 @@@c:erred: <[[xp|nswf-legal-qname]]> { (2, 11)..(2, 13); }
12966 @@@c:erred: <[[xp|nswf-legal-qname]]> { (3, 2)..(3, 4); }
12967 @@@c:erred: <[[xp|nsc-prefix-declared]]> { /* prefix || */ }
12968 @@XMLTest:
12969 @@@QName: xp.name.doctypedecl.stag.etag.names.1.1.2.test
12970 @@@DEnt:
12971 @@@@test:value:
12972 <?xml version="1.1"?>
12973 <!DOCTYPE :ab>
12974 <:ab>
12975 </:ab>
12976 @@@c:erred: <[[xp|nswf-legal-qname]]> { (2, 11)..(2, 13); }
12977 @@@c:erred: <[[xp|nswf-legal-qname]]> { (3, 2)..(3, 4); }
12978 @@@c:erred: <[[xp|nsc-prefix-declared]]> { /* prefix || */ }
12979 @@XMLTest:
12980 @@@QName: xp.name.doctypedecl.stag.etag.names.1.0.3.test
12981 @@@DEnt:
12982 @@@@test:value:
12983 <?xml version="1.0"?>
12984 <!DOCTYPE a:$u3005>
12985 <a:$u3005 xmlns:a="http://a.example/">
12986 </a:$u3005>
12987 @@@c:erred: <[[xp|nswf-legal-qname]]> { (2, 11)..(2, 13); }
12988 @@@c:erred: <[[xp|nswf-legal-qname]]> { (3, 2)..(3, 4); }
12989 @@XMLTest:
12990 @@@QName: xp.name.doctypedecl.stag.etag.names.1.1.3.test
12991 @@@DEnt:
12992 @@@@test:value:
12993 <?xml version="1.1"?>
12994 <!DOCTYPE a:$u3005>
12995 <a:$u3005 xmlns:a="http://a.example/">
12996 </a:$u3005>
12997 @@@test:domTree:
12998 document {
12999 xml-version: '1.1';
13000 document-type {
13001 node-name: 'a:' U+3005;
13002 }
13003 element {
13004 prefix: 'a';
13005 local-name: U+3005;
13006 namespace-uri: 'http://a.example/';
13007 attribute {
13008 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13009 prefix: 'xmlns';
13010 local-name: 'a';
13011 value: 'http://a.example/';
13012 specified: true;
13013 }
13014 }
13015 }
13016 @@XMLTest:
13017 @@@QName: xp.name.doctypedecl.stag.etag.names.1.0.4.test
13018 @@@DEnt:
13019 @@@@test:value:
13020 <?xml version="1.0"?>
13021 <!DOCTYPE a:b>
13022 <a:b>
13023 </a:b>
13024 @@@c:erred: <[[xp|nsc-prefix-declared]]> { (3, 1)..(3, 5); }
13025 @@XMLTest:
13026 @@@QName: xp.name.doctypedecl.stag.etag.names.1.1.4.test
13027 @@@DEnt:
13028 @@@@test:value:
13029 <?xml version="1.1"?>
13030 <!DOCTYPE a:b>
13031 <a:b>
13032 </a:b>
13033 @@@c:erred: <[[xp|nsc-prefix-declared]]> { (3, 1)..(3, 5); }
13034 @@XMLTest:
13035 @@@QName: xp.name.emptyelemtag.1.0.2.test
13036 @@@DEnt:
13037 @@@@test:value:
13038 <?xml version="1.0"?>
13039 <$u3001$u3002/>
13040 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (2, 2)..(2, 3); }
13041 @@XMLTest:
13042 @@@QName: xp.name.emptyelemtag.1.1.2.test
13043 @@@DEnt:
13044 @@@@test:value:
13045 <?xml version="1.1"?>
13046 <$u3001$u3002/>
13047 @@@test:domTree:
13048 document {
13049 xml-version: '1.1';
13050 element {
13051 node-name: U+3001 U+3002;
13052 }
13053 }
13054 @@XMLTest:
13055 @@@QName: xp.name.emptyelemtag.1.0.3.test
13056 @@@DEnt:
13057 @@@@test:value:
13058 <?xml version="1.0"?>
13059 <$u3005b/>
13060 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (2, 2)..(2, 3); }
13061 @@XMLTest:
13062 @@@QName: xp.name.emptyelemtag.1.1.3.test
13063 @@@DEnt:
13064 @@@@test:value:
13065 <?xml version="1.1"?>
13066 <$u3005b/>
13067 @@@test:domTree:
13068 document {
13069 xml-version: '1.1';
13070 element {
13071 node-name: U+3005 'b';
13072 }
13073 }
13074 @@XMLTest:
13075 @@@QName: xp.name.emptyelemtag.names.1.0.1.test
13076 @@@DEnt:
13077 @@@@test:value:
13078 <?xml version="1.0"?>
13079 <a:b/>
13080 @@@c:erred: <[[xp|nsc-prefix-declared]]>{ (2, 1)..(2, 6); }
13081 @@XMLTest:
13082 @@@QName: xp.name.emptyelemtag.names.1.1.1.test
13083 @@@DEnt:
13084 @@@@test:value:
13085 <?xml version="1.1"?>
13086 <a:b/>
13087 @@@c:erred: <[[xp|nsc-prefix-declared]]>{ (2, 1)..(2, 6); }
13088 @@XMLTest:
13089 @@@QName: xp.name.attr.1.0.2.test
13090 @@@DEnt:
13091 @@@@test:value:
13092 <?xml version="1.0"?>
13093 <a $u3001$u3002=""/>
13094 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (2, 4)..(2, 5); }
13095 @@XMLTest:
13096 @@@QName: xp.name.attr.1.1.2.test
13097 @@@DEnt:
13098 @@@@test:value:
13099 <?xml version="1.1"?>
13100 <a $u3001$u3002=""/>
13101 @@@test:domTree:
13102 document {
13103 xml-version: '1.1';
13104 element {
13105 attribute {
13106 node-name: U+3001 U+3002;
13107 }
13108 }
13109 }
13110 @@XMLTest:
13111 @@@QName: xp.name.attr.1.0.3.test
13112 @@@DEnt:
13113 @@@@test:value:
13114 <?xml version="1.0"?>
13115 <a $u3005b=""/>
13116 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (2, 4)..(2, 5); }
13117 @@XMLTest:
13118 @@@QName: xp.name.attr.1.1.3.test
13119 @@@DEnt:
13120 @@@@test:value:
13121 <?xml version="1.1"?>
13122 <a $u3005b=""/>
13123 @@@test:domTree:
13124 document {
13125 xml-version: '1.1';
13126 element {
13127 attribute {
13128 node-name: U+3005 'b';
13129 }
13130 }
13131 }
13132 @@XMLTest:
13133 @@@QName: xp.name.attr.names.1.0.1.test
13134 @@@DEnt:
13135 @@@@test:value:
13136 <?xml version="1.0"?>
13137 <a a:b=""/>
13138 @@@c:erred: <[[xp|nsc-prefix-declared]]>{ (2, 1)..(2, 11); }
13139 @@XMLTest:
13140 @@@QName: xp.name.attr.names.1.1.1.test
13141 @@@DEnt:
13142 @@@@test:value:
13143 <?xml version="1.1"?>
13144 <a a:b=""/>
13145 @@@c:erred: <[[xp|nsc-prefix-declared]]>{ (2, 1)..(2, 11); }
13146 @@XMLTest:
13147 @@@QName: xp.name.attr.names.1.0.2.test
13148 @@@DEnt:
13149 @@@@test:value:
13150 <?xml version="1.0"?>
13151 <a :ab=""/>
13152 @@@c:erred: <[[xp|nswf-legal-qname]]>{ (2, 4)..(2, 6); }
13153 @@@c:erred: <[[xp|nsc-prefix-declared]]> { }
13154 @@XMLTest:
13155 @@@QName: xp.name.attr.names.1.1.2.test
13156 @@@DEnt:
13157 @@@@test:value:
13158 <?xml version="1.1"?>
13159 <a :ab=""/>
13160 @@@c:erred: <[[xp|nswf-legal-qname]]>{ (2, 4)..(2, 6); }
13161 @@@c:erred: <[[xp|nsc-prefix-declared]]> { }
13162 @@XMLTest:
13163 @@@QName: xp.name.attlist.1.0.2.test
13164 @@@DEnt:
13165 @@@@test:value:
13166 <?xml version="1.0"?>
13167 <!DOCTYPE p [
13168 <!NOTATION $u3001$u3002 SYSTEM "n">
13169 <!ATTLIST $u3001$u3002
13170 $u3001$u3002
13171 NOTATION
13172 ($u3001$u3002)
13173 #IMPLIED>
13174 ]><p/>
13175 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (3, 12)..(3, 13); }
13176 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (4, 11)..(4, 12); }
13177 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (5, 1)..(5, 2); }
13178 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (7, 2)..(7, 3); }
13179 @@XMLTest:
13180 @@@QName: xp.name.attlist.1.1.2.test
13181 @@@DEnt:
13182 @@@@test:value:
13183 <?xml version="1.1"?>
13184 <!DOCTYPE p [
13185 <!NOTATION $u3001$u3002 SYSTEM "n">
13186 <!ATTLIST $u3001$u3002
13187 $u3001$u3002
13188 NOTATION
13189 ($u3001$u3002)
13190 #IMPLIED>
13191 ]><p/>
13192 @@@test:domTree:
13193 document {
13194 xml-version: '1.1';
13195 document-type {
13196 notation {
13197 node-name: U+3001 U+3002;
13198 }
13199 element-type-definition {
13200 node-name: U+3001 U+3002;
13201 attribute-definition {
13202 node-name: U+3001 U+3002;
13203 allowed-tokens: DOMStringList (U+3001 U+3002);
13204 }
13205 }
13206 }
13207 element { }
13208 }
13209 @@XMLTest:
13210 @@@QName: xp.name.attlist.1.0.3.test
13211 @@@DEnt:
13212 @@@@test:value:
13213 <?xml version="1.0"?>
13214 <!DOCTYPE p [
13215 <!NOTATION $u3005b SYSTEM "n">
13216 <!ATTLIST $u3005b
13217 $u3005b
13218 NOTATION
13219 ($u3005b)
13220 #IMPLIED>
13221 ]><p/>
13222 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (3, 12)..(3, 13); }
13223 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (4, 11)..(4, 12); }
13224 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (5, 1)..(5, 2); }
13225 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (7, 2)..(7, 3); }
13226 @@XMLTest:
13227 @@@QName: xp.name.attlist.1.1.3.test
13228 @@@DEnt:
13229 @@@@test:value:
13230 <?xml version="1.1"?>
13231 <!DOCTYPE p [
13232 <!NOTATION $u3005b SYSTEM "n">
13233 <!ATTLIST $u3005b
13234 $u3005b
13235 NOTATION
13236 ($u3005b)
13237 #IMPLIED>
13238 ]><p/>
13239 @@@test:domTree:
13240 document {
13241 xml-version: '1.1';
13242 document-type {
13243 notation {
13244 node-name: U+3005 'b';
13245 }
13246 element-type-definition {
13247 node-name: U+3005 'b';
13248 attribute-definition {
13249 node-name: U+3005 'b';
13250 allowed-tokens: DOMStringList (U+3005 'b');
13251 }
13252 }
13253 }
13254 element { }
13255 }
13256 @@XMLTest:
13257 @@@QName: xp.name.attlist.names.1.0.1.test
13258 @@@DEnt:
13259 @@@@test:value:
13260 <?xml version="1.0"?>
13261 <!DOCTYPE p [
13262 <!NOTATION a:b SYSTEM "n">
13263 <!ATTLIST a:b
13264 a:b
13265 NOTATION
13266 (a:b)
13267 #IMPLIED>
13268 ]><p/>
13269 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (3, 12)..(3, 14); }
13270 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (7, 2)..(7, 4); }
13271 @@XMLTest:
13272 @@@QName: xp.name.attlist.names.1.1.1.test
13273 @@@DEnt:
13274 @@@@test:value:
13275 <?xml version="1.1"?>
13276 <!DOCTYPE p [
13277 <!NOTATION a:b SYSTEM "n">
13278 <!ATTLIST a:b
13279 a:b
13280 NOTATION
13281 (a:b)
13282 #IMPLIED>
13283 ]><p/>
13284 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (3, 12)..(3, 14); }
13285 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (7, 2)..(7, 4); }
13286 @@XMLTest:
13287 @@@QName: xp.name.attlist.names.1.0.2.test
13288 @@@DEnt:
13289 @@@@test:value:
13290 <?xml version="1.0"?>
13291 <!DOCTYPE p [
13292 <!NOTATION :ab SYSTEM "n">
13293 <!ATTLIST :ab
13294 :ab
13295 NOTATION
13296 (:ab)
13297 #IMPLIED>
13298 ]><p/>
13299 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (3, 12)..(3, 14); }
13300 @@@c:erred: <[[xp|nswf-legal-qname]]>{ (4, 11)..(4, 13); }
13301 @@@c:erred: <[[xp|nswf-legal-qname]]>{ (5, 1)..(5, 3); }
13302 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (7, 2)..(7, 4); }
13303 @@XMLTest:
13304 @@@QName: xp.name.attlist.names.1.1.2.test
13305 @@@DEnt:
13306 @@@@test:value:
13307 <?xml version="1.1"?>
13308 <!DOCTYPE p [
13309 <!NOTATION :ab SYSTEM "n">
13310 <!ATTLIST :ab
13311 :ab
13312 NOTATION
13313 (:ab)
13314 #IMPLIED>
13315 ]><p/>
13316 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (3, 12)..(3, 14); }
13317 @@@c:erred: <[[xp|nswf-legal-qname]]>{ (4, 11)..(4, 13); }
13318 @@@c:erred: <[[xp|nswf-legal-qname]]>{ (5, 1)..(5, 3); }
13319 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (7, 2)..(7, 4); }
13320 @@XMLTest:
13321 @@@QName: xp.name.gent.1.0.2.test
13322 @@@DEnt:
13323 @@@@test:value:
13324 <?xml version="1.0"?>
13325 <!DOCTYPE p [
13326 <!ENTITY $u3001$u3002 "n">
13327 ]>
13328 <p a="&$u3001$u3002;">
13329 &$u3001$u3002;
13330 </p>
13331 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (3, 10)..(3, 11); }
13332 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (5, 8)..(5, 9); }
13333 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (6, 2)..(6, 3); }
13334 @@XMLTest:
13335 @@@QName: xp.name.ger.1.1.2.test
13336 @@@DEnt:
13337 @@@@test:value:
13338 <?xml version="1.1"?>
13339 <!DOCTYPE p [
13340 <!ENTITY $u3001$u3002 "n">
13341 ]>
13342 <p a="&$u3001$u3002;">$
13343 &$u3001$u3002;$
13344 </p>
13345 @@@test:domTree:
13346 document {
13347 xml-version: '1.1';
13348 document-type {
13349 general-entity {
13350 node-name: U+3001 U+3002;
13351 }
13352 }
13353 element {
13354 attribute {
13355 node-name: 'a';
13356 general-entity-reference {
13357 node-name: U+3001 U+3002;
13358 }
13359 }
13360 general-entity-reference {
13361 node-name: U+3001 U+3002;
13362 }
13363 }
13364 }
13365 @@XMLTest:
13366 @@@QName: xp.name.ger.1.0.3.test
13367 @@@DEnt:
13368 @@@@test:value:
13369 <?xml version="1.0"?>
13370 <!DOCTYPE p [
13371 <!ENTITY $u3005b "n">
13372 ]>
13373 <p a="&$u3005b;">
13374 &$u3005b;
13375 </p>
13376 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (3, 10)..(3, 11); }
13377 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (5, 8)..(5, 9); }
13378 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (6, 2)..(6, 3); }
13379 @@XMLTest:
13380 @@@QName: xp.name.ger.1.1.3.test
13381 @@@DEnt:
13382 @@@@test:value:
13383 <?xml version="1.1"?>
13384 <!DOCTYPE p [
13385 <!ENTITY $u3005b "n">
13386 ]>
13387 <p a="&$u3005b;">$
13388 &$u3005b;$
13389 </p>
13390 @@@test:domTree:
13391 document {
13392 xml-version: '1.1';
13393 document-type {
13394 general-entity {
13395 node-name: U+3005 'b';
13396 }
13397 }
13398 element {
13399 attribute {
13400 node-name: 'a';
13401 general-entity-reference {
13402 node-name: U+3005 'b';
13403 }
13404 }
13405 general-entity-reference {
13406 node-name: U+3005 'b';
13407 }
13408 }
13409 }
13410 @@XMLTest:
13411 @@@QName: xp.name.ger.names.1.0.1.test
13412 @@@DEnt:
13413 @@@@test:value:
13414 <?xml version="1.0"?>
13415 <!DOCTYPE p [
13416 <!ENTITY a:b "n">
13417 ]>
13418 <p a="&a:b;">
13419 &a:b;
13420 </p>
13421 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (3, 10)..(3, 12); }
13422 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (5, 8)..(5, 10); }
13423 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (6, 2)..(6, 4); }
13424 @@XMLTest:
13425 @@@QName: xp.name.ger.names.1.1.1.test
13426 @@@DEnt:
13427 @@@@test:value:
13428 <?xml version="1.1"?>
13429 <!DOCTYPE p [
13430 <!ENTITY a:b "n">
13431 ]>
13432 <p a="&a:b;">
13433 &a:b;
13434 </p>
13435 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (3, 10)..(3, 12); }
13436 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (5, 8)..(5, 10); }
13437 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (6, 2)..(6, 4); }
13438 @@XMLTest:
13439 @@@QName: xp.name.ndata.1.0.2.test
13440 @@@DEnt:
13441 @@@@test:value:
13442 <?xml version="1.0"?>
13443 <!DOCTYPE p [
13444 <!NOTATION $u3001$u3002 SYSTEM "n">
13445 <!ENTITY e SYSTEM "s" NDATA $u3001$u3002>
13446 ]><p/>
13447 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (3, 12)..(3, 13); }
13448 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (4, 29)..(4, 30); }
13449 @@XMLTest:
13450 @@@QName: xp.name.ndata.1.1.2.test
13451 @@@DEnt:
13452 @@@@test:value:
13453 <?xml version="1.1"?>
13454 <!DOCTYPE p [
13455 <!NOTATION $u3001$u3002 SYSTEM "n">
13456 <!ENTITY e SYSTEM "s" NDATA $u3001$u3002>
13457 ]><p/>
13458 @@@test:domTree:
13459 document {
13460 xml-version: '1.1';
13461 document-type {
13462 notation {
13463 node-name: U+3001 U+3002;
13464 }
13465 general-entity {
13466 node-name: 'e';
13467 notation-name: U+3001 U+3002;
13468 }
13469 }
13470 element { }
13471 }
13472 @@XMLTest:
13473 @@@QName: xp.name.ndata.1.0.3.test
13474 @@@DEnt:
13475 @@@@test:value:
13476 <?xml version="1.0"?>
13477 <!DOCTYPE p [
13478 <!NOTATION $u3005b SYSTEM "n">
13479 <!ENTITY e SYSTEM "s" NDATA $u3005b>
13480 ]><p/>
13481 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (3, 12)..(3, 13); }
13482 @@@c:erred: <[[xp|wf-invalid-character-in-node-name]]>{ (4, 29)..(4, 30); }
13483 @@XMLTest:
13484 @@@QName: xp.name.ndata.1.1.3.test
13485 @@@DEnt:
13486 @@@@test:value:
13487 <?xml version="1.1"?>
13488 <!DOCTYPE p [
13489 <!NOTATION $u3005b SYSTEM "n">
13490 <!ENTITY e SYSTEM "s" NDATA $u3005b>
13491 ]><p/>
13492 @@@test:domTree:
13493 document {
13494 xml-version: '1.1';
13495 document-type {
13496 notation {
13497 node-name: U+3005 'b';
13498 }
13499 general-entity {
13500 node-name: 'e';
13501 notation-name: U+3005 'b';
13502 }
13503 }
13504 element { }
13505 }
13506 @@XMLTest:
13507 @@@QName: xp.name.ndata.names.1.0.1.test
13508 @@@DEnt:
13509 @@@@test:value:
13510 <?xml version="1.0"?>
13511 <!DOCTYPE p [
13512 <!NOTATION a:b SYSTEM "n">
13513 <!ENTITY e SYSTEM "s" NDATA a:b>
13514 ]><p/>
13515 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (3, 12)..(3, 14); }
13516 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (4, 29)..(4, 31); }
13517 @@XMLTest:
13518 @@@QName: xp.name.ndata.names.1.1.1.test
13519 @@@DEnt:
13520 @@@@test:value:
13521 <?xml version="1.1"?>
13522 <!DOCTYPE p [
13523 <!NOTATION a:b SYSTEM "n">
13524 <!ENTITY e SYSTEM "s" NDATA a:b>
13525 ]><p/>
13526 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (3, 12)..(3, 14); }
13527 @@@c:erred: <[[xp|nswf-legal-ncname]]>{ (4, 29)..(4, 31); }
13528
13529 @@enImplNote:
13530 @@@ddid: wf-invalid-character-in-node-name
13531 @@@@:
13532 {ISSUE::
13533 {P:: Tests required for:
13534
13535 - <CODE::Name> in element type declaration
13536
13537 - <CODE::Name> in model group
13538
13539 - <CODE::Name> in parameter entity declaration
13540
13541 - <CODE::Name> in parameter entity reference
13542
13543 }
13544 }
13545
13546 @@XMLTest:
13547 @@@QName: xp.NOTATION.1.test
13548 @@@DEnt:
13549 @@@@test:value:
13550 <!DOCTYPE p [
13551 <!NOTATION n SYSTEM "m">
13552 ]><p/>
13553 @@@test:domTree:
13554 document {
13555 document-type {
13556 notation {
13557 node-name: 'n';
13558 public-id: null;
13559 system-id: 'm';
13560 }
13561 }
13562 element { }
13563 }
13564 @@XMLTest:
13565 @@@QName: xp.NOTATION.2.test
13566 @@@DEnt:
13567 @@@@test:value:
13568 <!DOCTYPE p [
13569 <!NOTATION n PUBLIC "m">
13570 ]><p/>
13571 @@@test:domTree:
13572 document {
13573 document-type {
13574 notation {
13575 node-name: 'n';
13576 system-id: null;
13577 public-id: 'm';
13578 }
13579 }
13580 element { }
13581 }
13582 @@XMLTest:
13583 @@@QName: xp.NOTATION.3.test
13584 @@@DEnt:
13585 @@@@test:value:
13586 <!DOCTYPE p [
13587 <!NOTATION n PUBLIC "m" "l">
13588 ]><p/>
13589 @@@test:domTree:
13590 document {
13591 document-type {
13592 notation {
13593 node-name: 'n';
13594 public-id: 'm';
13595 system-id: 'l';
13596 }
13597 }
13598 element { }
13599 }
13600 @@XMLTest:
13601 @@@QName: xp.NOTATION.4.test
13602 @@@DEnt:
13603 @@@@test:value:
13604 <!DOCTYPE p [
13605 <!NOTATION n SYSTEM "m">
13606 <!NOTATION n SYSTEM "l">
13607 ]><p/>
13608 @@@c:erred: <[[xp|vc-unique-notation-name]]> { (3, 1)..(3, 24); }
13609 @@@test:domTree:
13610 document {
13611 document-type {
13612 notation {
13613 node-name: 'n';
13614 system-id: 'm';
13615 }
13616 }
13617 element { }
13618 }
13619
13620 @@XMLTest:
13621 @@@QName: xp.names.1.test
13622 @@@DEnt:
13623 @@@@test:value:
13624 <p xmlns="http://1.example/" a="b"/>
13625 @@@test:domTree:
13626 document {
13627 element {
13628 prefix: null;
13629 local-name: 'p';
13630 namespace-uri: 'http://1.example/';
13631 attribute {
13632 prefix: null;
13633 local-name: 'xmlns';
13634 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13635 specified: true;
13636 }
13637 attribute {
13638 prefix: null;
13639 local-name: 'a';
13640 specified: true;
13641 }
13642 }
13643 }
13644 @@XMLTest:
13645 @@@QName: xp.names.2.test
13646 @@@DEnt:
13647 @@@@test:value:
13648 <p xmlns:a="http://1.example/" a="b" a:a="c"/>
13649 @@@test:domTree:
13650 document {
13651 element {
13652 prefix: null;
13653 local-name: 'p';
13654 namespace-uri: null;
13655 attribute {
13656 prefix: 'xmlns';
13657 local-name: 'a';
13658 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13659 specified: true;
13660 }
13661 attribute {
13662 prefix: null;
13663 local-name: 'a';
13664 specified: true;
13665 }
13666 attribute {
13667 prefix: 'a';
13668 local-name: 'a';
13669 namespace-uri: 'http://1.example/';
13670 specified: true;
13671 }
13672 }
13673 }
13674 @@XMLTest:
13675 @@@QName: xp.names.3.test
13676 @@@DEnt:
13677 @@@@test:value:
13678 <a:p xmlns:a="http://1.example/" a="b" a:a="c"/>
13679 @@@test:domTree:
13680 document {
13681 element {
13682 prefix: 'a';
13683 local-name: 'p';
13684 namespace-uri: 'http://1.example/';
13685 attribute {
13686 prefix: 'xmlns';
13687 local-name: 'a';
13688 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13689 specified: true;
13690 }
13691 attribute {
13692 prefix: null;
13693 local-name: 'a';
13694 specified: true;
13695 }
13696 attribute {
13697 prefix: 'a';
13698 local-name: 'a';
13699 namespace-uri: 'http://1.example/';
13700 specified: true;
13701 }
13702 }
13703 }
13704 @@XMLTest:
13705 @@@QName: xp.names.5.test
13706 @@@DEnt:
13707 @@@@test:value:
13708 <p xmlns:a="http://1.example/">$
13709 <a:q/>$
13710 </p>
13711 @@@test:domTree:
13712 document {
13713 element {
13714 prefix: null;
13715 local-name: 'p';
13716 namespace-uri: null;
13717 attribute {
13718 prefix: 'xmlns';
13719 local-name: 'a';
13720 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13721 specified: true;
13722 }
13723 element {
13724 prefix: 'a';
13725 local-name: 'q';
13726 namespace-uri: 'http://1.example/';
13727 }
13728 }
13729 }
13730 @@XMLTest:
13731 @@@QName: xp.names.6.test
13732 @@@DEnt:
13733 @@@@test:value:
13734 <p xmlns:a="http://1.example/">$
13735 <q a:b="c"/>$
13736 </p>
13737 @@@test:domTree:
13738 document {
13739 element {
13740 prefix: null;
13741 local-name: 'p';
13742 namespace-uri: null;
13743 attribute {
13744 prefix: 'xmlns';
13745 local-name: 'a';
13746 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13747 specified: true;
13748 }
13749 element {
13750 prefix: null;
13751 local-name: 'q';
13752 namespace-uri: null;
13753 attribute {
13754 prefix: 'a';
13755 local-name: 'b';
13756 namespace-uri: 'http://1.example/';
13757 specified: true;
13758 }
13759 }
13760 }
13761 }
13762 @@XMLTest:
13763 @@@QName: xp.names.7.test
13764 @@@DEnt:
13765 @@@@test:value:
13766 <p xmlns:a="http://1.example/">$
13767 <q a:b="c" xmlns:a="http://2.example/"/>$
13768 </p>
13769 @@@test:domTree:
13770 document {
13771 element {
13772 prefix: null;
13773 local-name: 'p';
13774 namespace-uri: null;
13775 attribute {
13776 prefix: 'xmlns';
13777 local-name: 'a';
13778 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13779 specified: true;
13780 }
13781 element {
13782 prefix: null;
13783 local-name: 'q';
13784 namespace-uri: null;
13785 attribute {
13786 prefix: 'a';
13787 local-name: 'b';
13788 namespace-uri: 'http://2.example/';
13789 specified: true;
13790 }
13791 attribute {
13792 prefix: 'xmlns';
13793 local-name: 'a';
13794 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13795 specified: true;
13796 }
13797 }
13798 }
13799 }
13800
13801 @@XMLTest:
13802 @@@QName: xp.names.undeclare.1.test
13803 @@@DEnt:
13804 @@@@test:value:
13805 <p xmlns="http://1.example/">$
13806 <q xmlns="">$
13807 <r xmlns="http://2.example/"/>$
13808 </q>$
13809 </p>
13810 @@@test:domTree:
13811 document {
13812 element {
13813 prefix: null;
13814 local-name: 'p';
13815 namespace-uri: 'http://1.example/';
13816 attribute {
13817 prefix: null;
13818 local-name: 'xmlns';
13819 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13820 specified: true;
13821 }
13822 element {
13823 prefix: null;
13824 local-name: 'q';
13825 namespace-uri: null;
13826 attribute {
13827 prefix: null;
13828 local-name: 'xmlns';
13829 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13830 specified: true;
13831 }
13832 element {
13833 prefix: null;
13834 local-name: 'r';
13835 namespace-uri: 'http://2.example/';
13836 attribute {
13837 prefix: null;
13838 local-name: 'xmlns';
13839 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13840 specified: true;
13841 }
13842 }
13843 }
13844 }
13845 }
13846
13847 @@XMLTest:
13848 @@@QName: xp.names.undeclare.1.0.1.test
13849 @@@DEnt:
13850 @@@@test:value:
13851 <?xml version="1.0"?>
13852 <a:p xmlns:a="http://1.example/">$
13853 <q xmlns:a="">$
13854 <a:r xmlns:a="http://2.example/"/>$
13855 </q>$
13856 </a:p>
13857 @@@c:erred: <[[xp|nswf-empty-namespace-name]]> { (2, 34)..(2, 47); }
13858 @@XMLTest:
13859 @@@QName: xp.names.undeclare.1.1.1.test
13860 @@@DEnt:
13861 @@@@test:value:
13862 <?xml version="1.1"?>
13863 <a:p xmlns:a="http://1.example/">$
13864 <q xmlns:a="">$
13865 <a:r xmlns:a="http://2.example/"/>$
13866 </q>$
13867 </a:p>
13868 @@@test:domTree:
13869 document {
13870 element {
13871 prefix: 'a';
13872 local-name: 'p';
13873 namespace-uri: 'http://1.example/';
13874 attribute {
13875 prefix: 'xmlns';
13876 local-name: 'a';
13877 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13878 specified: true;
13879 }
13880 element {
13881 prefix: null;
13882 local-name: 'q';
13883 namespace-uri: null;
13884 attribute {
13885 prefix: 'xmlns';
13886 local-name: 'a';
13887 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13888 specified: true;
13889 }
13890 element {
13891 prefix: 'a';
13892 local-name: 'r';
13893 namespace-uri: 'http://2.example/';
13894 attribute {
13895 prefix: 'xmlns';
13896 local-name: 'a';
13897 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13898 specified: true;
13899 }
13900 }
13901 }
13902 }
13903 }
13904 @@XMLTest:
13905 @@@QName: xp.names.undeclare.1.1.2.test
13906 @@@DEnt:
13907 @@@@test:value:
13908 <?xml version="1.1"?>
13909 <a:p xmlns:a="http://1.example/">$
13910 <q xmlns:a="">$
13911 <a:r/>$
13912 </q>$
13913 </a:p>
13914 @@@c:erred: <[[xp|nsc-prefix-declared]]> { (2, 48)..(2, 53); }
13915
13916 @@XMLTest:
13917 @@@QName: xp.names.xml.prefix.1.test
13918 @@@DEnt:
13919 @@@@test:value:
13920 <a xmlns:xml="http://www.w3.org/XML/1998/namespace"/>
13921 @@@test:domTree:
13922 document {
13923 element {
13924 attribute {
13925 prefix: 'xmlns';
13926 local-name: 'xml';
13927 namespace-uri: 'http://www.w3.org/2000/xmlns/';
13928 }
13929 }
13930 }
13931 @@XMLTest:
13932 @@@QName: xp.names.xml.prefix.2.test
13933 @@@DEnt:
13934 @@@@test:value:
13935 <a xmlns:xml="a"/>
13936 @@@c:erred: <[[xp|nsc-reserved-prefix-xml]]> { (1, 1)..(1, 18); }
13937 @@XMLTest:
13938 @@@QName: xp.names.xml.prefix.3.test
13939 @@@DEnt:
13940 @@@@test:value:
13941 <a xmlns:a="http://www.w3.org/XML/1998/namespace"
13942 />
13943 @@@c:erred: <[[xp|nsc-reserved-namespace-name-xml]]> { (1, 1)..(2, 2); }
13944 @@XMLTest:
13945 @@@QName: xp.names.xml.prefix.4.test
13946 @@@DEnt:
13947 @@@@test:value:
13948 <a xml:lang="ja"/>
13949 @@@test:domTree:
13950 document {
13951 element {
13952 attribute {
13953 prefix: 'xml';
13954 local-name: 'lang';
13955 namespace-uri: 'http://www.w3.org/XML/1998/namespace';
13956 }
13957 }
13958 }
13959
13960 @@XMLTest:
13961 @@@QName: xp.names.prefix.declared.1.test
13962 @@@DEnt:
13963 @@@@test:value:
13964 <!DOCTYPE a [
13965 <!ATTLIST a
13966 b:c CDATA "d"
13967 >
13968 ]>
13969 <a/>
13970 @@@c:erred: <[[xp|nsc-prefix-declared]]> { (6, 1)..(6, 4); }
13971
13972 @@XMLTest:
13973 @@@QName: xp.names.xmlns.reserved.1.test
13974 @@@DEnt:
13975 @@@@test:value:
13976 <a xmlns:xmlns="http://www.w3.org/2000/xmlns/"
13977 />
13978 @@@c:erred: <[[xp|nsc-reserved-prefix-xmlns]]> { (1, 1)..(2, 2); }
13979 @@@c:erred: <[[xp|nsc-reserved-namespace-name-xmlns]]> { (1, 1)..(2, 2); }
13980 @@XMLTest:
13981 @@@QName: xp.names.xmlns.reserved.2.test
13982 @@@DEnt:
13983 @@@@test:value:
13984 <a xmlns:xmlns="a"
13985 />
13986 @@@c:erred: <[[xp|nsc-reserved-prefix-xmlns]]> { (1, 1)..(2, 2); }
13987 @@XMLTest:
13988 @@@QName: xp.names.xmlns.reserved.3.test
13989 @@@DEnt:
13990 @@@@test:value:
13991 <a xmlns:a="http://www.w3.org/2000/xmlns/"
13992 />
13993 @@@c:erred: <[[xp|nsc-reserved-namespace-name-xmlns]]> { (1, 1)..(2, 2); }
13994
13995 @@XMLTest:
13996 @@@QName: xp.names.default.1.test
13997 @@@DEnt:
13998 @@@@test:value:
13999 <!DOCTYPE a [
14000 <!ATTLIST a
14001 xmlns CDATA "http://1.example/">
14002 ]>
14003 <a/>
14004 @@@test:domTree:
14005 document {
14006 document-type {
14007 element-type-definition {
14008 node-name: 'a';
14009 attribute-definition {
14010 node-name: 'xmlns';
14011 node-value: 'http://1.example/';
14012 }
14013 }
14014 }
14015 element {
14016 prefix: null;
14017 local-name: 'a';
14018 namespace-uri: 'http://1.example/';
14019 attribute {
14020 prefix: null;
14021 local-name: 'xmlns';
14022 namespace-uri: 'http://www.w3.org/2000/xmlns/';
14023 value: 'http://1.example/';
14024 specified: false;
14025 }
14026 }
14027 }
14028 @@XMLTest:
14029 @@@QName: xp.names.default.2.test
14030 @@@DEnt:
14031 @@@@test:value:
14032 <!DOCTYPE a [
14033 <!ATTLIST a
14034 xmlns CDATA "http://1.example/">
14035 ]>
14036 <a xmlns="http://2.example/"/>
14037 @@@test:domTree:
14038 document {
14039 document-type {
14040 element-type-definition {
14041 node-name: 'a';
14042 attribute-definition {
14043 node-name: 'xmlns';
14044 node-value: 'http://1.example/';
14045 }
14046 }
14047 }
14048 element {
14049 prefix: null;
14050 local-name: 'a';
14051 namespace-uri: 'http://2.example/';
14052 attribute {
14053 prefix: null;
14054 local-name: 'xmlns';
14055 namespace-uri: 'http://www.w3.org/2000/xmlns/';
14056 value: 'http://2.example/';
14057 specified: true;
14058 }
14059 }
14060 }
14061 @@XMLTest:
14062 @@@QName: xp.names.default.3.test
14063 @@@DEnt:
14064 @@@@test:value:
14065 <!DOCTYPE b:a [
14066 <!ATTLIST b:a
14067 xmlns:b CDATA "http://1.example/">
14068 ]>
14069 <b:a/>
14070 @@@test:domTree:
14071 document {
14072 document-type {
14073 element-type-definition {
14074 node-name: 'b:a';
14075 attribute-definition {
14076 node-name: 'xmlns:b';
14077 node-value: 'http://1.example/';
14078 }
14079 }
14080 }
14081 element {
14082 prefix: 'b';
14083 local-name: 'a';
14084 namespace-uri: 'http://1.example/';
14085 attribute {
14086 prefix: 'xmlns';
14087 local-name: 'b';
14088 namespace-uri: 'http://www.w3.org/2000/xmlns/';
14089 value: 'http://1.example/';
14090 specified: false;
14091 }
14092 }
14093 }
14094 @@XMLTest:
14095 @@@QName: xp.names.default.4.test
14096 @@@DEnt:
14097 @@@@test:value:
14098 <!DOCTYPE b:a [
14099 <!ATTLIST b:a
14100 xmlns:b CDATA "http://1.example/">
14101 ]>
14102 <b:a xmlns:b="http://2.example/"/>
14103 @@@test:domTree:
14104 document {
14105 document-type {
14106 element-type-definition {
14107 node-name: 'b:a';
14108 attribute-definition {
14109 node-name: 'xmlns:b';
14110 node-value: 'http://1.example/';
14111 }
14112 }
14113 }
14114 element {
14115 prefix: 'b';
14116 local-name: 'a';
14117 namespace-uri: 'http://2.example/';
14118 attribute {
14119 prefix: 'xmlns';
14120 local-name: 'b';
14121 namespace-uri: 'http://www.w3.org/2000/xmlns/';
14122 value: 'http://2.example/';
14123 specified: true;
14124 }
14125 }
14126 }
14127 @@XMLTest:
14128 @@@QName: xp.names.default.5.test
14129 @@@DEnt:
14130 @@@@test:value:
14131 <!DOCTYPE a [
14132 <!ATTLIST a
14133 xmlns:b CDATA "http://1.example/"
14134 b:c CDATA "http://1.example/">
14135 ]>
14136 <a xmlns:b="http://2.example/"/>
14137 @@@test:domTree:
14138 document {
14139 document-type {
14140 element-type-definition {
14141 node-name: 'a';
14142 attribute-definition {
14143 node-name: 'xmlns:b';
14144 text-content: 'http://1.example/';
14145 }
14146 attribute-definition {
14147 node-name: 'b:c';
14148 text-content: 'http://1.example/';
14149 }
14150 }
14151 }
14152 element {
14153 prefix: null;
14154 local-name: 'a';
14155 namespace-uri: null;
14156 attribute {
14157 prefix: 'xmlns';
14158 local-name: 'b';
14159 namespace-uri: 'http://www.w3.org/2000/xmlns/';
14160 value: 'http://2.example/';
14161 specified: true;
14162 }
14163 attribute {
14164 prefix: 'b';
14165 local-name: 'c';
14166 namespace-uri: 'http://2.example/';
14167 specified: false;
14168 }
14169 }
14170 }
14171
14172 @@XMLTest:
14173 @@@QName: xp.names.unique.1.test
14174 @@@DEnt:
14175 @@@@test:value:
14176 <a
14177 xmlns:b="http://2.example/"
14178 xmlns:c="http://2.example/"
14179 b:d=""
14180 c:d=""
14181 />
14182 @@@c:erred: <[[xp|nswf-unique-att-spec-expanded-name]]> { (1, 1)..(6, 2); }
14183 @@XMLTest:
14184 @@@QName: xp.names.unique.2.test
14185 @@@DEnt:
14186 @@@@test:value:
14187 <!DOCTYPE a [
14188 <!ATTLIST a
14189 c:d CDATA ""
14190 >
14191 ]>
14192 <a
14193 xmlns:b="http://2.example/"
14194 xmlns:c="http://2.example/"
14195 b:d=""
14196 />
14197 @@@c:erred: <[[xp|nswf-unique-att-spec-expanded-name]]> { (6, 1)..(10, 2);}
14198 @@XMLTest:
14199 @@@QName: xp.names.unique.3.test
14200 @@@DEnt:
14201 @@@@test:value:
14202 <!DOCTYPE a [
14203 <!ATTLIST a
14204 c:d CDATA "value1"
14205 >
14206 ]>
14207 <a
14208 xmlns:c="http://2.example/"
14209 c:d="value2"
14210 />
14211 @@@test:domTree:
14212 document {
14213 document-type { }
14214 element {
14215 attribute {
14216 prefix: 'xmlns';
14217 local-name: 'c';
14218 namespace-uri: 'http://www.w3.org/2000/xmlns/';
14219 specified: true;
14220 }
14221 attribute {
14222 prefix: 'c';
14223 local-name: 'd';
14224 namespace-uri: 'http://2.example/';
14225 value: 'value2';
14226 specified: true;
14227 }
14228 }
14229 }
14230
14231 @@XMLTest:
14232 @@@QName: xp.names.normalize.1.test
14233 @@@DEnt:
14234 @@@@test:value:
14235 <!DOCTYPE a [
14236 <!ATTLIST a
14237 xmlns NMTOKEN #IMPLIED
14238 >
14239 ]>
14240 <a xmlns=" "/>
14241 @@@test:domTree:
14242 document {
14243 document-type { }
14244 element {
14245 namespace-uri: null;
14246 prefix: null;
14247 local-name: 'a';
14248 }
14249 }
14250 @@XMLTest:
14251 @@@QName: xp.names.normalize.2.test
14252 @@@DEnt:
14253 @@@@test:value:
14254 <!DOCTYPE a [
14255 <!ATTLIST a
14256 xmlns NMTOKEN #IMPLIED
14257 >
14258 ]>
14259 <a xmlns=" about:blank "/>
14260 @@@test:domTree:
14261 document {
14262 document-type { }
14263 element {
14264 namespace-uri: 'about:blank';
14265 prefix: null;
14266 local-name: 'a';
14267 }
14268 }
14269 @@XMLTest:
14270 @@@QName: xp.names.normalize.3.test
14271 @@@DEnt:
14272 @@@@test:value:
14273 <!DOCTYPE a:a [
14274 <!ATTLIST a:a
14275 xmlns:a NMTOKEN #IMPLIED
14276 >
14277 ]>
14278 <a:a xmlns:a=" about:blank "/>
14279 @@@test:domTree:
14280 document {
14281 document-type { }
14282 element {
14283 namespace-uri: 'about:blank';
14284 prefix: 'a';
14285 local-name: 'a';
14286 }
14287 }
14288
14289 @@PerlDef:
14290 my $impl = $Message::DOM::ImplementationRegistry->get_implementation ({
14291 'Core' => '3.0',
14292 'XML' => '3.0',
14293 'XMLVersion' => ['1.0', '1.1'],
14294 });
14295 my $parser = <Class::ManakaiXMLParser>->new ($impl);
14296
14297 for my $test_data (@$TestData) {
14298 $test->start_new_test ($test_data->{uri});
14299 my $doc_ent = $test_data->{entity}->{$test_data->{root_uri}};
14300 my $not_ok;
14301
14302 $parser->dom_config->set_parameter ('error-handler' => sub ($$) {
14303 my (undef, $err) = @_;
14304 my $err_type = $err->type;
14305 if ($test_data->{dom_error}->{$err_type}) {
14306 $test->assert_error_equals
14307 (actual_value => $err,
14308 expected_hash => shift @{$test_data->{dom_error}
14309 ->{$err_type}});
14310 } else { # Uncatched error
14311 warn $err;
14312 unless ($err->severity == <C::c|DOMError.SEVERITY_WARNING>) {
14313 $test->failure_comment ('Unexpected error |'.$err->type.'|');
14314 $not_ok = true;
14315 }
14316 }
14317 return true; # continue as far as possible
14318 });
14319
14320 if ($test_data->{dom_tree}) { # Successful test
14321 try {
14322 my $doc = $parser->parse_string ($doc_ent->{<H::test:value>});
14323 $test->assert_dom_tree_equals
14324 (actual_value => $doc,
14325 expected_hash => $test_data->{dom_tree});
14326 for (values %{$test_data->{dom_error}||{}}) {
14327 if (@$_) {
14328 $test->failure_comment
14329 (@$_.' |DOMError|s of type |'.
14330 $_->[0]->{type}->{value}.'| are not reported');
14331 $not_ok = true;
14332 }
14333 }
14334 $not_ok ? $test->not_ok : $test->ok;
14335 } catch Message::Util::IF::DTException with {
14336 #
14337 } catch Message::DOM::IF::LSException with {
14338 # not_ok
14339 } otherwise {
14340 my $err = shift;
14341 warn $err;
14342 $test->not_ok;
14343 };
14344 } else {
14345 try {
14346 my $doc = $parser->parse_string ($doc_ent->{<H::test:value>});
14347 } catch Message::Util::IF::DTException with {
14348 #
14349 } catch Message::DOM::IF::LSException with {
14350 #
14351 } otherwise {
14352 my $err = shift;
14353 warn $err;
14354 $test->not_ok;
14355 };
14356 for (values %{$test_data->{dom_error}||{}}) {
14357 if (@$_) {
14358 $test->failure_comment
14359 (@$_.' |DOMError|s of type |'.
14360 $_->[0]->{type}->{value}.'| are not reported');
14361 $not_ok = true;
14362 }
14363 }
14364 $not_ok ? $test->not_ok : $test->ok;
14365 }
14366 }
14367
14368 @ResourceDef:
14369 @@QName: getEmptyEntityState
14370 @@rdf:type: DISPerl|InlineCode
14371 @@ForCheck: ManakaiDOM|ForClass
14372 @@PerlDef:
14373 {reptxt => \'', line => 1, column => 1, pos => 0,
14374 is_externally_declared => true, name => $name}
14375
14376 @ResourceDef:
14377 @@QName: getCopyOfEntityState
14378 @@rdf:type: DISPerl|InlineCode
14379 @@ForCheck: ManakaiDOM|ForClass
14380 @@PerlDef:
14381 {%{$self->{$entity_type}->{$entity_name}},
14382 line => 1, column => 1, pos => 0}
14383 ##ManakaiXMLParser
14384
14385 ElementTypeBinding:
14386 @Name: XMLTests
14387 @ElementType:
14388 dis:ResourceDef
14389 @ShadowContent:
14390 @@ForCheck: ManakaiDOM|ForClass
14391 @@rdf:type: test|ParserTestSet
14392
14393 ElementTypeBinding:
14394 @Name: XMLTest
14395 @ElementType:
14396 dis:ResourceDef
14397 @ShadowContent:
14398 @@ForCheck: ManakaiDOM|ForClass
14399 @@rdf:type: test|ParserTest
14400
14401 ElementTypeBinding:
14402 @Name: DEnt
14403 @ElementType:
14404 dis:ResourceDef
14405 @ShadowContent:
14406 @@rdf:type: test|RootEntity
14407
14408 ElementTypeBinding:
14409 @Name: Ent
14410 @ElementType:
14411 dis:ResourceDef
14412 @ShadowContent:
14413 @@rdf:type: test|Entity
14414
14415 ResourceDef:
14416 @QName: xp|get-location-from-token
14417 @rdf:type: DISPerl|BlockCode
14418 @enDesc:
14419 Creates a <IF::DOMCore:DOMLocator> object from a token.
14420 @PerlDef:
14421 my $__d = $token->{type} ne '#EOF'
14422 ? $token->{location}->{char_d}
14423 : 0;
14424 $__d -= $token->{location_d} if $token->{location_d};
14425 $result = {
14426 utf32_offset => $token->{location}->{pos} - $__d,
14427 line_number => $token->{location}->{line},
14428 column_number => $token->{location}->{column} - $__d,
14429 };
14430 $result->{utf32_offset} = 0 if $result->{utf32_offset} < 0;
14431 $result->{column_number} = 0 if $result->{column_number} < 0;
14432 ## 0 or 1, which should be?
14433 @For: ManakaiDOM|ManakaiDOM3
14434
14435 ElementTypeBinding:
14436 @Name: RuleDef
14437 @ElementType:
14438 dis:ResourceDef
14439 @ShadowContent:
14440 @@ForCheck: ManakaiDOM|ForClass
14441 @@rdf:type: Muf2003|RuleDefClass
14442
14443 ElementTypeBinding:
14444 @Name: RuleParam
14445 @ElementType:
14446 dis:ResourceDef
14447 @ShadowContent:
14448 @@rdf:type: Muf2003|RuleParameter
14449
14450 ElementTypeBinding:
14451 @Name: enImplNote
14452 @ElementType:
14453 dis:ImplNote
14454 @ShadowContent:
14455 @@lang:en
14456
14457 ElementTypeBinding:
14458 @Name: WFErrDef
14459 @ElementType:
14460 dis:ResourceDef
14461 @ShadowContent:
14462 @@rdf:type: DOMCore|DOMErrorType
14463 @@For: ManakaiDOM|DOM3
14464 @@ecore:textFormatter: ManakaiXMLParserExceptionFormatter
14465 @@c:severity: c|SEVERITY_FATAL_ERROR
14466
14467 ElementTypeBinding:
14468 @Name: FatalErrDef
14469 @ElementType:
14470 dis:ResourceDef
14471 @ShadowContent:
14472 @@rdf:type: DOMCore|DOMErrorType
14473 @@For: ManakaiDOM|DOM3
14474 @@ecore:textFormatter: ManakaiXMLParserExceptionFormatter
14475 @@c:severity: c|SEVERITY_FATAL_ERROR
14476
14477 ElementTypeBinding:
14478 @Name: NSFatalErrDef
14479 @ElementType:
14480 dis:ResourceDef
14481 @ShadowContent:
14482 @@rdf:type: c|DOMErrorType
14483 @@For: ManakaiDOM|DOM3
14484 @@ecore:textFormatter: ManakaiXMLParserExceptionFormatter
14485 @@c:severity: c|SEVERITY_FATAL_ERROR
14486
14487 ElementTypeBinding:
14488 @Name: NSCErrDef
14489 @ElementType:
14490 dis:ResourceDef
14491 @ShadowContent:
14492 @@rdf:type: c|DOMErrorType
14493 @@For: ManakaiDOM|DOM3
14494 @@ecore:textFormatter: ManakaiXMLParserExceptionFormatter
14495 @@c:severity: c|SEVERITY_FATAL_ERROR
14496
14497 ElementTypeBinding:
14498 @Name: VCErrDef
14499 @ElementType:
14500 dis:ResourceDef
14501 @ShadowContent:
14502 @@rdf:type: c|DOMErrorType
14503 @@For: ManakaiDOM|DOM3
14504 @@ecore:textFormatter: ManakaiXMLParserExceptionFormatter
14505 @@c:severity: c|SEVERITY_ERROR
14506
14507 ElementTypeBinding:
14508 @Name: ErrDef
14509 @ElementType:
14510 dis:ResourceDef
14511 @ShadowContent:
14512 @@rdf:type: c|DOMErrorType
14513 @@For: ManakaiDOM|DOM3
14514 @@ecore:textFormatter: ManakaiXMLParserExceptionFormatter
14515 @@c:severity: c|SEVERITY_ERROR
14516
14517 ElementTypeBinding:
14518 @Name: WarnDef
14519 @ElementType:
14520 dis:ResourceDef
14521 @ShadowContent:
14522 @@rdf:type: c|DOMErrorType
14523 @@For: ManakaiDOM|DOM3
14524 @@ecore:textFormatter: ManakaiXMLParserExceptionFormatter
14525 @@c:severity: c|SEVERITY_WARNING
14526
14527 WFErrDef:
14528 @QName: xp|wf-syntax-error
14529 @enDesc:
14530 The entity does not match to the production rule; it is not
14531 well-formed.
14532 @enMufDef:
14533 |%xp-error-token-type;|%xp-error-token-value
14534 (prefix => { (|}, suffix => {|)}); is not
14535 allowed%xp-error-lines (prefix => { (|}, suffix => {|)});
14536 @ecore:hasParameter:
14537 @@@: xp|error-token
14538 @@enDesc:
14539 The token that is not allowed.
14540
14541 WFErrDef:
14542 @QName: xp|wf-pi-target-is-xml
14543 @enDesc:
14544 A processing instruction has its <CODE::PITarget> of
14545 <XML::xml> (in any case) which is not allowed.
14546 @enMufDef:
14547 Processing instruction target name cannot be |%p
14548 (name => {<Q::xp|name>});|
14549 @ecore:hasParameter:
14550 @@@: xp|error-token
14551 @@enDesc:
14552 The token that contains the name.
14553 @ecore:hasParameter:
14554 @@@: xp|name
14555 @@enDesc:
14556 A string that is specified as target name of the
14557 processing instruction.
14558 @ecore:hasParameter: xp|parent
14559
14560 WFErrDef:
14561 @QName: xp|wf-no-end-tag
14562 @enDesc:
14563 An end-tag is not found.
14564 @enMufDef:
14565 End-tag |</%p (name => {<Q::xp|expected-element-type>});>| is required
14566 @ecore:hasParameter: xp|error-token
14567 @ecore:hasParameter:
14568 @@@: xp|node
14569 @@enDesc:
14570 The element node that is not closed.
14571 @ecore:hasParameter:
14572 @@@: xp|expected-element-type
14573 @@enDesc:
14574 The element type name of the element that is not closed.
14575
14576 WFErrDef:
14577 @QName: xp|wf-unsupported-xml-version
14578 @enDesc:
14579 The XML version specified in the version declaration is not supported.
14580 @enMufDef:
14581 XML version |%p (name => {<Q::infoset|version>});| is not supported
14582 @ecore:hasParameter: xp|bad-token
14583 @ecore:hasParameter:
14584 @@@: xp|parent
14585 @@enDesc:
14586 The document node.
14587 @ecore:hasParameter:
14588 @@@: infoset|version
14589 @@enDesc:
14590 The specified XML version.
14591
14592 WFErrDef:
14593 @QName: xp|wf-malformed-enc-name
14594 @enDesc:
14595 An <XA::encoding> pseudo-attribute value does not match
14596 to the procduction rule <CODE::EncName>.
14597 @enMufDef:
14598 Encoding name |%p (name => {<Q::xp|name>});| is not allowed
14599 @ecore:hasParameter: xp|error-token
14600 @ecore:hasParameter:
14601 @@@: xp|parent
14602 @@enDesc: The document node.
14603 @ecore:hasParameter:
14604 @@@: xp|name
14605 @@enDesc:
14606 The <XA::encoding> value.
14607
14608 WFErrDef:
14609 @QName: xp|wf-malformed-xml-standalone
14610 @enDesc:
14611 An <XA::standalone> pseudo-attribute value is neither <XML::yes>
14612 or <XML::no>.
14613 @enMufDef:
14614 |standalone| pseudo-attribute value |%p (name => {<Q::xp|name>});|
14615 is not allowed
14616 @ecore:hasParameter: xp|error-token
14617 @ecore:hasParameter:
14618 @@@: xp|parent
14619 @@enDesc: The document node.
14620 @ecore:hasParameter:
14621 @@@: xp|name
14622 @@enDesc:
14623 The <XA::standalone> value.
14624
14625 WFErrDef:
14626 @QName: xp|wf-legal-literal-character
14627 @enDesc:
14628 Each character in XML entity must match to the production
14629 rule <CODE::Char - RestrictedChar>.
14630 @enMufDef:
14631 Character %character-code-point
14632 (v => {<Q::xp|character-number>}); is not allowed
14633 @ecore:hasParameter:
14634 @@@: xp|character-number
14635 @@enDesc:
14636 The code position of the character being referred.
14637
14638 WFErrDef:
14639 @QName: xp|wf-invalid-character-in-node-name
14640 @c:errorType:
14641 @@@: wf-invalid-character-in-node-name
14642 @@ContentType: DISCore|String
14643 @enDesc:
14644 If a name contains a character that is not a name character
14645 in the XML version in use, or if the first character of a name
14646 is not a name start character in the XML version in use.
14647
14648 {NOTE::
14649 When an invalid character is encountered in an entity
14650 where a <CODE::Name> is expected, what type of error
14651 is issued is implementation dependent: <Q::xp|wf-syntax-error>,
14652 <Q::xp|wf-pi-target-is-xml> or other error might be reported.
14653 }
14654
14655 {NOTE::
14656 This error type is defined in DOM Level 3 Core and Load and Save
14657 modules and redefined herein for the purpose of XML parser.
14658 }
14659 @enMufDef:
14660 Character %character-code-point
14661 (v => {<Q::xp|character-number>}); is not allowed in name
14662 @ecore:hasParameter: xp|error-token
14663 @ecore:hasParameter:
14664 @@@: xp|character-number
14665 @@enDesc:
14666 The code position of the character being referred.
14667 @ecore:hasParameter:
14668 @@@: infoset|version
14669 @@enDesc:
14670 The version of XML in use.
14671
14672 WFErrDef:
14673 @QName: xp|wf-pes-in-internal-subset
14674 @enDesc:
14675 In the internal subset of the DTD, parameter entity references
14676 <kwd:MUST-NOT> occur within markup declarations.
14677 @enMufDef:
14678 Parameter entity reference |%percent;%param (name => {<Q::xp|name>});;|
14679 cannot occur within a markup declaration
14680 @ecore:hasParameter: xp|error-token
14681 @ecore:hasParameter:
14682 @@@: xp|name
14683 @@enDesc:
14684 The name of the parameter entity.
14685
14686 WFErrDef:
14687 @QName: xp|wf-element-type-match
14688 @enDesc:
14689 The <CODE::Name> in an element's end-tag must match the element type
14690 in the start-tag.
14691 @enMufDef:
14692 End-tag |</%p (name => {<Q::xp|actual-element-type>});>| does
14693 not match to start-tag |<%p (name => {<Q::xp|expected-element-type>});>|
14694 @ecore:hasParameter: xp|error-token
14695 @ecore:hasParameter:
14696 @@@: xp|node
14697 @@enDesc:
14698 The current opening element node.
14699 @ecore:hasParameter:
14700 @@@: xp|expected-element-type
14701 @@enDesc:
14702 The element type name of the current element.
14703 @ecore:hasParameter:
14704 @@@: xp|actual-element-type
14705 @@enDesc:
14706 The <CODE::Name> occurs in the end-tag.
14707
14708 WFErrDef:
14709 @QName: xp|wf-unique-att-spec
14710 @enDesc:
14711 An attribute name <kwd:MUST-NOT> appear more than once in
14712 the same start-tag or empty-element tag.
14713 @enMufDef:
14714 Attribute |%p (name => {<Q::xp|name>});| is specified more
14715 than once in the same tag
14716 @ecore:hasParameter: xp|error-token
14717 @ecore:hasParameter:
14718 @@@: xp|name
14719 @@enDesc:
14720 The name of the attribute.
14721
14722 WFErrDef:
14723 @QName: xp|wf-no-external-entity-references
14724 @enDesc:
14725 Attribute values <kwd:MUST-NOT> contain direct or indirect
14726 entity references to external entities.
14727 @enMufDef:
14728 External entity |%p (name => {<Q::xp|name>});| is referenced
14729 in an attribute value literal
14730 @ecore:hasParameter: xp|error-token
14731 @ecore:hasParameter:
14732 @@@: xp|name
14733 @@enDesc:
14734 The name of the entity.
14735
14736 WFErrDef:
14737 @QName: xp|wf-no-lt-in-attribute-values
14738 @enDesc:
14739 The replacement text of any entity referred to directly or indirectly
14740 in an attribute value literal <kwd:MUST-NOT> contain a
14741 <CHAR::LESS-THAN SIGN>.
14742 @enMufDef:
14743 Entity replacement text cannot contain a
14744 |LESS-THAN SIGN| since it is referenced from an attribute
14745 value literal
14746 @ecore:hasParameter: xp|error-token
14747
14748 WarnDef:
14749 @QName: xp|warning-attribute-definition-ignored
14750 @enDesc:
14751 An attribute definition is ignored because the same attribute
14752 is declared before.
14753 @enMufDef:
14754 Attribute definition for |%p (name => {<Q::xp|name>});| is ignored
14755 @ecore:hasParameter: xp|error-token
14756 @ecore:hasParameter:
14757 @@@: xp|name
14758 @@enDesc:
14759 The name of the attribute.
14760
14761 WFErrDef:
14762 @QName: xp|wf-legal-character
14763 @enDesc:
14764 Characters referred to using character references <kwd:MUST>
14765 match the production for <CODE::Char>.
14766 @enMufDef:
14767 Reference to character %character-code-point
14768 (v => {<Q::xp|character-number>}); is not allowed
14769 @ecore:hasParameter: xp|error-token
14770 @ecore:hasParameter:
14771 @@@: xp|character-number
14772 @@enDesc:
14773 The code position of the character being referred.
14774 @ecore:hasParameter:
14775 @@@: xp|parent
14776 @@enDesc:
14777 The parent node in which the character reference has
14778 occurred, if available.
14779
14780 WFErrDef:
14781 @QName: xp|wf-entity-declared
14782 @enDesc:
14783 {P:: In a document
14784
14785 - without any DTD,
14786
14787 - with only an internal DTD subset that contains no parameter
14788 entity references, or
14789
14790 - with <XML::standalone="yes">,
14791
14792 for an entity reference that does not occur within the external
14793 subset or a parameter entity, the <CODE::Name> given in the
14794 entity reference <kwd:MUST> match the <CODE::Name> does not
14795 occur within the external subset or a parameter entity,
14796 except that five predefined character entities need not
14797 be declared. The declaration of a general entity <kwd:MUST>
14798 precede any reference to it which appears in a default value
14799 in an attribute list declaration.
14800 @enMufDef:
14801 Entity |%p (name => {<Q::xp|name>});| must be declared
14802 in the internal subset
14803 @ecore:hasParameter: xp|error-token
14804 @ecore:hasParameter:
14805 @@@: xp|name
14806 @@enDesc:
14807 The name of the entity.
14808
14809 WFErrDef:
14810 @QName: xp|wf-parsed-entity
14811 @enDesc:
14812 An entity reference <kwd:MUST-NOT> contain the name of an
14813 unparsed entity.
14814 @enMufDef:
14815 Entity |%p (name => {<Q::xp|name>});| is an unparsed entity
14816 @ecore:hasParameter: xp|error-token
14817 @ecore:hasParameter:
14818 @@@: xp|name
14819 @@enDesc:
14820 The name of the entity.
14821
14822 WFErrDef:
14823 @QName: xp|wf-no-recursion
14824 @enDesc:
14825 A parsed entity <kwd:MUST-NOT> contain a recursive reference
14826 to itself, either directly or indirectly.
14827 @enMufDef:
14828 Entity |%p (name => {<Q::xp|name>});| is recursively referenced
14829 @ecore:hasParameter: xp|error-token
14830 @ecore:hasParameter:
14831 @@@: xp|name
14832 @@enDesc:
14833 The name of the entity.
14834
14835 FatalErrDef:
14836 @QName: xp|fatal-xml11-end-of-line-in-xml-declaration
14837 @enDesc:
14838 An end-of-line character <CODE::U+0085> or <CODE::U+2028> is appeared
14839 within an XML declaration or text declaration.
14840 @enMufDef:
14841 End-of-line character %character-code-point
14842 (v => {<Q::xp|character-number>}); cannot be used within the
14843 XML or text declaration
14844 @ecore:hasParameter:
14845 @@@: xp|character-number
14846 @@enDesc:
14847 The code position of the end-of-line character.
14848
14849 ErrDef:
14850 @QName: xp|error-internal-predefined-entity
14851 @enDesc:
14852 A general entity declaration whose <CODE::Name> equals to one
14853 of predefined entities <kwd:MUST> declare it as an internal entity.
14854 @enMufDef:
14855 Entity |%p (name => {<Q::xp|name>});| must be declared as an
14856 internal entity
14857 @ecore:hasParameter: xp|error-token
14858 @ecore:hasParameter:
14859 @@@: xp|name
14860 @@enDesc:
14861 The name of the entity.
14862
14863 ErrDef:
14864 @QName: xp|error-malformed-predefined-entity
14865 @enDesc:
14866 A general entity declaration whose <CODE::Name> equals to one
14867 of predefined entities <kwd:MUST> declare it as a data
14868 character for the entity.
14869 @enMufDef:
14870 Entity declaration for |%p (name => {<Q::xp|name>});|
14871 (replacement text |%p (name => {<Q::xp|replacement-text>});|) is malformed
14872 @ecore:hasParameter: xp|error-token
14873 @ecore:hasParameter:
14874 @@@: xp|name
14875 @@enDesc:
14876 The name of the entity.
14877 @ecore:hasParameter:
14878 @@@: xp|replacement-text
14879 @@enDesc:
14880 The replacement text of the entity declaration.
14881
14882 WarnDef:
14883 @QName: xp|warning-entity-declaration-ignored
14884 @enDesc:
14885 An entity declaration is ignored because the same entity
14886 is declared before.
14887 @enMufDef:
14888 Entity declaration for |%p (name => {<Q::xp|name>});| is ignored
14889 @ecore:hasParameter: xp|error-token
14890 @ecore:hasParameter:
14891 @@@: xp|name
14892 @@enDesc:
14893 The name of the entity.
14894
14895 VCErrDef:
14896 @QName: xp|vc-unique-notation-name
14897 @enDesc:
14898 A <CODE::Name> <kwd:MUST-NOT> be declared in more than
14899 one notation declaration.
14900 @enMufDef:
14901 Notation |%p (name => {<Q::xp|name>});| is already declared
14902 @ecore:hasParameter: xp|error-token
14903 @ecore:hasParameter:
14904 @@@: xp|name
14905 @@enDesc:
14906 The name of the notation.
14907
14908 WarnDef:
14909 @QName: xp|warning-entity-declaration-not-processed
14910 @enDesc:
14911 An entity declaration is not processed because there
14912 is a reference to parameter entity before the declaration
14913 and the entity is not read.
14914 @enMufDef:
14915 Entity declaration for |%p (name => {<Q::xp|name>});| is not processed
14916 @ecore:hasParameter: xp|error-token
14917 @ecore:hasParameter:
14918 @@@: xp|name
14919 @@enDesc:
14920 The name of the entity.
14921
14922 WarnDef:
14923 @QName: xp|warning-attribute-definition-not-processed
14924 @enDesc:
14925 An attribute definition is not processed because there
14926 is a reference to parameter entity before the declaration
14927 and the entity is not read.
14928 @enMufDef:
14929 Attribute definition for |%p (name => {<Q::xp|name>});| is not processed
14930 @ecore:hasParameter: xp|error-token
14931 @ecore:hasParameter:
14932 @@@: xp|name
14933 @@enDesc:
14934 The name of the attribute.
14935
14936 NSFatalErrDef:
14937 @QName: xp|nswf-legal-ncname
14938 @enDesc:
14939 <CODE::Name>s other than element type names and attribute names
14940 <kwd:MUST> be <CODE::NCName>s.
14941 @enMufDef:
14942 <CODE::Name> |%p (name => {<Q::xp|name>});| is not an <CODE::NCName>
14943 @ecore:hasParameter: xp|error-token
14944 @ecore:hasParameter:
14945 @@@: xp|name
14946 @@enDesc:
14947 The name.
14948 @ecore:hasParameter:
14949 @@@: infoset|version
14950 @@enDesc:
14951 The version of XML in use.
14952
14953 NSFatalErrDef:
14954 @QName: xp|nswf-legal-qname
14955 @enDesc:
14956 An element type name or an attribute name <kwd:MUST> be a
14957 <CODE::QName>.
14958 @enMufDef:
14959 <CODE::Name> |%p (name => {<Q::xp|name>});| is not a <CODE::QName>
14960 @ecore:hasParameter: xp|error-token
14961 @ecore:hasParameter:
14962 @@@: xp|name
14963 @@enDesc:
14964 The name.
14965 @ecore:hasParameter:
14966 @@@: infoset|version
14967 @@enDesc:
14968 The version of XML in use.
14969
14970 NSCErrDef:
14971 @QName: xp|nsc-reserved-prefix-xml
14972 @enDesc:
14973 The prefix <XML::xml> <kwd:MUST-NOT> be undeclared or bound
14974 to any namespace name other than <URI::http://www.w3.org/XML/1998/namespace>.
14975 @enMufDef:
14976 Namespace prefix |xml| cannot be bound to namespace
14977 name |%p (name => {<Q::infoset|namespaceName>});|
14978 @ecore:hasParameter: xp|error-token
14979 @ecore:hasParameter:
14980 @@@: infoset|prefix
14981 @@enDesc:
14982 The namespace prefix.
14983 @ecore:hasParameter:
14984 @@@: infoset|namespaceName
14985 @@enDesc:
14986 The namespace name bound to or an empty string for undeclaring.
14987
14988 NSCErrDef:
14989 @QName: xp|nsc-reserved-namespace-name-xml
14990 @enDesc:
14991 Namespace prefixes other than <XML::xml> <kwd:MUST-NOT> be bound
14992 to the namespace name <URI::http://www.w3.org/XML/1998/namespace>.
14993 @enMufDef:
14994 Namespace prefix |%p (name => {<Q::infoset|prefix>});| cannot be
14995 bound to namespace name |http://www.w3.org/XML/1998/namespace|
14996 @enImplNote:
14997 The XMLNames spec does not prohibit the URI bound to
14998 the default namespace (!)
14999 @ecore:hasParameter: xp|error-token
15000 @ecore:hasParameter:
15001 @@@: infoset|prefix
15002 @@enDesc:
15003 The namespace prefix or <DOM::null> for default namespace.
15004 @ecore:hasParameter:
15005 @@@: infoset|namespaceName
15006 @@enDesc:
15007 The namespace name bound to.
15008
15009 NSCErrDef:
15010 @QName: xp|nsc-reserved-prefix-xmlns
15011 @enDesc:
15012 The prefix <XML::xmlns> <kwd:MUST-NOT> be declared or undeclared.
15013 @enMufDef:
15014 Namespace prefix |xmlns| cannot be declared or undeclared
15015 @ecore:hasParameter: xp|error-token
15016 @ecore:hasParameter:
15017 @@@: infoset|prefix
15018 @@enDesc:
15019 The namespace prefix.
15020 @ecore:hasParameter:
15021 @@@: infoset|namespaceName
15022 @@enDesc:
15023 The namespace name bound to or an empty string for undeclaring.
15024
15025 NSCErrDef:
15026 @QName: xp|nsc-reserved-namespace-name-xmlns
15027 @enDesc:
15028 Namespace prefixes <kwd:MUST-NOT> be bound
15029 to the namespace name <URI::http://www.w3.org/2000/xmlns/>.
15030 @enMufDef:
15031 Namespace prefix |%p (name => {<Q::infoset|prefix>});| cannot be
15032 bound to namespace name |http://www.w3.org/2000/xmlns/|
15033 @enImplNote:
15034 The XMLNames spec does not prohibit the URI bound to
15035 the default namespace (!)
15036 @ecore:hasParameter: xp|error-token
15037 @ecore:hasParameter:
15038 @@@: infoset|prefix
15039 @@enDesc:
15040 The namespace prefix or <DOM::null> for default namespace.
15041 @ecore:hasParameter:
15042 @@@: infoset|namespaceName
15043 @@enDesc:
15044 The namespace name bound to.
15045
15046 NSCErrDef:
15047 @QName: xp|nsc-prefix-declared
15048 @enDesc:
15049 A namespace prefix other than <XML::xml> or <XML::xmlns>
15050 <kwd:MUST> have been declared in a namespace declaration
15051 attribute in either the start or empty element tag of the
15052 element where the prefix is used or in an ancestor
15053 element. Furthermore, the attribute value in the innermost
15054 such declaration <kwd:MUST-NOT> be an empty string.
15055 @enMufDef:
15056 Namespace prefix |%p (name => {<Q::infoset|prefix>});| in
15057 qualified name |%p (name => {<Q::xp|name>});| is not declared
15058 @ecore:hasParameter: xp|error-token
15059 @ecore:hasParameter:
15060 @@@: infoset|prefix
15061 @@enDesc:
15062 The namespace prefix.
15063 @ecore:hasParameter:
15064 @@@: xp|name
15065 @@enDesc:
15066 The qualified name.
15067
15068 NSFatalErrDef:
15069 @QName: xp|nswf-empty-namespace-name
15070 @enDesc:
15071 If the XML version of the document is 1.0 and the
15072 normalized value of the prefixed namespace declaration attribute is empty.
15073 @enMufDef:
15074 Namespace |%p (name => {<Q::infoset|prefix>});| cannot be
15075 undeclared in XML 1.0
15076 @ecore:hasParameter: xp|error-token
15077 @ecore:hasParameter:
15078 @@@: infoset|prefix
15079 @@enDesc:
15080 The namespace prefix.
15081 @ecore:hasParameter:
15082 @@@: infoset|namespaceName
15083 @@enDesc:
15084 An empty string.
15085
15086 NSFatalErrDef:
15087 @QName: xp|nswf-unique-att-spec-expanded-name
15088 @enDesc:
15089 No element may have two attributes that have qualified name
15090 with the same local part and with namespace prefixes
15091 that have been bound to namespace names that are identical.
15092 @enMufDef:
15093 Attribute |%p (name => {<Q::infoset|localName>});| in
15094 namespace |%p (name => {<Q::infoset|namespaceName>});| is
15095 attached to the same element more than once (as
15096 |%p (name => {<Q::xp|name>});| and
15097 |%p (name => {<Q::xp|another-attribute-name>});|)
15098 @enImplNote:
15099 The XMLNames spec doesn't mention default attributes
15100 for this constraint...
15101 @ecore:hasParameter: xp|error-token
15102 @ecore:hasParameter:
15103 @@@: infoset|localName
15104 @@enDesc:
15105 The local part of the attribute.
15106 @ecore:hasParameter:
15107 @@@: infoset|namespaceName
15108 @@enDesc:
15109 The namespace URI of the attribute.
15110 @ecore:hasParameter:
15111 @@@: xp|name
15112 @@enDesc:
15113 The name, i.e. a qualified name consist of <Q::infoset:localName>
15114 and <Q::infoset:namespaceName> parameter values.
15115 @ecore:hasParameter:
15116 @@@: xp|another-attribute-name
15117 @@enDesc:
15118 Another attribute qualified name expanded to the same expanded name
15119 as <Q::xp|name>.
15120
15121 XWParam:
15122 @QName: xp|another-attribute-name
15123
15124 XWParam:
15125 @QName: xp|replacement-text
15126 @enDesc:
15127 The replacement text.
15128
15129 XWParam:
15130 @QName: xp|error-token
15131 @enDesc:
15132 The token where the parser found an error.
15133
15134 XWParam:
15135 @QName: xp|name
15136 @enDesc:
15137 A name.
15138
15139 XWParam:
15140 @QName: xp|parent
15141 @enDesc:
15142 The parent node in which the error occurs.
15143
15144 XWParam:
15145 @QName: xp|node
15146 @enDesc:
15147 The current node.
15148
15149 XWParam:
15150 @QName: xp|actual-element-type
15151 @enDesc:
15152 The actual element type name occured in the source.
15153
15154 XWParam:
15155 @QName: xp|expected-element-type
15156 @enDesc:
15157 The element type name expected.
15158
15159 XWParam:
15160 @QName: xp|character-number
15161 @enDesc:
15162 The character code position.
15163
15164 ElementTypeBinding:
15165 @Name: XWParam
15166 @ElementType:
15167 dis:ResourceDef
15168 @ShadowContent:
15169 @@For: =ManakaiDOM|all
15170 @@rdf:type: ecore|Parameter
15171
15172 ElementTypeBinding:
15173 @Name:enMufDef
15174 @ElementType:
15175 ecore:defaultMessage
15176 @ShadowContent:
15177 @@lang:en
15178 @@ContentType:
15179 lang:muf
15180
15181 ResourceDef:
15182 @QName: DOMImpl
15183 @AliasFor: DOMCore|DOMImplementation
15184 @For: ManakaiDOM|DOM
15185
15186 ElementTypeBinding:
15187 @Name: Attr
15188 @ElementType:
15189 dis:ResourceDef
15190 @ShadowContent:
15191 @@rdf:type: DISLang|Attribute
15192 @@ForCheck: !=ManakaiDOM|ManakaiDOM
15193
15194 ElementTypeBinding:
15195 @Name: Get
15196 @ElementType:
15197 dis:ResourceDef
15198 @ShadowContent:
15199 @@rdf:type: DISLang|AttributeGet
15200
15201 ElementTypeBinding:
15202 @Name: Set
15203 @ElementType:
15204 dis:ResourceDef
15205 @ShadowContent:
15206 @@rdf:type: DISLang|AttributeSet
15207
15208 ElementTypeBinding:
15209 @Name: enDesc
15210 @ElementType:
15211 dis:Description
15212 @ShadowContent:
15213 @@lang:en
15214
15215 ElementTypeBinding:
15216 @Name: Method
15217 @ElementType:
15218 dis:ResourceDef
15219 @ShadowContent:
15220 @@rdf:type: DISLang|Method
15221 @@For: !=ManakaiDOM|ManakaiDOM
15222
15223 ElementTypeBinding:
15224 @Name: Return
15225 @ElementType:
15226 dis:ResourceDef
15227 @ShadowContent:
15228 @@rdf:type: DISLang|MethodReturn
15229
15230 ElementTypeBinding:
15231 @Name: Param
15232 @ElementType:
15233 dis:ResourceDef
15234 @ShadowContent:
15235 @@rdf:type: DISLang|MethodParameter
15236
15237 ElementTypeBinding:
15238 @Name: PerlDef
15239 @ElementType:
15240 dis:Def
15241 @ShadowContent:
15242 @@ContentType: lang|Perl
15243
15244 ElementTypeBinding:
15245 @Name: PropDef
15246 @ElementType:
15247 dis:ResourceDef
15248 @ShadowContent:
15249 @@rdf:type: rdf|Property
15250
15251 ClsDef:
15252 @ClsQName: ManakaiXMLParserExceptionFormatter
15253
15254 @ClsISA: ecore|MUErrorFormatter||ManakaiDOM|Perl
15255
15256 @RuleDef:
15257 @@Name: xp-error-token-type
15258 @@enDesc:
15259 The type of the token the parser is encountered.
15260
15261 @@Method:
15262 @@@Name: after
15263 @@@Param:
15264 @@@@Name: name
15265 @@@@Type: DOMString
15266 @@@@enDesc: The name of the method.
15267 @@@Param:
15268 @@@@Name: p
15269 @@@@Type: DISPerl|HASH
15270 @@@@enDesc: The set of the parameters to the method.
15271 @@@Param:
15272 @@@@Name: o
15273 @@@@Type: DISPerl|HASH
15274 @@@@enDesc: The option value.
15275 @@@Return:
15276 @@@@PerlDef:
15277 $p->{-result} = $o->{<H::xp|error-token>}->{type}
15278 if defined $o->{<H::xp|error-token>}->{type};
15279
15280 @RuleDef:
15281 @@Name: xp-error-token-value
15282 @@enDesc:
15283 The value of the token the parser is encountered, if any.
15284
15285 @@Method:
15286 @@@Name: after
15287 @@@Param:
15288 @@@@Name: name
15289 @@@@Type: DOMString
15290 @@@@enDesc: The name of the method.
15291 @@@Param:
15292 @@@@Name: p
15293 @@@@Type: DISPerl|HASH
15294 @@@@enDesc: The set of the parameters to the method.
15295 @@@Param:
15296 @@@@Name: o
15297 @@@@Type: DISPerl|HASH
15298 @@@@enDesc: The option value.
15299 @@@Return:
15300 @@@@PerlDef:
15301 $p->{-result} = $o->{<H::xp|error-token>}->{value}
15302 if defined $o->{<H::xp|error-token>}->{value};
15303
15304 @RuleDef:
15305 @@Name: xp-error-lines
15306 @@enDesc:
15307 A copy of fragment of the source text that contains the line
15308 where the error occurred, if available.
15309
15310 @@Method:
15311 @@@Name: after
15312 @@@Param:
15313 @@@@Name: name
15314 @@@@Type: DOMString
15315 @@@@enDesc: The name of the method.
15316 @@@Param:
15317 @@@@Name: p
15318 @@@@Type: DISPerl|HASH
15319 @@@@enDesc: The set of the parameters to the method.
15320 @@@Param:
15321 @@@@Name: o
15322 @@@@Type: DISPerl|HASH
15323 @@@@enDesc: The option value.
15324 @@@Return:
15325 @@@@PerlDef:
15326 my $pos = $o-><AG::DOMCore|DOMError.location>
15327 -><AG::DOMCore|DOMLocator.utf32Offset>;
15328 if ($pos > -1) {
15329 my $src = $o->{<H::ecore|object>}->{entity}->[-1]->{reptxt};
15330 my $start = $pos;
15331 $start = rindex ($$src, "\x0A", $start - 1) for 0..2;
15332 $start++;
15333 my $end = $pos;
15334 $end = index ($$src, "\x0A", $end + 1) for 0..2;
15335 $end = length $$src if $end < 0;
15336 $p->{-result} = substr $$src, $start, $end - $start;
15337 }
15338
15339 @RuleDef:
15340 @@Name: character-code-point
15341 @@enDesc:
15342 The character code position, in <CODE::U+<VAR::HHHH>> notation.
15343
15344 @@Method:
15345 @@@Name: after
15346 @@@Param:
15347 @@@@Name: name
15348 @@@@Type: DOMString
15349 @@@@enDesc: The name of the method.
15350 @@@Param:
15351 @@@@Name: p
15352 @@@@Type: DISPerl|HASH
15353 @@@@enDesc: The set of the parameters to the method.
15354 @@@Param:
15355 @@@@Name: o
15356 @@@@Type: DISPerl|HASH
15357 @@@@enDesc: The option value.
15358 @@@RuleParam:
15359 @@@@Name: v
15360 @@@@Type: DISPerl|Number
15361 @@@@enDesc:
15362 The name of the error parameter that contains the character code.
15363 @@@Return:
15364 @@@@PerlDef:
15365 $p->{-result} = sprintf 'U+%04X', $o->{$p->{v}};
15366 ##XMLParserExceptionFormatter

[email protected]
ViewVC Help
Powered by ViewVC 1.1.24