XML XSD Десятичная дробьЦифры - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть схема XSD, для которой SimpleType - Decimal, fractionDigits = 2, как в этом примере Как указать минимальное значение для ограничения FractionDigits в XML-схеме? .

Это довольносправедливо разрешает: -

12 12,34 12,06 12,5

Но он также принимает 12,230000000 (он не принимает 12,230000001).Почему он не распознает эти конечные нули?

Итак, есть ли способ разрешить использование только 2 цифр после десятичной дроби, так что это ошибка 12.230000000?

Я пробовал ограничение шаблона, которое можно увидеть здесь - Как указать минимальное значение для ограничения FractionDigits в XML-схеме? , но, тем не менее, оно не приводит к ошибке 12.23000000.

Любая помощь будет принята с благодарностью - я уверен, что мне не хватает чего-то очень простого!

спасибо Крейг

1 Ответ

0 голосов
/ 06 декабря 2018

Фракция FractionDigits - это ограничение пространства значений, а не лексического пространства.Это означает, что значение должно быть кратно 0,01, но нет ограничений на то, как записывается значение.

Если вы хотите ограничить лексическое пространство (то есть способ, которым записывается значение) вы можете сделать это только с помощью фасета шаблона.

Лично я считаю, что обычно ограничивать лексическое пространство - это ошибка, потому что программное обеспечение, генерирующее XML, обычно не будет это учитывать.Но это зависит от вас.

Я не могу объяснить, почему ваша попытка использовать фасет шаблона была неудачной.Если вы делаете это так, как в сообщении, которое вы цитируете, оно должно работать.

...