我正在寻找一个Java注释,它与Cml中的XmlInclude一样。
我在套接字上获得了XML结构。结构如下:
<Answer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FunctionReturnCode>0</FunctionReturnCode>
<AnswerObject xsi:type="Status">
<DoorOpen>79</DoorOpen>
</AnswerObject>
</Answer>
相应的Java类定义如下:
@XmlRootElement(name="Answer")
@XmlType(propOrder = {"functionReturnCode", "answerObject"})
public class Answer
{
private Object m_answerObject = null;
private long m_uiFunctionReturnCode = 0;
@XmlElement(name="FunctionReturnCode")
public long getFunctionReturnCode(){ return this.m_uiFunctionReturnCode; }
public void setFunctionReturnCode(long _uiFunctionReturnCode) { this.m_uiFunctionReturnCode = _uiFunctionReturnCode; }
@XmlElement(name="AnswerObject")
public Object getAnswerObject() { return this.m_answerObject; }
public void setAnswerObject(Object _answerObject) { this.m_answerObject = _answerObject;}
}
在C#中,类看起来像这样:
[XmlInclude(typeof(SelStatus))]
<<<在我看来这是魔点
公共课答案:ICloneable
{
private uint m_uiFunctionReturnCode = 0;
private object m_answerObject = null;
.....Setters/Getters here as well
}
问题是“ AnswerObject”可以是任何类型的对象。在我的示例中,“ AnswerObject”是类型为“ Status”的对象,但它也可以是字符串或任何其他形式。
在C#中,我可以使用XmlSerializer来反序列化XML结构。在Java中,我使用以下代码:
JAXBContext context = JAXBContext.newInstance(Answer.class);
Unmarshaller unmarschaller = context.createUnmarshaller();
C#和Java(同样)自动处理字符串。但是在有另一个对象的情况下,则可以使用XmlInclude和其他已知类声明一个字符串。 Java中有类似的东西吗?
参考方案
类型为Object的属性上的@XmlElement是正确的映射:
@XmlElement(name="AnswerObject")
public Object getAnswerObject() { return this.m_answerObject; }
public void setAnswerObject(Object _answerObject) { this.m_answerObject = _answerObject;}
您需要确保JAXBContext知道AnswerObject的所有可能值。创建JAXBContext时,可以使其属于以下类:
JAXBContext.newInstance(Answer.class, ValueA.class, ValueB.class);
或通过@XmlSeeAlso注释指定它们。
@XmlRootElement(name="Answer")
@XmlType(propOrder = {"functionReturnCode", "answerObject"})
@XmlSeeAlso{{ValueA.class, ValueB.class}
public class Answer
{
...
}
当我运行python代码时,它说“ <<目前是意外情况” - python基本上,这是我们合作者的python代码,用于生成网格,该网格是在Linux环境下开发的。我使用Cygwin在Windows上运行此代码。麻烦部分如下。 BiV_temp.geo也是一个python脚本。因此,命令是用预定义的数字和文件名替换脚本BiV_temp.geo中的字符串。os.system('cp BiV_fiber.geo BiV_te…
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
改造正在返回一个空的响应主体 - java我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…
使用javascript在客户端的列表视图中选择所有复选框 - javascript我有一个列表视图,在标题中有一个复选框。如果标题复选框已选中/未选中,我想选择行中的所有复选框。如何在客户端实现此目标?这是ListView设计代码。<asp:ListView ID="lvTypes" runat="server" GroupPlaceholderID="groupPlaceHolde…
将值设置为无法与jQuery一起使用的隐藏字段 - javascript我有一个使用Visual Studio 2013创建的应用程序,但是在使用jQuery向隐藏字段分配值时遇到了一些问题。首先,我要为隐藏变量分配一个值,因为我无法直接访问.cs文件中标签的文本值,因此我必须将标签的值分配给隐藏的输入字段才能访问在.cs文件中。我希望这是有道理的。这是我在.aspx文件中的隐藏输入字段: <input type=…