XSD - xs: неотрицательный интеграл и значения, заканчивающиеся на .00

StackOverflow https://stackoverflow.com/questions/808532

  •  03-07-2019
  •  | 
  •  

Вопрос

Я понимаю, что значение 0.00 не является допустимым неотрицательным значением и даже не является целым числом.К сожалению, данные поступают именно в таком формате.Я не хочу выбрасывать его, если оно заканчивается на .0, но я также не хочу менять тип на десятичный и, возможно, вводить значения, заканчивающиеся на .1, как допустимые.

Есть ли способ, которым мой XSD может проверять числа таким образом, чтобы они были просто целыми положительными числами, поэтому все значения 0.00, 0, 1, 1.0, 2.0000000 и т.д. Принимаются, но -1, 1.1, 2.2, 3.3333все недопустимы?

Спасибо -c

Это было полезно?

Решение

Вы могли бы рассмотреть возможность перехода на десятичную дробь и установления ограничения на места после десятичной точки.В частности, вы могли бы использовать фасет регулярного выражения.Я никогда не пробовал этого и даже не знаю, действительно ли это, но это направление, на которое стоит обратить внимание.Вы бы ограничили лексическое пространство, а не пространство значений, но это то, чего вы хотите.

Другие советы

Это работает для того, что мне нужно, спасибо, Джон

<xs:simpleType name="nonNegativeWholeDecimal">
    <xs:restriction base="xs:decimal">
        <xs:pattern value="[0-9]*(\.[0]*)?"/>
    </xs:restriction>
</xs:simpleType>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top