[mapguide-users] Modify mapdefinition in a layout

Kenneth Skovhede, GEOGRAF A/S ks at geograf.dk
Tue Mar 17 14:22:25 EDT 2009


Ok, that file does not have the preamble (the "<?xml version=\"1.0\" 
encoding=\"utf-8\"?>" string).
Not sure if it fixes your problem if you add it, but its worth a try.

The line mentioned seems to only check that the first element 
(WebLayout) matches the xsd file (WebLayout).

I wrote about the doublequote, because there was a line with:
char doublequote = (char)34;
which works, but is not very intuitive and suggests that someone did not 
know how to escape doublequotes.

Regards, Kenneth Skovhede, GEOGRAF A/S



euskalmap skrev:
> I have do 
>   using(System.IO.FileStream fs = System.IO.File.Create("test.xml"))
>   fs.Write(encodedDefinition, 0, encodedDefinition.Length);
>
> The result is here :  http://patxi.mayol.free.fr/test.xml
> http://patxi.mayol.free.fr/test.xml 
>
> How know that my document have the utf-8 xml preamble ?
>
> About the string "xmlns=\"namespace\"", i have not this in my xml file.
> Thanks
>
>
>
> Kenneth Skovhede, GEOGRAF A/S wrote:
>   
>> 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
>>>>
>>>>
>>>>     
>>>>         
>>>   
>>>       
>> _______________________________________________
>> 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/53e814b0/attachment.html


More information about the mapguide-users mailing list