[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