Question

maybe a stupid question but I cannot find a way to specify an xml-model tag in my XML output with java DOM. In particular, I'd like that the output XML has the following starting lines:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="URL_TO_MY_RNG_FILE" schematypens="http://relaxng.org/ns/structure/1.0"?>
<root_node>
...
</root_node>

I have also specified the schema in the document factory in this way:

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
System.setProperty(SchemaFactory.class.getName() + ":" + XMLConstants.RELAXNG_NS_URI, "com.thaiopensource.relaxng.jaxp.XMLSyntaxSchemaFactory");
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
Schema schema = schemaFactory.newSchema(new URL("URL_TO_MY_RNG_FILE"));
docFactory.setSchema(schema);
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
...

but it seems that it is used only to validate the produced XML and that the XML-Model does not appear in the output XML. Is this the way or I'm just totally wrong? Any suggestion?

Thank you

Was it helpful?

Solution

It might help you to know that the xml-model "tag" is actually a "processing instruction". You'll find methods in the DOM library for creating processing instructions and attaching them to the document node.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top