1

ここで助けを求めるのはこれが初めてで、誰かが私を助けてくれることを願っています。

ビルド時間を短縮するために、後で Ant ビルド プロセスをローカライズするタスクが与えられました。

このアイデアは、特定のサービスに関連付けられた WSDL をダウンロードしてローカルに保存する Ant タスクを構築するようなものです。簡単に言えば、これは完了しましたが、ローカル ファイルを使用してサービスを構築すると、何らかの理由で、最初にインポートされた XSD で「プロローグではコンテンツが許可されていません」というエラーが表示されます。

フォーラムを検索したところ、最も一般的な回答はプロローグの前の隠し文字ですが、16 進コードを確認したところ、隠し文字はありませんでした。

これは WSDL プロローグです

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>

これは最初の XSD プロローグです

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>

16 進数のプロローグ

   3C3F786D6C2076657273696F6E3D2231
   2E302220656E636F64696E673D227574
   662D3822207374616E64616C6F6E653D
   226E6F223F3E

リモートバージョンと同じです。

これは、ダウンロードされた XSD と WSDL も保存される方法です。

private Document convertToXML(String xmlSource) throws Exception {
    DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
    Document document = builder.parse(new InputSource(new StringReader(xmlSource)));
    return document;
}


    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    transformer.setOutputProperty(OutputKeys.STANDALONE, "no");
    transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
    Result output = new StreamResult(new File(filePath));

もっと具体的に説明する必要があるのか​​、それとも情報を追加する必要があるのか​​教えてください。

ありがとう。

4

2 に答える 2