Я использую JAXB для преобразования XML файла в Java-объект
Я много смотрел в примерах в Интернете, но все же получаю нулевые значения в моем объекте, когда я отменяю его на java-объект
что я пропустил?
File file = new File("BootloaderProtocol.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Command.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Command commanda = (Command) jaxbUnmarshaller.unmarshal(file);
System.out.println(commanda);
мои занятия:
@XmlRootElement(name="Command")
public class Command {
String COMMAND_ID;
String COMMAND_NAME;
String COMMAND_CODES;
public String getCOMMAND_ID() {
return COMMAND_ID;
}
@XmlElement
public void setCOMMAND_ID(String COMMAND_ID) {
this.COMMAND_ID = COMMAND_ID;
}
public String getCOMMAND_NAME() {
return COMMAND_NAME;
}
@XmlElement
public void setCOMMAND_NAME(String COMMAND_NAME) {
this.COMMAND_NAME = COMMAND_NAME;
}
public String getCOMMAND_CODES() {
return COMMAND_CODES;
}
@XmlElement
public void setCOMMAND_CODES(String COMMAND_CODES) {
this.COMMAND_CODES = COMMAND_CODES;
}
}
и этот мой XML файл:
<Command>
<COMMAND>
<COMMAND_ID>0xFE01</COMMAND_ID>
<COMMAND_NAME>Start bootloader</COMMAND_NAME>
<COMMAND_CODES>EE120301FE0900</COMMAND_CODES>
</COMMAND>
</Command>
Это правильная структура xml:
<Command>
<COMMAND_ID>0xFE01</COMMAND_ID>
<COMMAND_NAME>Start bootloader</COMMAND_NAME>
<COMMAND_CODES>EE120301FE0900</COMMAND_CODES>
</Command>
Попробуйте свой код с этим xml. Используйте правильный путь к файлу xml в коде.
Кстати, я проверил ваш код с этим xml, и он отлично работает.
попробуй что-нибудь вроде этого
public class Command {
@XmlElement(name="COMMAND")
public NestedCommand command;
static class NestedCommand {
String COMMAND_ID;
Command
не отражает структуру XML. Элемент "КОМАНДА" отсутствует.