2013-11-26 5 views
3

Мне нужно создать фрагмент XML, и для этого я использую Java DOM.Java-примитивные типы XML-текстовые значения

Любая документация я мог бы найти объясняет, что можно использовать Element.setTextContent(), например, так:

Integer someValue = 5; 
Element element = myMethodCreatingTheElement(); 
element.setTextContent(String.valueOf(someValue)); 

Мой вопрос: является ли он достаточно полагаться на String.valueOf() к правильно ли соответствует значению в XML?

Спасибо заранее,

+0

она работает, что ваша проблема ?? – subash

+0

Я не знаю точно, что этот подход безопасен и гарантирует 100% -ную правильность, например. что, если значение является реальным и, возможно, есть некоторые соображения локализации, которые нужно сделать, поэтому моя проблема заключается в том, что я не могу найти официальную документацию, описывающую преобразование примитивных значений в значения Xml. – Stoimen

ответ

0

Да.

Смотрите также the API of java.lang.Integer

+0

Что-нибудь конкретное, чтобы искать там? Заметьте, что я использую String.valueOf() – Stoimen

+1

А, мой плохой. В этом случае: Нет. Вы получите «null», если 'someValue' равно null, что не является целым числом xml. Если вы хотите безопасный тип типа преобразования типов java в «примитивные» типы xml, вы должны использовать какое-то сопоставление. – Rinke

1

это достаточно, чтобы полагаться на String.valueOf(), чтобы правильно представлять соответствующее значение в XML?

DOM - это абстрактная модель данных для документов XML. Когда вы вызываете setTextContent(), вы устанавливаете значение значения элемента (строго говоря, вы устанавливаете дочерние элементы этого элемента как единый текстовый узел с указанным значением). Когда вы пишете дерево DOM как XML-документ, задание сериализатора должно гарантировать, что все значения будут выводиться в правильном представлении.

Пока значение, которое вы устанавливаете, не содержит символов, которые запрещены в XML (управляющие символы ниже U + 0020, кроме вкладок, новой строки и возврата каретки, или непарных суррогатов), тогда вы будете в порядке , сериализатор выполнит любое необходимое экранирование для вас.

Как и для String.valueOf, его правила преобразования примитивных типов в строки подробно изложены в документации JavaDoc. С приведенным выше предостережением об избежании незаконных символов, если вы конвертируете char, char[] или Object, который переопределяет toString, значения, полученные String.valueOf, всегда будут легальными в XML.

Смежные вопросы