Compare XML Schema Java API
The following listing shows how to compare two XML Schema documents with Java and the Membrane SOA Model.
package sample.schema;
import java.util.List;
import com.predic8.schema.Schema;
import com.predic8.schema.SchemaParser;
import com.predic8.schema.diff.SchemaDiffGenerator;
import com.predic8.soamodel.Difference;
public class CompareSchema {
public static void main(String[] args) {
compare();
}
private static void compare(){
SchemaParser parser = new SchemaParser();
Schema schema1 = parser.parse("samples/diff/original/article.xsd");
Schema schema2 = parser.parse("samples/diff/modified/article.xsd");
SchemaDiffGenerator diffGen = new SchemaDiffGenerator(schema1, schema2);
List<Difference> lst = diffGen.compare();
for (Difference diff : lst) {
System.out.println(diff.dump());
}
}
}
Listing 1: CompareSchema.java
After executing you get the output shown in listing 2. It is a List of differences between the two Schema documents.
Element createResponse has changed:
ComplexType has changed:
Sequence has changed:
Element NewElementForTest added.
ComplexType GetAllType has changed:
Annotation removed.
Imported schema http://predic8.com/material/1/ has changed:
Element manufacturer added.
ComplexType ArticleType has changed:
Annotation added.
Sequence has changed:
Position of element name changed from 1 to 2.
Position of element description changed from 2 to 3.
Position of element price changed from 3 to 5.
Position of element id changed from 4 to 1.
Element availability added.
Imported schema http://predic8.com/common/1/ has changed:
ComplexType PersonType has changed:
Sequence has changed:
Element id has changed:
The type of element 'id' has changed from xsd:string to tns:IdentifierType.