У меня проблема.
Я хочу, чтобы у меня были классные динамические классы, представляющие некрасивую структуру XML (к сожалению, JAXB, XmlBeans и т. Д. Невозможны)
Для этой цели мне нужны чувствительные к регистру свойства для сопоставления значений элементов из XML с моими классами.
Но Groovy автоматически генерирует имена свойств в нижнем регистре из-за спецификации JavaBeans.
Могу ли я переопределить эту функцию и сохранить свои свойства?
спасибо
Вот пример:
Исходный XML выглядит следующим образом:
<data>
<document>
<linked name="MyDataObject">
<datarow>
<element name="Name"></element>
<element name="CurrentTime"></element>
<element name="abc"></element>
<element name="UID"></element>
</datarow>
</linked>
<!--
Here are a lot of more of <element> and <linked>
-->
</document>
</data>
Я анализирую его с помощью XmlParser и позволяю некоторым классам работать на отдельных узлах.
class XMLMyDataObject extends MyXMLNodeBaseClassWithDynamicFunctionality {
String Name
String CurrentTime
String abc
String UID
}
Результат в этом примере из-за строчных имен: я могу найти только 2 элемента.
XMLMyDataObject.metaClass.properties ...
name cannot find XML-Element
currentTime cannot find XML-Element
abc find XML-Element
UID find XML-Element
Моя текущая ситуация:
Я использую чистую часть Java своих классов, чтобы получить имена свойств, вызывая метод getDeclaredFields.
Но вопрос все еще интересен.