Use of MIL2525 instead of APP-6
Closed this issue · 11 comments
The FOM shows SymbolId2525C and D attributes, whereas the MSDL file uses APP6 codes.
Don't we standardize on APP-6x ?
I think APP-6A = MIL-STD-2525B, APP-6B = MIL-STD-2525C ...
But perhaps using NATO terminology is better anyway.
2525 ABC follow the same schema for symbol codes. 2525 D is different.
I think there are differences between the two, at least for the earlier versions.
But I am not the expert on this ... To avoid confusion, we should consistently use APP-6.
I suggest to use only one "Symbol" attribute as an array of variant record with enumerator for symbol encoding type and datatype either SymbolIdentifierArray15 or 30. The same should be used for NETN-MRM Aggregate and NETN-Physical entities.
The MSDL schema defines a generic msdl:patternForceSymbolID15 datatype based on MIL-STD 2525B. In MSG-106 the team modified the schema to introduce patternForceSymbolAPP6B which has a slightly different semantics allowing different combinations of characters. Both are 15 characters but the allowed combinations are not the same but the latter is backwards compatible and allow any 2525B symbol code to also be entered in the XML and still be valid. MSG-163 introduced MIL-STD 2525C and D symbol codes as separate elements of a unit with its own datatype description. The 2525C replaced the App6B for Units but for some reason Equipment type is still using the original patternForceSymbolAPP6B (and no 2525D). Very confusing and not very consistent.
In MSDL the Symbology standard used in the document is specified as "ScenarioOptions" and applies/should apply for the entire file. => Only one standard is used. This does not make sense if we also introduce an additional 2525D?
IMHO, we the 2525D element can remain as defined but should also be added to EquipmentItem. The 2525B element can also be kept even if the name should be made more generic (perhaps just use the original msdl:patternForceSymbolID15) the exact encoding used for this element is specified by the ScenarioOptions element (currently MILSTD_2525C, MILSTD_2525B, NATO_APP-6). So basically two symbol codes are possible to define for each unit/equipmentItem.
The corresponding attribute in NETN-ORG Unit&EquipmentItem will be a single attribute as an Array of SymbolIdentifierVariantStruct. Each variant is based on a SymbologyStandardEnum (APP6A, APP6B, APP6C, MILSTD2525B, MILSTD2525C, MILSTD2525D) and for all except MILSTD2525D the datatype would be a 15 character string and for MILSTD2525D a 30 character string.
I suggest putting the Symbol related datatypes in NETN-BASE
BTW APP6D uses the same 30 digit encoding as MIL-STD 2525D
NEW PROPOSAL: Use URI notation as discussed in NETN-Physical#10
Instead of relying on a federation agreement, I would propose to include the symbol standard information into the string itself. Hence, it's clear at the very beginning how the symbol has to be interpreted.
Reference syntax: https://tools.ietf.org/html/rfc3986#section-3
For example:
app6b:SFGP------*****
2525b:SFGP------*****
Explanation:
Scheme is symbol code standard.
Path is actual symbol code.
This will have an impact on both the XML Schema and FOM module.
The following are the proposed changes:
In NETN-ORG-SimpleTypes.xsd:
- Remove simple type patternForceSymbolAPP6B
- Remove simple type patternForceSymbolMilStd2525C
- Remove simple type patternForceSymbolMilStd2525D
- Remove simple type patternForceSymbolID15
- Remove simple type patternInstallationSymbolAPP6B
- Remove simple type patternInstallationSymbolID15
- Remove simple type patternMETOCSymbolAPP6B
- Remove simple type patternMETOCSymbolID15
- Remove simple type patternMOOTWSymbolAPP6B
- Remove simple type patternMOOTWSymbolID15
- Remove simple type patternTacticalGraphicSymbolAPP6B
- Remove simple type patternTacticalGraphicSymbolID15
- Remove simple type patternTacticalGraphicSymbolID15
- Add new simple type that replaces all above:
<xs:simpleType name="patternSymbolID">
xs:annotation
xs:documentationA symbol identifier is represented as a string. The symbol standard used is indicated using an optional uri notation (uri:xxxxxxxxxx). The following uri should be used for common symbology standards app6b, app6b, app6c, app6c, 2525b, 2525c, 2525d. If not provided the default symbol standard used is the one specified in the ScenarioDataStandards element of the XML file.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
In NETN-ORG-ComplexTypes:
- Replace all uses of the removed symbol types with patternSymbolID
- Remove the additional SymbolId-2525D element in UnitType
Only one symbol for Unit and EquipmentItem allowed.
In NETN-ORG fom module:
- Renamed Unit and EquipmentItem attributes SymbolI2525c to SymbolId with datatype SymbolIdentifier.
- Removed Unit attribute SymbolId2525d.