[mapguide-users] Modify mapdefinition in a layout

Kenneth Skovhede, GEOGRAF A/S ks at geograf.dk
Tue Mar 17 10:45:10 EDT 2009


I'm am a bit puzzled by this:

String xmlString = doc.DocumentElement.OuterXml; 
...
"After modif = \ n "+"<? xml version ='1 .0 'encoding =' UTF-8'?>"+ xmlString

It seems that the xmlString is missing the xml preamble?
Just to clarify: the document MUST have the utf-8 xml preamble, and MUST 
NOT have the utf-8 BOM.

The file you sent does not appear to be made from the encoded data.
You must do something like:
using(System.IO.FileStream fs = System.IO.File.Create("test.xml"))
  fs.Write(encodedDefinition, 0, encodedDefinition.Length);

Otherwise there are too many places that can introduce small differences.

btw, in C#, you can make a string with quotes like this:
"xmlns=\"namespace\""
or
@"xmlns=""namespace""" //VB style

Regards, Kenneth Skovhede, GEOGRAF A/S



euskalmap skrev:
> The file is generate in my code after the instruction
> 'resourceSrvc.SetResource(webLayoutId, contentByteSource.GetReader(),
> null);' So, i do not understand why the file is fine and my mapdefinition in
> my layout generate the error An exception occurred in the XML parser.
>
> If you have few minutes you can see the trace of my function ag_SetLayoutMap
> here :  http://patxi.mayol.free.fr/Trace.htm
> http://patxi.mayol.free.fr/Trace.htm 
> and a sample of my C# code here :  http://patxi.mayol.free.fr/sample.asp
> http://patxi.mayol.free.fr/sample.asp , who is describe the ag_SetLayoutMap
> function.
> thanks
> regards, Francis
>
> Kenneth Skovhede, GEOGRAF A/S wrote:
>   
>> Is this a question?
>>
>> The un-edited file loads fine for me.
>>
>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>
>>
>>
>> euskalmap skrev:
>>     
>>> Hi,
>>> I have not send the good link of my file; in the previous version , i
>>> have
>>> trying to delete in the xml the string
>>> "xsi:noNamespaceSchemaLocation="WebLayout-1.0.0.xsd".
>>> So, my file is :  http://patxi.mayol.free.fr/Untitled1.xml
>>> http://patxi.mayol.free.fr/Untitled1.xml 
>>>
>>> So i test GetResourceContent rather than SetResource : 
>>> If i try  http://localhost/mapguide/mapagent/index.html
>>> http://localhost/mapguide/mapagent/index.html  with GetResourceContent on
>>> "Library://Ag Base/Mpg Urbanisme.WebLayout" and submit, i have this
>>> result : 
>>>
>>> http://n2.nabble.com/file/n2490672/test.jpg 
>>>
>>> The message in header, in french, is in english : This file XML does not
>>> seem to have of information of style associated with him. The tree of the
>>> document is shown below.
>>>
>>> SO
>>>
>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>   
>>>       
>>>> A bit tricky, something to do with how .Net handles Xml I think.
>>>>
>>>> The document is missing the attribute:
>>>> xsi:noNamespaceSchemaLocation="WebLayout-1.0.0.xsd"
>>>>
>>>> Which is required, because it is used for versioning and validation.
>>>> If you take your document and open this page:
>>>> http://localhost/mapguide/mapagent/index.html
>>>>
>>>> Then click "Resource" -> "SetResource", point out the file,
>>>> and in the "ResourceID" field type: "Library://mytest.WebLayout".
>>>>
>>>> Then set the "Content" field to point to the file and click submit.
>>>> You will see the error you mention.
>>>>
>>>> Now add the above attribute, so the second line in the document becomes:
>>>> <WebLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
>>>> xsi:noNamespaceSchemaLocation="WebLayout-1.0.0.xsd">
>>>>
>>>> Save the document, click back in the browser, and then "Submit" once
>>>> more.
>>>> This time it works. (Remember to check that the ResourceID and Content 
>>>> field has not been reset).
>>>>
>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>
>>>>
>>>>
>>>> euskalmap skrev:
>>>>     
>>>>         
>>>>> Hi,
>>>>> Yes, i have see the log file, but there is no more information that
>>>>> 'XML
>>>>> Parser error'.
>>>>> The logfile is :
>>>>> http://n2.nabble.com/file/n2474100/logfile.jpg 
>>>>>
>>>>> About the XML file, after modification i have this file : 
>>>>> http://patxi.mayol.free.fr/mytest.xml
>>>>> http://patxi.mayol.free.fr/mytest.xml 
>>>>>
>>>>>
>>>>>
>>>>> Thanks
>>>>> regards
>>>>>
>>>>>
>>>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>>>   
>>>>>       
>>>>>           
>>>>>> Did you look in the error.log file?
>>>>>> Could you try to save the xml document after modification, and send a 
>>>>>> link to it?
>>>>>>
>>>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>>>
>>>>>>
>>>>>>
>>>>>> euskalmap skrev:
>>>>>>     
>>>>>>         
>>>>>>             
>>>>>>> Hi,
>>>>>>> In fact, before modification, i have 
>>>>>>> MgResourceIdentifier webLayoutId = new
>>>>>>> MgResourceIdentifier(pst_weblayout) 
>>>>>>> with pst_weblayout = "Library://Ag Base/MyLayout.WebLayout" 
>>>>>>> I search the xml node for modify Mapdefinition resource and 
>>>>>>> after modification i have in instruction 
>>>>>>> webLayoutId = new MgResourceIdentifier(str_NewMapDefinition) 
>>>>>>> with str_NewMapDefinition=Session:xxxxxxxxx//MyMap.MapDefinition
>>>>>>> So, i set the resource and i have the message 'An exception occurred
>>>>>>> in
>>>>>>> the
>>>>>>> XML parser.'
>>>>>>> I say it is simply to migrate vb to c#, but before i want to
>>>>>>> understand.
>>>>>>> I have use same sample who use this method on the forum; but i do not
>>>>>>> explain where is my bug?
>>>>>>> thanks a lot for your help
>>>>>>>
>>>>>>>
>>>>>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>>>>>   
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>>>> It is very trivial to convert the sample to C#... in fact I just
>>>>>>>> did:
>>>>>>>> http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI/samples/CustomizedZoomWithWebLayout
>>>>>>>>
>>>>>>>> If you just want to understand what happens, there should be a more 
>>>>>>>> verbose message in the error.log:
>>>>>>>> C:\Program Files\MapGuideOpenSource2.0\Server\logs\error.log
>>>>>>>>
>>>>>>>> Also, are you certain that the pst_map is a valid map identifier,
>>>>>>>> and 
>>>>>>>> that str_NewMapDefinition is a valid resource identifier?
>>>>>>>>
>>>>>>>> I'm guessing that pst_map is a string like: 
>>>>>>>> "Library://map.MapDefinition", so your str_NewMapDefinition becomes:
>>>>>>>> Session:<sessionid>//Library://map.MapDefinition.MapDefinition
>>>>>>>>
>>>>>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> euskalmap skrev:
>>>>>>>>     
>>>>>>>>         
>>>>>>>>             
>>>>>>>>                 
>>>>>>>>> Hi,
>>>>>>>>> It do not run with the parameter false in the instruction
>>>>>>>>> UTF8Encoding
>>>>>>>>> utf8
>>>>>>>>> = new UTF8Encoding(false);
>>>>>>>>> In your link sample(
>>>>>>>>> http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI/samples/CustomizedZoomWithWebLayout
>>>>>>>>> http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI/samples/CustomizedZoomWithWebLayout
>>>>>>>>> ), it is a vb code with the mapguide maetro api; i will not change
>>>>>>>>> all
>>>>>>>>> my
>>>>>>>>> code because i use c# with mapguide api; i want to undestand why it
>>>>>>>>> do
>>>>>>>>> not
>>>>>>>>> run; i use the same method to change the filter in layers and it
>>>>>>>>> run
>>>>>>>>> very
>>>>>>>>> well ! what's append in my code?
>>>>>>>>>
>>>>>>>>> thanks
>>>>>>>>>
>>>>>>>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>>>>>>>   
>>>>>>>>>       
>>>>>>>>>           
>>>>>>>>>               
>>>>>>>>>                   
>>>>>>>>>> You need to create the UTF8Encoding object with the parameter
>>>>>>>>>> "false" 
>>>>>>>>>> (meaning disable BOM).
>>>>>>>>>>
>>>>>>>>>> A slightly easier way to do this:
>>>>>>>>>> http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI/samples/CustomizedZoomWithWebLayout
>>>>>>>>>>
>>>>>>>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> euskalmap skrev:
>>>>>>>>>>     
>>>>>>>>>>         
>>>>>>>>>>             
>>>>>>>>>>                 
>>>>>>>>>>                     
>>>>>>>>>>> Hi
>>>>>>>>>>> I provide the end user with a link to my special page (see the
>>>>>>>>>>> code1).
>>>>>>>>>>> In
>>>>>>>>>>> that page i redirect to the MapGuide viewer files
>>>>>>>>>>> (Response.Redirect).
>>>>>>>>>>> code1:
>>>>>>>>>>> http://n2.nabble.com/file/n2462320/sample1.jpg 
>>>>>>>>>>> The fonction SetLayout Map modify the mapdefinition in my layout.
>>>>>>>>>>> See
>>>>>>>>>>> image
>>>>>>>>>>> here :
>>>>>>>>>>> http://n2.nabble.com/file/n2462320/sample2.jpg 
>>>>>>>>>>> The problem : the layout is not modify and i have this message :
>>>>>>>>>>> An
>>>>>>>>>>> exception occurred in the XML parser.
>>>>>>>>>>> Have you an idea ?
>>>>>>>>>>> Thanks
>>>>>>>>>>>
>>>>>>>>>>>   
>>>>>>>>>>>       
>>>>>>>>>>>           
>>>>>>>>>>>               
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>> _______________________________________________
>>>>>>>>>> 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
>>>>>>>>
>>>>>>>>
>>>>>>>>     
>>>>>>>>         
>>>>>>>>             
>>>>>>>>                 
>>>>>>>   
>>>>>>>       
>>>>>>>           
>>>>>>>               
>>>>>> _______________________________________________
>>>>>> 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
>>>>
>>>>
>>>>     
>>>>         
>>>   
>>>       
>> _______________________________________________
>> 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/20090317/98ec69b2/attachment.html


More information about the mapguide-users mailing list