Optimized Cartesian Product
Implementation technique to check whether a type is a legal restriction of its base in presence of XSDL 1.1 conditional declarations.
We realized an OCP prototype within Xerces-J 2.9.1. In Downloads
you may download both sources and binaries. We tested our implementation in Java 6 only.
In order to test our implementation, you may use our testsuite which can be run through a GUI. In order to do so, you may
- download our binary distribution Xerces-J-2.9.1-ocp-src.zip. Extract it in any folder. You will find two jars xerces-2.9.1-ocp.jar and resolver.jar. Please include both jars in your classpath.
- download a jar file for the GUI xerces-2.9.1-ocp-testsuite.jar, and please include it within your classpath
- download a zip file containing our testesuite testsuite.zip, and extract it in the folder you prefer. It contains, among the others, a file named
test.testSet. It is our testsuite.
java it.unibo.cs.cta.test.gui.TestsuiteUIMainFrame (please check again that all required jars are within your classpath. You may incude them directly within the command line, using the
-classpath option). Our GUI should start.
- from the GUI, select the file
Our testsuite supports three kinds of test:
- schema-check. For instance to check that every type alternatives but the last have a test attribute.
- cartesian-product. Such tests only write on your console the context-determined Type Tables and corresponding error conditions built by the OCP static phase.
- instance-validation. Such tests actually validate an instance document against a schema.
- Xerces-J-2.9.1-ocp-src.zip: source code.
- Xerces-J-2.9.1-ocp-bin.zip: binaries. It contains two jars: xerces-2.9.1-ocp.jar and resolver.jar.
- xerces-2.9.1-ocp-testsuite.jar: Jar containing a GUI to execute testsuites. The main class is
it.unibo.cs.cta.test.gui.TestsuiteUIMainFrame. Before launching, please make sure all jars within the binary distribution (or compiled from source code) are in your classpath.
- testsuite.zip: A testsuite for OCP. The main file is