我有这门课
@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;
}
}
}
我得到的只是 GpxType 类的 XSD。这是为什么?
只是让您知道,GpxType 和 JourneyXML 是从 XSD 文件生成的。
如何强制执行此操作以生成我需要的适当 XSD?