У меня проблема, которую трудно понять, трудно исправить (для меня).XSTREAM - исключение класса cast
У меня есть файл XML, как это:
<class name='package.AnnotatedClass2'>
<attribute name='field1'>
<attributes>
<attribute name='targetField1name' />
<attribute name='targetField2name' />
</attributes>
</attribute>
</class>
У меня есть еще один компонент, который содержит "атрибут" тег (но не присутствует в файле XML), глобальный узел:
<class name="package.Example">
<global>
<excluded>
<attribute name ="field3"/>
</excluded>
</global>
</class>
XmlClass которые остаются для <class>
тега
public class XmlClass {
/** global configuration */
public XmlGlobal global;
/** list of attributes node */
@XStreamImplicit(itemFieldName="attribute")
public List<XmlAttribute> attributes;
}
XmlGlobal, что остаться на <global>
тегов
public class XmlGlobal {
public List<XmlTargetExcludedAttribute> excluded;
}
@XStreamAlias("attribute")
public class XmlTargetExcludedAttribute {
/** name attribute of class node */
@XStreamAsAttribute
public String name;
}
И XmlAttribute:
public class XmlAttribute {
/** list of target attributes */
public List<XmlTargetAttribute> attributes;
}
@XStreamAlias("attribute")
public class XmlTargetAttribute {
/** name attribute of attribute node */
@XStreamAsAttribute
public String name;
}
После того, как метод зрелищно ToXml() в xmlAttribute.attributes у меня есть два экземпляра XmlTargetExcludedAttribute вместо XmlTargetAttribute.
, если быть точным: классы XmlTargetExcludedAttribute и XmlTargetAttribute идентичны только для удобства чтения, на самом деле они разные.
Как я могу объяснить этот класс для использования?
Пожалуйста, покажите реальный код Java для Aelement и Belement (или, по крайней мере, некоторые код, который является действительным Java и демонстрирует проблему). Ваш текущий 'public Anode;' не является допустимым объявлением поля Java, но если у вас есть 'public Anode node; '(и удалены аннотации псевдонима в классах узлов), то он должен работать так, как вам нужно. –
Я проверил ваш пример (исправляя ошибки компиляции), и он работает так, как вы ожидали. Не могли бы вы рассказать? – antonio
Я обновил сообщение, спасибо за помощь – Alessandro