<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Japreja</id>
	<title>FlightGear wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Japreja"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/Japreja"/>
	<updated>2026-05-13T20:38:59Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Blender_and_BTG&amp;diff=86473</id>
		<title>Blender and BTG</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Blender_and_BTG&amp;diff=86473"/>
		<updated>2015-07-29T02:25:00Z</updated>

		<summary type="html">&lt;p&gt;Japreja: Updated script links to SourceForge.net site.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Software&lt;br /&gt;
|title             = Blender and BTG&lt;br /&gt;
|logo              =&lt;br /&gt;
|image             =&lt;br /&gt;
|developedby       = Lauri Peltonen&lt;br /&gt;
|initialrelease    = &lt;br /&gt;
|latestrelease     = Export: 31 Jan 2009&amp;lt;br/&amp;gt;Import: 07 Mar 2011&lt;br /&gt;
|writtenin         = Python&lt;br /&gt;
|os                =&lt;br /&gt;
|platform          =&lt;br /&gt;
|developmentstatus =&lt;br /&gt;
|type              =&lt;br /&gt;
|license           =&lt;br /&gt;
|website           =&lt;br /&gt;
}}&lt;br /&gt;
With the use of a special import&amp;amp;export script, '''[[BTG file format|BTG files]] can be opened in, and exported from [[Blender]]'''. This makes it possible to edit [[FlightGear]]'s terrain and specifically [[airport]]s in a visual editor.&lt;br /&gt;
&lt;br /&gt;
== User documentation ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Download the two scripts:&lt;br /&gt;
* [http://sourceforge.net/p/flightgear/fgscenery/tools/ci/master/tree/Blender/import_btg_v7.py?format=raw Import script]&lt;br /&gt;
* [http://sourceforge.net/p/flightgear/fgscenery/tools/ci/master/tree/Blender/export_btg.py?format=raw Export script]&lt;br /&gt;
&lt;br /&gt;
Place both files in your Blender's &amp;lt;tt&amp;gt;.blender/scripts/&amp;lt;/tt&amp;gt; directory. Common locations are:&lt;br /&gt;
* Windows: &amp;lt;tt&amp;gt;C:/Program Files/Blender Foundation/Blender/.blender/scripts&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure to correct the [[$FG_ROOT]] setting in the import file, if needed. Default setting is:&lt;br /&gt;
 FG_ROOT = &amp;quot;/usr/local/share/flightgear/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Scripts should work with '''Blender 2.4x''' (latest available is Blender 2.49b), they will not work with version Blender 2.6x.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
==== Import ====&lt;br /&gt;
Import via &amp;lt;tt&amp;gt;File &amp;gt; Import &amp;gt; Simgear (.btg) v7&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' rename the &amp;lt;tt&amp;gt;[ICAO].btg.gz&amp;lt;/tt&amp;gt; file of an airport, to its corresponding &amp;lt;tt&amp;gt;[tileid].btg.gz&amp;lt;/tt&amp;gt;, in order to import it correctly. For importing [[KSFO]], we need to rename &amp;lt;tt&amp;gt;KSFO.btg.gz&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;942050.btg.gz&amp;lt;/tt&amp;gt;, for example.&lt;br /&gt;
&lt;br /&gt;
==== Export ====&lt;br /&gt;
Export to a file with a .btg.gz extension, via &amp;lt;tt&amp;gt;File &amp;gt; Export &amp;gt; Simgear (.btg)&amp;lt;/tt&amp;gt;. Make sure to enter the correct coordinates and radius, as displayed in the console (you can copy&amp;amp;paste from that one) and/or screen on import.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
* Textures are not applied automatically in Blender, altough they are loaded.&lt;br /&gt;
* Imported meshes are shrinked because Blender does/did not support huge enough models (they are loaded correctly, but you cannot zoom out enough to see the whole tile).&lt;br /&gt;
* Sometimes exported triangle has its texture coordinates in wrong order which leads to weird looking textures (e.g. on a runway).&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;br /&gt;
[[Category:Scenery enhancement]]&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Northrop_T-38_Talon&amp;diff=86176</id>
		<title>Northrop T-38 Talon</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Northrop_T-38_Talon&amp;diff=86176"/>
		<updated>2015-07-14T00:14:36Z</updated>

		<summary type="html">&lt;p&gt;Japreja: updated link to Dave Culps Hanger&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox Aircraft&lt;br /&gt;
|ready = airrefuel&lt;br /&gt;
|image = Northrop_T-38.jpg&lt;br /&gt;
|name = Northrop T-38 Talon&lt;br /&gt;
|type = Military aircraft&lt;br /&gt;
|fdm = JSBSim&lt;br /&gt;
|status =Early production&lt;br /&gt;
|authors =David Culp (FDM), Erik Hofman/Innis Cunningham/Capt. Slug (3D)&lt;br /&gt;
|fgname = T38&lt;br /&gt;
}}&lt;br /&gt;
&amp;quot;In the mid-1950s, the USAF required a trainer with higher performance than the T-33 to better prepare student pilots for the latest tactical aircraft that were then coming into service. The aircraft chosen was the T-38A which offered high performance with low maintenance and operating costs. The T-38A became the USAF's first supersonic trainer.&amp;quot; Source: [http://www.wpafb.af.mil/museum/modern_flight/mf11.htm NORTHROP T-38A &amp;quot;TALON&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
FlightGear's T-38 is included in [[FlightGear 1.0 default aircraft]] and several previous releases. It can be selected from [[FlightGear Launch Control]] or with &amp;lt;tt&amp;gt;T38&amp;lt;/tt&amp;gt; from the command line. The current model uses a 2D cockpit, and supports display of AI aircraft objects on an air-air radar screen. See the Aircraft/Instruments/radar.xml file for details, or fly the T-38 for a demo. Altough the real T-38 does not have radar, it was chosen here to be the demonstrator aircraft for radar. It also demonstrates how instruments can be minimized and maximized in 2D panels.&lt;br /&gt;
&lt;br /&gt;
== Development status/Issues/Todo ==&lt;br /&gt;
'''Outside:'''&lt;br /&gt;
* flaps are extended by default&lt;br /&gt;
* first cockpit seat is not solid, it can be seen through the seat when looking from behind.&lt;br /&gt;
* no pilot/co-pilot in cockpit visible&lt;br /&gt;
* aircraft has no shadow&lt;br /&gt;
* no aircraft lighting available&lt;br /&gt;
&lt;br /&gt;
'''3d Cockpit:'''&lt;br /&gt;
* no textures used&lt;br /&gt;
* not stick, rudder, throttle gear and flap objects&lt;br /&gt;
&lt;br /&gt;
'''General:'''&lt;br /&gt;
* engines have no sound&lt;br /&gt;
* engine sound in cockpit does not differ from outside engine sound&lt;br /&gt;
* no hud available&lt;br /&gt;
* no sound when toggling flaps&lt;br /&gt;
&lt;br /&gt;
Note: Some of these have been improved/completed in the latest release on Dculp's site (as of May 2009) found [https://dl.dropboxusercontent.com/u/12562954/hangar/hangar.html[here]]&lt;br /&gt;
&lt;br /&gt;
{{Northrop}}&lt;br /&gt;
{{air-to-air refueling}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Military aircraft]]&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_June_2015&amp;diff=85382</id>
		<title>FlightGear Newsletter June 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Newsletter_June_2015&amp;diff=85382"/>
		<updated>2015-06-06T15:46:46Z</updated>

		<summary type="html">&lt;p&gt;Japreja: /* Space Shuttle */  linked my name to my wiki user account&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{draft|newsletter|Please feel free to add content you think will be of interest to the FlightGear community. You can read the latest newsletter at [[FlightGear Newsletter May 2015]].}}&lt;br /&gt;
&lt;br /&gt;
{{Newsletter-header|June 2015}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-bottom:3px double #BBB;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; |&lt;br /&gt;
 | valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-header|Development news}}&amp;lt;br/&amp;gt;&lt;br /&gt;
[[#Random splash screens|Random splash screens]]&amp;lt;br/&amp;gt;&lt;br /&gt;
 | valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-header|In the hangar}}&amp;lt;br/&amp;gt;&lt;br /&gt;
[[#Space Shuttle|Space Shuttle developement]]&amp;lt;br/&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Scenery Corner}}&amp;lt;br/&amp;gt;&lt;br /&gt;
[[#Großenhain Airfield|Großenhain Airfield]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[#New Regional Textures|New Regional Textures]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Newsletter-cover-header|Community News}}&amp;lt;br/&amp;gt;&lt;br /&gt;
 | valign=&amp;quot;top&amp;quot; width=&amp;quot;33%&amp;quot; |&lt;br /&gt;
{{Newsletter-cover-header|Contributing}}&amp;lt;br/&amp;gt;&lt;br /&gt;
[[#Translators required|Translators required]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[#FlightGear logos|FlightGear logos]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[#Screenshots|Screenshots]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Development News ==&lt;br /&gt;
&lt;br /&gt;
=== Random splash screens ===&lt;br /&gt;
&lt;br /&gt;
It is now possible to add multiple splash screens for an aircraft. When starting FlightGear, one of the splash screens is randomly chosen and shown on the screen. To add multiple splash screen, simply add multiple &amp;lt;splash-texture&amp;gt; tags. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;startup&amp;gt;&lt;br /&gt;
    &amp;lt;splash-texture&amp;gt;Aircraft/c172p/splash1.png&amp;lt;/splash-texture&amp;gt;&lt;br /&gt;
    &amp;lt;splash-texture&amp;gt;Aircraft/c172p/splash2.png&amp;lt;/splash-texture&amp;gt;&lt;br /&gt;
    &amp;lt;splash-texture&amp;gt;Aircraft/c172p/splash3.png&amp;lt;/splash-texture&amp;gt;&lt;br /&gt;
    &amp;lt;splash-texture&amp;gt;Aircraft/c172p/splash4.png&amp;lt;/splash-texture&amp;gt;&lt;br /&gt;
&amp;lt;/startup&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can add as many splash screens as you want.&lt;br /&gt;
&lt;br /&gt;
== In the Hangar ==&lt;br /&gt;
=== Space Shuttle ===&lt;br /&gt;
[[User:Japreja]] is now modelling the landing gear for the Shuttle.&lt;br /&gt;
[[File:Spaceshuttlegear.png|200px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lots of work is currently going into orbital maneuvering. The reaction control system has been overhauled to a realistic configuration, giving the Shuttle a grand total of 51 distinct engines to be controlled by the guidance logic in different modes, many of them pointing away from orthogonal direction which gives a realistic simulation of cross coupling between the various rotational and translational modes when the RCS is used.&lt;br /&gt;
&lt;br /&gt;
In addition, the visuals of the OMS and RCS engines have been re-done to agree with NASA imagery and the Shuttle is now rendered with a dedicated space effect which creates hard light and shadows outside the atmosphere - here is an example of the OMS firing at full thrust with the new visuals:&lt;br /&gt;
&lt;br /&gt;
[[File: Shuttle OMS full.jpg|600px|Orbital Maneuvering System in action]]&lt;br /&gt;
&lt;br /&gt;
== Scenery Corner ==&lt;br /&gt;
&lt;br /&gt;
=== Großenhain Airfield ===&lt;br /&gt;
[[File:FGFS_EDAK_APRON_2015.jpg|600px|Apron of [[Grossenhain_Airfield|Großenhain Airfield]]]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Custom [http://www.mediafire.com/download/d0rb8ko7864t4cu/FGscenery_Saxony.zip FGscenery_Saxony] package has new content. For [[Grossenhain Airfield]] (EDAK) the package contains a custom airport layout (scenery tile), static buildings and airport data. You can download this custom scenery file from the [[Grossenhain_Airfield#Scenery_Add-on|Grossenhain Airfield]] wiki page.&amp;lt;br /&amp;gt;&lt;br /&gt;
We wish you happy flying!&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== New Regional Textures ===&lt;br /&gt;
This project aims to create new regional textures, particularly for the Southern Hemisphere. Currently, the whole Africa (desert, savanna, rainforest and Mediterranean regions) as well as parts of South America (rainforest) and Southeast Asia (rainforest) have new textures and materials (including new urban textures). Repository link: https://github.com/gilbertohasnofb/new-regional-textures and development thread: http://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=26031&lt;br /&gt;
[[File:New_Regional_Textures.jpg|900px|center]]&lt;br /&gt;
&lt;br /&gt;
== Community News ==&lt;br /&gt;
&lt;br /&gt;
== Contributing ==&lt;br /&gt;
=== Translators required ===&lt;br /&gt;
{|&lt;br /&gt;
| [[File:en.gif]]&lt;br /&gt;
| The FlightGear Wiki still needs help for translating it into various languages. If you are interested in making the FlightGear Wiki multi-language then start at [[Help:Translate]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:de.gif]]&lt;br /&gt;
| Das FlightGear Wiki benötigt immer noch Hilfe bei der Übersetzung in verschiedene Sprachen. Wenn Du Interesse daran hast, das FlightGear Wiki Mehrsprachig zu machen, dann fang doch mit [[:de:Help:Übersetzen|Help:Übersetzen]] an.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:nl.gif]]&lt;br /&gt;
| De FlightGear Wiki kan nog steed hulp gebruiken bij het vertalen van artikelen. Als je interesse hebt om de wiki meertalig te maken, raden we je aan om een kijkje te nemen bij [[:nl:Help:Vertalen|Help:Vertalen]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:es.gif]]&lt;br /&gt;
| La wiki de FlightGear todavía necesita ayuda para traducirla a varios lenguajes. Si estás interesado en hacer la FlightGear wiki multilingüe, entonces comienza en [[:es:Help:Traducir|Help:Traducir]].&lt;br /&gt;
|-&lt;br /&gt;
| [[File:cat.gif]]&lt;br /&gt;
| La wiki de FlightGear encara necessita ajuda per traduir-la a diverses llengües. Si esteu interessat en fer la wiki de FlightGear multilingüe, llavors comenceu a [[:ca:Help:Traduir|Help:Traduir]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== FlightGear logos ===&lt;br /&gt;
If you want some graphic elements for your FlightGear-related site (such as a hangar or YouTube channel), please feel free to visit [[FlightGear logos]] for a repository of logos.  And if you have some art skills, please don't hesitate to contribute with your own design creations.&lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
The FlightGear project always needs screenshots, which show features that were added since the last release.  These should be of good quality, especially in content and technical image properties.  It is therefore recommended to use the best viable filter settings ([[anti-aliasing]], texture sharpening, etc.).  More info at [[Howto:Make nice screenshots]].&lt;br /&gt;
&lt;br /&gt;
[[Category:FlightGear Newsletter|2015 05]]&lt;br /&gt;
[[Category:Changes after 3.4]]&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:FlightGear_space_program&amp;diff=84821</id>
		<title>Talk:FlightGear space program</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:FlightGear_space_program&amp;diff=84821"/>
		<updated>2015-05-23T13:32:24Z</updated>

		<summary type="html">&lt;p&gt;Japreja: added a response and added headings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== I have a question: ==&lt;br /&gt;
Why in the missions are used only Russian aircrafts like the AN-12 and the AN-22? I'm not saying that I do not like them, but I want to know why you don't use more aircrafts like the C-17, the C-5, the A-400M or others?&lt;br /&gt;
Just a curiosity, nothing else.&lt;br /&gt;
Regards, [[User:J Maverick 16|J Maverick 16]] ([[User talk:J Maverick 16|talk]]) 14:15, 25 March 2015 (EDT)&lt;br /&gt;
&lt;br /&gt;
=== japreja commented ===&lt;br /&gt;
I imagine it is because it is a faily new project.  Time is needed to get aircraft developed, tested, debugged, and the released.  I just recieved a working development SCA 747 that another developer has put much work into, it will take some time to devise a plan to coincide with the different shuttles being developed.  I, personaly, don't expect to see anything definitive until the end of summer this year, that is just my best guess.  I would assume the Russian aircraft were used because that is what the developer had readily available that he/she could work with at the time.&lt;br /&gt;
[[User:Japreja|japreja]] ([[User talk:Japreja|talk]]) 09:32, 23 May 2015 (EDT)&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Japreja&amp;diff=84816</id>
		<title>User:Japreja</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Japreja&amp;diff=84816"/>
		<updated>2015-05-23T12:54:39Z</updated>

		<summary type="html">&lt;p&gt;Japreja: Page created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== I am most active on the forums ==&lt;br /&gt;
I am most active on the [http://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=17941 forums] so PM me there and I will recive an email.  If you dont have an account there, feel free to use my talk page here.  [[User:Japreja|japreja]] ([[User talk:Japreja|talk]]) 08:54, 23 May 2015 (EDT)&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User_talk:HerbyW&amp;diff=84815</id>
		<title>User talk:HerbyW</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User_talk:HerbyW&amp;diff=84815"/>
		<updated>2015-05-23T12:49:55Z</updated>

		<summary type="html">&lt;p&gt;Japreja: /* Hello HerbyW */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome ==&lt;br /&gt;
Welcome to the wiki!&lt;br /&gt;
&lt;br /&gt;
You mentioned that you would help with feedback and brainstorming.  It might be easier to get that on the [http://forum.flightgear.org forum], though the wiki is a good place for documenting the aircrafts and their development status.&lt;br /&gt;
&lt;br /&gt;
—[[User:Johan G|Johan G]] ([[User_talk:Johan_G|Talk]] | [[Special:Contributions/Johan_G|contribs]]) 18:22, 21 February 2015 (EST)&lt;br /&gt;
&lt;br /&gt;
== Hello HerbyW ==&lt;br /&gt;
&lt;br /&gt;
I am unsure how to contact you, I would like to communicate about the Space Program Shuttles and SCA development.  Feel free to contact me on [[User_talk:Japreja|my talk page]] or on the [http://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=17941 forum]. [[User:Japreja|japreja]] ([[User talk:Japreja|talk]]) 08:49, 23 May 2015 (EDT)&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User_talk:Japreja&amp;diff=84814</id>
		<title>User talk:Japreja</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User_talk:Japreja&amp;diff=84814"/>
		<updated>2015-05-23T12:46:27Z</updated>

		<summary type="html">&lt;p&gt;Japreja: Created page with &amp;quot;== Feel free to contact me == Contact me here on this page or through the [http://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=17941 forums].&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Feel free to contact me ==&lt;br /&gt;
Contact me here on this page or through the [http://forum.flightgear.org/memberlist.php?mode=viewprofile&amp;amp;u=17941 forums].&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=FlightGear_Git:_data_developers&amp;diff=84810</id>
		<title>FlightGear Git: data developers</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=FlightGear_Git:_data_developers&amp;diff=84810"/>
		<updated>2015-05-23T10:44:00Z</updated>

		<summary type="html">&lt;p&gt;Japreja: /* Authentication */ added an external link to &amp;quot;SSH settings&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Git}}&lt;br /&gt;
Anyone contributing data to FlightGear, like aircraft models, dialogs or textures, is a '''data developer'''. This article helps those in setting up a correct workflow, to ease the inclusion of their work into the simulator.&lt;br /&gt;
&lt;br /&gt;
== Note about aircraft ==&lt;br /&gt;
As of September 2014, all aircraft but the Cessna 172P and the UFO have been copied over to a new [https://sourceforge.net/p/flightgear/fgaddon/ SVN repository]. Changes to those aircraft should be made there instead of in the Git fgdata repository discussed in this article.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
The steps described in this section are only required once, at the initialization of your development environment.&lt;br /&gt;
&lt;br /&gt;
=== Cloning the repository ===&lt;br /&gt;
The first thing to do as a prospective developer is to [https://sourceforge.net/user/registration register at SourceForge] if you haven't already done so. This will enable you to publish your edits and have them incorporated into the main project.&lt;br /&gt;
&lt;br /&gt;
After logging in, you can create a personal &amp;quot;clone&amp;quot; of the data repository. This clone is where you will be working in, without touching the main repository. To create a clone, navigate to the fgdata repository on https://sourceforge.net/p/flightgear/fgdata and click the [https://sourceforge.net/p/flightgear/fgdata/fork/ Fork] button. In general the default name is fine, but you can change it to whatever you like. SourceForge will now clone the data repository. Due to the size of our repository, this can take some time.&lt;br /&gt;
&lt;br /&gt;
=== Obtaining the data ===&lt;br /&gt;
Before you can start editing, you first need to retrieve the data to your computer. There are two ways to do this. As of March 2015, the size of the fgdata repository is about 1.3 GB&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
|url    = http://sourceforge.net/p/flightgear/mailman/message/33562630/&lt;br /&gt;
|title  = &amp;lt;nowiki&amp;gt;Re: [Flightgear-devel] FGData - The Next Generation is ready.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|author = Anders Gidenstam&lt;br /&gt;
|date   = 2015-03-07&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For both approaches, Git must be installed. There is a lot of software available, but the following are often used:&lt;br /&gt;
* '''Mac:''' [http://sourceforge.net/projects/git-osx-installer/ Git for OSX]&lt;br /&gt;
* '''Windows:''' [http://msysgit.github.io/ Git for Windows]&lt;br /&gt;
&lt;br /&gt;
==== Single clone ====&lt;br /&gt;
{{Note|Continuing an interrupted cloning of a repository is not supported within Git.}}&lt;br /&gt;
# Create a directory on your computer where you'll be storing the data.&lt;br /&gt;
# Change into that folder.&lt;br /&gt;
# Clone the repository with the following command. This will create a &amp;lt;code&amp;gt;/fgdata&amp;lt;/code&amp;gt; subfolder and put all the contents of the repository in there.&lt;br /&gt;
#:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;git clone http://git.code.sf.net/p/flightgear/fgdata&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
OLD BUNDLE FROM BEFORE THE AIRCRAFT SPLIT&lt;br /&gt;
&lt;br /&gt;
==== Bundle ====&lt;br /&gt;
For the FlightGear-data there is a [http://www.kernel.org/pub/software/scm/git/docs/git-bundle.html git-bundle] (snapshot) [http://mxchange.org:23456/file?info_hash=%BF%FF%AB%0C%16%BF%8Eg%B8%A0%CFw%01%0A%5D%8F%3F%81%96y torrent] ([http://mxchange.org:23456/ tracker]; [http://flightgear.mxchange.org/pub/fgfs/fgdata.bundle.md5 md5]|[http://flightgear.mxchange.org/pub/fgfs/fgdata.bundle.sha1 sha1]|[http://flightgear.mxchange.org/pub/fgfs/fgdata.bundle.sha512 sha512]) available. This way you can resume interrupted downloads. After unpacking it only a comparatively small amount of data has to be transferred from the git server to synchronize your repository. Also download the fgdata-update-*.bundle updates linked in the [http://mxchange.org:23456/ tracker]. See also the Develop sections in [[FlightGear Git on Windows]].&lt;br /&gt;
&lt;br /&gt;
# Create a directory on your computer where you'll be storing the data.&lt;br /&gt;
# Change into that folder.&lt;br /&gt;
# Do the following steps to extract the bundle and bring the repository up to date:&lt;br /&gt;
#:&amp;lt;code&amp;gt;git clone fgdata.bundle fgdata&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;cd fgdata&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;git checkout -b master-tmp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;for N in 01 02 03 04 05 06 07 08 09 10 11; do git pull ../fgdata-update-0$N.bundle master; done&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;git remote rm origin&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;git remote add origin git://gitorious.org/fg/fgdata.git&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;git fetch origin&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;git branch --track master origin/master&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;git checkout master&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;git branch -D master-tmp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should be suspicious if based on the printed progress during the &amp;lt;code&amp;gt;git fetch origin&amp;lt;/code&amp;gt; phase you estimate the data download during the fetch will exceed 1GB (assuming the bundle is not terribly outdated).&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
In order to publish edits on SourceForge, you need to generate a secret key so you can be correctly identified.&lt;br /&gt;
&lt;br /&gt;
# Navigate to your newly created fgdata directory and run:&lt;br /&gt;
#: &amp;lt;code&amp;gt;ssh-keygen&amp;lt;/code&amp;gt;&lt;br /&gt;
# Enter the name of the file in which you prefer to save the key and press Enter.&lt;br /&gt;
# Enter your password/passphrase and press Enter. You'll have to do this twice.&lt;br /&gt;
# Your key is now being generated. Open the .pub file with an editor and copy the content.&lt;br /&gt;
# Visit your account settings at SourceForge and navigate to &amp;quot;[https://sourceforge.net/auth/shell_services SSH settings]&amp;quot;.&lt;br /&gt;
# Paste the content of the .pub file and press &amp;quot;Save&amp;quot;.&lt;br /&gt;
# Now run the following, again in your fgdata directory, with ''&amp;lt;url&amp;gt;'' as the line that you get by clicking RW on your fgdata clone page at SourceForge (something like ''ssh://~you-user-name~@git.code.sf.net/u/~you-user-name~/flightgear''):&lt;br /&gt;
#: &amp;lt;code&amp;gt;git remote set-url origin &amp;lt;url&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Obtaining the simulator ===&lt;br /&gt;
In order to test your work, you'll need the FlightGear version that matches the data. Since FlightGear is under constant development, data from Git does not work with previous releases. Fortunately obtaining the latest development version of the simulator is fairly straightforward for most operating systems.&lt;br /&gt;
&lt;br /&gt;
* '''Mac:''' Download [http://flightgear.simpits.org:8080/job/FlightGear-mac/ the .dmg]&lt;br /&gt;
* '''Windows:''' Download the [http://flightgear.simpits.org:8080/job/Win32-installer-Cmake 32-bits] or [http://flightgear.simpits.org:8080/job/Win64-installer-Cmake 64-bits] installer and follow its instructions. Let it install the binary into a clean directory.&lt;br /&gt;
&lt;br /&gt;
Point [[$FG_ROOT]] to your freshly obtained fgdata directory. When using [[FlightGear Launch Control|the launcher]], this can be done on the first page, previous from the aircraft selection.&lt;br /&gt;
&lt;br /&gt;
== Making edits ==&lt;br /&gt;
It is recommended to split your new fgdata clone into separate local branches for your work. For instance, if you're working on the Boeing 747-400 and the aircraft reflection shader, you might create 2 branches named &amp;quot;747-400&amp;quot; and &amp;quot;reflect-shader&amp;quot;. To do this, run the following commands:&lt;br /&gt;
:&amp;lt;code&amp;gt;git checkout master&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;git checkout -b &amp;lt;branch name&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
Then you can make your changes to the new local branch(es), which will make merge requests easier for both yourself and committers. To switch in between branches, simply use&lt;br /&gt;
:&amp;lt;code&amp;gt;git checkout &amp;lt;branch name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Publishing edits ==&lt;br /&gt;
To push local updates to your fgdata clone on SourceForge, perform the following steps:&lt;br /&gt;
# Switch to the branch that contains your edits:&lt;br /&gt;
#:&amp;lt;code&amp;gt;git checkout &amp;lt;branch name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# List all the changed files:&lt;br /&gt;
#:&amp;lt;code&amp;gt;git status -- .&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now it's time to commit the changed files.&lt;br /&gt;
#* If you want to commit all changed files, run the following and type your commit message.&lt;br /&gt;
#*: &amp;lt;code&amp;gt;git commit -a&amp;lt;/code&amp;gt;&lt;br /&gt;
#* If you only want to commit a selection of files, run the following:&lt;br /&gt;
#*: &amp;lt;code&amp;gt;git add &amp;lt;path/to/file&amp;gt;&amp;lt;/code&amp;gt; (for single files)&lt;br /&gt;
#*: &amp;lt;code&amp;gt;git add --all &amp;lt;path/to/folder&amp;gt;&amp;lt;/code&amp;gt; (to add all files within a certain folder)&lt;br /&gt;
#*: &amp;lt;code&amp;gt;git rm &amp;lt;path/to/file&amp;gt;&amp;lt;/code&amp;gt; (to remove files that you've removed)&lt;br /&gt;
#: Followed by&lt;br /&gt;
#:: &amp;lt;code&amp;gt;git commit -m &amp;quot;&amp;lt;commit message&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check if everything went fine, by loading Gitk:&lt;br /&gt;
#: &amp;lt;code&amp;gt;gitk&amp;lt;/code&amp;gt;&lt;br /&gt;
# Finally, push the commit to your fgdata clone SourceForge with the following command. Replace &amp;lt;code&amp;gt;YourUID&amp;lt;/code&amp;gt; with your SourceForge account. Make sure you have correctly set up the clone as the origin as described under [[#Authentication]].&lt;br /&gt;
#: &amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Requesting edits to be merged ==&lt;br /&gt;
&amp;lt;!--[[File:Create merge request at Gitorious.png|thumb|270px|Creating a merge request at Gitorious.]]--&amp;gt;&lt;br /&gt;
# Click the &amp;quot;Request merge&amp;quot; button on your fgdata clone page. Loading the next page can take a while, as it will list all commits of the past years!&lt;br /&gt;
# Once again write a short summary (could be the same as used with git commit), but this time, also write an explanation of your merge request (what does it do?). Make sure you set the target repository to fgdata, target branch to next and source branch to the local branch with your updates.&lt;br /&gt;
# Tick the box in front of your commit and click the &amp;quot;Create merge request&amp;quot; button.&lt;br /&gt;
# Everyone can see the pending request, but in order to make sure that your request gets looked at, you may contact a contributor. &amp;lt;!-- You can find a list of people on the right side of the [https://gitorious.org/fg/fgdata repository page]. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Creating merge requests using this method literally means merging an entire branch into fgdata; this may not be desirable for some situations, such as small changes that only require one little commit. There's a neat method to only push certain commits to a merge request discussed by Anders Gidenstam [http://forum.flightgear.org/viewtopic.php?f=4&amp;amp;t=10392&amp;amp;start=45#p115747 on the FlightGear Forums].&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Git]]&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Talk:Boeing_747-100&amp;diff=84795</id>
		<title>Talk:Boeing 747-100</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Talk:Boeing_747-100&amp;diff=84795"/>
		<updated>2015-05-22T12:06:39Z</updated>

		<summary type="html">&lt;p&gt;Japreja: Created Talk Page containing my plans with this model.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development Model ==&lt;br /&gt;
&lt;br /&gt;
I have been looking to do some work on this model, mainly for SCA (Shuttle Carier Aircraft) versions to use with the FlightGear Space Program.  It seems that no one has been maintaining the 747-100 for quite some time.  I will be playing around with this over the next few weeks/months to see what edits I can make to the mesh without breaking any animations.&lt;br /&gt;
&lt;br /&gt;
* My mesh edits will cause problems with the texture so I will need to remake the texture map when I am done.&lt;br /&gt;
&lt;br /&gt;
* I will attempt to perform some of the modeling tasks of the todo list.&lt;br /&gt;
&lt;br /&gt;
* Most of the mesh is broken up into pieces from the texturing process, I want to make the body &amp;amp; wings one complete mesh, get rid of as many triangles as possible, and do away with as many triangles as possible.  This is so Loop-Cuts will go completely around the hull.  I will then put the cuts I need so I can breakout the passenger windows into a seperate mesh.  I will do the same for the cocpit windows. Triangulated meshes do not make loop cuts easy.&lt;br /&gt;
&lt;br /&gt;
* I will also cutout the doors.&lt;br /&gt;
&lt;br /&gt;
* I will place the flooring and walls in of the cargo bay, passenger area and upper passenger area.&lt;br /&gt;
&lt;br /&gt;
* In the release version of this model, there seems to be several stray vertices, I imagine they were used for getting placement locations of something, I will look at the development version as well.  Anyone with information on this please let mee know.&lt;br /&gt;
&lt;br /&gt;
* I will not be able to make any edits to the cockpit unless it is exactly the same as the SCA version cockpit.&lt;br /&gt;
&lt;br /&gt;
* I will try not to make any modifications that will affect the .xml files associated with the model.  I am not to proficiant on all that should be done with them except x, y, and z placements of objects.&lt;br /&gt;
&lt;br /&gt;
Once those edits are done, and the current texture re-applied.  I will upload it to the development version and include the .blend file.&lt;br /&gt;
&lt;br /&gt;
I planned on doing this for the SCA aircraft seperately so I might as well do it for this model since they are the same craft.&lt;br /&gt;
&lt;br /&gt;
[[User:Japreja|japreja]] ([[User talk:Japreja|talk]]) 08:06, 22 May 2015 (EDT)&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Create_a_generic_protocol&amp;diff=84383</id>
		<title>Howto:Create a generic protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Create_a_generic_protocol&amp;diff=84383"/>
		<updated>2015-05-15T20:03:24Z</updated>

		<summary type="html">&lt;p&gt;Japreja: Found a few more were's that would be mistranslated to other languages, should be we're to translate properly if not used in a past tense.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This [[:Category:Howto|howto]] quickly demonstrate's how to create a socket transmitting some FlightGear data live as its running.&lt;br /&gt;
&lt;br /&gt;
For this exercise we name it the '''abc-protocol''' and the properties we're interested in are:&lt;br /&gt;
# the altitude above ground&lt;br /&gt;
# the position of the elevator&lt;br /&gt;
# the mode of the altitude hold in the autopilot&lt;br /&gt;
* and refreshing five times a second &lt;br /&gt;
* on port 6789 &lt;br /&gt;
* as udp packets &lt;br /&gt;
* and read the other side of the wire as&lt;br /&gt;
 253.256\t     elevator=1.3\t   aoa-hold\n&lt;br /&gt;
&lt;br /&gt;
== Finding the nodes in the tree ==&lt;br /&gt;
The first step is to find where the nodes are in the property tree and unless you're familiar with the property tree, then one of the easiest things to do is to launch FlightGear with a httpd server, so that the tree can be browsed to find the node locations. Start FlightGear with:&lt;br /&gt;
 fgfs --httpd=5400 &lt;br /&gt;
which will start the webserver on port 5400, then point a web browser at&lt;br /&gt;
http://localhost:5400&lt;br /&gt;
&lt;br /&gt;
By navigating the tree its discovered that the properties we're interested in are at&lt;br /&gt;
# '''/position/altitude-agl-ft'''&lt;br /&gt;
# '''/surface-positions/elevator-pos-norm'''&lt;br /&gt;
# '''/autopilot/locks/altitude'''&lt;br /&gt;
&lt;br /&gt;
== Creating the .xml file ==&lt;br /&gt;
Below is the example abc-protocol.xml file. This file needs to be located within the FlightGear data directory structure at&lt;br /&gt;
&lt;br /&gt;
'''/data/Protocol/abc-protocol.xml''' &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &amp;lt;generic&amp;gt;&lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
       &amp;lt;line_separator&amp;gt;newline&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
       &amp;lt;var_separator&amp;gt;tab&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
       &amp;lt;chunk&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;altitude above ground&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;node&amp;gt;/position/altitude-agl-ft&amp;lt;/node&amp;gt;&lt;br /&gt;
          &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
          &amp;lt;format&amp;gt;%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;/chunk&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
       &amp;lt;chunk&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;elevator position&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;node&amp;gt;/surface-positions/elevator-pos-norm&amp;lt;/node&amp;gt;&lt;br /&gt;
          &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;         &lt;br /&gt;
          &amp;lt;format&amp;gt;elevator=%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
       &amp;lt;chunk&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;altitude autopilot (wip)&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;node&amp;gt;/autopilot/locks/altitude&amp;lt;/node&amp;gt;&lt;br /&gt;
          &amp;lt;type&amp;gt;string&amp;lt;/type&amp;gt;&lt;br /&gt;
          &amp;lt;format&amp;gt;%s&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;/output&amp;gt;&lt;br /&gt;
 &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tags are briefly described as&lt;br /&gt;
===== &amp;lt;output&amp;gt; =====&lt;br /&gt;
Contains the &amp;quot;formatting&amp;quot; protocol for output. Note that the same file can contain an &amp;lt;input&amp;gt; section also for mapping input protocol/formatting (tutorial maybe soon).&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;line_separator&amp;gt; =====&lt;br /&gt;
What character(s) to use as a delimiter to &amp;quot;end&amp;quot; our line/blob of data containing the three values. In this example its '''newline''', but '''\n''' is also acceptable as would another other ascii characters, eg '''##EOL##'''.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;var_separator&amp;gt; =====&lt;br /&gt;
What character(s) to use as a delimiter of the property values; in this example we're using the '''tab''', also '''\t''' is acceptable or even '''@@@'''.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;chunk&amp;gt; =====&lt;br /&gt;
There are three chunk tags in this example to reflect the three properties we're interested in. IMPORTANT, the chunks are output in the order presented in the xml file.&lt;br /&gt;
&lt;br /&gt;
Within each chuck the tags are described as&lt;br /&gt;
* '''&amp;lt;name&amp;gt;''' - this is for reference and ease of use, is not necassary and, its not transmitted (eg a &amp;lt;notes&amp;gt; tag). It could be useful elsewhere though eg a shared configuration file with another application.&lt;br /&gt;
* '''&amp;lt;node&amp;gt;''' - the property node.&lt;br /&gt;
* '''&amp;lt;type&amp;gt;''' - this is the type of value needed for formatting. In our example the autopilot is a string, whilst the other two values as float. Not setting the type can leads to strange stuff happening.&lt;br /&gt;
* '''&amp;lt;format&amp;gt;''' - the output format. The altitude and elevator are straighforward printf formatting, whilst the autopilot is &amp;quot;autopilot=%s&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are many other options which are covered in [[Generic Protocol]]&lt;br /&gt;
&lt;br /&gt;
== Start FlightGear to broadcast ==&lt;br /&gt;
So with the abc-protocol.xml file ready, FlightGear can be started with&lt;br /&gt;
&lt;br /&gt;
 fgfs --generic=socket,out,5,127.0.0.1,1234,udp,abc-protocol&lt;br /&gt;
&lt;br /&gt;
The '''--generic=socket,out,5,127.0.0.1,1234,udp,abc-protocol''' is the part that runs the socket server and are broken down into the following elements separated by a comma.&lt;br /&gt;
* '''socket''' - tell FlightGear to open a socket&lt;br /&gt;
* '''out''' - to use the socket to output data ie transmit&lt;br /&gt;
* '''5''' - at five times a second&lt;br /&gt;
* '''127.0.0.1''' - on the loopback address&lt;br /&gt;
* '''1234''' - the UDP port (only required if using TCP/UDP as network protocol)&lt;br /&gt;
* '''udp''' - using the udp network protocol&lt;br /&gt;
* '''abc-protocol''' - and using the abc-protocol.xml file&lt;br /&gt;
&lt;br /&gt;
''Gotchas - ensure there are no loose spaces between the items eg''&lt;br /&gt;
 --generic=socket,out,5, 127.0.0.1,1234,udp,abc-protoco&lt;br /&gt;
                        ^ oops&lt;br /&gt;
&lt;br /&gt;
== Example Ajax Output ==&lt;br /&gt;
 &amp;lt;output&amp;gt;&lt;br /&gt;
      &amp;lt;line_separator&amp;gt;newline&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
      &amp;lt;var_separator&amp;gt;,&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;altitude above ground&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;node&amp;gt;/position/altitude-agl-ft&amp;lt;/node&amp;gt;&lt;br /&gt;
         &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
         &amp;lt;format&amp;gt;{&amp;quot;altitude&amp;quot;:%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
       &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;altitude autopilot (wip)&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;node&amp;gt;/autopilot/locks/altitude&amp;lt;/node&amp;gt;&lt;br /&gt;
         &amp;lt;type&amp;gt;string&amp;lt;/type&amp;gt;&lt;br /&gt;
         &amp;lt;format&amp;gt;&amp;quot;autopilot&amp;quot;: '%s'}&amp;lt;/format&amp;gt;&lt;br /&gt;
       &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &amp;lt;/output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above would output:&lt;br /&gt;
 {&amp;quot;altitude&amp;quot;: 0.00,&amp;quot;autopilot&amp;quot;: &amp;quot;&amp;quot;}\n&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|Create a generic protocol]]&lt;br /&gt;
[[Category:XML]]&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Create_a_generic_protocol&amp;diff=84382</id>
		<title>Howto:Create a generic protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Create_a_generic_protocol&amp;diff=84382"/>
		<updated>2015-05-15T19:46:19Z</updated>

		<summary type="html">&lt;p&gt;Japreja: /* Finding the nodes in the tree */ added an apostrophe to were and your.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This [[:Category:Howto|howto]] quickly demonstrate's how to create a socket transmitting some FlightGear data live as its running.&lt;br /&gt;
&lt;br /&gt;
For this exercise we name it the '''abc-protocol''' and the properties were interested in are:&lt;br /&gt;
# the altitude above ground&lt;br /&gt;
# the position of the elevator&lt;br /&gt;
# the mode of the altitude hold in the autopilot&lt;br /&gt;
* and refreshing five times a second &lt;br /&gt;
* on port 6789 &lt;br /&gt;
* as udp packets &lt;br /&gt;
* and read the other side of the wire as&lt;br /&gt;
 253.256\t     elevator=1.3\t   aoa-hold\n&lt;br /&gt;
&lt;br /&gt;
== Finding the nodes in the tree ==&lt;br /&gt;
The first step is to find where the nodes are in the property tree and unless you're familiar with the property tree, then one of the easiest things to do is to launch FlightGear with a httpd server, so that the tree can be browsed to find the node locations. Start FlightGear with:&lt;br /&gt;
 fgfs --httpd=5400 &lt;br /&gt;
which will start the webserver on port 5400, then point a web browser at&lt;br /&gt;
http://localhost:5400&lt;br /&gt;
&lt;br /&gt;
By navigating the tree its discovered that the properties we're interested in are at&lt;br /&gt;
# '''/position/altitude-agl-ft'''&lt;br /&gt;
# '''/surface-positions/elevator-pos-norm'''&lt;br /&gt;
# '''/autopilot/locks/altitude'''&lt;br /&gt;
&lt;br /&gt;
== Creating the .xml file ==&lt;br /&gt;
Below is the example abc-protocol.xml file. This file needs to be located within the FlightGear data directory structure at&lt;br /&gt;
&lt;br /&gt;
'''/data/Protocol/abc-protocol.xml''' &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &amp;lt;generic&amp;gt;&lt;br /&gt;
    &amp;lt;output&amp;gt;&lt;br /&gt;
       &amp;lt;line_separator&amp;gt;newline&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
       &amp;lt;var_separator&amp;gt;tab&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
       &amp;lt;chunk&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;altitude above ground&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;node&amp;gt;/position/altitude-agl-ft&amp;lt;/node&amp;gt;&lt;br /&gt;
          &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
          &amp;lt;format&amp;gt;%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;/chunk&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
       &amp;lt;chunk&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;elevator position&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;node&amp;gt;/surface-positions/elevator-pos-norm&amp;lt;/node&amp;gt;&lt;br /&gt;
          &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;         &lt;br /&gt;
          &amp;lt;format&amp;gt;elevator=%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
       &amp;lt;chunk&amp;gt;&lt;br /&gt;
          &amp;lt;name&amp;gt;altitude autopilot (wip)&amp;lt;/name&amp;gt;&lt;br /&gt;
          &amp;lt;node&amp;gt;/autopilot/locks/altitude&amp;lt;/node&amp;gt;&lt;br /&gt;
          &amp;lt;type&amp;gt;string&amp;lt;/type&amp;gt;&lt;br /&gt;
          &amp;lt;format&amp;gt;%s&amp;lt;/format&amp;gt;&lt;br /&gt;
        &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;/output&amp;gt;&lt;br /&gt;
 &amp;lt;/generic&amp;gt;&lt;br /&gt;
 &amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The tags are briefly described as&lt;br /&gt;
===== &amp;lt;output&amp;gt; =====&lt;br /&gt;
Contains the &amp;quot;formatting&amp;quot; protocol for output. Note that the same file can contain an &amp;lt;input&amp;gt; section also for mapping input protocol/formatting (tutorial maybe soon).&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;line_separator&amp;gt; =====&lt;br /&gt;
What character(s) to use as a delimiter to &amp;quot;end&amp;quot; our line/blob of data containing the three values. In this example its '''newline''', but '''\n''' is also acceptable as would another other ascii characters, eg '''##EOL##'''.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;var_separator&amp;gt; =====&lt;br /&gt;
What character(s) to use as a delimiter of the property values; in this example were using the '''tab''', also '''\t''' is acceptable or even '''@@@'''.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;chunk&amp;gt; =====&lt;br /&gt;
There are three chunk tags in this example to reflect the three properties were interested in. IMPORTANT, the chunks are output in the order presented in the xml file.&lt;br /&gt;
&lt;br /&gt;
Within each chuck the tags are described as&lt;br /&gt;
* '''&amp;lt;name&amp;gt;''' - this is for reference and ease of use, is not necassary and, its not transmitted (eg a &amp;lt;notes&amp;gt; tag). It could be useful elsewhere though eg a shared configuration file with another application.&lt;br /&gt;
* '''&amp;lt;node&amp;gt;''' - the property node.&lt;br /&gt;
* '''&amp;lt;type&amp;gt;''' - this is the type of value needed for formatting. In our example the autopilot is a string, whilst the other two values as float. Not setting the type can leads to strange stuff happening.&lt;br /&gt;
* '''&amp;lt;format&amp;gt;''' - the output format. The altitude and elevator are straighforward printf formatting, whilst the autopilot is &amp;quot;autopilot=%s&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There are many other options which are covered in [[Generic Protocol]]&lt;br /&gt;
&lt;br /&gt;
== Start FlightGear to broadcast ==&lt;br /&gt;
So with the abc-protocol.xml file ready, FlightGear can be started with&lt;br /&gt;
&lt;br /&gt;
 fgfs --generic=socket,out,5,127.0.0.1,1234,udp,abc-protocol&lt;br /&gt;
&lt;br /&gt;
The '''--generic=socket,out,5,127.0.0.1,1234,udp,abc-protocol''' is the part that runs the socket server and are broken down into the following elements separated by a comma.&lt;br /&gt;
* '''socket''' - tell FlightGear to open a socket&lt;br /&gt;
* '''out''' - to use the socket to output data ie transmit&lt;br /&gt;
* '''5''' - at five times a second&lt;br /&gt;
* '''127.0.0.1''' - on the loopback address&lt;br /&gt;
* '''1234''' - the UDP port (only required if using TCP/UDP as network protocol)&lt;br /&gt;
* '''udp''' - using the udp network protocol&lt;br /&gt;
* '''abc-protocol''' - and using the abc-protocol.xml file&lt;br /&gt;
&lt;br /&gt;
''Gotchas - ensure there are no loose spaces between the items eg''&lt;br /&gt;
 --generic=socket,out,5, 127.0.0.1,1234,udp,abc-protoco&lt;br /&gt;
                        ^ oops&lt;br /&gt;
&lt;br /&gt;
== Example Ajax Output ==&lt;br /&gt;
 &amp;lt;output&amp;gt;&lt;br /&gt;
      &amp;lt;line_separator&amp;gt;newline&amp;lt;/line_separator&amp;gt;&lt;br /&gt;
      &amp;lt;var_separator&amp;gt;,&amp;lt;/var_separator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;altitude above ground&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;node&amp;gt;/position/altitude-agl-ft&amp;lt;/node&amp;gt;&lt;br /&gt;
         &amp;lt;type&amp;gt;float&amp;lt;/type&amp;gt;&lt;br /&gt;
         &amp;lt;format&amp;gt;{&amp;quot;altitude&amp;quot;:%03.2f&amp;lt;/format&amp;gt;&lt;br /&gt;
       &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
      &amp;lt;chunk&amp;gt;&lt;br /&gt;
         &amp;lt;name&amp;gt;altitude autopilot (wip)&amp;lt;/name&amp;gt;&lt;br /&gt;
         &amp;lt;node&amp;gt;/autopilot/locks/altitude&amp;lt;/node&amp;gt;&lt;br /&gt;
         &amp;lt;type&amp;gt;string&amp;lt;/type&amp;gt;&lt;br /&gt;
         &amp;lt;format&amp;gt;&amp;quot;autopilot&amp;quot;: '%s'}&amp;lt;/format&amp;gt;&lt;br /&gt;
       &amp;lt;/chunk&amp;gt;&lt;br /&gt;
 &amp;lt;/output&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above would output:&lt;br /&gt;
 {&amp;quot;altitude&amp;quot;: 0.00,&amp;quot;autopilot&amp;quot;: &amp;quot;&amp;quot;}\n&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|Create a generic protocol]]&lt;br /&gt;
[[Category:XML]]&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=XML&amp;diff=84381</id>
		<title>XML</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=XML&amp;diff=84381"/>
		<updated>2015-05-15T19:04:51Z</updated>

		<summary type="html">&lt;p&gt;Japreja: /* Comments */ code sample not being displayed since it was a coment.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''XML''' or '''Extensible Markup Language (XML)''', is basically a specification for writing formats used by other software programs. &lt;br /&gt;
It is used in [[FlightGear]] for many things, and the files can be edited in plain text. &lt;br /&gt;
&lt;br /&gt;
Most XML files in FlightGear are based on the so called &amp;quot;PropertyList&amp;quot; format and follow the corresponding structure: [[PropertyList XML File]].&lt;br /&gt;
PropertyList encoded XML files map nested XML tags to FlightGear properties and only use a well-defined subset of XML.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;position&amp;gt;&lt;br /&gt;
  &amp;lt;altitude-ft&amp;gt;10000&amp;lt;/altitude-ft&amp;gt;&lt;br /&gt;
  &amp;lt;latitude-deg&amp;gt;-117.00&amp;lt;/latitude-deg&amp;gt;&lt;br /&gt;
  &amp;lt;longitude-deg&amp;gt;35&amp;lt;/longitude-deg&amp;gt;&lt;br /&gt;
 &amp;lt;/position&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This markup specifies three &amp;quot;child&amp;quot; properties named &amp;quot;altitude-ft&amp;quot;, &amp;quot;latitude-deg&amp;quot; and &amp;quot;longitude-deg&amp;quot;. These are all children of the &amp;quot;position&amp;quot; group.&lt;br /&gt;
&lt;br /&gt;
In FlightGear, these nested tags would then map to properties like this:&lt;br /&gt;
&lt;br /&gt;
* /position/altitude-ft&lt;br /&gt;
* /position/latitude-deg&lt;br /&gt;
* /position/longitude-deg&lt;br /&gt;
&lt;br /&gt;
This can be imagined like a directory structure, with &amp;quot;position&amp;quot; being a toplevel directory and the three child nodes being child nodes (sub directories or files).&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to add a type attribute to all tags, describing the type of property to be specified.&lt;br /&gt;
&lt;br /&gt;
Examples include [[joystick]] or [[CDU]] configuration files. Some details on the XML used for the [[CDU]] can be found on the [[CDU development|CDU development page]].&lt;br /&gt;
&lt;br /&gt;
PropertyList-encoded XML files can be easily processed directly by FlightGear, by both, core C++ source code, as well as Nasal scripts, but also by using so called [[fgcommands]] (savexml/loadxml).&lt;br /&gt;
In addition, it is easily possible to include other PropertyList-encoded XML files by using the include attribute for a tag:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;colors include=&amp;quot;colors.xml&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== README.xmlsyntax ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE: ''' This is a straight copy-paste from $FGDATA/Docs/README.xmlsyntax&lt;br /&gt;
&lt;br /&gt;
XML IN FIFTEEN MINUTES OR LESS&lt;br /&gt;
&lt;br /&gt;
Written by David Megginson, david@megginson.com&lt;br /&gt;
Last modified: $Date$&lt;br /&gt;
&lt;br /&gt;
This document is in the Public Domain and comes with NO WARRANTY!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Introduction===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FlightGear uses XML for much of its configuration.  This document&lt;br /&gt;
provides a minimal introduction to XML syntax, concentrating only on&lt;br /&gt;
the parts necessary for writing and understanding FlightGear&lt;br /&gt;
configuration files.  For a full description, read the XML&lt;br /&gt;
Recommendation at &lt;br /&gt;
&lt;br /&gt;
  http://www.w3.org/TR/&lt;br /&gt;
&lt;br /&gt;
This document describes general XML syntax.  Most of the XML&lt;br /&gt;
configuration files in FlightGear use a special format called&lt;br /&gt;
&amp;quot;Property Lists&amp;quot; -- a separate document will describe the specific&lt;br /&gt;
features of the property-list format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Elements and Attributes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An XML document is a tree structure with a single root, much like a&lt;br /&gt;
file system or a recursive, nested list structure (for LISP fans).&lt;br /&gt;
Every node in the tree is called an _element_: the start and end of&lt;br /&gt;
every element is marked by a _tag_: the _start tag_ appears at the&lt;br /&gt;
beginning of the element, and the _end tag_ appears at the end.&lt;br /&gt;
&lt;br /&gt;
Here is an example of a start tag: &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an example of an end tag:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/foo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an example of an element:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo&amp;gt;Hello, world!&amp;lt;/foo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The element in this example contains only data element, so it is a&lt;br /&gt;
leaf node in the tree.  Elements may also contain other elements, as&lt;br /&gt;
in this example:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;bar&amp;gt;&lt;br /&gt;
   &amp;lt;foo&amp;gt;Hello, world!&amp;lt;/foo&amp;gt;&lt;br /&gt;
   &amp;lt;foo&amp;gt;Goodbye, world!&amp;lt;/foo&amp;gt;&lt;br /&gt;
  &amp;lt;/bar&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This time, the 'bar' element is a branch that contains other, nested&lt;br /&gt;
elements, while the 'foo' elements are leaf elements that contain only&lt;br /&gt;
data.  Here's the tree in ASCII art (make sure you're not using a&lt;br /&gt;
proportional font):&lt;br /&gt;
&lt;br /&gt;
  bar +-- foo -- &amp;quot;Hello, world!&amp;quot;&lt;br /&gt;
      |&lt;br /&gt;
      +-- foo -- &amp;quot;Goodbye, world!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
There is always one single element at the top level: it is called the&lt;br /&gt;
_root element_.  Elements may never overlap, so something like this is&lt;br /&gt;
always wrong (try to draw it as a tree diagram, and you'll understand&lt;br /&gt;
why):&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;a&amp;gt;&amp;lt;b&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every element may have variables, called _attributes_, attached to&lt;br /&gt;
it.  The attribute consists of a simple name=value pair in the start&lt;br /&gt;
tag:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;foo type=&amp;quot;greeting&amp;quot;&amp;gt;Hello, world!&amp;lt;/foo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attribute values must be quoted with '&amp;quot;' or &amp;quot;'&amp;quot; (unlike in HTML), and&lt;br /&gt;
no two attributes may have the same name.&lt;br /&gt;
&lt;br /&gt;
There are rules governing what can be used as an element or attribute&lt;br /&gt;
name.  The first character of a name must be an alphabetic character&lt;br /&gt;
or '_'; subsequent characters may be '_', '-', '.', an alphabetic&lt;br /&gt;
character, or a numeric character.  Note especially that names may not&lt;br /&gt;
begin with a number.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Data===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some characters in XML documents have special meanings, and must&lt;br /&gt;
always be escaped when used literally:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  &amp;lt;  &amp;amp;amp;lt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;  &amp;amp;  &amp;amp;amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
Other characters have special meanings only in certain contexts, but&lt;br /&gt;
it still doesn't hurt to escape them:&lt;br /&gt;
&lt;br /&gt;
  &amp;gt;  &amp;amp;amp;gt;&lt;br /&gt;
  '  &amp;amp;amp;apos; (in attribute values)&lt;br /&gt;
  &amp;quot;  &amp;amp;amp;quot; (in attribute values)&lt;br /&gt;
&lt;br /&gt;
Here is how you would escape &amp;quot;x &amp;lt; 3 &amp;amp;&amp;amp; y &amp;gt; 6&amp;quot; in XML data:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pre&amp;gt;x &amp;amp;amp;lt; 3 &amp;amp;amp;amp;&amp;amp;amp;amp; y &amp;amp;amp;gt; 6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most control characters are forbidden in XML documents: only tab,&lt;br /&gt;
newline, and carriage return are allowed (that means no ^L, for&lt;br /&gt;
example).  Any other character can be included in an XML document as a&lt;br /&gt;
character reference, by using its Unicode value; for example, the&lt;br /&gt;
following represents the French word &amp;quot;cafe&amp;quot; with an accent on the&lt;br /&gt;
final 'e':&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pre&amp;gt;caf&amp;amp;amp;#233;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default, 8-bit XML documents use UTF-8, **NOT** ISO 8859-1 (Latin&lt;br /&gt;
1), so it's safest always to use character references for characters&lt;br /&gt;
above position 127 (i.e. for non-ASCII).&lt;br /&gt;
&lt;br /&gt;
Note that a double dash (--) will cause problems in a comment but cannot really be escaped.&lt;br /&gt;
&lt;br /&gt;
Whitespace always counts in XML documents, though some specific&lt;br /&gt;
applications (like property lists) have rules for ignoring it in some&lt;br /&gt;
contexts.&lt;br /&gt;
&lt;br /&gt;
Long sections of text that may contain a number of problem characters can be escaped using the CDATA method.  This is often used for long sections of Nasal code within FlightGear XML files.  Example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nasal&amp;gt;&lt;br /&gt;
  &amp;lt;load&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&lt;br /&gt;
      print(&amp;quot;Loading Sopwith Camel &amp;quot;, cmdarg().getPath&lt;br /&gt;
      var thisNodeName = cmdarg().getPath();&lt;br /&gt;
      var thisNode = props.globals.getNode(thisNodeName);      &lt;br /&gt;
      #etc . . . anywhere from a dozen to a few hundred lines of Nasal code  &lt;br /&gt;
    ]]&amp;gt;&lt;br /&gt;
  &amp;lt;/load&amp;gt;&lt;br /&gt;
 &amp;lt;nasal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information about escaping sections of text with CDATA, see http://www.w3schools.com/xml/xml_cdata.asp&lt;br /&gt;
&lt;br /&gt;
=== Comments===&lt;br /&gt;
&lt;br /&gt;
You can add a comment anywhere in an XML document except inside a tag&lt;br /&gt;
or declaration using the following syntax:&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;lt;!-- comment --&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
The comment text must not contain &amp;quot;--&amp;quot;, so be careful about using&lt;br /&gt;
dashes.&lt;br /&gt;
&lt;br /&gt;
=== XML Declaration===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Every XML document may begin with an XML declaration, starting with&lt;br /&gt;
&amp;quot;&amp;lt;?xml&amp;quot; and ending with &amp;quot;?&amp;gt;&amp;quot;.  Here is an example:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The XML declaration must always give the XML version, and it may also&lt;br /&gt;
specify the encoding (and other information, not discussed here).&lt;br /&gt;
UTF-8 is the default encoding for 8-bit documents; you could also try&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get ISO Latin 1, but some XML parsers might not support that&lt;br /&gt;
(FlightGear's does, for what it's worth).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other Stuff===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are other kinds of things allowed in XML documents.  You don't&lt;br /&gt;
need to use them for FlightGear, but in case anyone leaves one lying&lt;br /&gt;
around, it would be useful to be able to recognize it.&lt;br /&gt;
&lt;br /&gt;
XML documents may contain different kinds of declarations starting&lt;br /&gt;
with &amp;quot;&amp;lt;!&amp;quot; and ending with &amp;quot;&amp;gt;&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!DOCTYPE html SYSTEM &amp;quot;html.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!ELEMENT foo (#PCDATA)&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!ENTITY myname &amp;quot;John Smith&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and so on.  They may also contain processing instructions, which look&lt;br /&gt;
a bit like the XML declaration:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?foo processing instruction?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, they may contain references to _entities_, like the ones used&lt;br /&gt;
for escaping special characters, but with different names (we're&lt;br /&gt;
trying to avoid these in FlightGear):&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;chapter1;&lt;br /&gt;
&lt;br /&gt;
  &amp;amp;myname;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[File Formats]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* http://www.w3schools.com/xml/default.asp&lt;br /&gt;
* http://www.w3.org/XML/&lt;br /&gt;
* http://xml.silmaril.ie/ The XML FAQ: Frequently-Asked Questions about the Extensible Markup Languag&lt;br /&gt;
&lt;br /&gt;
[[es:XML]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:XML]]&lt;/div&gt;</summary>
		<author><name>Japreja</name></author>
	</entry>
</feed>