I have a kml xml instance that validates fine with all the microsoft xml engines, but fails validation with every other engine I've tried. The relevant element in the xsd ogckml22.xsd;
<element name="LineStringSimpleExtensionGroup" type="anySimpleType" abstract="true"/>
and
<complexType name="LineStringType" final="#all">
<complexContent>
<extension base="kml:AbstractGeometryType">
<sequence>
<element ref="kml:extrude" minOccurs="0"/>
<element ref="kml:tessellate" minOccurs="0"/>
<element ref="kml:altitudeModeGroup" minOccurs="0"/>
<element ref="kml:coordinates" minOccurs="0"/>
<element ref="kml:LineStringSimpleExtensionGroup" minOccurs="0" maxOccurs="unbounded"/>
<element ref="kml:LineStringObjectExtensionGroup" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
and an instance (relevant part only);
<LineString>
<tessellate>1</tessellate>
<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>
<coordinates>3.32001280049665,6.572382963895447</coordinates>
<LineStringSimpleExtensionGroup xsi:type="xsd:int">66</LineStringSimpleExtensionGroup>
</LineString>
Using VS2019 I get no validation errors. Using Stylus Studio and MSXML4/6 I get no validation errors. Using Stylus Studio and Java I get; (Error) cvc-elt.2: The value of {abstract} in the element declaration for 'LineStringSimpleExtensionGroup' must be false.
Running custom validation engine Saxonica 9.4.0.6 Validator...
Validation error at /kml[1]/Document[1]/Placemark[1]/LineString[1]/LineStringSimpleExtensionGroup[1] on line 150 column 55 of XtraElems.kml: In content of element : Invalid element : the element is declared to be abstract Validation of file file:///k:/Samples/XtraElems.kml unsuccessful.
This would seem to be correct, meaning all the microsoft parsers are incorrect? Surely not!
Bonus question - what on earth is the point of having all these elements in kml that are abstract if they can never be used? (and there are a LOT of them!)