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; }
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); }