[英]How to use non-standard variable names in Java for producing XML tags?
我正在尝试使用Jaxb通过Java以编程方式编写AndroidManifest.xml文件。 在定义属性时会出现问题,这些属性遵循string:string命名约定。 例如,清单元素的定义如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="string"
android:sharedUserId="string"
android:sharedUserLabel="string resource"
android:versionCode="integer"
android:versionName="string"
android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
. . .
</manifest>
从Java执行此操作时,我无法注释属性,因为xmlns:android等不是有效的Java变量。
在仍然使用Jaxb并且不求助于StringBuilder技术生成XML的同时,克服此问题的最佳方法是什么?
这是javax.xml.bind.annotation.XmlElement的javadoc中的示例:
@XmlElement(name="item-price")
public java.math.BigDecimal price;
name参数是您将在XML中看到的。
但是这个android:名称空间前缀,应该根据名称空间定义出现,这是名称空间的参数:
@XmlElement(name="item-price", namespace="http://schemas.android.com/apk/res/android")
public java.math.BigDecimal price;
编组后,您很可能会看到“ ns1:”代替android :,但这没关系。
获取带注释的Java代码的最简单方法:编写(或查找)XML模式并通过xjc
运行它。 一直在工作-几乎;-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.