В настоящее время у меня есть проблема, когда система, к которой мы подключаемся, ожидает получить XML, который содержит, среди прочего, три двойных поля, отформатированных до одного десятичного знака. Лично я считаю, что наша система должна просто иметь возможность отправлять значения в формате по умолчанию, а затем другие системы должны форматировать свое собственное представление по своему усмотрению, но, увы, это не вариант.
Моя система на основе Java в настоящее время преобразует объекты в XML с помощью XStream. У нас есть XSD, который сопровождает XML и определяет различные элементы как string, double, dateTime и т. д.
У меня есть три двойных поля, которые содержат такие значения, как 12,5, 100,123, 5,23445 и т. д. Прямо сейчас они преобразуются в XML практически как есть. Мне нужно, чтобы эти значения были отформатированы в XML до одного десятичного знака; 12,5, 100,1, 5,2 и т. д.
Я кратко придумал варианты, как это сделать:
- Каким-то образом Java отформатирует эти значения с этой точностью, прежде чем они перейдут в XML. Возможно, NumberFormat может это сделать, хотя я думал, что это в основном для использования с выводом String.
- Надеюсь, что XSD сможет сделать это за меня; Я знаю, что вы можете установить ограничения на точность в XSD, но я не уверен, действительно ли он обрабатывает само округление или просто скажет: «Это значение 123,123 недопустимо для этой схемы»?
- Используйте XSLT, чтобы как-то сделать это для меня.
Я бы посоветовал вам коллективно подумать о том, что было бы «принятым» способом / лучшей практикой для использования в такой ситуации.
Спасибо, Дэйв.
format-number()
иxsl:decimal-format
. - person Emiliano Poggi   schedule 28.06.2011