Hello all. What differences between 2 XMLDocument's (created manually and through DOMParser) for XMLDocument.validateContent()? xmlparserv2.jar from Oracle 10.2.0.3.
import oracle.xml.parser.schema.XMLSchema;
import oracle.xml.parser.schema.XSDBuilder;
import oracle.xml.parser.v2.DOMParser;
import oracle.xml.parser.v2.XMLDocument;
import oracle.xml.parser.v2.XMLParseException;
import org.w3c.dom.Element;
import org.xml.sax.InputSource;
import java.io.StringReader;
public class DomValidateTest {
public static void main(String[] args)
throws Exception {
// Schema
XSDBuilder builder = new XSDBuilder();
InputSource schemaSource = new InputSource(
new StringReader(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n" +
" <xs:element name=\"root\" nillable=\"false\">\n" +
" <xs:complexType>\n" +
" <xs:sequence>\n" +
" <xs:element name=\"value\" type=\"xs:string\" nillable=\"false\"/>\n" +
" </xs:sequence>\n" +
" </xs:complexType>\n" +
" </xs:element>\n" +
"</xs:schema>"
)
);
XMLSchema schema = builder.build(schemaSource);
// First document
XMLDocument doc = new XMLDocument();
Element rootElement = doc.createElement("root");
doc.appendChild(rootElement);
rootElement.appendChild(doc.createElement("value"));
doc.print(System.out);
try {
doc.validateContent(schema);
System.out.println("document validation succeed.");
} catch (XMLParseException e) {
System.err.println("document validation error: " + e.getMessage());
}
// Second document
DOMParser parser = new DOMParser();
parser.parse(new StringReader("<root><value/></root>"));
XMLDocument doc2 = parser.getDocument();
doc2.print(System.out);
try {
doc2.validateContent(schema);
System.out.println("document2 validation succeed.");
} catch (XMLParseException e) {
System.err.println("document2 validation error: " + e.getMessage());
}
}
}
Output:
<root>
<value/>
</root>
document validation error: Element not completed: 'null'
<root>
<value/>
</root>
document2 validation succeed.