/[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.25 by wakaba, Wed Feb 15 15:36:16 2006 UTC revision 1.26 by wakaba, Thu Feb 16 20:03:20 2006 UTC
# Line 327  ClsDef: Line 327  ClsDef:
327              ## NOTE: Turn this configuration parameter on makes              ## NOTE: Turn this configuration parameter on makes
328              ##       entity reference subtrees in attribute default values              ##       entity reference subtrees in attribute default values
329              ##       cloned as is into default attribute node subtrees.              ##       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            ## Document entity -> |Document| node
345            $self->_parse_DocumentEntity;            $self->_parse_DocumentEntity;
# Line 357  ClsDef: Line 370  ClsDef:
370                                (<Q::cfg|entity-reference-read-only> => null);                                (<Q::cfg|entity-reference-read-only> => null);
371            $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>            $self->{doc_cfg}-><M::c|DOMConfiguration.setParameter>
372                                (<Q::cfg|clone-entity-reference-subtree> => null);                                (<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);            $r-><AS::Document.strictErrorChecking> (true);
378          }__;          }__;
379    
# Line 991  ClsDef: Line 1008  ClsDef:
1008                }__;                }__;
1009              }              }
1010            }            }
1011            ## TODO: Namespace well-formedness            __CODE{checkNCName:: $name => $name}__;
1012              
1013            $pi = $doc-><M::Document.createProcessingInstruction>            $pi = $doc-><M::Document.createProcessingInstruction>
1014                          ($name);                          ($name);
1015          }          }
# Line 1054  ClsDef: Line 1072  ClsDef:
1072                }__;                }__;
1073              }              }
1074            }            }
1075            ## TODO: Namespace well-formedness            __CODE{checkNCName:: $name => $name}__;
1076              
1077            $pi = $doc-><M::Document.createProcessingInstruction>            $pi = $doc-><M::Document.createProcessingInstruction>
1078                          ($name);                          ($name);
1079          }                }      
# Line 1139  ClsDef: Line 1158  ClsDef:
1158                    
1159          ~ (Name) {          ~ (Name) {
1160            my $attrs;            my $attrs;
1161            lang:Perl ($name => $token.value) {            lang:Perl ($name => $token.value) : has-error {
1162                __CODE{checkQName:: $name => $name}__;
1163              push @{$types}, $type;              push @{$types}, $type;
1164              $type = $name;              $type = $name;
1165              $attrs = {};              $attrs = {};
# Line 1171  ClsDef: Line 1191  ClsDef:
1191            lang:Perl {            lang:Perl {
1192              push @{$nses}, $ns;              push @{$nses}, $ns;
1193              $ns = {%$ns};              $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;              my %gattr;
1212              my %lattr;              my %lattr;
# Line 1178  ClsDef: Line 1214  ClsDef:
1214                my ($pfx, $lname) = split /:/, $atqname;                my ($pfx, $lname) = split /:/, $atqname;
1215                $attrs->{$atqname}->{def} = $self->{attr}->{$type}->{$atqname};                $attrs->{$atqname}->{def} = $self->{attr}->{$type}->{$atqname};
1216                if (defined $lname) {  ## Global attribute                if (defined $lname) {  ## Global attribute
                 ## TODO: Namespace well-formedness (lname is NCName)  
1217                  if ($pfx eq 'xmlns') {                  if ($pfx eq 'xmlns') {
1218                    my $nsuri = $attrs->{$atqname}->{value};                    my $nsuri = $attrs->{$atqname}->{is_default}
1219                    if ($lname eq 'xml' and                                  ? $attrs->{$atqname}->{def}-><AG::Node.nodeValue>
1220                        $nsuri ne <Q::xml:>) {                                  : $attrs->{$atqname}->{value};
1221                      ## TODO: error                    if (not $attrs->{$atqname}->{is_default} and
1222                    } elsif ($lname eq 'xmlns') {                        $attrs->{$atqname}->{def}) {
                     ## TODO: error  
                   }  
                   if ($nsuri eq '') {  
                     ## TODO: error in XML 1.0  
                   } elsif ($nsuri eq <Q::xml:> and  
                            $lname ne 'xml') {  
                     ## TODO: error  
                   } elsif ($nsuri eq <Q::xmlns:>) {  
                     ## TODO: error  
                   }  
                   $ns->{$lname} = $attrs->{$atqname}->{value};  
                   if ($attrs->{$atqname}->{def}) {  
1223                      my $dt = $attrs->{$atqname}->{def}-><AG::ATDef.declaredType>;                      my $dt = $attrs->{$atqname}->{def}-><AG::ATDef.declaredType>;
1224                      if ({                      if ({
1225                        <C::ATDef.ID_ATTR> => true,                        <C::ATDef.ID_ATTR> => true,
# Line 1210  ClsDef: Line 1233  ClsDef:
1233                        <C::ATDef.ENUMERATION_ATTR> => true,                        <C::ATDef.ENUMERATION_ATTR> => true,
1234                      }->{$dt}) {                      }->{$dt}) {
1235                        ## Tokenization (XML 1 3.3.3)                        ## Tokenization (XML 1 3.3.3)
1236                        for ($ns->{$lname}) {                        for ($nsuri) {
1237                          s/^\x20+//;                          s/^\x20+//;
1238                          s/\x20+\z//;                          s/\x20+\z//;
1239                          s/\x20+/ /g;                          s/\x20+/ /g;
1240                        }                        }
1241                      }                      }
1242                    }                    }
1243                    delete $ns->{$lname} unless length $ns->{$lname};                    if ($lname eq 'xml' and
1244                  } elsif ($pfx eq '') {                        $nsuri ne <Q::xml:>) {
1245                    ## TODO: pfx is not NCName error                      my $location;
1246                  } else {                      __CODE{xp|get-location-from-token::
1247                    if ($gattr{$pfx}->{$lname}) {                        $token => $token,
1248                      ## TODO: Namespace well-formedness error                        $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};                  $gattr{$pfx}->{$lname} = $attrs->{$atqname};
1330                } else {               ## Local attribute                } else {               ## Local attribute
1331                  if ($pfx eq 'xmlns') {                  if ($pfx eq 'xmlns') {
1332                    $ns->{''} = $attrs->{xmlns}->{value};                    $ns->{''} = $attrs->{xmlns}->{is_default}
1333                    if ($attrs->{$atqname}->{def}) {                                  ? $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>;                      my $dt = $attrs->{$atqname}->{def}-><AG::ATDef.declaredType>;
1338                      if ({                      if ({
1339                        <C::ATDef.ID_ATTR> => true,                        <C::ATDef.ID_ATTR> => true,
# Line 1250  ClsDef: Line 1354  ClsDef:
1354                        }                        }
1355                      }                      }
1356                    }                    }
1357                    delete $ns->{''} unless length $ns->{''};                    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 {                  } else {
1393                    $lattr{$pfx} = $attrs->{$atqname};                    $lattr{$pfx} = $attrs->{$atqname};
1394                  }                  }
# Line 1259  ClsDef: Line 1397  ClsDef:
1397                            
1398              my ($pfx, $lname) = split /:/, $type;              my ($pfx, $lname) = split /:/, $type;
1399              my $nsuri;              my $nsuri;
             ## TODO: lname is NCName?  
1400              if (defined $lname) {  ## Prefixed namespace              if (defined $lname) {  ## Prefixed namespace
               if ($pfx eq '') {  
                 ## TODO: pfx is not NCName error  
               }  
1401                if (defined $ns->{$pfx}) {                if (defined $ns->{$pfx}) {
1402                  $nsuri = $ns->{$pfx};                  $nsuri = $ns->{$pfx};
1403                } else {                } else {
1404                  ## TODO: namespace ill-formed                  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              } else {               ## Default namespace
1420                $nsuri = $ns->{''};                $nsuri = $ns->{''};
# Line 1289  ClsDef: Line 1436  ClsDef:
1436                  }__;                  }__;
1437                }                }
1438                $el-><M::Element.setAttributeNodeNS> ($attr);                $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) {              for my $lname (keys %lattr) {
# Line 1304  ClsDef: Line 1453  ClsDef:
1453                  }__;                  }__;
1454                }                }
1455                $el-><M::Element.setAttributeNodeNS> ($attr);                $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) {              for my $pfx (keys %gattr) {
1461                for my $lname (keys %{$gattr{$pfx}}) {                LN: for my $lname (keys %{$gattr{$pfx}}) {
1462                  my $attr = $doc-><M::Document.createAttributeNS>                  my $name = $pfx.':'.$lname;
1463                                     ($ns->{$pfx}, $pfx.':'.$lname);                  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}}) {                  for (@{$gattr{$pfx}->{$lname}->{nodes}}) {
1518                    $attr-><M::Node.appendChild> ($_);                    $attr-><M::Node.appendChild> ($_);
1519                  }                  }
1520                  if ($attrs->{$pfx}->{$lname}->{def}) {                  if ($gattr{$pfx}->{$lname}->{def}) {
1521                    __CODE{t|setAttrType::                    __CODE{t|setAttrType::
1522                      $attr => $attr,                      $attr => $attr,
1523                      $type => {$attrs->{$pfx}->{$lname}                      $type => {$gattr{$pfx}->{$lname}
1524                                      ->{def}-><AG::ATDef.declaredType>},                                      ->{def}-><AG::ATDef.declaredType>},
1525                    }__;                    }__;
1526                  }                  }
1527                  $el-><M::Element.setAttributeNodeNS> ($attr);                  $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);                          $node-><M::Node.appendChild> ($el);            
# Line 1365  ClsDef: Line 1571  ClsDef:
1571          my $is_docel;          my $is_docel;
1572                    
1573          ~ (Name) {          ~ (Name) {
1574              // No NCName & QName check (it must match to start-tag)
1575            lang:Perl ($name => $token.value) : has-error {            lang:Perl ($name => $token.value) : has-error {
1576              if ($name eq $type) {              if ($name eq $type) {
1577                $type = pop @{$types};                $type = pop @{$types};
# Line 1561  ClsDef: Line 1768  ClsDef:
1768                
1769        ~* (Name) {        ~* (Name) {
1770          my $atqname;          my $atqname;
1771          lang:Perl ($name => $token.value) {          lang:Perl ($name => $token.value) : has-error {
1772              __CODE{checkQName:: $name => $name}__;
1773            $atqname = $name;            $atqname = $name;
1774          }          }
1775                    
# Line 2165  ClsDef: Line 2373  ClsDef:
2373        } (Name) {        } (Name) {
2374          my $er;          my $er;
2375          lang:Perl ($name => $token.value) : has-error {          lang:Perl ($name => $token.value) : has-error {
2376            ## TODO: Namespace well-formedness            __CODE{checkNCName:: $name => $name}__;
2377              
2378            $er = $doc-><M::Document.createEntityReference>            $er = $doc-><M::Document.createEntityReference>
2379                             ($name);                             ($name);
2380            $er-><AS::Node.textContent> ('');            $er-><AS::Node.textContent> ('');
# Line 2330  ClsDef: Line 2539  ClsDef:
2539        } (Name) {        } (Name) {
2540          my $er;          my $er;
2541          lang:Perl ($name => $token.value) : has-error {          lang:Perl ($name => $token.value) : has-error {
2542            ## TODO: Namespace well-formedness            __CODE{checkNCName:: $name => $name}__;
2543                        
2544            $er = $self->{doc}-><M::Document.createEntityReference> ($name);            $er = $self->{doc}-><M::Document.createEntityReference> ($name);
2545            $er-><AS::Node.textContent> ('');            $er-><AS::Node.textContent> ('');
# Line 2493  ClsDef: Line 2702  ClsDef:
2702          }          }
2703        } (Name) {        } (Name) {
2704          my $er;          my $er;
2705          lang:Perl ($name => $token.value) {          lang:Perl ($name => $token.value) : has-error {
2706            ## TODO: Namespace well-formedness            __CODE{checkNCName:: $name => $name}__;
2707    
2708            $er = $self->{doc}-><M::Document.createEntityReference> ($name);            $er = $self->{doc}-><M::Document.createEntityReference> ($name);
2709            $er-><AS::Node.textContent> ('');            $er-><AS::Node.textContent> ('');
# Line 2625  ClsDef: Line 2834  ClsDef:
2834                
2835        ~ (Name) {        ~ (Name) {
2836          lang:Perl ($name => $token.value) {          lang:Perl ($name => $token.value) {
2837            ## TODO: Namespace well-formedness            __CODE{checkNCName:: $name => $name}__;
2838            push @$vals, $name;            push @$vals, $name;
2839          }          }
2840          /*          /*
# Line 2656  ClsDef: Line 2865  ClsDef:
2865        my $name;        my $name;
2866        ~ (Name) {        ~ (Name) {
2867          lang:Perl ($v => $token.value) {          lang:Perl ($v => $token.value) {
2868              __CODE{checkQName:: $name => $v}__;
2869            $name = $v;            $name = $v;
2870          }          }
2871        }        }
# Line 2868  ClsDef: Line 3078  ClsDef:
3078          }          }
3079    
3080          ~ (Name) {          ~ (Name) {
3081              // TODO:             __CODE{checkNCName:: $name => $name}__;
3082    
3083          }          }
3084    
# Line 2887  ClsDef: Line 3098  ClsDef:
3098        ~ (S) { }        ~ (S) { }
3099    
3100        ~ (Name) {        ~ (Name) {
3101            // TODO:             __CODE{checkQName:: $name => $name}__;
3102    
3103        }        }
3104    
# Line 2950  ClsDef: Line 3162  ClsDef:
3162            ~? (S) { }            ~? (S) { }
3163    
3164            ~ (Name) {            ~ (Name) {
3165                // TODO: Name & QName check
3166    
3167            }            }
3168    
# Line 3016  ClsDef: Line 3229  ClsDef:
3229            
3230      rule ContentParticle ($doc) {      rule ContentParticle ($doc) {
3231        ~ (Name) {        ~ (Name) {
3232            // TODO: Name & QName check
3233    
3234        } (MGO) {        } (MGO) {
3235          ~? (S) { }          ~? (S) { }
# Line 3046  ClsDef: Line 3260  ClsDef:
3260        my $name;        my $name;
3261        ~ (Name) {        ~ (Name) {
3262          lang:Perl ($v => $token.value) {          lang:Perl ($v => $token.value) {
3263              __CODE{checkQName:: $name => $v}__;
3264            $name = $v;            $name = $v;
3265          }          }
3266        } else {        } else {
# Line 3070  ClsDef: Line 3285  ClsDef:
3285        ~* (Name) {        ~* (Name) {
3286          my $at;          my $at;
3287          lang:Perl ($v => $token.value) : has-error {          lang:Perl ($v => $token.value) : has-error {
3288              __CODE{checkQName:: $name => $v}__;
3289            $docxd ||= $doc-><M::Node.getFeature>            $docxd ||= $doc-><M::Node.getFeature>
3290                               (<Q::fe:XDoctype>, '3.0');                               (<Q::fe:XDoctype>, '3.0');
3291            $at = $docxd-><M::DocumentXDoctype.createAttributeDefinition> ($v);            $at = $docxd-><M::DocumentXDoctype.createAttributeDefinition> ($v);
# Line 3126  ClsDef: Line 3342  ClsDef:
3342              ~? (S) { }              ~? (S) { }
3343    
3344              ~+ (Name) {              ~+ (Name) {
3345                lang:Perl ($v => $token.value) {                lang:Perl ($v => $token.value) : has-error {
3346                    __CODE{checkNCName:: $name => $v}__;
3347                  push @$kwd, $v;                  push @$kwd, $v;
3348                }                }
3349    
# Line 3301  ClsDef: Line 3518  ClsDef:
3518      } // _AttlistDeclaration      } // _AttlistDeclaration
3519    
3520      /*      /*
3521        Entity declaration        Entity Declaration
3522      */      */
3523      rule _EntityDeclaration ($doc) {      rule _EntityDeclaration ($doc) {
3524        // ~ (MDO) { }        // ~ (MDO) { }
# Line 3329  ClsDef: Line 3546  ClsDef:
3546    
3547        ~ (Name) {        ~ (Name) {
3548          lang:Perl ($v => $token.value) {          lang:Perl ($v => $token.value) {
3549              __CODE{checkNCName:: $name => $v}__;
3550            $decl->{name} = $v;            $decl->{name} = $v;
3551          }          }
3552        }        }
# Line 3392  ClsDef: Line 3610  ClsDef:
3610            ~ (S) { }            ~ (S) { }
3611        
3612            ~ (Name) {            ~ (Name) {
3613              lang:Perl ($v => $token.value) {              lang:Perl ($v => $token.value) : has-error {
3614                  __CODE{checkNCName:: $name => $v}__;
3615                $decl->{notation} = $v;                $decl->{notation} = $v;
3616                $decl->{node}-><AG::x|Entity.notationName> ($v);                $decl->{node}-><AG::x|Entity.notationName> ($v);
3617              }              }
# Line 3510  ClsDef: Line 3729  ClsDef:
3729        }        }
3730      } // _EntityDeclaration      } // _EntityDeclaration
3731    
3732      rule _NotationDeclaration ($doc) {      /*
3733          Notation Declaration
3734        */
3735        rule _NotationDeclaration {
3736        // ~ (MDO) { }        // ~ (MDO) { }
3737        // ~ (Name == NOTATION) { }        // ~ (Name == NOTATION) { }
3738    
3739        ~ (S) { }        ~ (S) { }
3740    
3741          my $name;
3742        ~ (Name) {        ~ (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) { }        ~ (S) { }
3754    
       my $decl;  
3755        lang:Perl {        lang:Perl {
3756          $decl = $self->{docx}-><M::DocumentXDoctype.createGeneralEntity>          $decl = $self->{docx}-><M::DocumentXDoctype.createNotation> ($name);
                                                ($decl->{name});  
            ## Temporary: to avoid error.  
3757        }        }
3758    
3759        ~ (Name == 'PUBLIC') {        ~ (Name == 'PUBLIC') {
# Line 3555  ClsDef: Line 3782  ClsDef:
3782          ~? (S) { }          ~? (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) {        ~ (MDC) {
3808          ?lexmode DTD;          ?lexmode DTD;
3809        } else {        } else {
# Line 3590  ClsDef: Line 3839  ClsDef:
3839    
3840            // Note that external subset and parameter entities are not supported            // Note that external subset and parameter entities are not supported
3841            lang:Perl ($name => $token.value) : has-error {            lang:Perl ($name => $token.value) : has-error {
3842                __CODE{checkNCName:: $name => $name}__;
3843              my $location;              my $location;
3844              __CODE{xp|get-location-from-token::              __CODE{xp|get-location-from-token::
3845                $token => {$token},                $token => {$token},
# Line 3691  ClsDef: Line 3941  ClsDef:
3941    
3942            // Note that external subset and parameter entities are not supported            // Note that external subset and parameter entities are not supported
3943            lang:Perl ($name => $token.value) : has-error {            lang:Perl ($name => $token.value) : has-error {
3944                __CODE{checkNCName:: $name => $name}__;
3945              my $location;              my $location;
3946              __CODE{xp|get-location-from-token::              __CODE{xp|get-location-from-token::
3947                $token => {$token},                $token => {$token},
# Line 4557  ClsDef: Line 4808  ClsDef:
4808        }        }
4809      } // default      } // 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:    @XMLTests:
4900      @@XMLTest:      @@XMLTest:
4901        @@@QName: xp.char.xml10.test        @@@QName: xp.char.xml10.test
# Line 12349  ClsDef: Line 12688  ClsDef:
12688          @@@@test:value:          @@@@test:value:
12689            <!DOCTYPE a [            <!DOCTYPE a [
12690            <!ENTITY % p " ">            <!ENTITY % p " ">
12691            <!ENTITY % q "%q;">            <!ENTITY % q "%p;">
12692            ]><a/>            ]><a/>
12693        @@@c:erred: <[[xp|wf-pes-in-internal-subset]]> { (3, 15)..(3, 17); }        @@@c:erred: <[[xp|wf-pes-in-internal-subset]]> { (3, 15)..(3, 17); }
12694      @@XMLTest:      @@XMLTest:
# Line 12358  ClsDef: Line 12697  ClsDef:
12697          @@@@test:value:          @@@@test:value:
12698            <!DOCTYPE a [            <!DOCTYPE a [
12699            <!ENTITY % p " ">            <!ENTITY % p " ">
12700            <!ENTITY % q '%q;'>            <!ENTITY % q '%p;'>
12701            ]><a/>            ]><a/>
12702        @@@c:erred: <[[xp|wf-pes-in-internal-subset]]> { (3, 15)..(3, 17); }        @@@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:      @@PerlDef:
14290        my $impl = $Message::DOM::ImplementationRegistry->get_implementation ({        my $impl = $Message::DOM::ImplementationRegistry->get_implementation ({
14291          'Core' => '3.0',          'Core' => '3.0',
# Line 12551  ElementTypeBinding: Line 14475  ElementTypeBinding:
14475      @@c:severity: c|SEVERITY_FATAL_ERROR      @@c:severity: c|SEVERITY_FATAL_ERROR
14476    
14477  ElementTypeBinding:  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    @Name: VCErrDef
14499    @ElementType:    @ElementType:
14500      dis:ResourceDef      dis:ResourceDef
# Line 12692  WFErrDef: Line 14636  WFErrDef:
14636        The code position of the character being referred.        The code position of the character being referred.
14637    
14638  WFErrDef:  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    @QName: xp|wf-pes-in-internal-subset
14674    @enDesc:    @enDesc:
14675      In the internal subset of the DTD, parameter entity references      In the internal subset of the DTD, parameter entity references
# Line 12955  WarnDef: Line 14933  WarnDef:
14933      @@enDesc:      @@enDesc:
14934        The name of the attribute.        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:  XWParam:
15125    @QName: xp|replacement-text    @QName: xp|replacement-text
15126    @enDesc:    @enDesc:

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24