[mapguide-users] XML Parser error for Feature Sources

Kenneth Skovhede, GEOGRAF A/S ks at geograf.dk
Tue Dec 2 03:52:38 EST 2008


You can save to either repository, depending on what resourceIdentifier 
you give.
The class ResourceIdentifier can help you construct/manipulate a 
ResourceIdentifier,
if you find it annoying to work with strings.

As for the "live map", you will likely need to be aware of the 
difference between
the Runtime Map and the MapDefinition, as stated on the developer docs page
under Maestro.

Regards, Kenneth Skovhede, GEOGRAF A/S



cagray skrev:
> Thats works great.
>
> I had written a web app which allows a user to completely customise the
> appearances of layers. Behind the scenes it just edits the xml but I suspect
> the MaestroAPI could do this all for me without me touching the xml. I need
> to look into it more as I need to be able to save to both session and
> library and always show the updates on a live map however the MaestroAPI
> looks ideal.  
>
> The help chm file, I can download fine but when I do, any links I try and
> open just come up with 'The address is not valid'. However turns out this is
> an intended security feature of IE. Basically to fix it all you have to do
> is right click on the chm file, go to properties and then click Unblock and
> it works. (Just in case anyone else has had the same issue)
>
> Thanks for all your help!
> Colin
>
>
> Kenneth Skovhede, GEOGRAF A/S wrote:
>   
>> You have to initialize the parameter collection manually:
>> fs.Parameter = new MaestroAPI.NameValuePairTypeCollection();
>> (I forgot to mention that).
>>
>> I just tried to download MaestroAPI.chm, and the link works for me:
>> http://trac.osgeo.org/mapguide/browser/trunk/Tools/Maestro/MaestroAPI/Documentation/Msdn-Chm/MaestroAPI.chm?format=raw
>>
>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>
>>
>>
>> cagray skrev:
>>     
>>> I tried your example and I always get an error of:
>>>
>>> Object reference not set to an instance of an object.
>>>
>>> when I do:
>>>
>>>  fs.Parameter["DefaultFilePath"] = "C:\my.shp";
>>>
>>> or other similar attempts for other providers. If I take this line out it
>>> creates the resource no problem. Do you know why this would happen?
>>>
>>> Also I tried to download the help (MaestroAPI.chm) off the website but
>>> none
>>> of the help links work. Have I done something daft? 
>>>
>>> Any help is appreciated.
>>> Colin
>>>
>>>
>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>   
>>>       
>>>> Yes, you can do just that.
>>>> Look in the Maestro source code to see how it's done.
>>>> The files "ResourceEditors/ResourceEditorBase.cs"  and 
>>>> "ResourceEditors/ResourceEditorGeneric.cs" shows it.
>>>> Some more customized versions are avalible in eg
>>>> "FeatureSourceEditorSDF.cs"
>>>>
>>>> Basically you can do:
>>>>     MaestroAPI.ServerConnectionI con; //You must initialize this, see 
>>>> the developer docs
>>>>     MaestroAPI.FeatureSource fs = new MaestroAPI.FeatureSource();
>>>>     fs.Provider = "OSGeo.SHP.3.1";
>>>>     fs.Parameter["DefaultFilePath"] = "C:\my.shp";
>>>>     con.SaveResourceAs(fs, new MaestroAPI.ResourceIdentifier("my fs", 
>>>> OSGeo.MapGuide.MaestroAPI.ResourceTypes.FeatureSource));
>>>>
>>>>
>>>> As for your actual problem, does the server error log show anything?
>>>> C:\program files\Mapguideopensource2.0\server\logs\error.log
>>>>
>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>
>>>>
>>>>
>>>> cagray skrev:
>>>>     
>>>>         
>>>>> Thanks for the reply. Unfortunately that did not solve my problem and I
>>>>> got
>>>>> the same error. Is there anything else I could try?
>>>>>
>>>>> I was not aware you could do this without generating/manipulating the
>>>>> xml.
>>>>> My web tool has to fully control setting up data sources. So the user
>>>>> selects a provider and then fills in the connection details. I then
>>>>> need
>>>>> to
>>>>> create a new data source from this to be stored in mapguide. Can you do
>>>>> this
>>>>> using the Meastro API alone? 
>>>>>
>>>>>
>>>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>>>   
>>>>>       
>>>>>           
>>>>>> I believe the problem is the .Net UTF-8 Encoder prefixes an UTF-8 BOM,
>>>>>> which causes problems in the Xml parser:
>>>>>> http://trac.osgeo.org/mapguide/ticket/233
>>>>>>
>>>>>> You can try to create the UTF-8 encoder with:
>>>>>>
>>>>>> UTF8Encoding utf8 = new UTF8Encoding(false);
>>>>>>
>>>>>>
>>>>>> And see if the problem goes away.
>>>>>> Alternatively you can use the MaestroAPI instead of messing with the
>>>>>> raw 
>>>>>> Xml:
>>>>>> http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI
>>>>>>
>>>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>>>
>>>>>>
>>>>>>     
>>>>>>         
>>>>>>             
>>>> _______________________________________________
>>>> mapguide-users mailing list
>>>> mapguide-users at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>>
>>>>
>>>>     
>>>>         
>>>   
>>>       
>> _______________________________________________
>> mapguide-users mailing list
>> mapguide-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>
>>
>>     
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20081202/d0a913a6/attachment.html


More information about the mapguide-users mailing list