请问,如何在 XML中定义类似Integer.MAX_VALUE的java常量?我知道如何使用枚举,但我有第三方库,必须使用常量操作. 例如.在xml文件中存在一些值,我想在生成的java类中应该声明为常量. XML:
例如.在xml文件中存在一些值,我想在生成的java类中应该声明为常量.
XML:
<person> <firstname>Joe</firstname> <lastname>Walnes</lastname> <phone> <code>123</code> <number>1234-456</number> </phone> <fax> <code>123</code> <number>9999-999</number> </fax> </person>
Java的:
public class Person { private String firstname; private String lastname; private PhoneNumber phone; private PhoneNumber fax; // ... constructors and methods } public class PhoneNumber { private int code; private String number; // ... constructors and methods }
这有效.但应该是这样的:
XML:
<person> <firstname>Joe</firstname> <lastname>Walnes</lastname> <phone> **<const>**PnoneNumber.LOCAL**</const>** </phone> <fax> <code>123</code> <number>9999-999</number> </fax> </person>
Java应该是:
public class Person { private String firstname; private String lastname; private PhoneNumber phone; private PhoneNumber fax; // ... constructors and methods } public class PhoneNumber { public static final PnoneNumber LOCAL=new PhoneNumber(123,"1234-456"); private int code; private String number; // ... constructors and methods }
我可以轻松地完成这项工作并且没有自定义转换器吗?
非常感谢.
我已经研究了几个XML-POJO生成器,特别是那些使用XML Schema(XSD)来定义类的生成器,令我惊讶的是,没有提供修改属性的能力.如果您想保留当前的解决方案,我认为最简洁的方法是通过您自己的自定义转换器来扩展转换,就像您自己说的那样.
如果您使用的是使用XML Schema的东西,您可以始终使用属性fixed =“constant”作为标准初始化,但当然它不会保留语义.
但是,以另一种方式解决这个问题可能会更好.这些是常量,它们不应该改变,所以也许最好将它们定义在一个单独的文件中.