private void Write32_XmlSchemaSimpleTypeRestriction(string n, string ns, XmlSchemaSimpleTypeRestriction o, bool isNullable, bool needType)
 {
     if (o == null)
     {
         if (isNullable)
         {
             base.WriteNullTagLiteral(n, ns);
         }
     }
     else
     {
         if (!needType && !(o.GetType() == typeof(XmlSchemaSimpleTypeRestriction)))
         {
             throw base.CreateUnknownTypeException(o);
         }
         base.EscapeName = false;
         base.WriteStartElement(n, ns, o, false, o.Namespaces);
         if (needType)
         {
             base.WriteXsiType("XmlSchemaSimpleTypeRestriction", "http://www.w3.org/2001/XMLSchema");
         }
         base.WriteAttribute("id", "", o.Id);
         XmlAttribute[] unhandledAttributes = o.UnhandledAttributes;
         if (unhandledAttributes != null)
         {
             for (int i = 0; i < unhandledAttributes.Length; i++)
             {
                 XmlAttribute node = unhandledAttributes[i];
                 base.WriteXmlAttribute(node, o);
             }
         }
         base.WriteAttribute("base", "", base.FromXmlQualifiedName(o.BaseTypeName));
         this.Write11_XmlSchemaAnnotation("annotation", "http://www.w3.org/2001/XMLSchema", o.Annotation, false, false);
         this.Write34_XmlSchemaSimpleType("simpleType", "http://www.w3.org/2001/XMLSchema", o.BaseType, false, false);
         XmlSchemaObjectCollection facets = o.Facets;
         if (facets != null)
         {
             for (int j = 0; j < facets.Count; j++)
             {
                 XmlSchemaObject obj2 = facets[j];
                 if (obj2 is XmlSchemaLengthFacet)
                 {
                     this.Write23_XmlSchemaLengthFacet("length", "http://www.w3.org/2001/XMLSchema", (XmlSchemaLengthFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaTotalDigitsFacet)
                 {
                     this.Write24_XmlSchemaTotalDigitsFacet("totalDigits", "http://www.w3.org/2001/XMLSchema", (XmlSchemaTotalDigitsFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaMaxLengthFacet)
                 {
                     this.Write22_XmlSchemaMaxLengthFacet("maxLength", "http://www.w3.org/2001/XMLSchema", (XmlSchemaMaxLengthFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaFractionDigitsFacet)
                 {
                     this.Write20_XmlSchemaFractionDigitsFacet("fractionDigits", "http://www.w3.org/2001/XMLSchema", (XmlSchemaFractionDigitsFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaMinLengthFacet)
                 {
                     this.Write31_XmlSchemaMinLengthFacet("minLength", "http://www.w3.org/2001/XMLSchema", (XmlSchemaMinLengthFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaMaxExclusiveFacet)
                 {
                     this.Write28_XmlSchemaMaxExclusiveFacet("maxExclusive", "http://www.w3.org/2001/XMLSchema", (XmlSchemaMaxExclusiveFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaWhiteSpaceFacet)
                 {
                     this.Write29_XmlSchemaWhiteSpaceFacet("whiteSpace", "http://www.w3.org/2001/XMLSchema", (XmlSchemaWhiteSpaceFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaMinExclusiveFacet)
                 {
                     this.Write30_XmlSchemaMinExclusiveFacet("minExclusive", "http://www.w3.org/2001/XMLSchema", (XmlSchemaMinExclusiveFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaPatternFacet)
                 {
                     this.Write25_XmlSchemaPatternFacet("pattern", "http://www.w3.org/2001/XMLSchema", (XmlSchemaPatternFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaMinInclusiveFacet)
                 {
                     this.Write21_XmlSchemaMinInclusiveFacet("minInclusive", "http://www.w3.org/2001/XMLSchema", (XmlSchemaMinInclusiveFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaMaxInclusiveFacet)
                 {
                     this.Write27_XmlSchemaMaxInclusiveFacet("maxInclusive", "http://www.w3.org/2001/XMLSchema", (XmlSchemaMaxInclusiveFacet) obj2, false, false);
                 }
                 else if (obj2 is XmlSchemaEnumerationFacet)
                 {
                     this.Write26_XmlSchemaEnumerationFacet("enumeration", "http://www.w3.org/2001/XMLSchema", (XmlSchemaEnumerationFacet) obj2, false, false);
                 }
                 else if (obj2 != null)
                 {
                     throw base.CreateUnknownTypeException(obj2);
                 }
             }
         }
         base.WriteEndElement(o);
     }
 }