[mapguide-users] Modify mapdefinition in a layout

euskalmap ziburudebian at free.fr
Wed Mar 18 05:11:49 EDT 2009


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
> 
> 

-- 
View this message in context: http://n2.nabble.com/Modify-mapdefinition-in-a-layout-tp2462320p2496044.html
Sent from the MapGuide Users mailing list archive at Nabble.com.



More information about the mapguide-users mailing list