1
我使用JAXB序列化的Java對象,我想下面的XML輸出:如何添加一個額外的XML元素態的類型與JAXB
<attribute>
<type>
<listType>
<itemType>
<simpleType>
<dataLength>80</dataLength>
<dataType>string</dataType>
<decimalPlaces>0</decimalPlaces>
</simpleType>
</itemType>
</listType>
</type>
</attribute>
我的Java類看起來是這樣的:
屬性的.java
@XmlRootElement
public class Attribute
{
private Type type;
public Type getType()
{
return this.type;
}
public void setType(Type type)
{
this.type = type;
}
}
Type.java
public abstract class Type
{
}
SimpleType.java
public class SimpleType extends Type
{
private int dataLength;
private int decimalPlaces;
private String dataType;
// getters and setters...
}
ListType.java
public class ListType extends Type
{
private Type itemType;
// getters and setters...
}
ComplexType.java
public class ComplexType extends Type
{
private List<Attribute> attributes = new ArrayList<>();
// getters and setters...
}
在沒有任何附加的註釋,JAXB產生了這一點:
<attribute>
<type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="listType">
<itemType xsi:type="simpleType">
<dataLength>80</dataLength>
<dataType>string</dataType>
<decimalPlaces>0</decimalPlaces>
</itemType>
</type>
</attribute>
我不想表示爲XML屬性的類型的信息(的xsi:type),代替我想有一個附加的XML元素作爲顯示在頂部的XML代碼中。我認爲這是一個典型的用例,但我沒有找到任何東西。我有哪些可能性?
對解決方案的小改進。我們使用帶有type屬性的泛型TypeXml類。這個類將作爲XML特定的屬性在多個位置使用。 – beegee