public static void main(String[] args) throws SaxonApiException, IOException, URISyntaxException { ValidBaseURITest test = new ValidBaseURITest(); test.run(); }
public void dumpTree(XdmNode tree, String message) { NodeInfo treeNode = tree.getUnderlyingNode(); System.err.println(message); if (treeNode.getSystemId().equals(tree.getBaseURI().toASCIIString())) { System.err.println("Dumping tree: " + treeNode.getSystemId()); } else { System.err.println("Dumping tree:: " + treeNode.getSystemId() + ", " + tree.getBaseURI()); } XdmSequenceIterator iter = tree.axisIterator(Axis.CHILD); while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); dumpTreeNode(child, " "); } }
public void run() throws SaxonApiException { Processor processor = new Processor(true); SchemaManager manager = processor.getSchemaManager(); // No resolver here, there isn't one. DocumentBuilder builder = processor.newDocumentBuilder(); SAXSource source = new SAXSource(new InputSource("http://tests.xproc.org/tests/doc/compoundEntity.xml")); XdmNode document = builder.build(source); source = new SAXSource(new InputSource("http://tests.xproc.org/tests/doc/document.xsd")); XdmNode schema = builder.build(source); manager.load(schema.asSource()); XdmDestination destination = new XdmDestination(); Controller controller = new Controller(processor.getUnderlyingConfiguration()); Receiver receiver = destination.getReceiver(controller.getConfiguration()); PipelineConfiguration pipe = controller.makePipelineConfiguration(); pipe.setRecoverFromValidationErrors(false); receiver.setPipelineConfiguration(pipe); SchemaValidator validator = manager.newSchemaValidator(); validator.setDestination(destination); dumpTree(document, "Input"); validator.validate(document.asSource()); XdmNode valid = destination.getXdmNode(); dumpTree(valid, "Output"); }
private void dumpTreeNode(XdmNode node, String indent) { if (node.getNodeKind() == XdmNodeKind.ELEMENT) { System.err.println(indent + node.getNodeName() + ": " + node.getBaseURI()); XdmSequenceIterator iter = node.axisIterator(Axis.CHILD); while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); dumpTreeNode(child, indent + " "); } } } }