Try to look at the Maestro code:
http://trac.osgeo.org/mapguide/browser/trunk/Tools/Maestro/MaestroAPI/LocalNativeConnection.cs#L182

Hopefully you will find a small difference there.

Regards, Kenneth Skovhede, GEOGRAF A/S



sekko970 skrev:
Yes, the "OuterXml" property contains the XML header line.
Fabio

------------------------------------------------------------------------------------------------------


Kenneth Skovhede, GEOGRAF A/S wrote:
Does the "OuterXml" property contain the <? version="1.0" encoding="utf-8" standalone="true" ?> line?

Regards, Kenneth Skovhede, GEOGRAF A/S



sekko970 skrev:
Hi Kenneth, and thanks for your promptly reply.

I had used an ancoding instance.

Below, you can see my code to create the new map:

Dim resID As New
MgResourceIdentifier(Library://.../maps/MyMap.MapDefinition)

Dim enc As New System.Text.UTF8Encoding(False)

Dim newMapDef As New MgByteSource(enc.GetBytes(XMLMapTemplate.OuterXml),
enc.GetByteCount(XMLMapTemplate.OuterXml))

newMapDef.SetMimeType(MgMimeType.Xml)

Dim resourceSrvc As MgResourceService =
siteConn.CreateService(MgServiceType.ResourceService)

resourceSrvc.SetResource(resID, newMapDef.GetReader(), Nothing)

Dim map As New MgMap()

map.Create(resourceSrvc, resID, MapName)

...

Then, this is my code to create the map layout:

Dim resID As New
MgResourceIdentifier(Library://.../Layouts/MyMap.WebLayout)

Dim enc As New System.Text.UTF8Encoding(False)

Dim newLayoutDef As New
MgByteSource(enc.GetBytes(XMLLayoutTemplate.OuterXml),
enc.GetByteCount(XMLLayoutTemplate.OuterXml))

newLayoutDef.SetMimeType(MgMimeType.Xml)

resourceSrvc As MgResourceService =
siteConn.CreateService(MgServiceType.ResourceService)

resourceSrvc.SetResource(resID, newLayoutDef.GetReader(), Nothing)

map.Save(resourceSrvc)


Thanks for your help.
Fabio

------------------------------------------------------------------------------------------------------


Kenneth Skovhede, GEOGRAF A/S wrote:
You could have the problem that .Net emits an utf-8 byte-order-marker (BOM), when
writing xml.
http://en.wikipedia.org/wiki/Byte-order_mark

To counter this, explicitly create an encoding instance:
System.Text.Encoding enc = new System.Text.UTF8Encoding(false);

Then implement a xml writer, or manually convert the xml to bytes, using the encoding.

FYI, the MaestroAPI is LGPL, and so you may use it as a library, even for commercial applications,
and it handles this quirk and others.

Regards, Kenneth Skovhede, GEOGRAF A/S



sekko970 skrev:
Dear all,

I have created programmatically a map (and its layout) using MG .Net
web
API.
After creation, the new map and layout are visible in MG Maestro, and
using
the 'Show in browser" button are correctly shown in browser.

The problem happens when I load the map directly from browser, and the
following error appears:
<< The type 'OSGeo.MapGuide.MgNullArgumentException' in assembly
'MapGuideDotNetApi, Version= 2.0.2.30 11, Culture=neutral,
PublicKeyToken=null' is not marked as serializable >>.

Then, simply saving the new layout from MG Maestro (without any
modification), and reloading the map directly from browser, the error
disappears and the map is correctly shown.

After saving the layout, there aren't differences in map and layout XML
definitions.

Have you any idea about?
Thank you in advance.
Fabio

_______________________________________________
mapguide-users mailing list
mapguide-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapguide-users


_______________________________________________
mapguide-users mailing list
mapguide-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapguide-users



_______________________________________________
mapguide-users mailing list
mapguide-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapguide-users

Reply via email to