19 |
@@@QName: MDOM|DOMLS |
@@@QName: MDOM|DOMLS |
20 |
@@@WithFor: ManakaiDOM|ManakaiDOMLatest |
@@@WithFor: ManakaiDOM|ManakaiDOMLatest |
21 |
@@Module: |
@@Module: |
22 |
|
@@@QName: MDOM|XML |
23 |
|
@@@WithFor: ManakaiDOM|ManakaiDOMLatest |
24 |
|
@@Module: |
25 |
@@@QName: MDOM|XDoctype |
@@@QName: MDOM|XDoctype |
26 |
@@@WithFor: ManakaiDOM|ManakaiDOMLatest |
@@@WithFor: ManakaiDOM|ManakaiDOMLatest |
27 |
|
|
72 |
http://www.w3.org/2000/01/rdf-schema# |
http://www.w3.org/2000/01/rdf-schema# |
73 |
@t: |
@t: |
74 |
http://suika.fam.cx/~wakaba/archive/2004/dom/tree# |
http://suika.fam.cx/~wakaba/archive/2004/dom/tree# |
75 |
|
@tc: |
76 |
|
http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/TreeCore/ |
77 |
|
@td: |
78 |
|
http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/Document/ |
79 |
|
@te: |
80 |
|
http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/Element/ |
81 |
@test: |
@test: |
82 |
http://suika.fam.cx/~wakaba/archive/2004/dis/Test# |
http://suika.fam.cx/~wakaba/archive/2004/dis/Test# |
83 |
|
@tx: |
84 |
|
http://suika.fam.cx/~wakaba/archive/2005/manakai/DOM/XML/ |
85 |
@urigen: |
@urigen: |
86 |
http://suika.fam.cx/~wakaba/archive/2005/manakai/URI/Generic/ |
http://suika.fam.cx/~wakaba/archive/2005/manakai/URI/Generic/ |
87 |
@x: |
@x: |
126 |
|
|
127 |
ResourceDef: |
ResourceDef: |
128 |
@QName: Node |
@QName: Node |
129 |
@AliasFor: t|Node |
@AliasFor: tc|Node |
130 |
@For: ManakaiDOM|DOM |
@For: ManakaiDOM|DOM |
131 |
|
|
132 |
ResourceDef: |
ResourceDef: |
133 |
@QName: Element |
@QName: Element |
134 |
@AliasFor: t|Element |
@AliasFor: te|Element |
135 |
|
@For: ManakaiDOM|DOM |
136 |
|
|
137 |
|
ResourceDef: |
138 |
|
@QName: Attr |
139 |
|
@AliasFor: te|Attr |
140 |
@For: ManakaiDOM|DOM |
@For: ManakaiDOM|DOM |
141 |
|
|
142 |
ResourceDef: |
ResourceDef: |
143 |
@QName: Document |
@QName: Document |
144 |
@AliasFor: t|Document |
@AliasFor: td|Document |
145 |
@For: ManakaiDOM|DOM |
@For: ManakaiDOM|DOM |
146 |
|
|
147 |
ResourceDef: |
ResourceDef: |
164 |
@AliasFor: d|AttributeDefinition |
@AliasFor: d|AttributeDefinition |
165 |
@For: ManakaiDOM|DOM |
@For: ManakaiDOM|DOM |
166 |
|
|
167 |
|
ResourceDef: |
168 |
|
@QName: GE |
169 |
|
@AliasFor: tx|Entity |
170 |
|
@For: ManakaiDOM|DOM |
171 |
|
|
172 |
|
ResourceDef: |
173 |
|
@QName: GERef |
174 |
|
@AliasFor: tx|EntityReference |
175 |
|
@For: ManakaiDOM|DOM |
176 |
|
|
177 |
ElementTypeBinding: |
ElementTypeBinding: |
178 |
@Name: ClsDef |
@Name: ClsDef |
179 |
@ElementType: |
@ElementType: |
497 |
The newly created parser. |
The newly created parser. |
498 |
@@@PerlDef: |
@@@PerlDef: |
499 |
$r = bless { |
$r = bless { |
500 |
<H::DOMCore:implementation> => $impl, |
<H::f|implementation> => $impl, |
501 |
}, $self; |
}, $self; |
502 |
|
|
503 |
@Method: |
@Method: |
625 |
## Declared attributes. |
## Declared attributes. |
626 |
|
|
627 |
__DEEP{ |
__DEEP{ |
628 |
$r = $self->{<H::c|implementation>}-><M::DOMImpl.createDocument>; |
$r = $self->{<H::f|implementation>}-><M::DOMImpl.createDocument>; |
629 |
$self->{doc} = $r; |
$self->{doc} = $r; |
630 |
## |Document| object. |
## |Document| object. |
631 |
CORE::delete $self->{docx}; |
CORE::delete $self->{docx}; |
643 |
## in creating an ill-formed DOM tree when parser |
## in creating an ill-formed DOM tree when parser |
644 |
## errors are traped by |error-handler|. |
## errors are traped by |error-handler|. |
645 |
$self->{doc_cfg}-><M::c|DOMConfiguration.setParameter> |
$self->{doc_cfg}-><M::c|DOMConfiguration.setParameter> |
|
(<Q::cfg|entity-reference-read-only> => false); |
|
|
## NOTE: Turn this configuration parameter off is required |
|
|
## because entity reference subtree is created by |
|
|
## the parser rather than |createEntityReference|'s |
|
|
## cloning. Parser's |cfg:entity-reference-read-only| |
|
|
## configuration parameter controls whether generated |
|
|
## subtree is then marked as read-only or not. |
|
|
$self->{doc_cfg}-><M::c|DOMConfiguration.setParameter> |
|
646 |
(<Q::cfg|clone-entity-reference-subtree> => true); |
(<Q::cfg|clone-entity-reference-subtree> => true); |
647 |
## NOTE: Turn this configuration parameter on makes |
## NOTE: Turn this configuration parameter on makes |
648 |
## entity reference subtrees in attribute default values |
## entity reference subtrees in attribute default values |
693 |
$self->{char} = []; |
$self->{char} = []; |
694 |
local $ent->{is_opened} = true; |
local $ent->{is_opened} = true; |
695 |
## TODO: External entity support |
## TODO: External entity support |
696 |
|
$ent->{node}-><M::Node.manakaiSetReadOnly> (false, true); |
697 |
$self->_parse_InternalGeneralParsedEntity ($ent->{node}); |
$self->_parse_InternalGeneralParsedEntity ($ent->{node}); |
698 |
$ent->{node}-><AS::x|Entity.hasReplacementTree> (true); |
$ent->{node}-><AS::GE.hasReplacementTree> (true); |
699 |
|
$ent->{node}-><M::Node.manakaiSetReadOnly> (true, true); |
700 |
$self->{entity}->[-1]->{close_file}->(); |
$self->{entity}->[-1]->{close_file}->(); |
701 |
## ISSUE: Should errors detected by this phase result |
## ISSUE: Should errors detected by this phase result |
702 |
## in |DOMLS:PARSE_ERR| exception thrown? |
## in |DOMLS:PARSE_ERR| exception thrown? |
703 |
} |
} |
|
## TODO: Read-only if configuration (for all entities) |
|
704 |
} |
} |
705 |
} # cfg|entity-replacement-tree |
} # cfg|entity-replacement-tree |
706 |
|
|
707 |
## Turns flags to their default value |
## Turns flags to their default value |
708 |
$self->{doc_cfg}-><M::c|DOMConfiguration.setParameter> |
$self->{doc_cfg}-><M::c|DOMConfiguration.setParameter> |
|
(<Q::cfg|entity-reference-read-only> => null); |
|
|
$self->{doc_cfg}-><M::c|DOMConfiguration.setParameter> |
|
709 |
(<Q::cfg|clone-entity-reference-subtree> => null); |
(<Q::cfg|clone-entity-reference-subtree> => null); |
710 |
$self->{doc_cfg}-><M::c|DOMConfiguration.setParameter> |
$self->{doc_cfg}-><M::c|DOMConfiguration.setParameter> |
711 |
(<Q::cfg|dtd-default-attributes> => null); |
(<Q::cfg|dtd-default-attributes> => null); |
1441 |
|
|
1442 |
$pi = $doc-><M::Document.createProcessingInstruction> |
$pi = $doc-><M::Document.createProcessingInstruction> |
1443 |
($name); |
($name); |
1444 |
$pi-><AS::x|ProcessingInstruction.manakaiBaseURI> |
$pi-><AS::tx|ProcessingInstruction.manakaiBaseURI> |
1445 |
($self->{location}->{base_uri}); |
($self->{location}->{base_uri}); |
1446 |
} |
} |
1447 |
} else { |
} else { |
1801 |
} |
} |
1802 |
} |
} |
1803 |
if ($attrs->{xmlns}->{def}) { |
if ($attrs->{xmlns}->{def}) { |
1804 |
__CODE{t|setAttrType:: |
$attr-><AS::Attr.manakaiAttributeType> |
1805 |
$attr => $attr, |
($attrs->{xmlns}->{def}-><AG::ATDef.declaredType>); |
|
$type => {$attrs->{xmlns}->{def}-><AG::ATDef.declaredType>}, |
|
|
}__; |
|
1806 |
} |
} |
1807 |
$el-><M::Element.setAttributeNodeNS> ($attr); |
$el-><M::Element.setAttributeNodeNS> ($attr); |
1808 |
$attr-><AS::t|Attr.specified> (false) |
$attr-><AS::Attr.specified> (false) |
1809 |
if $attrs->{xmlns}->{is_default}; |
if $attrs->{xmlns}->{is_default}; |
1810 |
} |
} |
1811 |
|
|
1821 |
} |
} |
1822 |
} |
} |
1823 |
if ($attrs->{$lname}->{def}) { |
if ($attrs->{$lname}->{def}) { |
1824 |
__CODE{t|setAttrType:: |
$attr-><AS::Attr.manakaiAttributeType> |
1825 |
$attr => $attr, |
($attrs->{$lname}->{def}-><AG::ATDef.declaredType>); |
|
$type => {$attrs->{$lname}->{def}-><AG::ATDef.declaredType>}, |
|
|
}__; |
|
1826 |
} |
} |
1827 |
$el-><M::Element.setAttributeNodeNS> ($attr); |
$el-><M::Element.setAttributeNodeNS> ($attr); |
1828 |
$attr-><AS::t|Attr.specified> (false) |
$attr-><AS::Attr.specified> (false) |
1829 |
if $attrs->{$lname}->{is_default}; |
if $attrs->{$lname}->{is_default}; |
1830 |
} |
} |
1831 |
|
|
1870 |
unless ($continue) { |
unless ($continue) { |
1871 |
__CODE{ParseError}__; |
__CODE{ParseError}__; |
1872 |
} |
} |
1873 |
unless ($attr-><AG::t|Attr.specified>) { |
unless ($attr-><AG::Attr.specified>) { |
1874 |
## It is a default attribute |
## It is a default attribute |
1875 |
$attr = $doc-><M::Document.createAttributeNS> |
$attr = $doc-><M::Document.createAttributeNS> |
1876 |
($ns->{$pfx}, $name); |
($ns->{$pfx}, $name); |
1895 |
} |
} |
1896 |
} |
} |
1897 |
if ($gattr{$pfx}->{$lname}->{def}) { |
if ($gattr{$pfx}->{$lname}->{def}) { |
1898 |
__CODE{t|setAttrType:: |
$attr-><AS::Attr.manakaiAttributeType> |
1899 |
$attr => $attr, |
($gattr{$pfx}->{$lname}->{def} |
1900 |
$type => {$gattr{$pfx}->{$lname} |
-><AG::ATDef.declaredType>); |
|
->{def}-><AG::ATDef.declaredType>}, |
|
|
}__; |
|
1901 |
} |
} |
1902 |
$el-><M::Element.setAttributeNodeNS> ($attr); |
$el-><M::Element.setAttributeNodeNS> ($attr); |
1903 |
$attr-><AS::t|Attr.specified> (false) |
$attr-><AS::Attr.specified> (false) |
1904 |
if $gattr{$pfx}->{$lname}->{is_default}; |
if $gattr{$pfx}->{$lname}->{is_default}; |
1905 |
} # PFX |
} # PFX |
1906 |
} |
} |
2737 |
|
|
2738 |
$er = $doc-><M::Document.createEntityReference> |
$er = $doc-><M::Document.createEntityReference> |
2739 |
($name); |
($name); |
2740 |
|
$er-><M::Node.manakaiSetReadOnly> (false, true); |
2741 |
$er-><AS::Node.textContent> (''); |
$er-><AS::Node.textContent> (''); |
2742 |
## NOTE: When document entity (and entities referenced directly |
## NOTE: When document entity (and entities referenced directly |
2743 |
## or indirectly from it) is parsed, no general entity |
## or indirectly from it) is parsed, no general entity |
2765 |
} # Otherwise VC error |
} # Otherwise VC error |
2766 |
push @{$self->{entity}}, <Code::getEmptyEntityState:: |
push @{$self->{entity}}, <Code::getEmptyEntityState:: |
2767 |
$name = $name>; |
$name = $name>; |
2768 |
$er-><AS::x|EntityReference.manakaiExpanded> (false); |
$er-><AS::GERef.manakaiExpanded> (false); |
2769 |
|
|
2770 |
} else { # there IS entity declaration |
} else { # there IS entity declaration |
2771 |
if (($self->{standalone} or not $self->{has_xref}) and |
if (($self->{standalone} or not $self->{has_xref}) and |
2785 |
__CODE{ParseError}__; |
__CODE{ParseError}__; |
2786 |
} |
} |
2787 |
} |
} |
2788 |
$er-><AS::x|EntityReference.manakaiExpanded> |
$er-><AS::GERef.manakaiExpanded> |
2789 |
($ent->{has_replacement_text}); |
($ent->{has_replacement_text}); |
2790 |
push @{$self->{entity}}, <Code::getCopyOfEntityState:: |
push @{$self->{entity}}, <Code::getCopyOfEntityState:: |
2791 |
$entity_type = 'general_entity', |
$entity_type = 'general_entity', |
2823 |
} |
} |
2824 |
open my $empty, '<', \''; |
open my $empty, '<', \''; |
2825 |
$self->{entity}->[-1]->{fh} = $empty; |
$self->{entity}->[-1]->{fh} = $empty; |
2826 |
$er-><AS::x|EntityReference.manakaiExpanded> (false); |
$er-><AS::GERef.manakaiExpanded> (false); |
2827 |
} # recursive |
} # recursive |
2828 |
$ent->{is_opened} = true; |
$ent->{is_opened} = true; |
2829 |
} # entity declared |
} # entity declared |
2845 |
$self->{char} = pop @{$self->{entity_char}}; |
$self->{char} = pop @{$self->{entity_char}}; |
2846 |
pop (@{$self->{entity}})->{close_file}->(); |
pop (@{$self->{entity}})->{close_file}->(); |
2847 |
$self->{location} = $self->{entity}->[-1]; |
$self->{location} = $self->{entity}->[-1]; |
|
} |
|
2848 |
|
|
2849 |
// TODO: Set read-only flag |
$er-><M::Node.manakaiSetReadOnly> (true, true); |
2850 |
|
} |
2851 |
|
|
2852 |
?lexmode EntityReference; |
?lexmode EntityReference; |
2853 |
?requires-next-token; |
?requires-next-token; |
2902 |
__CODE{checkNCName:: $name => $name}__; |
__CODE{checkNCName:: $name => $name}__; |
2903 |
|
|
2904 |
$er = $self->{doc}-><M::Document.createEntityReference> ($name); |
$er = $self->{doc}-><M::Document.createEntityReference> ($name); |
2905 |
|
$er-><M::Node.manakaiSetReadOnly> (false, true); |
2906 |
$er-><AS::Node.textContent> (''); |
$er-><AS::Node.textContent> (''); |
2907 |
## NOTE: When document entity (and entities referenced directly |
## NOTE: When document entity (and entities referenced directly |
2908 |
## or indirectly from it) is parsed, no general entity |
## or indirectly from it) is parsed, no general entity |
2928 |
} # Otherwise VC error |
} # Otherwise VC error |
2929 |
push @{$self->{entity}}, <Code::getEmptyEntityState:: |
push @{$self->{entity}}, <Code::getEmptyEntityState:: |
2930 |
$name = $name>; |
$name = $name>; |
2931 |
$er-><AS::x|EntityReference.manakaiExpanded> (false); |
$er-><AS::GERef.manakaiExpanded> (false); |
2932 |
|
|
2933 |
} else { # there IS entity declaration |
} else { # there IS entity declaration |
2934 |
if (($self->{standalone} or not $self->{has_xref}) and |
if (($self->{standalone} or not $self->{has_xref}) and |
2966 |
## NOTE: |xp:wf-parsed-entity| is not checked |
## NOTE: |xp:wf-parsed-entity| is not checked |
2967 |
} # if external entity |
} # if external entity |
2968 |
|
|
2969 |
$er-><AS::x|EntityReference.manakaiExpanded> |
$er-><AS::GERef.manakaiExpanded> |
2970 |
($ent->{has_replacement_text}); |
($ent->{has_replacement_text}); |
2971 |
push @{$self->{entity}}, <Code::getCopyOfEntityState:: |
push @{$self->{entity}}, <Code::getCopyOfEntityState:: |
2972 |
$entity_type = 'general_entity', |
$entity_type = 'general_entity', |
2988 |
} |
} |
2989 |
open my $empty, '<', \''; |
open my $empty, '<', \''; |
2990 |
$self->{entity}->[-1]->{fh} = $empty; |
$self->{entity}->[-1]->{fh} = $empty; |
2991 |
$er-><AS::x|EntityReference.manakaiExpanded> (false); |
$er-><AS::GERef.manakaiExpanded> (false); |
2992 |
} # recursive |
} # recursive |
2993 |
$ent->{is_opened} = true; |
$ent->{is_opened} = true; |
2994 |
} |
} |
3011 |
$self->{char} = pop @{$self->{entity_char}}; |
$self->{char} = pop @{$self->{entity_char}}; |
3012 |
pop (@{$self->{entity}})->{close_file}->(); |
pop (@{$self->{entity}})->{close_file}->(); |
3013 |
$self->{location} = $self->{entity}->[-1]; |
$self->{location} = $self->{entity}->[-1]; |
|
} |
|
3014 |
|
|
3015 |
// TODO: Set read-only flag |
$er-><M::Node.manakaiSetReadOnly> (true, true); |
3016 |
|
} |
3017 |
|
|
3018 |
?lexmode EntityReference; |
?lexmode EntityReference; |
3019 |
?requires-next-token; |
?requires-next-token; |
3061 |
__CODE{checkNCName:: $name => $name}__; |
__CODE{checkNCName:: $name => $name}__; |
3062 |
|
|
3063 |
$er = $self->{doc}-><M::Document.createEntityReference> ($name); |
$er = $self->{doc}-><M::Document.createEntityReference> ($name); |
3064 |
|
$er-><M::Node.manakaiSetReadOnly> (false, true); |
3065 |
$er-><AS::Node.textContent> (''); |
$er-><AS::Node.textContent> (''); |
3066 |
## NOTE: When document entity (and entities referenced directly |
## NOTE: When document entity (and entities referenced directly |
3067 |
## or indirectly from it) is parsed, no general entity |
## or indirectly from it) is parsed, no general entity |
3087 |
} # Otherwise VC error |
} # Otherwise VC error |
3088 |
push @{$self->{entity}}, <Code::getEmptyEntityState:: |
push @{$self->{entity}}, <Code::getEmptyEntityState:: |
3089 |
$name = $name>; |
$name = $name>; |
3090 |
$er-><AS::x|EntityReference.manakaiExpanded> (false); |
$er-><AS::GERef.manakaiExpanded> (false); |
3091 |
|
|
3092 |
} else { # there IS entity declaration |
} else { # there IS entity declaration |
3093 |
if (($self->{standalone} or not $self->{has_xref}) and |
if (($self->{standalone} or not $self->{has_xref}) and |
3125 |
## NOTE: |xp:wf-parsed-entity| is not checked |
## NOTE: |xp:wf-parsed-entity| is not checked |
3126 |
} # if external entity |
} # if external entity |
3127 |
|
|
3128 |
$er-><AS::x|EntityReference.manakaiExpanded> |
$er-><AS::GERef.manakaiExpanded> |
3129 |
($ent->{has_replacement_text}); |
($ent->{has_replacement_text}); |
3130 |
push @{$self->{entity}}, <Code::getCopyOfEntityState:: |
push @{$self->{entity}}, <Code::getCopyOfEntityState:: |
3131 |
$entity_type = 'general_entity', |
$entity_type = 'general_entity', |
3147 |
} |
} |
3148 |
open my $empty, '<', \''; |
open my $empty, '<', \''; |
3149 |
$self->{entity}->[-1]->{fh} = $empty; |
$self->{entity}->[-1]->{fh} = $empty; |
3150 |
$er-><AS::x|EntityReference.manakaiExpanded> (false); |
$er-><AS::GERef.manakaiExpanded> (false); |
3151 |
} # recursive |
} # recursive |
3152 |
$ent->{is_opened} = true; |
$ent->{is_opened} = true; |
3153 |
} |
} |
3170 |
$self->{char} = pop @{$self->{entity_char}}; |
$self->{char} = pop @{$self->{entity_char}}; |
3171 |
pop (@{$self->{entity}})->{close_file}->(); |
pop (@{$self->{entity}})->{close_file}->(); |
3172 |
$self->{location} = $self->{entity}->[-1]; |
$self->{location} = $self->{entity}->[-1]; |
|
} |
|
3173 |
|
|
3174 |
// TODO: Set read-only flag |
$er-><M::Node.manakaiSetReadOnly> (true, true); |
3175 |
|
} |
3176 |
|
|
3177 |
?lexmode EntityReference; |
?lexmode EntityReference; |
3178 |
?requires-next-token; |
?requires-next-token; |
3291 |
// TODO: Read and process external subset if any. |
// TODO: Read and process external subset if any. |
3292 |
lang:Perl { |
lang:Perl { |
3293 |
$self->{dont_process} = true if $has_extid; |
$self->{dont_process} = true if $has_extid; |
3294 |
|
$node-><M::Node.manakaiSetReadOnly> (true, true); |
3295 |
} |
} |
3296 |
|
|
3297 |
// ~ (MDC) { } |
// ~ (MDC) { } |
3387 |
|
|
3388 |
~? (STRING) { |
~? (STRING) { |
3389 |
lang:Perl ($v => $token.value) { |
lang:Perl ($v => $token.value) { |
3390 |
$decl-><AS::x|Entity.systemId> ($v); |
$decl-><AS::GE.systemId> ($v); |
3391 |
$decl-><AS::x|Entity.manakaiDeclarationBaseURI> |
$decl-><AS::GE.manakaiDeclarationBaseURI> |
3392 |
($self->{location}->{base_uri}); |
($self->{location}->{base_uri}); |
3393 |
} |
} |
3394 |
} |
} |
3977 |
lang:Perl ($v => $token.value) : has-error { |
lang:Perl ($v => $token.value) : has-error { |
3978 |
__CODE{checkNCName:: $name => $v}__; |
__CODE{checkNCName:: $name => $v}__; |
3979 |
$decl->{notation} = $v; |
$decl->{notation} = $v; |
3980 |
$decl->{node}-><AG::x|Entity.notationName> ($v); |
$decl->{node}-><AG::GE.notationName> ($v); |
3981 |
} |
} |
3982 |
} |
} |
3983 |
|
|
15227 |
@@@cfg:entity-replacement-tree: 1 |
@@@cfg:entity-replacement-tree: 1 |
15228 |
@@@c:erred: <[[xp|wf-syntax-error]]> { (1, 1)..(1, 2); } |
@@@c:erred: <[[xp|wf-syntax-error]]> { (1, 1)..(1, 2); } |
15229 |
|
|
15230 |
|
@@XMLTest: |
15231 |
|
@@@QName: xp.dtdecl.readonly.test |
15232 |
|
@@@DEnt: |
15233 |
|
@@@@test:value: |
15234 |
|
<!DOCTYPE p> |
15235 |
|
<p/> |
15236 |
|
@@@test:domTree: |
15237 |
|
document { |
15238 |
|
document-type { |
15239 |
|
manakai-read-only: true; |
15240 |
|
} |
15241 |
|
element { |
15242 |
|
manakai-read-only: false; |
15243 |
|
} |
15244 |
|
manakai-read-only: false; |
15245 |
|
} |
15246 |
|
@@XMLTest: |
15247 |
|
@@@QName: xp.entity.decl.readonly.1.test |
15248 |
|
@@@DEnt: |
15249 |
|
@@@@test:value: |
15250 |
|
<!DOCTYPE p [ |
15251 |
|
<!ENTITY ent "val"> |
15252 |
|
]> |
15253 |
|
<p/> |
15254 |
|
@@@cfg:entity-replacement-tree: 1 |
15255 |
|
@@@test:domTree: |
15256 |
|
document { |
15257 |
|
document-type { |
15258 |
|
general-entity { |
15259 |
|
node-name: 'ent'; |
15260 |
|
manakai-read-only: true; |
15261 |
|
has-replacement-tree: true; |
15262 |
|
} |
15263 |
|
manakai-read-only: true; |
15264 |
|
} |
15265 |
|
element { |
15266 |
|
manakai-read-only: false; |
15267 |
|
} |
15268 |
|
manakai-read-only: false; |
15269 |
|
} |
15270 |
|
@@XMLTest: |
15271 |
|
@@@QName: xp.entity.decl.readonly.2.test |
15272 |
|
@@@DEnt: |
15273 |
|
@@@@test:value: |
15274 |
|
<!DOCTYPE p [ |
15275 |
|
<!ENTITY ent "val"> |
15276 |
|
]> |
15277 |
|
<p/> |
15278 |
|
@@@test:domTree: |
15279 |
|
document { |
15280 |
|
document-type { |
15281 |
|
general-entity { |
15282 |
|
node-name: 'ent'; |
15283 |
|
manakai-read-only: true; |
15284 |
|
} |
15285 |
|
manakai-read-only: true; |
15286 |
|
} |
15287 |
|
element { |
15288 |
|
manakai-read-only: false; |
15289 |
|
} |
15290 |
|
manakai-read-only: false; |
15291 |
|
} |
15292 |
|
@@XMLTest: |
15293 |
|
@@@QName: xp.notation.decl.readonly.test |
15294 |
|
@@@DEnt: |
15295 |
|
@@@@test:value: |
15296 |
|
<!DOCTYPE p [ |
15297 |
|
<!NOTATION ent SYSTEM "val"> |
15298 |
|
]> |
15299 |
|
<p/> |
15300 |
|
@@@test:domTree: |
15301 |
|
document { |
15302 |
|
document-type { |
15303 |
|
notation { |
15304 |
|
node-name: 'ent'; |
15305 |
|
manakai-read-only: true; |
15306 |
|
} |
15307 |
|
manakai-read-only: true; |
15308 |
|
} |
15309 |
|
element { |
15310 |
|
manakai-read-only: false; |
15311 |
|
} |
15312 |
|
manakai-read-only: false; |
15313 |
|
} |
15314 |
|
@@XMLTest: |
15315 |
|
@@@QName: xp.dtd.pi.readonly.test |
15316 |
|
@@@DEnt: |
15317 |
|
@@@@test:value: |
15318 |
|
<!DOCTYPE p [ |
15319 |
|
<?pi content?> |
15320 |
|
]> |
15321 |
|
<p/> |
15322 |
|
@@@test:domTree: |
15323 |
|
document { |
15324 |
|
document-type { |
15325 |
|
pi { |
15326 |
|
node-name: 'pi'; |
15327 |
|
manakai-read-only: true; |
15328 |
|
} |
15329 |
|
manakai-read-only: true; |
15330 |
|
} |
15331 |
|
element { |
15332 |
|
manakai-read-only: false; |
15333 |
|
} |
15334 |
|
manakai-read-only: false; |
15335 |
|
} |
15336 |
|
@@XMLTest: |
15337 |
|
@@@QName: xp.dtd.attlist.decl.readonly.test |
15338 |
|
@@@DEnt: |
15339 |
|
@@@@test:value: |
15340 |
|
<!DOCTYPE p [ |
15341 |
|
<!ATTLIST p |
15342 |
|
attr CDATA #IMPLIED |
15343 |
|
> |
15344 |
|
]> |
15345 |
|
<p/> |
15346 |
|
@@@test:domTree: |
15347 |
|
document { |
15348 |
|
document-type { |
15349 |
|
element-type-definition { |
15350 |
|
node-name: 'p'; |
15351 |
|
attribute-definition { |
15352 |
|
node-name: 'attr'; |
15353 |
|
manakai-read-only: true; |
15354 |
|
} |
15355 |
|
manakai-read-only: true; |
15356 |
|
} |
15357 |
|
manakai-read-only: true; |
15358 |
|
} |
15359 |
|
element { |
15360 |
|
manakai-read-only: false; |
15361 |
|
} |
15362 |
|
manakai-read-only: false; |
15363 |
|
} |
15364 |
|
@@XMLTest: |
15365 |
|
@@@QName: xp.general.entity.reference.readonly.1.test |
15366 |
|
@@@DEnt: |
15367 |
|
@@@@test:value: |
15368 |
|
<!DOCTYPE p [ |
15369 |
|
<!ENTITY ent "val"> |
15370 |
|
]> |
15371 |
|
<p>&ent;</p> |
15372 |
|
@@@test:domTree: |
15373 |
|
document { |
15374 |
|
document-type { |
15375 |
|
general-entity { |
15376 |
|
node-name: 'ent'; |
15377 |
|
manakai-read-only: true; |
15378 |
|
} |
15379 |
|
manakai-read-only: true; |
15380 |
|
} |
15381 |
|
element { |
15382 |
|
general-entity-reference { |
15383 |
|
text { |
15384 |
|
manakai-read-only: true; |
15385 |
|
} |
15386 |
|
manakai-read-only: true; |
15387 |
|
} |
15388 |
|
manakai-read-only: false; |
15389 |
|
} |
15390 |
|
manakai-read-only: false; |
15391 |
|
} |
15392 |
|
@@XMLTest: |
15393 |
|
@@@QName: xp.general.entity.reference.readonly.2.test |
15394 |
|
@@@DEnt: |
15395 |
|
@@@@test:value: |
15396 |
|
<!DOCTYPE p [ |
15397 |
|
<!ENTITY ent "val"> |
15398 |
|
]> |
15399 |
|
<p attr="&ent;"/> |
15400 |
|
@@@test:domTree: |
15401 |
|
document { |
15402 |
|
document-type { |
15403 |
|
general-entity { |
15404 |
|
node-name: 'ent'; |
15405 |
|
manakai-read-only: true; |
15406 |
|
} |
15407 |
|
manakai-read-only: true; |
15408 |
|
} |
15409 |
|
element { |
15410 |
|
attribute { |
15411 |
|
node-name: 'attr'; |
15412 |
|
general-entity-reference { |
15413 |
|
text { |
15414 |
|
manakai-read-only: true; |
15415 |
|
} |
15416 |
|
manakai-read-only: true; |
15417 |
|
} |
15418 |
|
manakai-read-only: false; |
15419 |
|
} |
15420 |
|
manakai-read-only: false; |
15421 |
|
} |
15422 |
|
manakai-read-only: false; |
15423 |
|
} |
15424 |
|
@@XMLTest: |
15425 |
|
@@@QName: xp.general.entity.reference.readonly.3.test |
15426 |
|
@@@DEnt: |
15427 |
|
@@@@test:value: |
15428 |
|
<!DOCTYPE p [ |
15429 |
|
<!ENTITY ent1 "val"> |
15430 |
|
<!ENTITY ent2 "&ent1;"> |
15431 |
|
]> |
15432 |
|
<p>&ent2;</p> |
15433 |
|
@@@test:domTree: |
15434 |
|
document { |
15435 |
|
document-type { |
15436 |
|
general-entity { |
15437 |
|
node-name: 'ent1'; |
15438 |
|
manakai-read-only: true; |
15439 |
|
} |
15440 |
|
general-entity { |
15441 |
|
node-name: 'ent2'; |
15442 |
|
manakai-read-only: true; |
15443 |
|
} |
15444 |
|
manakai-read-only: true; |
15445 |
|
} |
15446 |
|
element { |
15447 |
|
general-entity-reference { |
15448 |
|
general-entity-reference { |
15449 |
|
text { |
15450 |
|
manakai-read-only: true; |
15451 |
|
} |
15452 |
|
manakai-read-only: true; |
15453 |
|
} |
15454 |
|
manakai-read-only: true; |
15455 |
|
} |
15456 |
|
manakai-read-only: false; |
15457 |
|
} |
15458 |
|
manakai-read-only: false; |
15459 |
|
} |
15460 |
|
|
15461 |
@@PerlDef: |
@@PerlDef: |
15462 |
my $impl = $Message::DOM::ImplementationRegistry->get_implementation ({ |
my $impl = $Message::DOM::ImplementationRegistry->get_implementation ({ |
15463 |
'Core' => '3.0', |
'Core' => '3.0', |
16676 |
@@c:isSupported: 1 |
@@c:isSupported: 1 |
16677 |
@@enDesc: |
@@enDesc: |
16678 |
The parser <kwd:MUST> cnstruct the replacement subtree of |
The parser <kwd:MUST> cnstruct the replacement subtree of |
16679 |
a general parsed <IF::x|Entity> node if the replacement text |
a general parsed <IF::tx|Entity> node if the replacement text |
16680 |
for the node is available. |
for the node is available. |
16681 |
|
|
16682 |
If this value is set to the parameter, then a fatal error |
If this value is set to the parameter, then a fatal error |
16690 |
@@c:isSupported: 1 |
@@c:isSupported: 1 |
16691 |
@@IsSupportRequired: 1 |
@@IsSupportRequired: 1 |
16692 |
@@enDesc: |
@@enDesc: |
16693 |
The parser don't have to construct <IF::x|Entity> replacement |
The parser don't have to construct <IF::tx|Entity> replacement |
16694 |
subtrees. |
subtrees. |
16695 |
|
|
16696 |
@Test: |
@Test: |