Я использую SSAX-SXML для работы с древовидной структурой, которая просто имитирует кодировку данных XML. Поэтому я подумал об использовании представления SXML непосредственно в качестве структуры данных для работы. Все работает очень хорошо, и я получаю все функциональные возможности по умолчанию аксессоров и XPath, которые я нашел очень полезными.
Но у меня есть проблема. XML представляет все как строки, поэтому мне нужно постоянно преобразовывать строки в числа и наоборот. Это убьет производительность и просто плохую дизайнерскую идею. Я думал о том, чтобы взять список SXML и преобразовать все строки в числа за один проход. Но есть ли способ, которым SXML напрямую это делает или каким-либо образом сказать через XML, что что-то должно быть представлено как число, а не строка?
Это мой список SXML:
((wall (@ (uid "2387058723"))
(pt (@ (y "2.0") (x "1.0")))
(pt (@ (y "4.0") (x "3.0"))))
(wall (@ (uid "5493820876"))
(pt (@ (y "0.0") (x "0.0")))
(pt (@ (y "100.0") (x "0.0")))
(window (@ (to "0.4") (from "0.2")))
(window (@ (size "1.0") (from "0.2")))
(door (@ (size "1.0") (from "0.2"))))
(pilar (@ (uid "692034802"))
(center (@ (y "5.0") (x "5.0")))
(dim (@ (b "0.45") (a "0.3"))))
(room (@ (label "salon"))
(wall (@ (uid "2387058723")))
(wall (@ (uid "5493820876")))
(wall (@ (uid "5394501263")))
(wall (@ (uid "0034923049"))))
(entry (@ (doorNumber "0")) (wall (@ (uid "5493820876"))))
(num "0,9")
(pipe (@ (y "8.0") (x "10.0"))))
Из XML, который выглядит следующим образом (извлечение):
<wall uid="2387058723">
<pt x="1.0" y="2.0"/>
<pt x="3.0" y="4.0"/>
</wall>
Спасибо.