Ecco un estratto dal mio banale file XSDAggiunta di metodi più per una classe JAXB generata da schema
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="ns"
xmlns:tns="sns" elementFormDefault="qualified">
<element name="document">
<attribute name="title" use="required"/>
</element>
</schema>
uso il maven-jaxb2-plugin
per generare le classi Java da questo. La classe Document
ha un metodo getTitle()
per restituire il testo dell'attributo title
.
Voglio aggiungere un ulteriore metodo per Document
:
public String getStrippedTitle() {
return getTitle().replaceAll("\\s+", "");
}
voglio che il mio metodo in più per apparire sull'oggetto deserializzati (piuttosto che me solo chiamando o scrivendo una classe wrapper) perché voglio passare l'oggetto unmarshalled di livello superiore a un modello di stringa e lo ha iterato su sotto-elementi che chiamano il mio metodo extra.
Ho trovato instructions ma mi hanno detto di impostare una proprietà su Unmarshaller
e l'implementazione mia (Mac OS X, Java 7) non sembra supportare alcuna proprietà.
Come devo fare?
Questo funziona. Grazie! Avete qualche suggerimento per un migliore metodo generale di smantellamento di un file XML in classi Java con alcuni metodi aggiuntivi? Stavo provando SAX prima di JAXB, ma sembrava che stavo solo scrivendo la mia (scadente) implementazione JAXB. –
@NathanielWaisbrot - Non è necessario generare il modello JAXB da uno schema XML. È possibile iniziare da qualsiasi modello di oggetto desiderato e utilizzare le annotazioni JAXB per configurare il mapping XML. –