Java 保存下载的XSD和WSDL

Java 保存下载的XSD和WSDL,java,xsd,wsdl,wsimport,Java,Xsd,Wsdl,Wsimport,这是我第一次在这里寻求帮助,我希望有人能帮助我 我的任务是在完成后本地化我们的ant构建过程,以帮助缩短构建时间 这个想法类似于构建一个ant任务,下载与特定服务相关联的WSDL并将其保存在本地。长话短说,这已经完成了,但由于某种原因,在使用本地文件构建服务时,我在第一个导入的XSD中得到了一个“Content is not allowed in prolog”错误 我搜索过论坛,最常见的反应是在序言前隐藏字符,但我检查了十六进制代码,没有隐藏字符 这是WSDL序言 <?xml v

这是我第一次在这里寻求帮助,我希望有人能帮助我

我的任务是在完成后本地化我们的ant构建过程,以帮助缩短构建时间

这个想法类似于构建一个ant任务,下载与特定服务相关联的WSDL并将其保存在本地。长话短说,这已经完成了,但由于某种原因,在使用本地文件构建服务时,我在第一个导入的XSD中得到了一个“Content is not allowed in prolog”错误

我搜索过论坛,最常见的反应是在序言前隐藏字符,但我检查了十六进制代码,没有隐藏字符

这是WSDL序言

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
与远程版本相同

下载的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/WSDL,单击“编码”菜单并将其选择为UTF-8,然后检查是否有任何不必要的字符。请确保XSD/WSDL的第一行没有空格

在记事本++中打开XSD/WSDL,单击“编码”菜单并将其选择为UTF-8,然后检查是否有任何不必要的字符。请确保XSD/WSDL的第一行中没有空格。问题出在我正在修改的WSDL中

原始WSDL

   <xsd:import namespace="http://someNameSpace" 
         schemaLocation="http://someLocation/dir1/dir2/schema.xsd"/>

有问题的WSDL

   <xsd:import namespace="http://someNameSpace" 
         schemaLocation="dir1/dir2/schema.xsd"/>

工作WSDL

   <xsd:import namespace="http://someNameSpace" 
         schemaLocation="schema.xsd"/>


现在WSDL和XSD都在同一个目录中,没有子目录。

问题出在我正在修改的WSDL中

原始WSDL

   <xsd:import namespace="http://someNameSpace" 
         schemaLocation="http://someLocation/dir1/dir2/schema.xsd"/>

有问题的WSDL

   <xsd:import namespace="http://someNameSpace" 
         schemaLocation="dir1/dir2/schema.xsd"/>

工作WSDL

   <xsd:import namespace="http://someNameSpace" 
         schemaLocation="schema.xsd"/>


现在WSDL和XSD都在同一个目录中,没有子目录。

是的,我已经这样做了。这是十六进制的序言。3C3F786D6C2076657273696F6E3D2231 2E302220656E636F64696E673D227574 662D3822220737466E6416C6F6E653D 226E6F223F3我已经完成了。这是hex.3c3f786d6c2076657273696f6e3d231 2e302220656e636f64696e673d27574 662d382220736616e6416c6f6e653d 226e6f23f3eok中的序言我认为这一定与文件的保存方式有关,因为我刚刚用下载版本中的代码替换了现有本地XSD中的代码,它工作得很好…查看此链接-谢谢,我实际上刚刚找到了它。当我将所有模式放入与WSDL相同的文件夹并更改模式位置以匹配它时,我就将WSDL中的模式位置更改为“exampleschemas\example1\schema.xsd”。好的,我认为这一定与文件的保存方式有关,因为我刚刚用下载版本中的代码替换了现有本地XSD中的代码,它工作得很好…查看此链接-谢谢,我实际上刚刚找到了它。当我将所有模式放入与WSDL相同的文件夹并更改模式位置以匹配它时,我就将WSDL中的模式位置更改为“exampleschemas\example1\schema.xsd”。