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