私はJavaでxjcを実行するクラスを書いています。私のコードは次のようになります:
URL url = new URL("C:\\Users\\Simran\\Desktop\\books.xsd");
SchemaCompiler sc = XJC.createSchemaCompiler();
sc.parseSchema(new InputSource(url.toExternalForm()));
S2JJAXBModel model = sc.bind();
JCodeModel cm = model.generateCode(null, null);
cm.build(new FileCodeWriter(new File("C:\\Users\\Simran\\Desktop\\books.xsd")));
ただし、これを実行すると、次のエラーが発生します。
Exception in thread "main" Java.net.MalformedURLException: no protocol: books.xsd
at Java.net.URL.<init>(Unknown Source)
at Java.net.URL.<init>(Unknown Source)
at Java.net.URL.<init>(Unknown Source)
at jaxbTest.Test1.main(Test1.Java:22)
誰かがこれを手伝ってもらえますか?
これは有効なURLではありません。プロトコルとしてfile://
を付加することで有効にできます。
ただし、URLはまったく必要ありません。 Reader
(およびInputStream
)をInputSource
コンストラクターに渡すことができます。したがって、たとえば:
new InputSource(new FileReader(path))