繁体   English   中英

如何在Java中使用非标准变量名来生成XML标签?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM