Tag: xmladapter

JAXB覆盖@XmlElement类型的列表

有一个简单的类Bean1 ,其子类列表为BeanChild1 。 @XmlRootElement(name=”bean”) @XmlAccessorType(XmlAccessType.PROPERTY) public static class Bean1 { public Bean1() { super(); } private List childList = new ArrayList(); @XmlElement(name=”child”) public List getChildList() { return childList; } public void setChildList(List pChildList) { childList = pChildList; } } public static class BeanChild1 { … } 我试图覆盖该类,以更改列表的类型。 新的子类(即BeanChild2 )扩展了前一个(即BeanChild1 )。 public static class Bean2 extends […]

JAXB封送由XmlAdapter创建的ArrayList

我想使用XmlAdapter调整HashMap字段的XML表示。 我使用ArrayList来做到这一点。 但是,当编组ArrayList根本没有编组。 这是为什么? 代码 @XmlRootElement public class Foo { private HashMap hashMap; public Foo() { this.hashMap = new HashMap(); } @XmlJavaTypeAdapter(HashMapAdapter.class) public HashMap getHashmap() { return hashMap; } public void setHashmap(HashMap hashMap) { this.hashMap = hashMap; } } public final class HashMapAdapter extends XmlAdapter<ArrayList, HashMap> { @Override public ArrayList marshal(HashMap arg0) throws Exception { […]

JAXB XMLAdapter方法不会抛出exception

我正在使用JAXB XMLadapter来编组和解组布尔值。 应用程序的XML文件也将由C#应用程序访问。 我们必须validation此XML文件,这是使用XSD完成的。 C#应用程序为布尔节点写入“True”值。 但是我们的XSD也证实了这一点,因为它只允许“真/假”或“1/0”。 因此,我们在XSD中保留了String的布尔值,并且该字符串将由XMLAdaptervalidation,以便我们编组和解组。 XML Adapter如下: public class BooleanAdapter extends XmlAdapter { @Override public Boolean unmarshal(String v) throws Exception { if(v.equalsIgnoreCase(“true”) || v.equals(“1”)) { return true; } else if(v.equalsIgnoreCase(“false”) || v.equals(“0”)) { return false; } else { throw new Exception(“Boolean Value from XML File is Wrong.”); } } @Override public String marshal(Boolean […]