internal static SimpleSchemaType GetSimpleSchemaType(Type type, XMLNamespace xns, bool fInline)
            {
                Util.Log("SimpleSchemaType.GetSimpleSchemaType "+type+" xns "+xns.Name);                

                SimpleSchemaType ssType = null;
                if (type.IsEnum)
                {
                    ssType = new SimpleSchemaType(type, xns);
                    String baseName = RealSchemaType.TypeName(Enum.GetUnderlyingType(type), true, xns);
                    ssType._restriction = new Restriction(baseName, xns);
                    String[] values = Enum.GetNames(type);
                    for (int i=0;i<values.Length;i++)
                        ssType._restriction._abstractElms.Add(new EnumElement(values[i]));
                    ssType._restriction._rtype = Restriction.RestrictionType.Enum;
                }
                else
                {
                }
                return(ssType);
            }
 internal void AddSimpleSchemaType(SimpleSchemaType ssType){
     Util.Log("XMLNamespace.AddSimpleSchemaType "+ssType.Type);                              
     Debug.Assert(LookupSimpleSchemaType(ssType.Type.Name) == null, "Duplicate Type found");
     _simpleSchemaTypes.Add(ssType);
     //_typeToSchemaType[ssType.Type] = ssType;
     //_schemaTypeToType[ssType] = ssType.Type;
     return;
 }
Beispiel #3
0
			internal static SimpleSchemaType GetSimpleSchemaType(Type type, XMLNamespace xns, bool fInline)
			{
				Util.Log("SimpleSchemaType.GetSimpleSchemaType "+type+" xns "+xns.Name);                
				SimpleSchemaType ssType = null;
				if (fInline)
				{
					if ((type.IsArray == true) &&
						  (type.GetArrayRank() == 1) &&
						  (type.GetElementType() == typeof(byte)))
					{
						if (_byteArraySchemaType == null)
						{
							_byteArraySchemaType = new SimpleSchemaType(type, null);
							_byteArraySchemaType._baseName = "xsd:binary";
							_byteArraySchemaType._abstractElms.Add(new EncodingElement("base64"));
						}
						ssType = _byteArraySchemaType;
					}
				}
				else
				{
					if (type.IsEnum)
					{
						ssType = new SimpleSchemaType(type, xns);
						ssType._baseName = RealSchemaType.TypeName(Enum.GetUnderlyingType(type), true, null);
						String[] values = Enum.GetNames(type);
						for (int i=0;i<values.Length;i++)
							ssType._abstractElms.Add(new EnumElement(values[i]));
					}
					else
					{
					}
				}

				return(ssType);
			}