//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v1.0.2-b15-fcs 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2003.12.02 at 10:59:49 CET 
//


package com.uvigo.mhp.xml.test.impl;

public class QuestionTypeImpl implements com.uvigo.mhp.xml.test.QuestionType, com.sun.xml.bind.JAXBObject, com.uvigo.mhp.xml.test.impl.runtime.UnmarshallableObject, com.uvigo.mhp.xml.test.impl.runtime.XMLSerializable, com.uvigo.mhp.xml.test.impl.runtime.ValidatableObject
{

    protected java.lang.String _AllowMultipleSelection;
    protected com.sun.xml.bind.util.ListImpl _Parameters = new com.sun.xml.bind.util.ListImpl(new java.util.ArrayList());
    protected boolean has_MinimumCorrectOptionsToTick;
    protected int _MinimumCorrectOptionsToTick;
    protected com.sun.xml.bind.util.ListImpl _Option = new com.sun.xml.bind.util.ListImpl(new java.util.ArrayList());
    protected java.lang.String _ClassName;
    public final static java.lang.Class version = (com.uvigo.mhp.xml.test.impl.JAXBVersion.class);
    private static com.sun.msv.grammar.Grammar schemaFragment;

    private final static java.lang.Class PRIMARY_INTERFACE_CLASS() {
        return (com.uvigo.mhp.xml.test.QuestionType.class);
    }

    public java.lang.String getAllowMultipleSelection() {
        if (_AllowMultipleSelection == null) {
            return "no";
        } else {
            return _AllowMultipleSelection;
        }
    }

    public void setAllowMultipleSelection(java.lang.String value) {
        _AllowMultipleSelection = value;
    }

    public java.util.List getParameters() {
        return _Parameters;
    }

    public int getMinimumCorrectOptionsToTick() {
        if (!has_MinimumCorrectOptionsToTick) {
            return javax.xml.bind.DatatypeConverter.parseInt(com.sun.xml.bind.DatatypeConverterImpl.installHook("1"));
        } else {
            return _MinimumCorrectOptionsToTick;
        }
    }

    public void setMinimumCorrectOptionsToTick(int value) {
        _MinimumCorrectOptionsToTick = value;
        has_MinimumCorrectOptionsToTick = true;
    }

    public java.util.List getOption() {
        return _Option;
    }

    public java.lang.String getClassName() {
        return _ClassName;
    }

    public void setClassName(java.lang.String value) {
        _ClassName = value;
    }

    public com.uvigo.mhp.xml.test.impl.runtime.UnmarshallingEventHandler createUnmarshaller(com.uvigo.mhp.xml.test.impl.runtime.UnmarshallingContext context) {
        return new com.uvigo.mhp.xml.test.impl.QuestionTypeImpl.Unmarshaller(context);
    }

    public void serializeBody(com.uvigo.mhp.xml.test.impl.runtime.XMLSerializer context)
        throws org.xml.sax.SAXException
    {
        int idx2 = 0;
        final int len2 = _Parameters.size();
        int idx4 = 0;
        final int len4 = _Option.size();
        if (_ClassName!= null) {
            context.startElement("", "className");
            context.endNamespaceDecls();
            context.endAttributes();
            try {
                context.text(((java.lang.String) _ClassName), "ClassName");
            } catch (java.lang.Exception e) {
                com.uvigo.mhp.xml.test.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endElement();
        }
        while (idx2 != len2) {
            context.startElement("", "parameters");
            int idx_2 = idx2;
            context.childAsURIs(((com.sun.xml.bind.JAXBObject) _Parameters.get(idx_2 ++)), "Parameters");
            context.endNamespaceDecls();
            int idx_3 = idx2;
            context.childAsAttributes(((com.sun.xml.bind.JAXBObject) _Parameters.get(idx_3 ++)), "Parameters");
            context.endAttributes();
            context.childAsBody(((com.sun.xml.bind.JAXBObject) _Parameters.get(idx2 ++)), "Parameters");
            context.endElement();
        }
        while (idx4 != len4) {
            context.startElement("", "option");
            int idx_4 = idx4;
            context.childAsURIs(((com.sun.xml.bind.JAXBObject) _Option.get(idx_4 ++)), "Option");
            context.endNamespaceDecls();
            int idx_5 = idx4;
            context.childAsAttributes(((com.sun.xml.bind.JAXBObject) _Option.get(idx_5 ++)), "Option");
            context.endAttributes();
            context.childAsBody(((com.sun.xml.bind.JAXBObject) _Option.get(idx4 ++)), "Option");
            context.endElement();
        }
    }

    public void serializeAttributes(com.uvigo.mhp.xml.test.impl.runtime.XMLSerializer context)
        throws org.xml.sax.SAXException
    {
        int idx2 = 0;
        final int len2 = _Parameters.size();
        int idx4 = 0;
        final int len4 = _Option.size();
        if (_AllowMultipleSelection!= null) {
            context.startAttribute("", "allowMultipleSelection");
            try {
                context.text(((java.lang.String) _AllowMultipleSelection), "AllowMultipleSelection");
            } catch (java.lang.Exception e) {
                com.uvigo.mhp.xml.test.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endAttribute();
        }
        if (has_MinimumCorrectOptionsToTick) {
            context.startAttribute("", "minimumCorrectOptionsToTick");
            try {
                context.text(javax.xml.bind.DatatypeConverter.printInt(((int) _MinimumCorrectOptionsToTick)), "MinimumCorrectOptionsToTick");
            } catch (java.lang.Exception e) {
                com.uvigo.mhp.xml.test.impl.runtime.Util.handlePrintConversionException(this, e, context);
            }
            context.endAttribute();
        }
        while (idx2 != len2) {
            idx2 += 1;
        }
        while (idx4 != len4) {
            idx4 += 1;
        }
    }

    public void serializeURIs(com.uvigo.mhp.xml.test.impl.runtime.XMLSerializer context)
        throws org.xml.sax.SAXException
    {
        int idx2 = 0;
        final int len2 = _Parameters.size();
        int idx4 = 0;
        final int len4 = _Option.size();
        while (idx2 != len2) {
            idx2 += 1;
        }
        while (idx4 != len4) {
            idx4 += 1;
        }
    }

    public java.lang.Class getPrimaryInterface() {
        return (com.uvigo.mhp.xml.test.QuestionType.class);
    }

    public com.sun.msv.verifier.DocumentDeclaration createRawValidator() {
        if (schemaFragment == null) {
            schemaFragment = com.sun.xml.bind.validator.SchemaDeserializer.deserialize((
 "\u00ac\u00ed\u0000\u0005sr\u0000\u001fcom.sun.msv.grammar.SequenceExp\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xr\u0000\u001dcom.su"
+"n.msv.grammar.BinaryExp\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0002L\u0000\u0004exp1t\u0000 Lcom/sun/msv/gra"
+"mmar/Expression;L\u0000\u0004exp2q\u0000~\u0000\u0002xr\u0000\u001ecom.sun.msv.grammar.Expressi"
+"on\u00f8\u0018\u0082\u00e8N5~O\u0002\u0000\u0003I\u0000\u000ecachedHashCodeL\u0000\u0013epsilonReducibilityt\u0000\u0013Ljava"
+"/lang/Boolean;L\u0000\u000bexpandedExpq\u0000~\u0000\u0002xp\u0006U\u009d\u00c9ppsq\u0000~\u0000\u0000\u0004\u00dfk\u0017ppsq\u0000~\u0000\u0000\u0003"
+"\u00b4\u00faNppsq\u0000~\u0000\u0000\u0003)\u008f\u0088ppsr\u0000\u001dcom.sun.msv.grammar.ChoiceExp\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000"
+"\u0000xq\u0000~\u0000\u0001\u0002\u0099R\u0085ppsr\u0000\'com.sun.msv.grammar.trex.ElementPattern\u0000\u0000\u0000\u0000"
+"\u0000\u0000\u0000\u0001\u0002\u0000\u0001L\u0000\tnameClasst\u0000\u001fLcom/sun/msv/grammar/NameClass;xr\u0000\u001ecom"
+".sun.msv.grammar.ElementExp\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0002Z\u0000\u001aignoreUndeclaredAtt"
+"ributesL\u0000\fcontentModelq\u0000~\u0000\u0002xq\u0000~\u0000\u0003\u0002\u0099Rzsr\u0000\u0011java.lang.Boolean\u00cd "
+"r\u0080\u00d5\u009c\u00fa\u00ee\u0002\u0000\u0001Z\u0000\u0005valuexp\u0000p\u0000sq\u0000~\u0000\u0000\u0002\u0099Roppsr\u0000\u001bcom.sun.msv.grammar.Da"
+"taExp\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0003L\u0000\u0002dtt\u0000\u001fLorg/relaxng/datatype/Datatype;L\u0000\u0006ex"
+"ceptq\u0000~\u0000\u0002L\u0000\u0004namet\u0000\u001dLcom/sun/msv/util/StringPair;xq\u0000~\u0000\u0003\u0000[\u0006xpp"
+"sr\u0000#com.sun.msv.datatype.xsd.StringType\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0001Z\u0000\risAlway"
+"sValidxr\u0000*com.sun.msv.datatype.xsd.BuiltinAtomicType\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001"
+"\u0002\u0000\u0000xr\u0000%com.sun.msv.datatype.xsd.ConcreteType\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xr\u0000\'c"
+"om.sun.msv.datatype.xsd.XSDatatypeImpl\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0003L\u0000\fnamespac"
+"eUrit\u0000\u0012Ljava/lang/String;L\u0000\btypeNameq\u0000~\u0000\u001aL\u0000\nwhiteSpacet\u0000.Lco"
+"m/sun/msv/datatype/xsd/WhiteSpaceProcessor;xpt\u0000 http://www.w"
+"3.org/2001/XMLSchemat\u0000\u0006stringsr\u00005com.sun.msv.datatype.xsd.Wh"
+"iteSpaceProcessor$Preserve\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xr\u0000,com.sun.msv.datatyp"
+"e.xsd.WhiteSpaceProcessor\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xp\u0001sr\u00000com.sun.msv.gramm"
+"ar.Expression$NullSetExpression\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xq\u0000~\u0000\u0003\u0000\u0000\u0000\nppsr\u0000\u001bco"
+"m.sun.msv.util.StringPair\u00d0t\u001ejB\u008f\u008d\u00a0\u0002\u0000\u0002L\u0000\tlocalNameq\u0000~\u0000\u001aL\u0000\fname"
+"spaceURIq\u0000~\u0000\u001axpq\u0000~\u0000\u001eq\u0000~\u0000\u001dsq\u0000~\u0000\t\u0002>K\u00f2ppsr\u0000 com.sun.msv.grammar"
+".AttributeExp\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0002L\u0000\u0003expq\u0000~\u0000\u0002L\u0000\tnameClassq\u0000~\u0000\fxq\u0000~\u0000\u0003\u0002>"
+"K\u00e7q\u0000~\u0000\u0010psq\u0000~\u0000\u0012\u0000V\u0086\u001bppsr\u0000\"com.sun.msv.datatype.xsd.QnameType\u0000\u0000"
+"\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xq\u0000~\u0000\u0017q\u0000~\u0000\u001dt\u0000\u0005QNamesr\u00005com.sun.msv.datatype.xsd.Whi"
+"teSpaceProcessor$Collapse\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xq\u0000~\u0000 q\u0000~\u0000#sq\u0000~\u0000$q\u0000~\u0000,q\u0000"
+"~\u0000\u001dsr\u0000#com.sun.msv.grammar.SimpleNameClass\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0002L\u0000\tloca"
+"lNameq\u0000~\u0000\u001aL\u0000\fnamespaceURIq\u0000~\u0000\u001axr\u0000\u001dcom.sun.msv.grammar.NameCl"
+"ass\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xpt\u0000\u0004typet\u0000)http://www.w3.org/2001/XMLSchema-i"
+"nstancesr\u00000com.sun.msv.grammar.Expression$EpsilonExpression\u0000"
+"\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xq\u0000~\u0000\u0003\u0000\u0000\u0000\tsq\u0000~\u0000\u000f\u0001psq\u0000~\u00000t\u0000\tclassNamet\u0000\u0000q\u0000~\u00006sq\u0000~\u0000\t"
+"\u0000\u0090<\u00feppsr\u0000 com.sun.msv.grammar.OneOrMoreExp\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xr\u0000\u001ccom"
+".sun.msv.grammar.UnaryExp\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0001L\u0000\u0003expq\u0000~\u0000\u0002xq\u0000~\u0000\u0003\u0000\u0090<\u00f3q\u0000~"
+"\u0000\u0010psq\u0000~\u0000\u000b\u0000\u0090<\u00f0q\u0000~\u0000\u0010p\u0000sq\u0000~\u0000\u0000\u0000\u0090<\u00e5ppsq\u0000~\u0000\u000b\u0000+\u0094(pp\u0000sq\u0000~\u0000\t\u0000+\u0094\u001dppsq\u0000"
+"~\u0000<\u0000+\u0094\u0012q\u0000~\u0000\u0010psq\u0000~\u0000\'\u0000+\u0094\u000fq\u0000~\u0000\u0010psr\u00002com.sun.msv.grammar.Express"
+"ion$AnyStringExpression\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xq\u0000~\u0000\u0003\u0000\u0000\u0000\bq\u0000~\u00007psr\u0000 com.su"
+"n.msv.grammar.AnyNameClass\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xq\u0000~\u00001q\u0000~\u00006sq\u0000~\u00000t\u0000$com"
+".uvigo.mhp.xml.test.ParameterTypet\u0000+http://java.sun.com/jaxb"
+"/xjc/dummy-elementssq\u0000~\u0000\t\u0000d\u00a8\u00b8ppsq\u0000~\u0000\'\u0000d\u00a8\u00adq\u0000~\u0000\u0010pq\u0000~\u0000)sq\u0000~\u00000q\u0000"
+"~\u00003q\u0000~\u00004q\u0000~\u00006sq\u0000~\u00000t\u0000\nparametersq\u0000~\u0000:q\u0000~\u00006sq\u0000~\u0000<\u0000\u008bj\u00c1ppsq\u0000~\u0000\u000b"
+"\u0000\u008bj\u00bepp\u0000sq\u0000~\u0000\u0000\u0000\u008bj\u00b3ppsq\u0000~\u0000\u000b\u0000+\u0094(pp\u0000sq\u0000~\u0000\t\u0000+\u0094\u001dppsq\u0000~\u0000<\u0000+\u0094\u0012q\u0000~\u0000\u0010p"
+"sq\u0000~\u0000\'\u0000+\u0094\u000fq\u0000~\u0000\u0010pq\u0000~\u0000Fq\u0000~\u0000Hq\u0000~\u00006sq\u0000~\u00000t\u0000!com.uvigo.mhp.xml.te"
+"st.OptionTypeq\u0000~\u0000Ksq\u0000~\u0000\t\u0000_\u00d6\u0086ppsq\u0000~\u0000\'\u0000_\u00d6{q\u0000~\u0000\u0010pq\u0000~\u0000)sq\u0000~\u00000q\u0000~"
+"\u00003q\u0000~\u00004q\u0000~\u00006sq\u0000~\u00000t\u0000\u0006optionq\u0000~\u0000:sq\u0000~\u0000\t\u0001*p\u00c4ppsq\u0000~\u0000\'\u0001*p\u00b9q\u0000~\u0000\u0010p"
+"sq\u0000~\u0000\u0012\u0000\u00fbcdppsr\u0000)com.sun.msv.datatype.xsd.EnumerationFacet\u0000\u0000\u0000"
+"\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0001L\u0000\u0006valuest\u0000\u000fLjava/util/Set;xr\u00009com.sun.msv.datatype."
+"xsd.DataTypeWithValueConstraintFacet\"\u00a7Ro\u00ca\u00c7\u008aT\u0002\u0000\u0000xr\u0000*com.sun.m"
+"sv.datatype.xsd.DataTypeWithFacet\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0005Z\u0000\fisFacetFixedZ"
+"\u0000\u0012needValueCheckFlagL\u0000\bbaseTypet\u0000)Lcom/sun/msv/datatype/xsd/"
+"XSDatatypeImpl;L\u0000\fconcreteTypet\u0000\'Lcom/sun/msv/datatype/xsd/C"
+"oncreteType;L\u0000\tfacetNameq\u0000~\u0000\u001axq\u0000~\u0000\u0019q\u0000~\u0000:pq\u0000~\u0000!\u0000\u0000q\u0000~\u0000\u001cq\u0000~\u0000\u001ct\u0000"
+"\u000benumerationsr\u0000\u0011java.util.HashSet\u00baD\u0085\u0095\u0096\u00b8\u00b74\u0003\u0000\u0000xpw\f\u0000\u0000\u0000\u0010?@\u0000\u0000\u0000\u0000\u0000\u0002"
+"t\u0000\u0002not\u0000\u0003yesxq\u0000~\u0000#sq\u0000~\u0000$t\u0000\u000estring-derivedq\u0000~\u0000:sq\u0000~\u00000t\u0000\u0016allowM"
+"ultipleSelectionq\u0000~\u0000:q\u0000~\u00006sq\u0000~\u0000\t\u0001v2\u00adppsq\u0000~\u0000\'\u0001v2\u00a2q\u0000~\u0000\u0010psq\u0000~\u0000\u0012"
+"\u0000b\u0011\u000bppsr\u0000*com.sun.msv.datatype.xsd.MinInclusiveFacet\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001"
+"\u0002\u0000\u0000xr\u0000#com.sun.msv.datatype.xsd.RangeFacet\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0001L\u0000\nlimi"
+"tValuet\u0000\u0012Ljava/lang/Object;xq\u0000~\u0000dq\u0000~\u0000:pq\u0000~\u0000.\u0000\u0000sr\u0000 com.sun.ms"
+"v.datatype.xsd.IntType\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xr\u0000+com.sun.msv.datatype.xs"
+"d.IntegerDerivedType\u0099\u00f1]\u0090&6k\u00be\u0002\u0000\u0001L\u0000\nbaseFacetsq\u0000~\u0000fxq\u0000~\u0000\u0017q\u0000~\u0000\u001d"
+"t\u0000\u0003intq\u0000~\u0000.sr\u0000*com.sun.msv.datatype.xsd.MaxInclusiveFacet\u0000\u0000\u0000"
+"\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xq\u0000~\u0000vppq\u0000~\u0000.\u0000\u0001sq\u0000~\u0000uppq\u0000~\u0000.\u0000\u0000sr\u0000!com.sun.msv.dataty"
+"pe.xsd.LongType\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xq\u0000~\u0000zq\u0000~\u0000\u001dt\u0000\u0004longq\u0000~\u0000.sq\u0000~\u0000}ppq\u0000~"
+"\u0000.\u0000\u0001sq\u0000~\u0000uppq\u0000~\u0000.\u0000\u0000sr\u0000$com.sun.msv.datatype.xsd.IntegerType\u0000"
+"\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0000xq\u0000~\u0000zq\u0000~\u0000\u001dt\u0000\u0007integerq\u0000~\u0000.sr\u0000,com.sun.msv.datatype"
+".xsd.FractionDigitsFacet\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0001I\u0000\u0005scalexr\u0000;com.sun.msv.d"
+"atatype.xsd.DataTypeWithLexicalConstraintFacetT\u0090\u001c>\u001azb\u00ea\u0002\u0000\u0000xq\u0000"
+"~\u0000eppq\u0000~\u0000.\u0001\u0000sr\u0000#com.sun.msv.datatype.xsd.NumberType\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002"
+"\u0000\u0000xq\u0000~\u0000\u0017q\u0000~\u0000\u001dt\u0000\u0007decimalq\u0000~\u0000.q\u0000~\u0000\u008ct\u0000\u000efractionDigits\u0000\u0000\u0000\u0000q\u0000~\u0000\u0086t"
+"\u0000\fminInclusivesr\u0000\u000ejava.lang.Long;\u008b\u00e4\u0090\u00cc\u008f#\u00df\u0002\u0000\u0001J\u0000\u0005valuexr\u0000\u0010java."
+"lang.Number\u0086\u00ac\u0095\u001d\u000b\u0094\u00e0\u008b\u0002\u0000\u0000xp\u0080\u0000\u0000\u0000\u0000\u0000\u0000\u0000q\u0000~\u0000\u0086t\u0000\fmaxInclusivesq\u0000~\u0000\u0090\u007f\u00ff"
+"\u00ff\u00ff\u00ff\u00ff\u00ff\u00ffq\u0000~\u0000\u0081q\u0000~\u0000\u008fsr\u0000\u0011java.lang.Integer\u0012\u00e2\u00a0\u00a4\u00f7\u0081\u00878\u0002\u0000\u0001I\u0000\u0005valuexq\u0000~"
+"\u0000\u0091\u0080\u0000\u0000\u0000q\u0000~\u0000\u0081q\u0000~\u0000\u0093sq\u0000~\u0000\u0095\u007f\u00ff\u00ff\u00ffq\u0000~\u0000{q\u0000~\u0000\u008fsq\u0000~\u0000\u0095\u0000\u0000\u0000\u0001q\u0000~\u0000#sq\u0000~\u0000$t\u0000\u000b"
+"int-derivedq\u0000~\u0000:sq\u0000~\u00000t\u0000\u001bminimumCorrectOptionsToTickq\u0000~\u0000:q\u0000~"
+"\u00006sr\u0000\"com.sun.msv.grammar.ExpressionPool\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0002\u0000\u0001L\u0000\bexpTab"
+"let\u0000/Lcom/sun/msv/grammar/ExpressionPool$ClosedHash;xpsr\u0000-co"
+"m.sun.msv.grammar.ExpressionPool$ClosedHash\u00d7j\u00d0N\u00ef\u00e8\u00ed\u001c\u0002\u0000\u0004I\u0000\u0005cou"
+"ntI\u0000\tthresholdL\u0000\u0006parentq\u0000~\u0000\u009e[\u0000\u0005tablet\u0000![Lcom/sun/msv/grammar"
+"/Expression;xp\u0000\u0000\u0000\u0014\u0000\u0000\u00009pur\u0000![Lcom.sun.msv.grammar.Expression;"
+"\u00d68D\u00c3]\u00ad\u00a7\n\u0002\u0000\u0000xp\u0000\u0000\u0000\u00bfpppppq\u0000~\u0000_q\u0000~\u0000>ppppppppppq\u0000~\u0000;ppppppppppppp"
+"pppq\u0000~\u0000Lpppppppppppppppppppppppppppppppppppppppppppppppppppp"
+"pppppppppppppppppppppq\u0000~\u0000\u0011pppppppppppppq\u0000~\u0000Cq\u0000~\u0000Vq\u0000~\u0000\u0007pppppq"
+"\u0000~\u0000\nq\u0000~\u0000\u0005pq\u0000~\u0000Bq\u0000~\u0000Uq\u0000~\u0000\u0006pppppppq\u0000~\u0000Sppppppppq\u0000~\u0000\bppppq\u0000~\u0000Qp"
+"pppppppppppppppq\u0000~\u0000&ppppppppq\u0000~\u0000@q\u0000~\u0000rq\u0000~\u0000Zppppp"));
        }
        return new com.sun.msv.verifier.regexp.REDocumentDeclaration(schemaFragment);
    }

    public class Unmarshaller
        extends com.uvigo.mhp.xml.test.impl.runtime.AbstractUnmarshallingEventHandlerImpl
    {


        public Unmarshaller(com.uvigo.mhp.xml.test.impl.runtime.UnmarshallingContext context) {
            super(context, "----------------");
        }

        protected Unmarshaller(com.uvigo.mhp.xml.test.impl.runtime.UnmarshallingContext context, int startState) {
            this(context);
            state = startState;
        }

        public java.lang.Object owner() {
            return com.uvigo.mhp.xml.test.impl.QuestionTypeImpl.this;
        }

        public void enterElement(java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname, org.xml.sax.Attributes __atts)
            throws org.xml.sax.SAXException
        {
            int attIdx;
            outer:
            while (true) {
                switch (state) {
                    case  10 :
                        if (("componentName" == ___local)&&("" == ___uri)) {
                            _Parameters.add(((com.uvigo.mhp.xml.test.impl.ParameterTypeImpl) spawnChildFromEnterElement((com.uvigo.mhp.xml.test.impl.ParameterTypeImpl.class), 11, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        break;
                    case  9 :
                        if (("parameters" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, false);
                            state = 10;
                            return ;
                        }
                        state = 12;
                        continue outer;
                    case  0 :
                        attIdx = context.getAttribute("", "allowMultipleSelection");
                        if (attIdx >= 0) {
                            final java.lang.String v = context.eatAttribute(attIdx);
                            eatText1(v);
                            state = 3;
                            continue outer;
                        }
                        state = 3;
                        continue outer;
                    case  12 :
                        if (("parameters" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, false);
                            state = 10;
                            return ;
                        }
                        if (("option" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, false);
                            state = 13;
                            return ;
                        }
                        break;
                    case  13 :
                        attIdx = context.getAttribute("", "correct");
                        if (attIdx >= 0) {
                            context.consumeAttribute(attIdx);
                            context.getCurrentHandler().enterElement(___uri, ___local, ___qname, __atts);
                            return ;
                        }
                        if (("className" == ___local)&&("" == ___uri)) {
                            _Option.add(((com.uvigo.mhp.xml.test.impl.OptionTypeImpl) spawnChildFromEnterElement((com.uvigo.mhp.xml.test.impl.OptionTypeImpl.class), 14, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        if (("parameters" == ___local)&&("" == ___uri)) {
                            _Option.add(((com.uvigo.mhp.xml.test.impl.OptionTypeImpl) spawnChildFromEnterElement((com.uvigo.mhp.xml.test.impl.OptionTypeImpl.class), 14, ___uri, ___local, ___qname, __atts)));
                            return ;
                        }
                        _Option.add(((com.uvigo.mhp.xml.test.impl.OptionTypeImpl) spawnChildFromEnterElement((com.uvigo.mhp.xml.test.impl.OptionTypeImpl.class), 14, ___uri, ___local, ___qname, __atts)));
                        return ;
                    case  15 :
                        if (("option" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, false);
                            state = 13;
                            return ;
                        }
                        revertToParentFromEnterElement(___uri, ___local, ___qname, __atts);
                        return ;
                    case  6 :
                        if (("className" == ___local)&&("" == ___uri)) {
                            context.pushAttributes(__atts, true);
                            state = 7;
                            return ;
                        }
                        state = 9;
                        continue outer;
                    case  3 :
                        attIdx = context.getAttribute("", "minimumCorrectOptionsToTick");
                        if (attIdx >= 0) {
                            final java.lang.String v = context.eatAttribute(attIdx);
                            eatText2(v);
                            state = 6;
                            continue outer;
                        }
                        state = 6;
                        continue outer;
                }
                super.enterElement(___uri, ___local, ___qname, __atts);
                break;
            }
        }

        private void eatText1(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _AllowMultipleSelection = value;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

        private void eatText2(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _MinimumCorrectOptionsToTick = javax.xml.bind.DatatypeConverter.parseInt(com.sun.xml.bind.WhiteSpaceProcessor.collapse(value));
                has_MinimumCorrectOptionsToTick = true;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

        public void leaveElement(java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname)
            throws org.xml.sax.SAXException
        {
            int attIdx;
            outer:
            while (true) {
                switch (state) {
                    case  9 :
                        state = 12;
                        continue outer;
                    case  0 :
                        attIdx = context.getAttribute("", "allowMultipleSelection");
                        if (attIdx >= 0) {
                            final java.lang.String v = context.eatAttribute(attIdx);
                            eatText1(v);
                            state = 3;
                            continue outer;
                        }
                        state = 3;
                        continue outer;
                    case  13 :
                        attIdx = context.getAttribute("", "correct");
                        if (attIdx >= 0) {
                            context.consumeAttribute(attIdx);
                            context.getCurrentHandler().leaveElement(___uri, ___local, ___qname);
                            return ;
                        }
                        _Option.add(((com.uvigo.mhp.xml.test.impl.OptionTypeImpl) spawnChildFromLeaveElement((com.uvigo.mhp.xml.test.impl.OptionTypeImpl.class), 14, ___uri, ___local, ___qname)));
                        return ;
                    case  11 :
                        if (("parameters" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 12;
                            return ;
                        }
                        break;
                    case  8 :
                        if (("className" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 9;
                            return ;
                        }
                        break;
                    case  15 :
                        revertToParentFromLeaveElement(___uri, ___local, ___qname);
                        return ;
                    case  14 :
                        if (("option" == ___local)&&("" == ___uri)) {
                            context.popAttributes();
                            state = 15;
                            return ;
                        }
                        break;
                    case  6 :
                        state = 9;
                        continue outer;
                    case  3 :
                        attIdx = context.getAttribute("", "minimumCorrectOptionsToTick");
                        if (attIdx >= 0) {
                            final java.lang.String v = context.eatAttribute(attIdx);
                            eatText2(v);
                            state = 6;
                            continue outer;
                        }
                        state = 6;
                        continue outer;
                }
                super.leaveElement(___uri, ___local, ___qname);
                break;
            }
        }

        public void enterAttribute(java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname)
            throws org.xml.sax.SAXException
        {
            int attIdx;
            outer:
            while (true) {
                switch (state) {
                    case  9 :
                        state = 12;
                        continue outer;
                    case  0 :
                        if (("allowMultipleSelection" == ___local)&&("" == ___uri)) {
                            state = 1;
                            return ;
                        }
                        state = 3;
                        continue outer;
                    case  13 :
                        if (("correct" == ___local)&&("" == ___uri)) {
                            _Option.add(((com.uvigo.mhp.xml.test.impl.OptionTypeImpl) spawnChildFromEnterAttribute((com.uvigo.mhp.xml.test.impl.OptionTypeImpl.class), 14, ___uri, ___local, ___qname)));
                            return ;
                        }
                        _Option.add(((com.uvigo.mhp.xml.test.impl.OptionTypeImpl) spawnChildFromEnterAttribute((com.uvigo.mhp.xml.test.impl.OptionTypeImpl.class), 14, ___uri, ___local, ___qname)));
                        return ;
                    case  15 :
                        revertToParentFromEnterAttribute(___uri, ___local, ___qname);
                        return ;
                    case  6 :
                        state = 9;
                        continue outer;
                    case  3 :
                        if (("minimumCorrectOptionsToTick" == ___local)&&("" == ___uri)) {
                            state = 4;
                            return ;
                        }
                        state = 6;
                        continue outer;
                }
                super.enterAttribute(___uri, ___local, ___qname);
                break;
            }
        }

        public void leaveAttribute(java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname)
            throws org.xml.sax.SAXException
        {
            int attIdx;
            outer:
            while (true) {
                switch (state) {
                    case  2 :
                        if (("allowMultipleSelection" == ___local)&&("" == ___uri)) {
                            state = 3;
                            return ;
                        }
                        break;
                    case  5 :
                        if (("minimumCorrectOptionsToTick" == ___local)&&("" == ___uri)) {
                            state = 6;
                            return ;
                        }
                        break;
                    case  9 :
                        state = 12;
                        continue outer;
                    case  0 :
                        attIdx = context.getAttribute("", "allowMultipleSelection");
                        if (attIdx >= 0) {
                            final java.lang.String v = context.eatAttribute(attIdx);
                            eatText1(v);
                            state = 3;
                            continue outer;
                        }
                        state = 3;
                        continue outer;
                    case  13 :
                        attIdx = context.getAttribute("", "correct");
                        if (attIdx >= 0) {
                            context.consumeAttribute(attIdx);
                            context.getCurrentHandler().leaveAttribute(___uri, ___local, ___qname);
                            return ;
                        }
                        _Option.add(((com.uvigo.mhp.xml.test.impl.OptionTypeImpl) spawnChildFromLeaveAttribute((com.uvigo.mhp.xml.test.impl.OptionTypeImpl.class), 14, ___uri, ___local, ___qname)));
                        return ;
                    case  15 :
                        revertToParentFromLeaveAttribute(___uri, ___local, ___qname);
                        return ;
                    case  6 :
                        state = 9;
                        continue outer;
                    case  3 :
                        attIdx = context.getAttribute("", "minimumCorrectOptionsToTick");
                        if (attIdx >= 0) {
                            final java.lang.String v = context.eatAttribute(attIdx);
                            eatText2(v);
                            state = 6;
                            continue outer;
                        }
                        state = 6;
                        continue outer;
                }
                super.leaveAttribute(___uri, ___local, ___qname);
                break;
            }
        }

        public void handleText(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            int attIdx;
            outer:
            while (true) {
                try {
                    switch (state) {
                        case  9 :
                            state = 12;
                            continue outer;
                        case  4 :
                            eatText2(value);
                            state = 5;
                            return ;
                        case  0 :
                            attIdx = context.getAttribute("", "allowMultipleSelection");
                            if (attIdx >= 0) {
                                final java.lang.String v = context.eatAttribute(attIdx);
                                eatText1(v);
                                state = 3;
                                continue outer;
                            }
                            state = 3;
                            continue outer;
                        case  1 :
                            eatText1(value);
                            state = 2;
                            return ;
                        case  13 :
                            attIdx = context.getAttribute("", "correct");
                            if (attIdx >= 0) {
                                context.consumeAttribute(attIdx);
                                context.getCurrentHandler().text(value);
                                return ;
                            }
                            _Option.add(((com.uvigo.mhp.xml.test.impl.OptionTypeImpl) spawnChildFromText((com.uvigo.mhp.xml.test.impl.OptionTypeImpl.class), 14, value)));
                            return ;
                        case  15 :
                            revertToParentFromText(value);
                            return ;
                        case  7 :
                            eatText3(value);
                            state = 8;
                            return ;
                        case  6 :
                            state = 9;
                            continue outer;
                        case  3 :
                            attIdx = context.getAttribute("", "minimumCorrectOptionsToTick");
                            if (attIdx >= 0) {
                                final java.lang.String v = context.eatAttribute(attIdx);
                                eatText2(v);
                                state = 6;
                                continue outer;
                            }
                            state = 6;
                            continue outer;
                    }
                } catch (java.lang.RuntimeException e) {
                    handleUnexpectedTextException(value, e);
                }
                break;
            }
        }

        private void eatText3(final java.lang.String value)
            throws org.xml.sax.SAXException
        {
            try {
                _ClassName = value;
            } catch (java.lang.Exception e) {
                handleParseConversionException(e);
            }
        }

    }

}
