The NeuroML2 xsd has the following definition for the <species> tag. Here it lists that we should be reading id rather than ion.
<xs:complexType name="Species">
<xs:complexContent>
<xs:extension base="ValueAcrossSegOrSegGroup">
<xs:attribute name="id" type="NmlId" use="required"/>
<xs:attribute name="concentrationModel" type="NmlId" use="required"/>
<xs:attribute name="ion" type="NmlId" use="optional">
<xs:annotation>
<xs:documentation>Specifying the ion here again is redundant, the ion name should be the same as id. Kept for now
until LEMS implementation can select by id. TODO: remove.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="initialConcentration" type="Nml2Quantity_concentration" use="required"/>
<xs:attribute name="initialExtConcentration" type="Nml2Quantity_concentration" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
The NeuroML2 xsd has the following definition for the
<species>tag. Here it lists that we should be readingidrather thanion.