Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

XMLDocument.validateContent(schema) returns "Element not completed: 'null'"

476565Jan 14 2008 — edited Jan 16 2008
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.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 13 2008
Added on Jan 14 2008
2 comments
2,205 views