- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用此 xjc 从 .xsd 文件创建 java 类脚本
for %%f in (*.xsd) do (
xjc -no-header %%f
)
pause
它生成如下所示的类
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AppData1", propOrder = {
"appInstllCd",
"appVrsn",
"os",
"osVrsn",
"device"
})
public class AppData1 {
@XmlElement(name = "AppInstllCd")
protected String appInstllCd;
@XmlElement(name = "AppVrsn")
protected String appVrsn;
@XmlElement(name = "OS")
protected String os;
@XmlElement(name = "OSVrsn")
protected String osVrsn;
@XmlElement(name = "Device")
protected String device;
/**
* Gets the value of the appInstllCd property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAppInstllCd() {
return appInstllCd;
}
/**
* Sets the value of the appInstllCd property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAppInstllCd(String value) {
this.appInstllCd = value;
}
/**
* Gets the value of the appVrsn property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAppVrsn() {
return appVrsn;
}
/**
* Sets the value of the appVrsn property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAppVrsn(String value) {
this.appVrsn = value;
}
/**
* Gets the value of the os property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getOS() {
return os;
}
/**
* Sets the value of the os property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setOS(String value) {
this.os = value;
}
/**
* Gets the value of the osVrsn property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getOSVrsn() {
return osVrsn;
}
/**
* Sets the value of the osVrsn property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setOSVrsn(String value) {
this.osVrsn = value;
}
/**
* Gets the value of the device property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getDevice() {
return device;
}
/**
* Sets the value of the device property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setDevice(String value) {
this.device = value;
}
}
我想知道是否可以以某种方式更改我的脚本,这使得我的类字段具有与 @XmlElement
相同的名称,例如结果将是:
@XmlElement(name = "AppInstllCd")
protected String AppInstllCd;
@XmlElement(name = "AppVrsn")
protected String AppVrsn;
@XmlElement(name = "OS")
protected String OS;
@XmlElement(name = "OSVrsn")
protected String OSVrsn;
@XmlElement(name = "Device")
protected String Device;
最佳答案
您需要绕过 JAXB 使用的命名约定。我自己没有亲自尝试过的一些选项将遵循已接受的答案或投票最高的答案 this SO question .
<小时/>另一个选择是创建一个 XJC 插件。尽管这可能有点矫枉过正。 (我目前正在开发一个 XJC 插件,所以我有偏见。)
Tutorial that helped me getting started with XJC Plugins.
该插件的代码可以做一些事情,几乎如下所示:
import com.sun.tools.xjc.Plugin;
public class XJCPlugin extends Plugin {
@Override
public String getOptionName() { //... }
@Override
public int parseArgument(Options opt, String[] args, int i) throws BadCommandLineException, IOException {
return 1;
}
@Override
public boolean run(Outline model, Options opt, ErrorHandler errorHandler) throws SAXException {
//...
}
@Override
public void postProcessModel(Model model, ErrorHandler errorHandler) {
//This method changes the attribute names
for (CClassInfo classInfo : model.beans().values()) //for each class
for (CPropertyInfo propertyInfo : classInfo.getProperties()) //for each attribute
propertyInfo.setName(false, Utility_StringHandling.firstCharacterToUpperCase(propertyInfo.getName(false)));
}
static String firstCharacterToUpperCase(String input) {
char c[] = input.toCharArray();
c[0] = Character.toUpperCase(c[0]);
return new String(c);
}
}
关于java - xjc java 类生成,其中字段与 @XmlElement 具有相同的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43233629/
是否可以有相同的@XmlElement,其名称不是常量名称?例如我想要这个: MyObject myObj = new MyObject("myName"); @XmlElement(name=myO
我正在从 REST 服务获取 XML,如下所示: 1 1970-01-01 78.67 2 1450-09-17 24.56
我正在尝试弄清楚 NSXMLParser,但我不确定为什么它不起作用。我应该输出名字和姓氏以及年龄,但它输出的是一个数字。 XML 是 Anthony Robbins 5
) 我有一个可以来自不同类型的 xmlelement。与类型无关,它具有相同的名称。它可以是一个对象,也可以只是通过 URI 对现有对象的引用。我认为 xmlElements 可能是解决方案。编码工作
说我有以下 xml Gambardella, Matthew Ralls, Kim Corets, Eva
我在 SELECT 查询中使用 XMLELEMENT(tagname,value)。它无法识别变量的值。取而代之的是,它将变量名作为标记名。 //前 l_0_l := t_array(l_inde
我正在尝试将 JAXB 用于已经以某种格式编写 XML 的应用程序。我必须遵守向后兼容性问题的格式。 我在一个类中有以下代码段: @XmlElement( name = "field" ) priva
我有这样的 XML 结构: La météo de la semaine This week’s weather Wetter Woche 消息在多种语言中重复
我正在尝试学习如何在 java 中将对象存储为 XML 文件,但遇到了一些问题。 我发现的大多数教程都说我应该将 @XmlElement 注释与 set 方法一起使用,但是还有另一种使用它们的方法,因
我想弄清楚如何注释一个类变量,以便它最多可以有一个基本类型的元素——但具体类型可以是三个不同类之一。这是一个示例,希望可以解释我要完成的任务。 public class A extends Basec
我有一个 super 类型的列表,即 List foo 该列表包含来自两个不同子类型的对象: public class FooBar implements IFoo{ } public class F
我这里有一个情况,试图充当两个 API 之间的网关。我需要做的是: 向 APIa 提出请求; 将 XML 响应解析(编码)为 java 对象; 稍作改动; 然后以 XML 格式(解码)向另一端 (AP
我想知道是否可以从 XmlElement 字段继承,例如 public class A{ [XmlElement(ElementName = "Something", Form =
将 C# 对象转换为 XmlEmenet 的最佳方法是什么?我是只使用 XmlSerializer 并导入 XmlNode 还是有更好的方法? 这是我在那里发现的,想知道是否还有其他更好的方法。 pu
所以我有一个类 Texture2DProcessor,它继承了 IXmlSerializable 并隐式转换为 Texture2D public static implicit operator Te
在我的 C# 应用程序中,我正在创建一个基于数据库值的 XML。它工作正常,直到字符串不是特殊字符。下面是我的代码。 XmlDocument doc = new XmlDocument(); Xm
这就是我正在做的: @XmlType(name = "foo") @XmlAccessorType(XmlAccessType.NONE) public final class Foo { @Xm
我正在创建一个 XML 文档并尝试在 XMLElement 之间插入标签,如下所示 let tEle = XMLElement.element(withName: "xuv") as? XMLElem
是否有一些简单的方法可以将 XmlElement 转换为 string ? 最佳答案 如果内容是文本,这将获取元素的内容: element.Value 这将获取元素的内容作为 XML: element
一段时间以来,我在向属性添加命名空间时遇到了问题。我的要求是创建 xml,它将在子元素而不是 root 上具有命名空间 uri。我将 jaxb 与 eclipselink moxy、jdk7 一起使用
我是一名优秀的程序员,十分优秀!