Java プロジェクトのコピーを 2 つ持っています。
このメソッドを実行した後:
private void editArtifactWSDL() {
try {
File outputfile = new File(
"C:\\WorkSpace\\CMU\\WebContent\\WEB-INF\\bpelfiles\\process\\Artifacts.wsdl");
File skeletonFile = new File(
"C:\\WorkSpace\\CMU\\WebContent\\WEB-INF\\bpelfiles\\SkeletonArtifacts.wsdl");
DocumentBuilderFactory docFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(skeletonFile);
Element definitionsElement = doc.getDocumentElement();
// xmlns attributes
editDefinitionsElementToArtifact(doc, definitionsElement);
// partnerLinkType elements
appendPartnerLinkTypeElementsToArtifact(doc, definitionsElement);
// import elements
appendImportElementsToArtifact(doc, definitionsElement);
// write the content into xml file
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(outputfile);
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(
"{http://xml.apache.org/xslt}indent-amount", "2");
transformer.transform(source, result);
System.out.println("Artifact.wsdl saved!");
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
} catch (TransformerException tfe) {
tfe.printStackTrace();
} catch (SAXException sxe) {
sxe.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
プロジェクトの1つで、「クリーン」になりArtifacts.wsdl
ます。他のプロジェクトでは xmlns=""
、いくつかの要素に追加されます。
SkeletonArtifacts.wsdl はまったく同じです ( http://www.diffnow.com/で比較)
では、このランダムな動作の理由は何でしょうか。また、xmlns 属性を取り除く必要がありますか?