gpt4 book ai didi

java - JAXB 没有为包含生成的 Java 类的类生成所需的模式?

转载 作者:数据小太阳 更新时间:2023-10-29 02:41:25 26 4
gpt4 key购买 nike

我有这门课

@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?

最佳答案

尝试更改您的 createOutput 方法,使其不总是写入 request.xsd 文件。我相信您的模型中有多个命名空间,因此会生成多个 XML 模式。

@Override
public Result createOutput(String namespaceUri, String suggestedFileName) throws IOException {

// create new file
File file = new File(suggestedFileName);

// create stream result
StreamResult result = new StreamResult(file);

// set system id
result.setSystemId(file.toURI().toURL().toString());

// return result
return result;
}

关于java - JAXB 没有为包含生成的 Java 类的类生成所需的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com