生成したスキーマをstdoutに出力したいと思います。そこで、System.outをSchemaOutputResolverのoutputStreamに設定しました。 StreamResult result = new StreamResult(System.out);
しかし、文の後: jc.generateSchema(outputResolver)
System.outがコールバックからクローズしないようにするには
のSystem.out.println()もう動作しません。コードをデバッグすることによって、System.outがjc.generateSchema
メソッドの後に閉じられたことになります。
JAXBContext jc = JAXBContext.newInstance(SomeObject.class);
SchemaOutputResolver outputResolver = new SchemaOutputResolver() {
@Override
public Result createOutput(String namespaceUri, String suggestedFileName)
throws IOException {
StreamResult result = new StreamResult(System.out);
result.setSystemId(namespaceUri);
// return result
return result;
}
};
jc.generateSchema(outputResolver);
System.out.println("this String can't be output");
私の質問は、どのように出力jc.generateSchema
を使用してのSystem.outを閉じずにstdoutに生成されたスキーマをしますか?
ありがとう、それは私が欲しいものです。私はいくつかの同様のクラスを書いたが、System.outをwrapクラスに割り当てる方法を考えていない。 :)あなたの素敵なコードありがとう。 –