Вероятно, вы можете достичь этого с помощью restriction
<xs:element name="myDouble">
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:minExclusive value="-INF"/>
<xs:maxExclusive value="INF"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Примечание : NaN, похоже, также останавливается <xs:maxExclusive value="INF"/>
ОШИБКА: Элемент 'myDouble': [facet 'maxExclusive'] Значение 'NaN' должно быть меньше, чем 'INF'.
Я пробовал его, и он работает с
<myDouble>123.456</myDouble> <!-- OK -->
<myDouble>+1234.456</myDouble> <!-- OK -->
<myDouble>-1.2344e56</myDouble> <!-- OK -->
<myDouble>-.45E-6</myDouble> <!-- OK -->
<myDouble>INF</myDouble> <!-- KO -->
<myDouble>-INF</myDouble> <!-- KO -->
<myDouble>NaN</myDouble> <!-- KO -->