1 /*
   2  * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 /* this file is generated by RelaxNGCC */
  27 package com.sun.xml.internal.xsom.impl.parser.state;
  28 
  29 import com.sun.xml.internal.xsom.impl.*;
  30 import com.sun.xml.internal.xsom.impl.parser.*;
  31 import com.sun.xml.internal.xsom.parser.*;
  32 import java.util.*;
  33 
  34 import org.xml.sax.Attributes;
  35 import org.xml.sax.Locator;
  36 import org.xml.sax.SAXException;
  37 
  38 
  39 class elementDeclBody extends NGCCHandler {
  40     private Integer finalValue;
  41     private String name;
  42     private String nillable;
  43     private String abstractValue;
  44     private Integer blockValue;
  45     private ForeignAttributesImpl fa;
  46     private AnnotationImpl annotation;
  47     private Locator locator;
  48     private String defaultValue;
  49     private IdentityConstraintImpl idc;
  50     private boolean isGlobal;
  51     private String fixedValue;
  52     private UName typeName;
  53     private UName substRef;
  54     protected final NGCCRuntimeEx $runtime;
  55     private int $_ngcc_current_state;
  56     protected String $uri;
  57     protected String $localName;
  58     protected String $qname;
  59 
  60     public final NGCCRuntime getRuntime() {
  61         return($runtime);
  62     }
  63 
  64     public elementDeclBody(NGCCHandler parent, NGCCEventSource source, NGCCRuntimeEx runtime, int cookie, Locator _locator, boolean _isGlobal) {
  65         super(source, parent, cookie);
  66         $runtime = runtime;
  67         this.locator = _locator;
  68         this.isGlobal = _isGlobal;
  69         $_ngcc_current_state = 48;
  70     }
  71 
  72     public elementDeclBody(NGCCRuntimeEx runtime, Locator _locator, boolean _isGlobal) {
  73         this(null, runtime, runtime, -1, _locator, _isGlobal);
  74     }
  75 
  76     private void action0()throws SAXException {
  77         idcs.add(idc);
  78 }
  79 
  80     private void action1()throws SAXException {
  81 
  82             type = new DelayedRef.Type(
  83               $runtime, locator, $runtime.currentSchema, typeName );
  84 
  85 }
  86 
  87     private void action2()throws SAXException {
  88 
  89           substHeadRef = new DelayedRef.Element(
  90             $runtime, locator, $runtime.currentSchema, substRef );
  91 
  92 }
  93 
  94     private void action3()throws SAXException {
  95         formSpecified = true;
  96 }
  97 
  98     public void enterElement(String $__uri, String $__local, String $__qname, Attributes $attrs) throws SAXException {
  99         int $ai;
 100         $uri = $__uri;
 101         $localName = $__local;
 102         $qname = $__qname;
 103         switch($_ngcc_current_state) {
 104         case 17:
 105             {
 106                 if(($ai = $runtime.getAttributeIndex("","nillable"))>=0) {
 107                     $runtime.consumeAttribute($ai);
 108                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 109                 }
 110                 else {
 111                     $_ngcc_current_state = 13;
 112                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 113                 }
 114             }
 115             break;
 116         case 28:
 117             {
 118                 if(($ai = $runtime.getAttributeIndex("","fixed"))>=0) {
 119                     $runtime.consumeAttribute($ai);
 120                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 121                 }
 122                 else {
 123                     $_ngcc_current_state = 24;
 124                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 125                 }
 126             }
 127             break;
 128         case 0:
 129             {
 130                 if(((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("key")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("keyref"))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("unique")))) {
 131                     NGCCHandler h = new identityConstraint(this, super._source, $runtime, 6);
 132                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 133                 }
 134                 else {
 135                     revertToParentFromEnterElement(makeResult(), super._cookie, $__uri, $__local, $__qname, $attrs);
 136                 }
 137             }
 138             break;
 139         case 32:
 140             {
 141                 if(($ai = $runtime.getAttributeIndex("","default"))>=0) {
 142                     $runtime.consumeAttribute($ai);
 143                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 144                 }
 145                 else {
 146                     $_ngcc_current_state = 28;
 147                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 148                 }
 149             }
 150             break;
 151         case 24:
 152             {
 153                 if(($ai = $runtime.getAttributeIndex("","form"))>=0) {
 154                     $runtime.consumeAttribute($ai);
 155                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 156                 }
 157                 else {
 158                     $_ngcc_current_state = 23;
 159                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 160                 }
 161             }
 162             break;
 163         case 11:
 164             {
 165                 if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation"))) {
 166                     NGCCHandler h = new annotation(this, super._source, $runtime, 24, null,AnnotationContext.ELEMENT_DECL);
 167                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 168                 }
 169                 else {
 170                     $_ngcc_current_state = 3;
 171                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 172                 }
 173             }
 174             break;
 175         case 23:
 176             {
 177                 if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
 178                     $runtime.consumeAttribute($ai);
 179                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 180                 }
 181                 else {
 182                     unexpectedEnterElement($__qname);
 183                 }
 184             }
 185             break;
 186         case 44:
 187             {
 188                 if(($ai = $runtime.getAttributeIndex("","abstract"))>=0) {
 189                     $runtime.consumeAttribute($ai);
 190                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 191                 }
 192                 else {
 193                     $_ngcc_current_state = 40;
 194                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 195                 }
 196             }
 197             break;
 198         case 40:
 199             {
 200                 if(($ai = $runtime.getAttributeIndex("","block"))>=0) {
 201                     $runtime.consumeAttribute($ai);
 202                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 203                 }
 204                 else {
 205                     $_ngcc_current_state = 36;
 206                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 207                 }
 208             }
 209             break;
 210         case 48:
 211             {
 212                 if(((($ai = $runtime.getAttributeIndex("","default"))>=0 && (((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("complexType"))) || ((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("key")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("keyref"))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("unique")))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation")))) || ((($ai = $runtime.getAttributeIndex("","fixed"))>=0 && (((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("complexType"))) || ((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("key")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("keyref"))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("unique")))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation")))) || ((($ai = $runtime.getAttributeIndex("","form"))>=0 && (((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("complexType"))) || ((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("key")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("keyref"))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("unique")))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation")))) || ((($ai = $runtime.getAttributeIndex("","block"))>=0 && (((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("complexType"))) || ((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("key")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("keyref"))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("unique")))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation")))) || ((($ai = $runtime.getAttributeIndex("","final"))>=0 && (((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("complexType"))) || ((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("key")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("keyref"))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("unique")))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation")))) || ((($ai = $runtime.getAttributeIndex("","name"))>=0 && (((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("complexType"))) || ((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("key")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("keyref"))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("unique")))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation")))) || (($ai = $runtime.getAttributeIndex("","abstract"))>=0 && (((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("complexType"))) || ((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("key")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("keyref"))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("unique")))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("annotation"))))))))))) {
 213                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 69, fa);
 214                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 215                 }
 216                 else {
 217                     unexpectedEnterElement($__qname);
 218                 }
 219             }
 220             break;
 221         case 1:
 222             {
 223                 if(((($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("key")) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("keyref"))) || ($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("unique")))) {
 224                     NGCCHandler h = new identityConstraint(this, super._source, $runtime, 7);
 225                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 226                 }
 227                 else {
 228                     $_ngcc_current_state = 0;
 229                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 230                 }
 231             }
 232             break;
 233         case 3:
 234             {
 235                 if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("simpleType"))) {
 236                     NGCCHandler h = new simpleType(this, super._source, $runtime, 19);
 237                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 238                 }
 239                 else {
 240                     if(($__uri.equals("http://www.w3.org/2001/XMLSchema") && $__local.equals("complexType"))) {
 241                         NGCCHandler h = new complexType(this, super._source, $runtime, 20);
 242                         spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
 243                     }
 244                     else {
 245                         if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
 246                             $runtime.consumeAttribute($ai);
 247                             $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 248                         }
 249                         else {
 250                             $_ngcc_current_state = 1;
 251                             $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 252                         }
 253                     }
 254                 }
 255             }
 256             break;
 257         case 13:
 258             {
 259                 if(($ai = $runtime.getAttributeIndex("","substitutionGroup"))>=0) {
 260                     $runtime.consumeAttribute($ai);
 261                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 262                 }
 263                 else {
 264                     $_ngcc_current_state = 11;
 265                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 266                 }
 267             }
 268             break;
 269         case 36:
 270             {
 271                 if(($ai = $runtime.getAttributeIndex("","final"))>=0) {
 272                     $runtime.consumeAttribute($ai);
 273                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 274                 }
 275                 else {
 276                     $_ngcc_current_state = 32;
 277                     $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
 278                 }
 279             }
 280             break;
 281         default:
 282             {
 283                 unexpectedEnterElement($__qname);
 284             }
 285             break;
 286         }
 287     }
 288 
 289     public void leaveElement(String $__uri, String $__local, String $__qname) throws SAXException {
 290         int $ai;
 291         $uri = $__uri;
 292         $localName = $__local;
 293         $qname = $__qname;
 294         switch($_ngcc_current_state) {
 295         case 17:
 296             {
 297                 if(($ai = $runtime.getAttributeIndex("","nillable"))>=0) {
 298                     $runtime.consumeAttribute($ai);
 299                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 300                 }
 301                 else {
 302                     $_ngcc_current_state = 13;
 303                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 304                 }
 305             }
 306             break;
 307         case 28:
 308             {
 309                 if(($ai = $runtime.getAttributeIndex("","fixed"))>=0) {
 310                     $runtime.consumeAttribute($ai);
 311                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 312                 }
 313                 else {
 314                     $_ngcc_current_state = 24;
 315                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 316                 }
 317             }
 318             break;
 319         case 0:
 320             {
 321                 revertToParentFromLeaveElement(makeResult(), super._cookie, $__uri, $__local, $__qname);
 322             }
 323             break;
 324         case 32:
 325             {
 326                 if(($ai = $runtime.getAttributeIndex("","default"))>=0) {
 327                     $runtime.consumeAttribute($ai);
 328                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 329                 }
 330                 else {
 331                     $_ngcc_current_state = 28;
 332                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 333                 }
 334             }
 335             break;
 336         case 24:
 337             {
 338                 if(($ai = $runtime.getAttributeIndex("","form"))>=0) {
 339                     $runtime.consumeAttribute($ai);
 340                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 341                 }
 342                 else {
 343                     $_ngcc_current_state = 23;
 344                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 345                 }
 346             }
 347             break;
 348         case 11:
 349             {
 350                 $_ngcc_current_state = 3;
 351                 $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 352             }
 353             break;
 354         case 23:
 355             {
 356                 if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
 357                     $runtime.consumeAttribute($ai);
 358                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 359                 }
 360                 else {
 361                     unexpectedLeaveElement($__qname);
 362                 }
 363             }
 364             break;
 365         case 44:
 366             {
 367                 if(($ai = $runtime.getAttributeIndex("","abstract"))>=0) {
 368                     $runtime.consumeAttribute($ai);
 369                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 370                 }
 371                 else {
 372                     $_ngcc_current_state = 40;
 373                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 374                 }
 375             }
 376             break;
 377         case 40:
 378             {
 379                 if(($ai = $runtime.getAttributeIndex("","block"))>=0) {
 380                     $runtime.consumeAttribute($ai);
 381                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 382                 }
 383                 else {
 384                     $_ngcc_current_state = 36;
 385                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 386                 }
 387             }
 388             break;
 389         case 48:
 390             {
 391                 if((($ai = $runtime.getAttributeIndex("","default"))>=0 || (($ai = $runtime.getAttributeIndex("","fixed"))>=0 || (($ai = $runtime.getAttributeIndex("","form"))>=0 || (($ai = $runtime.getAttributeIndex("","block"))>=0 || (($ai = $runtime.getAttributeIndex("","final"))>=0 || (($ai = $runtime.getAttributeIndex("","name"))>=0 || ($ai = $runtime.getAttributeIndex("","abstract"))>=0))))))) {
 392                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 69, fa);
 393                     spawnChildFromLeaveElement(h, $__uri, $__local, $__qname);
 394                 }
 395                 else {
 396                     unexpectedLeaveElement($__qname);
 397                 }
 398             }
 399             break;
 400         case 1:
 401             {
 402                 $_ngcc_current_state = 0;
 403                 $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 404             }
 405             break;
 406         case 3:
 407             {
 408                 if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
 409                     $runtime.consumeAttribute($ai);
 410                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 411                 }
 412                 else {
 413                     $_ngcc_current_state = 1;
 414                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 415                 }
 416             }
 417             break;
 418         case 13:
 419             {
 420                 if(($ai = $runtime.getAttributeIndex("","substitutionGroup"))>=0) {
 421                     $runtime.consumeAttribute($ai);
 422                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 423                 }
 424                 else {
 425                     $_ngcc_current_state = 11;
 426                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 427                 }
 428             }
 429             break;
 430         case 36:
 431             {
 432                 if(($ai = $runtime.getAttributeIndex("","final"))>=0) {
 433                     $runtime.consumeAttribute($ai);
 434                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 435                 }
 436                 else {
 437                     $_ngcc_current_state = 32;
 438                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
 439                 }
 440             }
 441             break;
 442         default:
 443             {
 444                 unexpectedLeaveElement($__qname);
 445             }
 446             break;
 447         }
 448     }
 449 
 450     public void enterAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
 451         int $ai;
 452         $uri = $__uri;
 453         $localName = $__local;
 454         $qname = $__qname;
 455         switch($_ngcc_current_state) {
 456         case 17:
 457             {
 458                 if(($__uri.equals("") && $__local.equals("nillable"))) {
 459                     $_ngcc_current_state = 19;
 460                 }
 461                 else {
 462                     $_ngcc_current_state = 13;
 463                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 464                 }
 465             }
 466             break;
 467         case 28:
 468             {
 469                 if(($__uri.equals("") && $__local.equals("fixed"))) {
 470                     $_ngcc_current_state = 30;
 471                 }
 472                 else {
 473                     $_ngcc_current_state = 24;
 474                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 475                 }
 476             }
 477             break;
 478         case 0:
 479             {
 480                 revertToParentFromEnterAttribute(makeResult(), super._cookie, $__uri, $__local, $__qname);
 481             }
 482             break;
 483         case 32:
 484             {
 485                 if(($__uri.equals("") && $__local.equals("default"))) {
 486                     $_ngcc_current_state = 34;
 487                 }
 488                 else {
 489                     $_ngcc_current_state = 28;
 490                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 491                 }
 492             }
 493             break;
 494         case 24:
 495             {
 496                 if(($__uri.equals("") && $__local.equals("form"))) {
 497                     $_ngcc_current_state = 26;
 498                 }
 499                 else {
 500                     $_ngcc_current_state = 23;
 501                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 502                 }
 503             }
 504             break;
 505         case 11:
 506             {
 507                 $_ngcc_current_state = 3;
 508                 $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 509             }
 510             break;
 511         case 23:
 512             {
 513                 if(($__uri.equals("") && $__local.equals("name"))) {
 514                     $_ngcc_current_state = 22;
 515                 }
 516                 else {
 517                     unexpectedEnterAttribute($__qname);
 518                 }
 519             }
 520             break;
 521         case 44:
 522             {
 523                 if(($__uri.equals("") && $__local.equals("abstract"))) {
 524                     $_ngcc_current_state = 46;
 525                 }
 526                 else {
 527                     $_ngcc_current_state = 40;
 528                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 529                 }
 530             }
 531             break;
 532         case 40:
 533             {
 534                 if(($__uri.equals("") && $__local.equals("block"))) {
 535                     $_ngcc_current_state = 42;
 536                 }
 537                 else {
 538                     $_ngcc_current_state = 36;
 539                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 540                 }
 541             }
 542             break;
 543         case 48:
 544             {
 545                 if((($__uri.equals("") && $__local.equals("default")) || (($__uri.equals("") && $__local.equals("fixed")) || (($__uri.equals("") && $__local.equals("form")) || (($__uri.equals("") && $__local.equals("block")) || (($__uri.equals("") && $__local.equals("final")) || (($__uri.equals("") && $__local.equals("name")) || ($__uri.equals("") && $__local.equals("abstract"))))))))) {
 546                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 69, fa);
 547                     spawnChildFromEnterAttribute(h, $__uri, $__local, $__qname);
 548                 }
 549                 else {
 550                     unexpectedEnterAttribute($__qname);
 551                 }
 552             }
 553             break;
 554         case 1:
 555             {
 556                 $_ngcc_current_state = 0;
 557                 $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 558             }
 559             break;
 560         case 3:
 561             {
 562                 if(($__uri.equals("") && $__local.equals("type"))) {
 563                     $_ngcc_current_state = 6;
 564                 }
 565                 else {
 566                     $_ngcc_current_state = 1;
 567                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 568                 }
 569             }
 570             break;
 571         case 13:
 572             {
 573                 if(($__uri.equals("") && $__local.equals("substitutionGroup"))) {
 574                     $_ngcc_current_state = 15;
 575                 }
 576                 else {
 577                     $_ngcc_current_state = 11;
 578                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 579                 }
 580             }
 581             break;
 582         case 36:
 583             {
 584                 if(($__uri.equals("") && $__local.equals("final"))) {
 585                     $_ngcc_current_state = 38;
 586                 }
 587                 else {
 588                     $_ngcc_current_state = 32;
 589                     $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
 590                 }
 591             }
 592             break;
 593         default:
 594             {
 595                 unexpectedEnterAttribute($__qname);
 596             }
 597             break;
 598         }
 599     }
 600 
 601     public void leaveAttribute(String $__uri, String $__local, String $__qname) throws SAXException {
 602         int $ai;
 603         $uri = $__uri;
 604         $localName = $__local;
 605         $qname = $__qname;
 606         switch($_ngcc_current_state) {
 607         case 21:
 608             {
 609                 if(($__uri.equals("") && $__local.equals("name"))) {
 610                     $_ngcc_current_state = 17;
 611                 }
 612                 else {
 613                     unexpectedLeaveAttribute($__qname);
 614                 }
 615             }
 616             break;
 617         case 17:
 618             {
 619                 $_ngcc_current_state = 13;
 620                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 621             }
 622             break;
 623         case 18:
 624             {
 625                 if(($__uri.equals("") && $__local.equals("nillable"))) {
 626                     $_ngcc_current_state = 13;
 627                 }
 628                 else {
 629                     unexpectedLeaveAttribute($__qname);
 630                 }
 631             }
 632             break;
 633         case 25:
 634             {
 635                 if(($__uri.equals("") && $__local.equals("form"))) {
 636                     $_ngcc_current_state = 23;
 637                 }
 638                 else {
 639                     unexpectedLeaveAttribute($__qname);
 640                 }
 641             }
 642             break;
 643         case 41:
 644             {
 645                 if(($__uri.equals("") && $__local.equals("block"))) {
 646                     $_ngcc_current_state = 36;
 647                 }
 648                 else {
 649                     unexpectedLeaveAttribute($__qname);
 650                 }
 651             }
 652             break;
 653         case 28:
 654             {
 655                 $_ngcc_current_state = 24;
 656                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 657             }
 658             break;
 659         case 32:
 660             {
 661                 $_ngcc_current_state = 28;
 662                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 663             }
 664             break;
 665         case 0:
 666             {
 667                 revertToParentFromLeaveAttribute(makeResult(), super._cookie, $__uri, $__local, $__qname);
 668             }
 669             break;
 670         case 24:
 671             {
 672                 $_ngcc_current_state = 23;
 673                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 674             }
 675             break;
 676         case 11:
 677             {
 678                 $_ngcc_current_state = 3;
 679                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 680             }
 681             break;
 682         case 33:
 683             {
 684                 if(($__uri.equals("") && $__local.equals("default"))) {
 685                     $_ngcc_current_state = 28;
 686                 }
 687                 else {
 688                     unexpectedLeaveAttribute($__qname);
 689                 }
 690             }
 691             break;
 692         case 37:
 693             {
 694                 if(($__uri.equals("") && $__local.equals("final"))) {
 695                     $_ngcc_current_state = 32;
 696                 }
 697                 else {
 698                     unexpectedLeaveAttribute($__qname);
 699                 }
 700             }
 701             break;
 702         case 44:
 703             {
 704                 $_ngcc_current_state = 40;
 705                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 706             }
 707             break;
 708         case 14:
 709             {
 710                 if(($__uri.equals("") && $__local.equals("substitutionGroup"))) {
 711                     $_ngcc_current_state = 11;
 712                 }
 713                 else {
 714                     unexpectedLeaveAttribute($__qname);
 715                 }
 716             }
 717             break;
 718         case 40:
 719             {
 720                 $_ngcc_current_state = 36;
 721                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 722             }
 723             break;
 724         case 45:
 725             {
 726                 if(($__uri.equals("") && $__local.equals("abstract"))) {
 727                     $_ngcc_current_state = 40;
 728                 }
 729                 else {
 730                     unexpectedLeaveAttribute($__qname);
 731                 }
 732             }
 733             break;
 734         case 1:
 735             {
 736                 $_ngcc_current_state = 0;
 737                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 738             }
 739             break;
 740         case 3:
 741             {
 742                 $_ngcc_current_state = 1;
 743                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 744             }
 745             break;
 746         case 13:
 747             {
 748                 $_ngcc_current_state = 11;
 749                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 750             }
 751             break;
 752         case 36:
 753             {
 754                 $_ngcc_current_state = 32;
 755                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
 756             }
 757             break;
 758         case 5:
 759             {
 760                 if(($__uri.equals("") && $__local.equals("type"))) {
 761                     $_ngcc_current_state = 1;
 762                     action1();
 763                 }
 764                 else {
 765                     unexpectedLeaveAttribute($__qname);
 766                 }
 767             }
 768             break;
 769         case 29:
 770             {
 771                 if(($__uri.equals("") && $__local.equals("fixed"))) {
 772                     $_ngcc_current_state = 24;
 773                 }
 774                 else {
 775                     unexpectedLeaveAttribute($__qname);
 776                 }
 777             }
 778             break;
 779         default:
 780             {
 781                 unexpectedLeaveAttribute($__qname);
 782             }
 783             break;
 784         }
 785     }
 786 
 787     public void text(String $value) throws SAXException {
 788         int $ai;
 789         switch($_ngcc_current_state) {
 790         case 17:
 791             {
 792                 if(($ai = $runtime.getAttributeIndex("","nillable"))>=0) {
 793                     $runtime.consumeAttribute($ai);
 794                     $runtime.sendText(super._cookie, $value);
 795                 }
 796                 else {
 797                     $_ngcc_current_state = 13;
 798                     $runtime.sendText(super._cookie, $value);
 799                 }
 800             }
 801             break;
 802         case 34:
 803             {
 804                 defaultValue = $value;
 805                 $_ngcc_current_state = 33;
 806             }
 807             break;
 808         case 22:
 809             {
 810                 name = $runtime.collapse($value);
 811                 $_ngcc_current_state = 21;
 812             }
 813             break;
 814         case 28:
 815             {
 816                 if(($ai = $runtime.getAttributeIndex("","fixed"))>=0) {
 817                     $runtime.consumeAttribute($ai);
 818                     $runtime.sendText(super._cookie, $value);
 819                 }
 820                 else {
 821                     $_ngcc_current_state = 24;
 822                     $runtime.sendText(super._cookie, $value);
 823                 }
 824             }
 825             break;
 826         case 32:
 827             {
 828                 if(($ai = $runtime.getAttributeIndex("","default"))>=0) {
 829                     $runtime.consumeAttribute($ai);
 830                     $runtime.sendText(super._cookie, $value);
 831                 }
 832                 else {
 833                     $_ngcc_current_state = 28;
 834                     $runtime.sendText(super._cookie, $value);
 835                 }
 836             }
 837             break;
 838         case 0:
 839             {
 840                 revertToParentFromText(makeResult(), super._cookie, $value);
 841             }
 842             break;
 843         case 6:
 844             {
 845                 NGCCHandler h = new qname(this, super._source, $runtime, 10);
 846                 spawnChildFromText(h, $value);
 847             }
 848             break;
 849         case 24:
 850             {
 851                 if(($ai = $runtime.getAttributeIndex("","form"))>=0) {
 852                     $runtime.consumeAttribute($ai);
 853                     $runtime.sendText(super._cookie, $value);
 854                 }
 855                 else {
 856                     $_ngcc_current_state = 23;
 857                     $runtime.sendText(super._cookie, $value);
 858                 }
 859             }
 860             break;
 861         case 11:
 862             {
 863                 $_ngcc_current_state = 3;
 864                 $runtime.sendText(super._cookie, $value);
 865             }
 866             break;
 867         case 23:
 868             {
 869                 if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
 870                     $runtime.consumeAttribute($ai);
 871                     $runtime.sendText(super._cookie, $value);
 872                 }
 873             }
 874             break;
 875         case 44:
 876             {
 877                 if(($ai = $runtime.getAttributeIndex("","abstract"))>=0) {
 878                     $runtime.consumeAttribute($ai);
 879                     $runtime.sendText(super._cookie, $value);
 880                 }
 881                 else {
 882                     $_ngcc_current_state = 40;
 883                     $runtime.sendText(super._cookie, $value);
 884                 }
 885             }
 886             break;
 887         case 46:
 888             {
 889                 abstractValue = $value;
 890                 $_ngcc_current_state = 45;
 891             }
 892             break;
 893         case 19:
 894             {
 895                 nillable = $value;
 896                 $_ngcc_current_state = 18;
 897             }
 898             break;
 899         case 40:
 900             {
 901                 if(($ai = $runtime.getAttributeIndex("","block"))>=0) {
 902                     $runtime.consumeAttribute($ai);
 903                     $runtime.sendText(super._cookie, $value);
 904                 }
 905                 else {
 906                     $_ngcc_current_state = 36;
 907                     $runtime.sendText(super._cookie, $value);
 908                 }
 909             }
 910             break;
 911         case 48:
 912             {
 913                 if(($ai = $runtime.getAttributeIndex("","abstract"))>=0) {
 914                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 69, fa);
 915                     spawnChildFromText(h, $value);
 916                 }
 917                 else {
 918                     if(($ai = $runtime.getAttributeIndex("","name"))>=0) {
 919                         NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 69, fa);
 920                         spawnChildFromText(h, $value);
 921                     }
 922                     else {
 923                         if(($ai = $runtime.getAttributeIndex("","final"))>=0) {
 924                             NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 69, fa);
 925                             spawnChildFromText(h, $value);
 926                         }
 927                         else {
 928                             if(($ai = $runtime.getAttributeIndex("","block"))>=0) {
 929                                 NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 69, fa);
 930                                 spawnChildFromText(h, $value);
 931                             }
 932                             else {
 933                                 if(($ai = $runtime.getAttributeIndex("","form"))>=0) {
 934                                     NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 69, fa);
 935                                     spawnChildFromText(h, $value);
 936                                 }
 937                                 else {
 938                                     if(($ai = $runtime.getAttributeIndex("","fixed"))>=0) {
 939                                         NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 69, fa);
 940                                         spawnChildFromText(h, $value);
 941                                     }
 942                                     else {
 943                                         if(($ai = $runtime.getAttributeIndex("","default"))>=0) {
 944                                             NGCCHandler h = new foreignAttributes(this, super._source, $runtime, 69, fa);
 945                                             spawnChildFromText(h, $value);
 946                                         }
 947                                     }
 948                                 }
 949                             }
 950                         }
 951                     }
 952                 }
 953             }
 954             break;
 955         case 30:
 956             {
 957                 fixedValue = $value;
 958                 $_ngcc_current_state = 29;
 959             }
 960             break;
 961         case 1:
 962             {
 963                 $_ngcc_current_state = 0;
 964                 $runtime.sendText(super._cookie, $value);
 965             }
 966             break;
 967         case 3:
 968             {
 969                 if(($ai = $runtime.getAttributeIndex("","type"))>=0) {
 970                     $runtime.consumeAttribute($ai);
 971                     $runtime.sendText(super._cookie, $value);
 972                 }
 973                 else {
 974                     $_ngcc_current_state = 1;
 975                     $runtime.sendText(super._cookie, $value);
 976                 }
 977             }
 978             break;
 979         case 13:
 980             {
 981                 if(($ai = $runtime.getAttributeIndex("","substitutionGroup"))>=0) {
 982                     $runtime.consumeAttribute($ai);
 983                     $runtime.sendText(super._cookie, $value);
 984                 }
 985                 else {
 986                     $_ngcc_current_state = 11;
 987                     $runtime.sendText(super._cookie, $value);
 988                 }
 989             }
 990             break;
 991         case 38:
 992             {
 993                 NGCCHandler h = new erSet(this, super._source, $runtime, 55);
 994                 spawnChildFromText(h, $value);
 995             }
 996             break;
 997         case 15:
 998             {
 999                 NGCCHandler h = new qname(this, super._source, $runtime, 27);
1000                 spawnChildFromText(h, $value);
1001             }
1002             break;
1003         case 26:
1004             {
1005                 if($value.equals("unqualified")) {
1006                     NGCCHandler h = new qualification(this, super._source, $runtime, 40);
1007                     spawnChildFromText(h, $value);
1008                 }
1009                 else {
1010                     if($value.equals("qualified")) {
1011                         NGCCHandler h = new qualification(this, super._source, $runtime, 40);
1012                         spawnChildFromText(h, $value);
1013                     }
1014                 }
1015             }
1016             break;
1017         case 36:
1018             {
1019                 if(($ai = $runtime.getAttributeIndex("","final"))>=0) {
1020                     $runtime.consumeAttribute($ai);
1021                     $runtime.sendText(super._cookie, $value);
1022                 }
1023                 else {
1024                     $_ngcc_current_state = 32;
1025                     $runtime.sendText(super._cookie, $value);
1026                 }
1027             }
1028             break;
1029         case 42:
1030             {
1031                 NGCCHandler h = new ersSet(this, super._source, $runtime, 60);
1032                 spawnChildFromText(h, $value);
1033             }
1034             break;
1035         }
1036     }
1037 
1038     public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
1039         switch($__cookie__) {
1040         case 24:
1041             {
1042                 annotation = ((AnnotationImpl)$__result__);
1043                 $_ngcc_current_state = 3;
1044             }
1045             break;
1046         case 27:
1047             {
1048                 substRef = ((UName)$__result__);
1049                 action2();
1050                 $_ngcc_current_state = 14;
1051             }
1052             break;
1053         case 10:
1054             {
1055                 typeName = ((UName)$__result__);
1056                 $_ngcc_current_state = 5;
1057             }
1058             break;
1059         case 60:
1060             {
1061                 blockValue = ((Integer)$__result__);
1062                 $_ngcc_current_state = 41;
1063             }
1064             break;
1065         case 69:
1066             {
1067                 fa = ((ForeignAttributesImpl)$__result__);
1068                 $_ngcc_current_state = 44;
1069             }
1070             break;
1071         case 19:
1072             {
1073                 type = ((SimpleTypeImpl)$__result__);
1074                 $_ngcc_current_state = 1;
1075             }
1076             break;
1077         case 20:
1078             {
1079                 type = ((ComplexTypeImpl)$__result__);
1080                 $_ngcc_current_state = 1;
1081             }
1082             break;
1083         case 40:
1084             {
1085                 form = ((Boolean)$__result__).booleanValue();
1086                 action3();
1087                 $_ngcc_current_state = 25;
1088             }
1089             break;
1090         case 6:
1091             {
1092                 idc = ((IdentityConstraintImpl)$__result__);
1093                 action0();
1094                 $_ngcc_current_state = 0;
1095             }
1096             break;
1097         case 7:
1098             {
1099                 idc = ((IdentityConstraintImpl)$__result__);
1100                 action0();
1101                 $_ngcc_current_state = 0;
1102             }
1103             break;
1104         case 55:
1105             {
1106                 finalValue = ((Integer)$__result__);
1107                 $_ngcc_current_state = 37;
1108             }
1109             break;
1110         }
1111     }
1112 
1113     public boolean accepted() {
1114         return((($_ngcc_current_state == 1) || (($_ngcc_current_state == 0) || (($_ngcc_current_state == 3) || (($_ngcc_current_state == 17) || (($_ngcc_current_state == 13) || ($_ngcc_current_state == 11)))))));
1115     }
1116 
1117 
1118       private boolean form;
1119       private boolean formSpecified;
1120       private Ref.Type type;
1121       private List idcs = new ArrayList();  // identity constraints
1122 
1123       private DelayedRef.Element substHeadRef;
1124 
1125       private ElementDecl makeResult() {
1126         if(finalValue==null)
1127           finalValue = new Integer($runtime.finalDefault);
1128         if(blockValue==null)
1129           blockValue = new Integer($runtime.blockDefault);
1130 
1131         if(!formSpecified)
1132           form = $runtime.elementFormDefault;
1133         if(isGlobal)  // global elements are always qualified
1134           form = true;
1135 
1136         String tns;
1137         if(form)    tns = $runtime.currentSchema.getTargetNamespace();
1138         else        tns = "";
1139 
1140         if( type==null ) {
1141                 if( substHeadRef!=null )
1142                         type = new SubstGroupBaseTypeRef(substHeadRef);
1143                 else
1144                         type = $runtime.parser.schemaSet.anyType;
1145         }
1146 
1147         ElementDecl ed = new ElementDecl(
1148             $runtime,
1149             $runtime.document,
1150             annotation,
1151             locator,
1152             fa,
1153             tns,
1154             name,
1155             !isGlobal,
1156             $runtime.createXmlString(defaultValue),
1157             $runtime.createXmlString(fixedValue),
1158             $runtime.parseBoolean(nillable),
1159             $runtime.parseBoolean(abstractValue),
1160             (java.lang.Boolean)(formSpecified ? form : null),
1161             type,
1162             substHeadRef,
1163             blockValue.intValue(),
1164             finalValue.intValue(),
1165             idcs);
1166 
1167         // if this element has anonymous complex type, it will be set here.
1168         if(type instanceof ComplexTypeImpl)
1169           ((ComplexTypeImpl)type).setScope(ed);
1170         return ed;
1171       }
1172 
1173 }