這是我第一次在這裏尋找幫助,我希望有人能幫助我。保存下載的XSD和WSDL
我已經完成了本地化我們的ant構建過程的任務,以幫助減少構建時間。
這個想法就像構建一個ant任務,它下載與特定服務關聯的WSDL並將它們保存到本地。長話短說,這已經完成,但由於某種原因,當使用本地文件構建服務時,我在第一個導入的XSD中收到'內容不允許在序言中'錯誤。
我已經搜索論壇,最常見的答案是在序言之前的隱藏字符,但我已檢查十六進制代碼,並沒有隱藏的字符。
這是WSDL序言
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
這是第一XSD序言
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
Prolog的十六進制
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));
讓我知道,如果我應該更具體或如果我需要添加更多的信息。
謝謝。
好吧我認爲它必須與文件的保存方式有關,因爲我只是用已下載版本的代碼替換了現有本地XSD中的代碼,並且它工作正常... – bhumphrey
選中此鏈接 - http://stackoverflow.com/questions/3665554/about-saxparseexception-content-is-not-allowed-in-prolog/7023984 – junkiecoder
謝謝,我其實只是想通了。我將WSDL中的schemaLocation定義爲「exampleschemas \ example1 \ schema.xsd」,只要我將所有模式放入與WSDL相同的文件夾並更改模式位置以匹配它就可以正常工作。 – bhumphrey