internal void TypeToType(XmlSchemaType st)
        {
            XmlSchemaSimpleType simpleType = st as XmlSchemaSimpleType;

            if (simpleType != null)
            {
                this.AddSimpleType(simpleType.QualifiedName, simpleType);
            }
            else
            {
                XmlSchemaComplexType ct = st as XmlSchemaComplexType;
                if (ct != null && ct.TypeCode != XmlTypeCode.Item)
                {
                    SymbolEntry symbol       = symbolTable.AddType(ct.QualifiedName, ct);
                    string      xsdNamespace = ct.QualifiedName.Namespace;

                    localSymbolTable.Init(symbol.identifierName);

                    ClrContentTypeInfo typeInfo = new ClrContentTypeInfo();
                    typeInfo.IsAbstract  = ct.IsAbstract;
                    typeInfo.IsSealed    = ct.IsFinal();
                    typeInfo.clrtypeName = symbol.identifierName;
                    typeInfo.clrtypeNs   = symbol.clrNamespace;
                    typeInfo.schemaName  = symbol.symbolName;
                    typeInfo.schemaNs    = xsdNamespace;

                    typeInfo.typeOrigin = SchemaOrigin.Fragment;
                    typeInfo.baseType   = BaseType(ct);
                    BuildProperties(null, ct, typeInfo);
                    BuildNestedTypes(typeInfo);
                    BuildAnnotationInformation(typeInfo, ct);
                    binding.Types.Add(typeInfo);
                }
            }
        }
        internal void TypesToTypes()
        {
            foreach (XmlSchemaType st in schemas.GlobalTypes.Values)
            {
                XmlSchemaSimpleType simpleType = st as XmlSchemaSimpleType;
                if (simpleType != null)
                {
                    SymbolEntry symbol       = symbolTable.AddType(simpleType);
                    string      xsdNamespace = simpleType.QualifiedName.Namespace;
                    ClrSimpleTypeInfo
                        typeInfo = ClrSimpleTypeInfo
                                   .CreateSimpleTypeInfo(simpleType); //Create corresponding simple type info objects
                    typeInfo.IsAbstract  = false;
                    typeInfo.clrtypeName = symbol.identifierName;
                    typeInfo.clrtypeNs   = symbol.clrNamespace;
                    typeInfo.schemaName  = symbol.symbolName;
                    typeInfo.schemaNs    = xsdNamespace;
                    typeInfo.typeOrigin  = SchemaOrigin.Fragment;
                    BuildAnnotationInformation(typeInfo, st);
                    binding.Types.Add(typeInfo);
                }
                else
                {
                    XmlSchemaComplexType ct = st as XmlSchemaComplexType;
                    if (ct != null && ct.TypeCode != XmlTypeCode.Item)
                    {
                        SymbolEntry symbol       = symbolTable.AddType(ct);
                        string      xsdNamespace = ct.QualifiedName.Namespace;

                        localSymbolTable.Init(symbol.identifierName);

                        ClrContentTypeInfo typeInfo = new ClrContentTypeInfo();
                        typeInfo.IsAbstract  = ct.IsAbstract;
                        typeInfo.IsSealed    = ct.IsFinal();
                        typeInfo.clrtypeName = symbol.identifierName;
                        typeInfo.clrtypeNs   = symbol.clrNamespace;
                        typeInfo.schemaName  = symbol.symbolName;
                        typeInfo.schemaNs    = xsdNamespace;

                        typeInfo.typeOrigin = SchemaOrigin.Fragment;
                        typeInfo.baseType   = BaseType(ct);
                        BuildProperties(null, ct, typeInfo);
                        BuildNestedTypes(typeInfo);
                        BuildAnnotationInformation(typeInfo, ct);
                        binding.Types.Add(typeInfo);
                    }
                }
            }
        }