I guess there should be an "unmapped type" - type, to deal with
situations like this.
You can set it to "string", and it should read out just fine.
I have created a ticket for the problem:
http://trac.osgeo.org/mapguide/ticket/724
As you may have noticed, Maestro issues calls to a web interface on the
MapGuide server:
http://localhost/mapguide/mapagent/index.html
On this test form/web interface, you can try the "Feature" ->
"DescribeSchema".
Leave the "Schema" field blank, and you will get the output from
MapGuide, which in turn should be
the output directly from FDO.
If the tables are missing there, you cannot get them into Maestro.
If the tables are present, please file a bug report for Maestro, and
include the resulting xml in the ticket.
If the tables are missing (which I suspect), it could be a problem with
permissions.
Could it be that the provider only shows tables which are owned by the
login user?
Regards, Kenneth Skovhede, GEOGRAF A/S
Carl skrev:
yes, the exception is exactly fired because of the lost the type map.
Then I tried to comment the follow bold line:
/////////////////////////////////////////
public class FeatureSetColumn
{
internal FeatureSetColumn(string name, int type)
{
m_name = name;
m_type = Utility.ConvertMgTypeToNetType(type);
}
internal FeatureSetColumn(XmlNode node)
{
m_name = node.Attributes["name"].Value;
m_allowNull = node.Attributes["minOccurs"] != null &&
node.Attributes["minOccurs"].Value == "0";
if (node.Attributes["type"] != null &&
node.Attributes["type"].Value == "gml:AbstractGeometryType")
m_type = Utility.GeometryType;
else if (node["xs:simpleType"] == null)
m_type = Utility.RasterType;
else
switch
(node["xs:simpleType"]["xs:restriction"].Attributes["base"].Value.ToLower())
{
case "xs:string":
m_type = typeof(string);
break;
case "fdo:byte":
m_type = typeof(Byte);
break;
case "fdo:int32":
m_type = typeof(int);
break;
case "fdo:int16":
m_type = typeof(short);
break;
case "fdo:int64":
m_type = typeof(long);
break;
case "xs:float":
m_type = typeof(float);
break;
case "xs:double":
case "xs:decimal":
m_type = typeof(double);
break;
case "xs:boolean":
m_type = typeof(bool);
return;
case "xs:datetime":
m_type = typeof(DateTime);
break;
default:
//throw new Exception("Failed to find appropriate
type for: " +
node["xs:simpleType"]["xs:restriction"].Attributes["base"].Value);
break;
}
}
private string m_name;
private Type m_type;
private bool m_allowNull;
public string Name { get { return m_name; } }
public Type Type { get { return m_type; } }
}
//////////////////////////////////
OK. No messages shown again, and Maestro seems work normally, the resource
editor can show more information.
But, there still only 16 tables listed, none has a geometry field. In fact
there exist more than 200 tables in the Database.
_______________________________________________
mapguide-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapguide-users