Hi Matt.
I found some problems with the new release.
1) TaxiwaySign sizes are off by +1 and Size="5" is not valid...it needs to be size="SIZE5"
2) In <Runway> surface is required even if it is surface="{00000000-0000-0000-0000-000000000000}"
3) In <Runway>
<Material> type is required and missing. (This <Material> is optional, and A2P handles this by just not using it at all.) This entry seems to allow the developer to use more than one material for the runway
Here are the types:
Base tiled
Base and tire marks
Border
Center
Patch
Tire gum
4) There is also some discrepency between floating point numbers in DevMode saved XML and a msfsbglxml saved XML. That could be rounding errors or the number type used in your calculations. I think there were some problems in earlier Airport2Project versions like this.
5) And some lengths are feet, but it might be better to use meters consistently. Just a suggestion.
From DevMode:
XML:
<?xml version="1.0"?>
<FSData version="9.0">
<Airport country="USA" state="Idaho" city="Challis" name="Lower Loon Creek" ident="C53" lat="44.80824586004020" lon="-114.80925768613800" alt="1246.93599999999992" magvar="343.000000" airportTestRadius="10000.00000000000000" applyFlatten="FALSE" isOnTIN="FALSE" starAirport="TRUE" groundMergingTransfertBright="1.000000" groundMergingTransfertDark="1.000000">
<TaxiName index="0" name=""/>
<Runway lat="44.80861969292160" lon="-114.80878964066500" alt="1244.80300000000011" heading="172.53700256347656" length="367.14999389648438" width="7.61999988555908" patternAltitude="304.79998779296875" surface="{C955D525-3829-4241-AC23-86C92DCC446B}" transparent="FALSE" number="16" designator="NONE" primaryLanding="TRUE" primaryTakeoff="TRUE" primaryPattern="LEFT" secondaryLanding="TRUE" secondaryTakeoff="TRUE" secondaryPattern="LEFT" primaryMarkingBias="0.00000000000000" secondaryMarkingBias="0.00000000000000" groundMerging="TRUE" excludeVegetationAround="TRUE">
<RunwayDeformation alt="1244.802979" ratio="0.000000" controlPointBefore="0.000000" controlPointAfter="0.000000"/>
<RunwayDeformation alt="1249.069946" ratio="1.000000" controlPointBefore="0.000000" controlPointAfter="0.000000"/>
<Markings edges="FALSE" threshold="FALSE" alternateThreshold="FALSE" fixedDistance="FALSE" alternateFixedDistance="FALSE" touchdown="FALSE" alternateTouchdown="FALSE" dashes="FALSE" ident="FALSE" leadingZeroIdent="FALSE" precision="FALSE" alternatePrecision="FALSE" edgePavement="FALSE" singleEnd="FALSE" primaryClosed="FALSE" secondaryClosed="FALSE" primaryStol="FALSE" secondaryStol="FALSE" noThresholdEndArrows="FALSE"/>
<Lights center="NONE" edge="NONE"/>
<RunwayStart end="PRIMARY" lat="44.80998996645210" lon="-114.80904266238200" alt="1244.80300000000011" heading="172.53700256347656"/>
<RunwayStart end="SECONDARY" lat="44.80724975466730" lon="-114.80853617191300" alt="1244.80300000000011" heading="352.53698730468750"/>
<Material guid="{C955D525-3829-4241-AC23-86C92DCC446B}" type="Base and tire marks" tilingU="1.000000" tilingV="1.000000" width="1.000000" falloff="0.000000" opacity="255"/>
<Material guid="{CE3084FE-57A3-4BE5-AC34-2A2F8F6DF85D}" type="Base tiled" tilingU="1.000000" tilingV="1.000000" width="1.000000" falloff="0.000000" opacity="255"/>
</Runway>
<Aprons/>
<PaintedElements/>
<ApronEdgeLights/>
<DeleteAirport deleteAllApproaches="FALSE" deleteAllApronLights="FALSE" deleteAllAprons="FALSE" deleteAllFrequencies="FALSE" deleteAllHelipads="FALSE" deleteAllRunways="TRUE" deleteAllStarts="TRUE" deleteAllTaxiways="TRUE" deleteAllBlastFences="FALSE" deleteAllBoundaryFences="FALSE" deleteAllJetways="TRUE" deleteAllControlTowers="FALSE" deleteAllDepartures="FALSE" deleteAllArrivals="FALSE" deleteAllPaintedElements="TRUE" deleteAllLightSupports="FALSE" deleteAllTaxiwaySigns="TRUE" deleteAllILSs="FALSE" deleteAllTerminalWaypoints="FALSE" deleteAllTerminalNDBs="FALSE"/>
</Airport>
</FSData>
From msfsbglxml (fails to compile due to missing type):
XML:
<?xml version="1.0" encoding="utf-8"?>
<FSData version="9.0" timestamp="1/1/1601 12:00:00 AM">
<Airport country="USA" state="Idaho" city="Challis" name="Lower Loon Creek" lat="44.80824586004019" lon="-114.80925768613815" alt="4091.0F" magvar="343" ident="C53" trafficScalar="1" isOnTIN="FALSE" onlyAddIfReplace="FALSE" applyFlatten="FALSE" starAirport="TRUE" closed="FALSE" groundMergingTransfertBright="1" groundMergingTransfertDark="1">
<Runway lat="44.80861969292164" lon="-114.80878964066505" alt="4084.0F" heading="172.537" length="367.15M" width="25.0F" patternAltitude="1000.0F" surface="{c955d525-3829-4241-ac23-86c92dcc446b}" transparent="FALSE" number="16" designator="NONE" falloff="-1" primaryLanding="TRUE" primaryTakeoff="TRUE" primaryPattern="LEFT" secondaryLanding="TRUE" secondaryTakeoff="TRUE" secondaryPattern="LEFT" groundMerging="TRUE" excludeVegetationAround="TRUE">
<RunwayDeformation alt="4084.0F" ratio="0" />
<RunwayDeformation alt="4098.0F" ratio="1" />
<Coloration red="0" green="0" blue="0" alpha="0" />
<Markings edges="FALSE" threshold="FALSE" alternateThreshold="FALSE" fixedDistance="FALSE" alternateFixedDistance="FALSE" touchdown="FALSE" alternateTouchdown="FALSE" dashes="FALSE" ident="FALSE" leadingZeroIdent="FALSE" precision="FALSE" alternatePrecision="FALSE" edgePavement="FALSE" singleEnd="FALSE" primaryClosed="FALSE" secondaryClosed="FALSE" primaryStol="FALSE" secondaryStol="FALSE" noThresholdEndArrows="FALSE" />
<Lights edge="NONE" center="NONE" centerRed="FALSE" />
<RunwayStart end="PRIMARY" lat="44.80998996645212" lon="-114.80904266238213" alt="4084.0F" heading="172.537" />
<RunwayStart end="SECONDARY" lat="44.80724975466728" lon="-114.80853617191315" alt="4084.0F" heading="352.537" />
<Material guid="{c955d525-3829-4241-ac23-86c92dcc446b}" tilingU="1" tilingV="1" width="1.0M" opacity="255" />
<Material guid="{ce3084fe-57a3-4be5-ac34-2a2f8f6df85d}" tilingU="1" tilingV="1" width="1.0M" opacity="255" />
</Runway>
<TaxiName index="0" name="" />
<DeleteAirport deleteAllApproaches="FALSE" deleteAllApronLights="FALSE" deleteAllAprons="FALSE" deleteAllFrequencies="FALSE" deleteAllHelipads="FALSE" deleteAllRunways="TRUE" deleteAllStarts="TRUE" deleteAllTaxiways="TRUE" deleteAllBlastFences="FALSE" deleteAllBoundaryFences="FALSE" deleteAllControlTowers="FALSE" deleteAllJetways="TRUE" deleteAllDepartures="FALSE" deleteAllArrivals="FALSE" deleteAllPaintedElements="TRUE" deleteAllLightSupports="FALSE" deleteAllTaxiwaySigns="TRUE" deleteAllILSs="FALSE" deleteAllTerminalWaypoints="FALSE" deleteAllTerminalNDBs="FALSE" />
</Airport>
</FSData>
Also, the SDK may be wrong, but there is supposed to be an order to the Runway sub-elements:
"This element is allowed to contain the following sub-elements, which must occur in the following order
<Markings />, <Lights />, <OffsetThreshold />, <BlastPad />, <Overrun />, <ApproachLights />, <Vasi />, <Ils>,
<IlsReference />, <RunwayStart />, <RunwayDeformation />, <RunwayColoration />, <Material /> and <Coloration />."