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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.34 by wakaba, Thu Mar 16 08:52:32 2006 UTC revision 1.35 by wakaba, Sun Apr 2 10:45:24 2006 UTC
# Line 19  Module: Line 19  Module:
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    
# Line 69  Namespace: Line 72  Namespace:
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:
# Line 115  ResourceDef: Line 126  ResourceDef:
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:
# Line 148  ResourceDef: Line 164  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:
# Line 471  ClsDef: Line 497  ClsDef:
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:
# Line 599  ClsDef: Line 625  ClsDef:
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};
# Line 617  ClsDef: Line 643  ClsDef:
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
# Line 675  ClsDef: Line 693  ClsDef:
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);
# Line 1424  ClsDef: Line 1441  ClsDef:
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 {
# Line 1784  ClsDef: Line 1801  ClsDef:
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                            
# Line 1806  ClsDef: Line 1821  ClsDef:
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                            
# Line 1857  ClsDef: Line 1870  ClsDef:
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);
# Line 1882  ClsDef: Line 1895  ClsDef:
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              }              }
# Line 2726  ClsDef: Line 2737  ClsDef:
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
# Line 2753  ClsDef: Line 2765  ClsDef:
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
# Line 2773  ClsDef: Line 2785  ClsDef:
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',
# Line 2811  ClsDef: Line 2823  ClsDef:
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
# Line 2833  ClsDef: Line 2845  ClsDef:
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;
# Line 2890  ClsDef: Line 2902  ClsDef:
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
# Line 2915  ClsDef: Line 2928  ClsDef:
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
# Line 2953  ClsDef: Line 2966  ClsDef:
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',
# Line 2975  ClsDef: Line 2988  ClsDef:
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            }            }
# Line 2998  ClsDef: Line 3011  ClsDef:
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;
# Line 3048  ClsDef: Line 3061  ClsDef:
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
# Line 3073  ClsDef: Line 3087  ClsDef:
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
# Line 3111  ClsDef: Line 3125  ClsDef:
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',
# Line 3133  ClsDef: Line 3147  ClsDef:
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            }            }
# Line 3156  ClsDef: Line 3170  ClsDef:
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;
# Line 3277  ClsDef: Line 3291  ClsDef:
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) { }
# Line 3372  ClsDef: Line 3387  ClsDef:
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        }        }
# Line 3962  ClsDef: Line 3977  ClsDef:
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    
# Line 15212  ClsDef: Line 15227  ClsDef:
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',
# Line 16430  boolCParam: Line 16676  boolCParam:
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
# Line 16444  boolCParam: Line 16690  boolCParam:
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:

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24