Ответ 1
http://membrane-soa.org имеет Java API для сравнения WSDL в своих SOA Model.
package sample.wsdl;
import java.util.List;
import com.predic8.wsdl.*;
import com.predic8.wsdl.diff.WsdlDiffGenerator;
import com.predic8.soamodel.Difference;
public class CompareWSDL {
public static void main(String[] args) {
compare();
}
private static void compare(){
WSDLParser parser = new WSDLParser();
Definitions wsdl1 = parser.parse("resources/diff/1/article.wsdl");
Definitions wsdl2 = parser.parse("resources/diff/2/article.wsdl");
WsdlDiffGenerator diffGen = new WsdlDiffGenerator(wsdl1, wsdl2);
List<Difference> lst = diffGen.compare();
for (Difference diff : lst) {
dumpDiff(diff, "");
}
}
private static void dumpDiff(Difference diff, String level) {
System.out.println(level + diff.getDescription());
for (Difference localDiff : diff.getDiffs()){
dumpDiff(localDiff, level + " ");
}
}
}
После выполнения вы получите результат, указанный в листинге 2. Это список различия между двумя документами WSDL.
Port ArticleServicePTPort removed.
Port ArticleServicePTPort2 added.
Operation create removed.
Operation create2 added.
Schema http://predic8.com/wsdl/material/ArticleService/1/ has changed:
Element createResponse has changed:
ComplexType has changed:
Sequence has changed:
Element NewElementForTest added.
Для примера выхода из инструмента http://www.service-repository.com/ предлагает инструмент онлайн-инструментария WSDL-компаратора который возвращает отчет о различиях между двумя WSDL. Отчет не является простым различием XML.