[mapguide-users] Modify mapdefinition in a layout

Kenneth Skovhede, GEOGRAF A/S ks at geograf.dk
Fri Mar 20 04:39:46 EDT 2009


If that file is missing, you should not be able to save any weblayout,
no matter what, so I think it is correctly avalible.

Regards, Kenneth Skovhede, GEOGRAF A/S



euskalmap skrev:
> Hi,
> It seems that MapguideServer do not acceded at directory C:/Program
> Files/MapGuideOpenSource2.0/Server/Schema/; so, it do not find the file
> WebLayouy-1.0.0.xsd schema?
>
> What you think about it?
>
>
> euskalmap wrote:
>   
>> ERROR:
>> The instruction
>>     String xmlString = doc.DocumentElement.OuterXml;
>> DO NOT remove the preamble. But i thought that OuterXml remove the first
>> tag.
>> Sorry for my error
>>
>>
>> euskalmap wrote:
>>     
>>> When i load the xml with this instruction : 
>>>     XmlDocument doc = new XmlDocument();
>>>    String xmlLayoutDef = byteReader.ToString();
>>> there is the preamble <?xml version="1.0" encoding="utf-8"?>
>>> Later, the instruction
>>>     String xmlString = doc.DocumentElement.OuterXml;
>>> remove the preamble.
>>> Other information : if i load the file 
>>> http://patxi.mayol.free.fr/Untitled1.xml
>>> http://patxi.mayol.free.fr/Untitled1.xml  in an editor XML like altova,
>>> for example, i have this message when i want to save it : This file is
>>> not valid: Unable to load schema with target namespace " from
>>> 'WebLayout-1.0.0.xsd''.
>>> So, is this instruction String xmlString = doc.DocumentElement.OuterXml;
>>> bad ? I have find in sample on the forum?
>>>
>>> What you think about it?.
>>> Thanks
>>>
>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>       
>>>> 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
>>>>>>
>>>>>>
>>>>>>     
>>>>>>             
>>>>>   
>>>>>           
>>>> _______________________________________________
>>>> 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/20090320/cdca012e/attachment.html


More information about the mapguide-users mailing list