У нас есть запрос на реализацию нашего ответа веб-сервиса, чтобы цифры xsd: десятичной дроби были дополнены нулями, если они недостаточно длинные, если шаблон указывает на это. Мне интересно, является ли это разумным запросом и предполагается ли использовать xsd: decimal с такими шаблонами.
Вот соответствующая часть xsd согласно их спецификациям:
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="14"/>
<xsd:fractionDigits value="2"/>
<xsd:pattern value="[\-+]?[0-9]{1,12}[.][0-9]{2}"/>
</xsd:restriction>
</xsd:simpleType>
Таким образом, дробная часть установлена на 2, что означает, что точность может составлять максимум 2 цифры. В соответствии с http://zvon.org/xxl/XMLSchemaTutorial/Output/ser_types_st2.html также будет хорошо, если будет меньше цифр дроби (например, для числа типа 5.1)
Но согласно шаблону {2} всегда должно быть две цифры дроби.
Мы разрабатываем общую платформу для разработки приложений, и пока неизвестно, для чего будет использоваться десятичное число заранее (валюта, значения pH, расстояния и т. Д.). Этот случай связан с конкретным проектом, в котором используется наша платформа, но обычно мы не знаем, какие данные передаются. В этом отношении мы могли бы решить просто следовать WSDL, в котором говорится, что он должен иметь две дробные цифры. но наша реализация должна быть очень общей.
Ничто не говорит о том, с какими именно этими цифрами дроби следует дополнять или даже о том, что мы должны дополнять вместо того, чтобы просто пропустить эту десятичную дробь в целом. Теоретически мы можем решить дополнить 5, пока он не будет соответствовать шаблону. Насколько я знаю, шаблоны используются редко, и если они используются, они используются для таких вещей, как пароли. Хотя спецификация XSD является неопределенной, было бы полезно, если бы кто-то мог пролить свет на то, является ли это правильным использованием XSD, и если для нас имеет смысл принять решение дополнить нулями.