У меня есть этот классJAXB не генерирует требуемую схему для класса, который содержит сгенерированные классы Java?
@XmlRootElement
public class GpsDataRequest{
//definition of variables
@XmlElement(required=true, type=GpxType.class)
public GpxType getGpxRoot() {
return gpxRoot;
}
@XmlElement(required=true, type=JourneyXML.class)
public JourneyXML getJourneyPlanRoot() {
return journeyPlanRoot;
}
@XmlElement(required=true)
public String getSecurityToken() {
return securityToken;
}
@XmlElement(required=true)
public UUID getUuid() {
return uuid;
}
}
Когда я генерировать схему, используя этот код:
public class SchemaGenerator {
public static void main(String[] args)
{
try {
JAXBContext context=
JAXBContext.newInstance(GpsDataRequest.class);
SchemaOutputResolver sor =new DemoSchemaOutputResolver();
context.generateSchema(sor);
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static class DemoSchemaOutputResolver extends SchemaOutputResolver {
@Override
public Result createOutput(String namespaceUri, String suggestedFileName)
throws IOException {
// create new file
File file = new File("request.xsd");
// create stream result
StreamResult result = new StreamResult(file);
// set system id
result.setSystemId(file.toURI().toURL().toString());
// return result
return result;
}
}
}
Все я получаю является XSD только класса GpxType. Почему это?
Чтобы сообщить вам об этом, GpxType и JourneyXML создаются из файлов XSD.
Как обеспечить это, чтобы создать подходящий XSD, который мне нужен?
Имеются ли в ваших свойствах соответствующие методы 'set'? –
Да. Я не добавил полный класс, потому что я думал, что это может быть бесполезно. –
Какую версию и реализацию JAXB (JSR-222) вы используете? –