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