public static void GetCreateValueExpression(object value,
                                                    ClrSimpleTypeInfo typeDef,
                                                    CodeExpressionCollection collection)
        {
            if (value == null)
            {
                collection.Add(new CodePrimitiveExpression(value));
                return;
            }
            switch (typeDef.Variety)
            {
            case XmlSchemaDatatypeVariety.List:
                string str = ListSimpleTypeValidator.ToString(value);
                collection.Add(new CodePrimitiveExpression(str));
                break;

            case XmlSchemaDatatypeVariety.Atomic:
                if (value is string)
                {
                    collection.Add(new CodePrimitiveExpression(value));
                }
                else
                {
                    collection.Add(CreateTypedValueExpression(typeDef.InnerType.Datatype, value));
                }
                break;

            case XmlSchemaDatatypeVariety.Union:
                GetCreateUnionValueExpression(value, typeDef as UnionSimpleTypeInfo, collection);
                break;

            default:
                break;
            }
        }
        public static void GetCreateValueExpression(object value, ClrSimpleTypeInfo typeDef, CodeExpressionCollection collection)
        {
            if (value != null)
            {
                switch (typeDef.Variety)
                {
                case XmlSchemaDatatypeVariety.Atomic:
                {
                    if (!(value is string))
                    {
                        collection.Add(SimpleTypeCodeDomHelper.CreateTypedValueExpression(typeDef.InnerType.Datatype, value));
                    }
                    else
                    {
                        collection.Add(new CodePrimitiveExpression(value));
                    }
                    break;
                }

                case XmlSchemaDatatypeVariety.List:
                {
                    string str = ListSimpleTypeValidator.ToString(value);
                    collection.Add(new CodePrimitiveExpression(str));
                    break;
                }

                case XmlSchemaDatatypeVariety.Union:
                {
                    SimpleTypeCodeDomHelper.GetCreateUnionValueExpression(value, typeDef as UnionSimpleTypeInfo, collection);
                    break;
                }
                }
            }
            else
            {
                collection.Add(new CodePrimitiveExpression(value));
            }
        }