1) The system actuator element is defined differently in JSBSim.xsd versus JSBSimSystem.xsd. In the former, the child elements are type <xs:all> which means that there can be up to one of them, and order is not important. In the later, the child elements are type <xs:sequence> which means the number of occurrences can be specified, but the order is fixed. Since multiple <output> elements are part of the C++ code, I believe that it has to be a sequence. JSBSimSystem.xsd does allow a <description>, which JSBSim.xsd doesn't. <description> is not included in the C++ code documentation strings.</description></description></output></xs:sequence></xs:all>
2) Both of these xsd files match the documentation in FGActuator.h in terms of order of elements (which would be enforced by <xs:sequence>). Unfortunately, I think that the order would be best changed. The code documentation (that flows to the manual) says "In order of application to the input signal, these are:</xs:sequence>
- System lag (input lag, really)
- Rate limiting
- Deadband
- Hysteresis (mechanical hysteresis)
- Bias (mechanical bias)
- Position limiting ("hard stops")
But that is not the order in the XSD files. It would make most sense (to me) if these two orders were the same...
A quick check of one or two other elements that are duplicated between JSBSim.xsd and JSBSimSystem.xsd shows some similar differences. I would assume that when someone has "a lot of free time" that the schemas ought to be updated and brought into a alignment with something like
http://www.w3.org/TR/xmlschema-0/#SchemaInMultDocs
http://www.w3.org/TR/xmlschema-0/#import
using a single file to define the different pieces and then either include or import those into the different schemas as desired. I don't really know a lot about these other than what I picked up in a 5 minute google excursion.