[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