Jump to content
The simFlight Network Forums

makeryws.exe (4.6.9.7) runways.xml special characters


Recommended Posts

Hello Pete
I have a little problem with the latest makerwys.exe (4.6.9.7) and the runways.xml file.  If certain scenery paths contain a special character, that's passed through to the XML which can give readers such as the Microsoft .Net classes a problem when they try to deal with it.  For example, from ORBX scenery:
 
<File>ORBX\FTX_NA\FTX_NA_CRM05_SCENERY\scenery\ADE_FTX_CRM_16W_Little_Goose_Lock_&_Dam.BGL</File>
 
The above generates an exception as "&" has special meaning in XML; it can be "escaped" to make it valid like this:
<File>ORBX\FTX_NA\FTX_NA_CRM05_SCENERY\scenery\ADE_FTX_CRM_16W_Little_Goose_Lock_&amp;_Dam.BGL</File>
 
Would you mind having a look at this please?
 
Many thanks
Simon
Link to comment
Share on other sites

4 hours ago, flying-w said:
<File>ORBX\FTX_NA\FTX_NA_CRM05_SCENERY\scenery\ADE_FTX_CRM_16W_Little_Goose_Lock_&_Dam.BGL</File>
 
The above generates an exception as "&" has special meaning in XML; it can be "escaped" to make it valid like this:
<File>ORBX\FTX_NA\FTX_NA_CRM05_SCENERY\scenery\ADE_FTX_CRM_16W_Little_Goose_Lock_&amp;_Dam.BGL</File>
 
Would you mind having a look at this please?

Well, I could eliminate all & signs, but where it is part of a file or path name, as here, that will make that file or pathname incorrect.  So what do you suggest that would work apart from asking all Scenery designers to avoid using &?

There must be other XML files which need file and path names, so how are they managed?

Pete

 

Link to comment
Share on other sites

39 minutes ago, Pete Dowson said:

There must be other XML files which need file and path names, so how are they managed

Here's how FSX Steam Edition is managing the dll.xml.

This is the location of my SimConnect DLL:

Capture 2.PNG

 

Test 1, use a raw "&" character in the dll.xml entry:

  <Launch.Addon>
    <Name>SuperTrafficBoard Server</Name>
    <Disabled>False</Disabled>
    <ManualLoad>False</ManualLoad>
    <Path>E:\Program Files (x86)\FlyingWSimulation\SuperTrafficBoard Data Server for FSX and FSX Steam Edition (Standalone)\STBServer&1\STBServer.dll</Path>
  </Launch.Addon>

Results: The DLL is not loaded.  If I run a simconnect server trace, there's no mention of the dll.xml anywhere to be found which isn't normal.

 

Test 2: Escape the "&" character using "&amp;":

  <Launch.Addon>
    <Name>SuperTrafficBoard Server</Name>
    <Disabled>False</Disabled>
    <ManualLoad>False</ManualLoad>
    <Path>E:\Program Files (x86)\FlyingWSimulation\SuperTrafficBoard Data Server for FSX and FSX Steam Edition (Standalone)\STBServer&amp;1\STBServer.dll</Path>
  </Launch.Addon>

Results: The DLL is loaded:

Capture.PNG

 

I guess this ultimately depends on your intention for the runways.xml.  If it is just for people to read, no problem.  If it is for applications to read, they may run into problems using the standard XML classes/libraries to do so.

Simon

 

Link to comment
Share on other sites

Hi Pete,

for your information there may be also other problems with ORBX files

a user in the PRO-ATC/X forum "To be honest, I'm more worried about why P3D is crashing when I try to load it. "

Summary of steps user has done.

installed ORBX sceneries
slight problems with PRO-ATC/X
runs older version of MakeRwys so I asked to update to new version.
updated to 4.6.9.7
after new run of MakeRwys -> P3D can not be started - crashed immediately
asks for help so I removed all ORBX from scenery.cfg (he sends me a ziped scenery.cfg ...)
immediately P3D can be started again.
a new installation of ORBX and again run of MakeRwys has no longer causes P3D to crash !
looking into users old and new scenery.cfg  I noticed last Install has not installed ORBX!VECTOR_FixedAPT . Can be that's the reason P3D now not crash.

Thomas

Link to comment
Share on other sites

1 hour ago, flying-w said:

Escape the "&" character using "&amp;"

So that's how to include a textual & in an XML file? If so, that's all I needed, thanks.

BTW what does the "amp; part supposed to mean? Seems quite complicated compared to, say, C's method fo for exaple including textual \ using \\.

Pete

 

Link to comment
Share on other sites

1 hour ago, Pete Dowson said:

So that's how to include a textual & in an XML file? If so, that's all I needed, thanks.

As far as I know, that's it, and as confirmed by the link above.

1 hour ago, Pete Dowson said:

BTW what does the "amp; part supposed to mean? Seems quite complicated compared to, say, C's method fo for exaple including textual \ using \\.

I imagine there's some global standards body somewhere that decide this format is the one.  "&" is the escape character, something special is coming.  "amp" means we want to present an "&" character in the data.  ";" means we have finished escaping.

Thanks
Simon

Link to comment
Share on other sites

3 hours ago, Luke Kolin said:

Are you generating the XML yourself or using a library?

My own code. Just a sequence of "sprintf" formatting sections.

3 hours ago, Luke Kolin said:

Generally speaking, encoding of special/reserved characters is why I never generate XML

I don't like XML at all. It's over-verbose and cumbersome/complicated, which is one reason, but a bigger reason is that one little error in its syntax often makes the whole lot invalid. I only made the XML files because folks asked for them.

3 hours ago, Luke Kolin said:

or JSON

Don't know "JSON".

Pete

 

Link to comment
Share on other sites

55 minutes ago, Pete Dowson said:

I don't like XML at all. It's over-verbose and cumbersome/complicated, which is one reason, but a bigger reason is that one little error in its syntax often makes the whole lot invalid.

That's a feature, not a bug :) XML is designed for data interchange, and in most circumstances you want to discard in the case of syntactical invalidity. It's not a bad format for structured data that needs validation with a schema document. The verbosity is a challenge, but at least it compresses nicely. It also is human-readable.

In all seriousness, if you're going to emit XML you really should let a library handle all of the encoding for you.

You can read about JSON here: http://www.json.org/ It's essentially a way of serializing Javascript objects.

Cheers!

Luke

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.