23 |
@@@WithFor: ManakaiDOM|ManakaiDOMLatest |
@@@WithFor: ManakaiDOM|ManakaiDOMLatest |
24 |
|
|
25 |
Namespace: |
Namespace: |
26 |
|
@c: |
27 |
|
http://suika.fam.cx/~wakaba/archive/2004/8/18/dom-core# |
28 |
@d: |
@d: |
29 |
http://suika.fam.cx/~wakaba/archive/2004/dom/xdt# |
http://suika.fam.cx/~wakaba/archive/2004/dom/xdt# |
30 |
@dis: |
@dis: |
31 |
http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#dis-- |
http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#dis-- |
|
@DOMCore: |
|
|
http://suika.fam.cx/~wakaba/archive/2004/8/18/dom-core# |
|
|
@DOMMain: |
|
|
http://suika.fam.cx/~wakaba/archive/2004/dom/main# |
|
32 |
@dtest: |
@dtest: |
33 |
http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/DIS#Test/ |
http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/DIS#Test/ |
34 |
@dx: |
@dx: |
63 |
http://suika.fam.cx/~wakaba/archive/2004/dom/tree# |
http://suika.fam.cx/~wakaba/archive/2004/dom/tree# |
64 |
@test: |
@test: |
65 |
http://suika.fam.cx/~wakaba/archive/2004/dis/Test# |
http://suika.fam.cx/~wakaba/archive/2004/dis/Test# |
66 |
|
@x: |
67 |
|
http://suika.fam.cx/~wakaba/archive/2004/dom/xml# |
68 |
@xml: |
@xml: |
69 |
http://www.w3.org/XML/1998/namespace |
http://www.w3.org/XML/1998/namespace |
70 |
@xmlns: |
@xmlns: |
121 |
@AliasFor: d|DocumentXDoctype |
@AliasFor: d|DocumentXDoctype |
122 |
@For: ManakaiDOM|DOM |
@For: ManakaiDOM|DOM |
123 |
|
|
124 |
|
ResourceDef: |
125 |
|
@QName: DTDef |
126 |
|
@AliasFor: d|DocumentTypeDefinition |
127 |
|
@For: ManakaiDOM|DOM |
128 |
|
|
129 |
|
ResourceDef: |
130 |
|
@QName: ETDef |
131 |
|
@AliasFor: d|ElementTypeDefinition |
132 |
|
@For: ManakaiDOM|DOM |
133 |
|
|
134 |
|
ResourceDef: |
135 |
|
@QName: ATDef |
136 |
|
@AliasFor: d|AttributeDefinition |
137 |
|
@For: ManakaiDOM|DOM |
138 |
|
|
139 |
ElementTypeBinding: |
ElementTypeBinding: |
140 |
@Name: ClsDef |
@Name: ClsDef |
141 |
@ElementType: |
@ElementType: |
1848 |
~ (Name == 'ELEMENT') { |
~ (Name == 'ELEMENT') { |
1849 |
&_ElementDeclaration ($doc => $doc); |
&_ElementDeclaration ($doc => $doc); |
1850 |
} (Name == 'ATTLIST') { |
} (Name == 'ATTLIST') { |
1851 |
&_AttlistDeclaration ($doc => $doc); |
&_AttlistDeclaration ($doc => $doc, $doctype => $doctype); |
1852 |
} (Name == 'ENTITY') { |
} (Name == 'ENTITY') { |
1853 |
&_EntityDeclaration ($doc => $doc); |
&_EntityDeclaration ($doc => $doc); |
1854 |
} (Name == 'NOTATION') { |
} (Name == 'NOTATION') { |
2028 |
} |
} |
2029 |
} // ContentParticle |
} // ContentParticle |
2030 |
|
|
2031 |
rule _AttlistDeclaration ($doc) { |
/* |
2032 |
|
Attribute list declaration |
2033 |
|
*/ |
2034 |
|
rule _AttlistDeclaration ($doc, $doctype) { |
2035 |
// ~ (MDO) { } |
// ~ (MDO) { } |
2036 |
// ~ (Name == 'ATTLIST') { } |
// ~ (Name == 'ATTLIST') { } |
2037 |
|
|
2039 |
|
|
2040 |
~ (S) { } |
~ (S) { } |
2041 |
|
|
2042 |
|
my $name; |
2043 |
~ (Name) { |
~ (Name) { |
2044 |
|
lang:Perl ($v => $token.value) { |
2045 |
|
$name = $v; |
2046 |
|
} |
2047 |
|
} else { |
2048 |
|
lang:Perl { $name = '#ILLEGAL' } |
2049 |
|
} |
2050 |
|
|
2051 |
|
my $docxd; |
2052 |
|
my $et; |
2053 |
|
lang:Perl { |
2054 |
|
$et = $doctype-><M::DTDef.getElementTypeDefinitionNode> ($name); |
2055 |
|
unless ($et) { |
2056 |
|
$docxd = $doc-><M::Node.getFeature> (<Q::ManakaiDOM:XDoctype>, '3.0'); |
2057 |
|
$et = $docxd-><M::DocumentXDoctype.createElementTypeDefinition> |
2058 |
|
($name); |
2059 |
|
$doctype-><M::DTDef.setElementTypeDefinitionNode> ($et) |
2060 |
|
unless $name eq '#ILLEGAL'; |
2061 |
|
} |
2062 |
} |
} |
2063 |
|
|
2064 |
~? (S) { } |
~? (S) { } |
2065 |
|
|
2066 |
~* (Name) { |
~* (Name) { |
2067 |
|
my $at; |
2068 |
|
lang:Perl ($v => $token.value) { |
2069 |
|
$docxd ||= $doc-><M::Node.getFeature> |
2070 |
|
(<Q::ManakaiDOM:XDoctype>, '3.0'); |
2071 |
|
$at = $docxd-><M::DocumentXDoctype.createAttributeDefinition> ($v); |
2072 |
|
$et-><M::ETDef.setAttributeDefinitionNode> ($at) |
2073 |
|
unless exists $et-><AG::ETDef.attributeDefinitions>->{$v}; |
2074 |
|
} |
2075 |
|
|
2076 |
~ (S) { } |
~ (S) { } |
2077 |
|
|
2079 |
~ (Name == 'NOTATION') { |
~ (Name == 'NOTATION') { |
2080 |
~ (S) { } |
~ (S) { } |
2081 |
|
|
2082 |
|
my $kwd; |
2083 |
|
lang:Perl { |
2084 |
|
$at-><AS::ATDef.declaredType> (<C::ATDef.NOTATION_ATTR>); |
2085 |
|
$kwd = $at-><AG::ATDef.allowedTokens>; |
2086 |
|
} |
2087 |
|
|
2088 |
~ (EGO) { |
~ (EGO) { |
2089 |
~? (S) { } |
~? (S) { } |
2090 |
|
|
2091 |
~ (Name) { |
~+ (Name) { |
2092 |
|
lang:Perl ($v => $token.value) { |
2093 |
|
push @$kwd, $v; |
2094 |
|
} |
2095 |
|
|
2096 |
~? (S) { } |
~? (S) { } |
2097 |
} (OR) : separator { |
} (OR) : separator { |
2100 |
|
|
2101 |
~ (EGC) { } |
~ (EGC) { } |
2102 |
} |
} |
2103 |
|
|
2104 |
} (Name) { |
} (Name) { |
2105 |
// TODO: check keyword |
my $type; |
2106 |
|
lang:Perl ($v => $token.value) : has-error { |
2107 |
|
my $map = { |
2108 |
|
CDATA => <C::ATDef.CDATA_ATTR>, |
2109 |
|
ID => <C::ATDef.ID_ATTR>, |
2110 |
|
IDREF => <C::ATDef.IDREF_ATTR>, |
2111 |
|
IDREFS => <C::ATDef.IDREFS_ATTR>, |
2112 |
|
ENTITY => <C::ATDef.ENTITY_ATTR>, |
2113 |
|
ENTITIES => <C::ATDef.ENTITIES_ATTR>, |
2114 |
|
NMTOKEN => <C::ATDef.NMTOKEN_ATTR>, |
2115 |
|
NMTOKENS => <C::ATDef.NMTOKENS_ATTR>, |
2116 |
|
}; |
2117 |
|
if ($map->{$v}) { |
2118 |
|
$at-><AS::ATDef.declaredType> ($map->{$v}); |
2119 |
|
} else { |
2120 |
|
## TODO: Exception |
2121 |
|
} |
2122 |
|
} |
2123 |
|
|
2124 |
} (EGO) { |
} (EGO) { |
2125 |
?lexmode Enumeration; |
?lexmode Enumeration; |
2126 |
|
|
2127 |
~? (S) { } |
~? (S) { } |
2128 |
|
|
2129 |
~ (Nmtoken) { |
my $kwd; |
2130 |
|
lang:Perl { |
2131 |
|
$at-><AS::ATDef.declaredType> (<C::ATDef.ENUMERATION_ATTR>); |
2132 |
|
$kwd = $at-><AG::ATDef.allowedTokens>; |
2133 |
|
} |
2134 |
|
|
2135 |
|
~+ (Nmtoken) { |
2136 |
|
lang:Perl ($v => $token.value) { |
2137 |
|
push @$kwd, $v; |
2138 |
|
} |
2139 |
|
|
2140 |
~? (S) { } |
~? (S) { } |
2141 |
} (OR) : separator { |
} (OR) : separator { |
2155 |
// DefaultDecl |
// DefaultDecl |
2156 |
~ (RNI) { |
~ (RNI) { |
2157 |
~ (Name == 'REQUIRED') { |
~ (Name == 'REQUIRED') { |
2158 |
|
lang:Perl { |
2159 |
|
$at-><AS::ATDef.defaultType> (<C::ATDef.REQUIRED_DEFAULT>); |
2160 |
|
} |
2161 |
} (Name == 'IMPLIED') { |
} (Name == 'IMPLIED') { |
2162 |
|
lang:Perl { |
2163 |
|
$at-><AS::ATDef.defaultType> (<C::ATDef.IMPLIED_DEFAULT>); |
2164 |
|
} |
2165 |
} (Name == 'FIXED') { |
} (Name == 'FIXED') { |
2166 |
~ (S) { } |
~ (S) { } |
2167 |
|
|
2168 |
|
lang:Perl { |
2169 |
|
$at-><AS::ATDef.defaultType> (<C::ATDef.FIXED_DEFAULT>); |
2170 |
|
} |
2171 |
|
|
2172 |
~ (LIT) { |
~ (LIT) { |
2173 |
my $vals; |
my $vals; |
2174 |
lang:Perl { |
lang:Perl { |
2175 |
$vals = []; |
$vals = {nodes => [], value => ''}; |
2176 |
} |
} |
2177 |
|
|
2178 |
&_AttributeValueSpecification_ ($doc => $doc, $vals => $vals); |
&_AttributeValueSpecification_ ($doc => $doc, $vals => $vals); |
2179 |
|
|
2180 |
|
lang:Perl { |
2181 |
|
for (@{$vals->{nodes}}) { |
2182 |
|
$at-><M::Node.appendChild> ($_); |
2183 |
|
} |
2184 |
|
} |
2185 |
|
|
2186 |
~ (LIT) { |
~ (LIT) { |
2187 |
?lexmode AttlistDeclaration; |
?lexmode AttlistDeclaration; |
2188 |
} else { |
} else { |
2191 |
} (LITA) { |
} (LITA) { |
2192 |
my $vals; |
my $vals; |
2193 |
lang:Perl { |
lang:Perl { |
2194 |
$vals = []; |
$vals = {nodes => [], value => ''}; |
2195 |
} |
} |
2196 |
|
|
2197 |
&_AttributeValueSpecificationA_ ($doc => $doc, $vals => $vals); |
&_AttributeValueSpecificationA_ ($doc => $doc, $vals => $vals); |
2198 |
|
|
2199 |
~ (LIT) { |
lang:Perl { |
2200 |
|
for (@{$vals->{nodes}}) { |
2201 |
|
$at-><M::Node.appendChild> ($_); |
2202 |
|
} |
2203 |
|
} |
2204 |
|
|
2205 |
|
~ (LITA) { |
2206 |
?lexmode AttlistDeclaration; |
?lexmode AttlistDeclaration; |
2207 |
} else { |
} else { |
2208 |
?lexmode AttlistDeclaration; |
?lexmode AttlistDeclaration; |
2213 |
} (LIT) { |
} (LIT) { |
2214 |
my $vals; |
my $vals; |
2215 |
lang:Perl { |
lang:Perl { |
2216 |
$vals = []; |
$at-><AS::ATDef.defaultType> (<C::ATDef.EXPLICIT_DEFAULT>); |
2217 |
|
$vals = {nodes => [], value => ''}; |
2218 |
} |
} |
2219 |
|
|
2220 |
&_AttributeValueSpecification_ ($doc => $doc, $vals => $vals); |
&_AttributeValueSpecification_ ($doc => $doc, $vals => $vals); |
2221 |
|
|
2222 |
|
lang:Perl { |
2223 |
|
for (@{$vals->{nodes}}) { |
2224 |
|
$at-><M::Node.appendChild> ($_); |
2225 |
|
} |
2226 |
|
} |
2227 |
|
|
2228 |
~ (LIT) { |
~ (LIT) { |
2229 |
?lexmode AttlistDeclaration; |
?lexmode AttlistDeclaration; |
2230 |
} else { |
} else { |
2233 |
} (LITA) { |
} (LITA) { |
2234 |
my $vals; |
my $vals; |
2235 |
lang:Perl { |
lang:Perl { |
2236 |
$vals = []; |
$at-><AS::ATDef.defaultType> (<C::ATDef.EXPLICIT_DEFAULT>); |
2237 |
|
$vals = {nodes => [], value => ''}; |
2238 |
} |
} |
2239 |
|
|
2240 |
&_AttributeValueSpecificationA_ ($doc => $doc, $vals => $vals); |
&_AttributeValueSpecificationA_ ($doc => $doc, $vals => $vals); |
2241 |
|
|
2242 |
|
lang:Perl { |
2243 |
|
for (@{$vals->{nodes}}) { |
2244 |
|
$at-><M::Node.appendChild> ($_); |
2245 |
|
} |
2246 |
|
} |
2247 |
|
|
2248 |
~ (LITA) { |
~ (LITA) { |
2249 |
?lexmode AttlistDeclaration; |
?lexmode AttlistDeclaration; |
2250 |
} else { |
} else { |
3606 |
} |
} |
3607 |
} |
} |
3608 |
} |
} |
3609 |
|
@@XMLTest: |
3610 |
|
@@@QName: xp.doctype.internal.attr.empty.test |
3611 |
|
@@@DEnt: |
3612 |
|
@@@@test:value: |
3613 |
|
<!DOCTYPE a [ |
3614 |
|
<!ATTLIST a> |
3615 |
|
]> |
3616 |
|
<a></a> |
3617 |
|
@@@test:domTree: |
3618 |
|
document { |
3619 |
|
xml-version: '1.0'; |
3620 |
|
xml-encoding: null; |
3621 |
|
xml-standalone: false; |
3622 |
|
document-type { |
3623 |
|
node-name: 'a'; |
3624 |
|
element-type-definition { |
3625 |
|
node-name: 'a'; |
3626 |
|
} |
3627 |
|
} |
3628 |
|
element { |
3629 |
|
namespace-uri: null; |
3630 |
|
local-name: 'a'; |
3631 |
|
} |
3632 |
|
} |
3633 |
|
@@XMLTest: |
3634 |
|
@@@QName: xp.doctype.internal.attr.cdata.implied.test |
3635 |
|
@@@DEnt: |
3636 |
|
@@@@test:value: |
3637 |
|
<!DOCTYPE a [ |
3638 |
|
<!ATTLIST a |
3639 |
|
at CDATA #IMPLIED |
3640 |
|
> |
3641 |
|
]> |
3642 |
|
<a></a> |
3643 |
|
@@@test:domTree: |
3644 |
|
document { |
3645 |
|
xml-version: '1.0'; |
3646 |
|
xml-encoding: null; |
3647 |
|
xml-standalone: false; |
3648 |
|
document-type { |
3649 |
|
node-name: 'a'; |
3650 |
|
element-type-definition { |
3651 |
|
node-name: 'a'; |
3652 |
|
attribute-definition { |
3653 |
|
node-name: 'at'; |
3654 |
|
declared-type: const (CDATA_ATTR); |
3655 |
|
allowed-tokens: DOMStringList (); |
3656 |
|
default-type: const (IMPLIED_DEFAULT); |
3657 |
|
text-content: ''; |
3658 |
|
} |
3659 |
|
} |
3660 |
|
} |
3661 |
|
element { |
3662 |
|
namespace-uri: null; |
3663 |
|
local-name: 'a'; |
3664 |
|
} |
3665 |
|
} |
3666 |
|
@@XMLTest: |
3667 |
|
@@@QName: xp.doctype.internal.attr.types.implied.test |
3668 |
|
@@@DEnt: |
3669 |
|
@@@@test:value: |
3670 |
|
<!DOCTYPE a [ |
3671 |
|
<!ATTLIST a |
3672 |
|
at1 ID #IMPLIED |
3673 |
|
at2 IDREF #IMPLIED |
3674 |
|
at3 IDREFS #IMPLIED |
3675 |
|
at4 ENTITY #IMPLIED |
3676 |
|
at5 ENTITIES #IMPLIED |
3677 |
|
at6 NMTOKEN #IMPLIED |
3678 |
|
at7 NMTOKENS #IMPLIED |
3679 |
|
at8 NOTATION (n1 | n2|n3) #IMPLIED |
3680 |
|
at9 (e1| e2| e3 ) #IMPLIED |
3681 |
|
> |
3682 |
|
]> |
3683 |
|
<a></a> |
3684 |
|
@@@test:domTree: |
3685 |
|
document { |
3686 |
|
xml-version: '1.0'; |
3687 |
|
xml-encoding: null; |
3688 |
|
xml-standalone: false; |
3689 |
|
document-type { |
3690 |
|
node-name: 'a'; |
3691 |
|
element-type-definition { |
3692 |
|
node-name: 'a'; |
3693 |
|
attribute-definition { |
3694 |
|
node-name: 'at1'; |
3695 |
|
declared-type: const (ID_ATTR); |
3696 |
|
allowed-tokens: DOMStringList (); |
3697 |
|
default-type: const (IMPLIED_DEFAULT); |
3698 |
|
text-content: ''; |
3699 |
|
} |
3700 |
|
attribute-definition { |
3701 |
|
node-name: 'at2'; |
3702 |
|
declared-type: const (IDREF_ATTR); |
3703 |
|
allowed-tokens: DOMStringList (); |
3704 |
|
default-type: const (IMPLIED_DEFAULT); |
3705 |
|
text-content: ''; |
3706 |
|
} |
3707 |
|
attribute-definition { |
3708 |
|
node-name: 'at3'; |
3709 |
|
declared-type: const (IDREFS_ATTR); |
3710 |
|
allowed-tokens: DOMStringList (); |
3711 |
|
default-type: const (IMPLIED_DEFAULT); |
3712 |
|
text-content: ''; |
3713 |
|
} |
3714 |
|
attribute-definition { |
3715 |
|
node-name: 'at4'; |
3716 |
|
declared-type: const (ENTITY_ATTR); |
3717 |
|
allowed-tokens: DOMStringList (); |
3718 |
|
default-type: const (IMPLIED_DEFAULT); |
3719 |
|
text-content: ''; |
3720 |
|
} |
3721 |
|
attribute-definition { |
3722 |
|
node-name: 'at5'; |
3723 |
|
declared-type: const (ENTITIES_ATTR); |
3724 |
|
allowed-tokens: DOMStringList (); |
3725 |
|
default-type: const (IMPLIED_DEFAULT); |
3726 |
|
text-content: ''; |
3727 |
|
} |
3728 |
|
attribute-definition { |
3729 |
|
node-name: 'at6'; |
3730 |
|
declared-type: const (NMTOKEN_ATTR); |
3731 |
|
allowed-tokens: DOMStringList (); |
3732 |
|
default-type: const (IMPLIED_DEFAULT); |
3733 |
|
text-content: ''; |
3734 |
|
} |
3735 |
|
attribute-definition { |
3736 |
|
node-name: 'at7'; |
3737 |
|
declared-type: const (NMTOKENS_ATTR); |
3738 |
|
allowed-tokens: DOMStringList (); |
3739 |
|
default-type: const (IMPLIED_DEFAULT); |
3740 |
|
text-content: ''; |
3741 |
|
} |
3742 |
|
attribute-definition { |
3743 |
|
node-name: 'at8'; |
3744 |
|
declared-type: const (NOTATION_ATTR); |
3745 |
|
allowed-tokens: DOMStringList ('n1', 'n2', 'n3'); |
3746 |
|
default-type: const (IMPLIED_DEFAULT); |
3747 |
|
text-content: ''; |
3748 |
|
} |
3749 |
|
attribute-definition { |
3750 |
|
node-name: 'at9'; |
3751 |
|
declared-type: const (ENUMERATION_ATTR); |
3752 |
|
allowed-tokens: DOMStringList ('e1', 'e2', 'e3'); |
3753 |
|
default-type: const (IMPLIED_DEFAULT); |
3754 |
|
text-content: ''; |
3755 |
|
} |
3756 |
|
} |
3757 |
|
} |
3758 |
|
element { |
3759 |
|
namespace-uri: null; |
3760 |
|
local-name: 'a'; |
3761 |
|
} |
3762 |
|
} |
3763 |
|
@@XMLTest: |
3764 |
|
@@@QName: xp.doctype.internal.attr.cdata.defaults.test |
3765 |
|
@@@DEnt: |
3766 |
|
@@@@test:value: |
3767 |
|
<!DOCTYPE a [ |
3768 |
|
<!ATTLIST a |
3769 |
|
at1 CDATA #IMPLIED |
3770 |
|
at2 CDATA #REQUIRED |
3771 |
|
at3 CDATA #FIXED "value3" |
3772 |
|
at4 CDATA "value4" |
3773 |
|
at5 CDATA #FIXED 'value5' |
3774 |
|
at6 CDATA 'value6' |
3775 |
|
> |
3776 |
|
]> |
3777 |
|
<a></a> |
3778 |
|
@@@test:domTree: |
3779 |
|
document { |
3780 |
|
xml-version: '1.0'; |
3781 |
|
xml-encoding: null; |
3782 |
|
xml-standalone: false; |
3783 |
|
document-type { |
3784 |
|
node-name: 'a'; |
3785 |
|
element-type-definition { |
3786 |
|
node-name: 'a'; |
3787 |
|
attribute-definition { |
3788 |
|
node-name: 'at1'; |
3789 |
|
declared-type: const (CDATA_ATTR); |
3790 |
|
allowed-tokens: DOMStringList (); |
3791 |
|
default-type: const (IMPLIED_DEFAULT); |
3792 |
|
text-content: ''; |
3793 |
|
} |
3794 |
|
attribute-definition { |
3795 |
|
node-name: 'at2'; |
3796 |
|
declared-type: const (CDATA_ATTR); |
3797 |
|
allowed-tokens: DOMStringList (); |
3798 |
|
default-type: const (REQUIRED_DEFAULT); |
3799 |
|
text-content: ''; |
3800 |
|
} |
3801 |
|
attribute-definition { |
3802 |
|
node-name: 'at3'; |
3803 |
|
declared-type: const (CDATA_ATTR); |
3804 |
|
allowed-tokens: DOMStringList (); |
3805 |
|
default-type: const (FIXED_DEFAULT); |
3806 |
|
text-content: 'value3'; |
3807 |
|
} |
3808 |
|
attribute-definition { |
3809 |
|
node-name: 'at4'; |
3810 |
|
declared-type: const (CDATA_ATTR); |
3811 |
|
allowed-tokens: DOMStringList (); |
3812 |
|
default-type: const (EXPLICIT_DEFAULT); |
3813 |
|
text-content: 'value4'; |
3814 |
|
} |
3815 |
|
attribute-definition { |
3816 |
|
node-name: 'at5'; |
3817 |
|
declared-type: const (CDATA_ATTR); |
3818 |
|
allowed-tokens: DOMStringList (); |
3819 |
|
default-type: const (FIXED_DEFAULT); |
3820 |
|
text-content: 'value5'; |
3821 |
|
} |
3822 |
|
attribute-definition { |
3823 |
|
node-name: 'at6'; |
3824 |
|
declared-type: const (CDATA_ATTR); |
3825 |
|
allowed-tokens: DOMStringList (); |
3826 |
|
default-type: const (EXPLICIT_DEFAULT); |
3827 |
|
text-content: 'value6'; |
3828 |
|
} |
3829 |
|
} |
3830 |
|
} |
3831 |
|
element { |
3832 |
|
namespace-uri: null; |
3833 |
|
local-name: 'a'; |
3834 |
|
} |
3835 |
|
} |
3836 |
|
|
3837 |
@@PerlDef: |
@@PerlDef: |
3838 |
my $impl = $Message::DOM::ImplementationRegistry->get_implementation ({ |
my $impl = $Message::DOM::ImplementationRegistry->get_implementation ({ |