我有问题。我希望有很好的动态 groovy 类来表示丑陋的 XML 结构(不幸的是,JAXB、XmlBeans 等是不可能的)。为此,我需要区分大小写的属性来将元素值从 XML 映射到我的类。
但是由于 JavaBeans 规范,Groovy 会自动生成小写的属性名称。
我可以覆盖此功能并保留我的属性吗?
谢谢
这是一个例子:
源 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 方法的属性名称。
但这个问题仍然很有趣。