XML Schema Validaiton with dom\Writer.java

Q

How to perform XML Schema validation with dom\Writer.java provided in the Apache Xerces package?

✍: FYIcenter

A

You can perform XML Schema validation with the dom\Writer.java program provided in the Apache Xerces package as shown below.

Run the dom\Writer.java program with "-v -s" option to turn on XML Schema validation. If the input XML file does not meet the requirements of its Schema, you will see validation errors:

\fyicenter\xerces-2_11_0\samples>\fyicenter\jdk-1.8.0\bin\java 
   -cp .;..\xercesSamples.jar;..\xercesImpl.jar;..\xml-apis.jar 
   dom.Writer -v -s UserXsdError.xml
   
[Error] UserXsdError.xml:6:25: cvc-datatype-valid.1.2.1: 'ONE' is not a valid value for 'integer'.
[Error] UserXsdError.xml:6:25: cvc-type.3.1.3: The value 'ONE' of element 'fyi:ID' is not valid.
[Error] UserXsdError.xml:8:52: cvc-datatype-valid.1.2.1: '1970-01-01+00:01' is not a valid value for 'dateTime'.
[Error] UserXsdError.xml:8:52: cvc-type.3.1.3: The value '1970-01-01+00:01' of element 'fyi:BirthDate' is not valid.
<?xml version="1.0" encoding="UTF-8"?>
<fyi:User xmlns:fyi="http://fyicenter.com" xmlns:xsi="http://www.w3.org/2001/XML
Schema-instance" xsi:schemaLocation="http://fyicenter.com User.xsd">
    <fyi:ID>ONE</fyi:ID>
    <fyi:Name>Frank Y. Ivy</fyi:Name>
    <fyi:BirthDate>1970-01-01+00:01</fyi:BirthDate>
    <fyi:Sex>Male</fyi:Sex>
</fyi:User>

The XML file used in the above test is, UserXsdError.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) 2017 FYIcenter.com -->
<fyi:User xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:fyi="http://fyicenter.com"
  xsi:schemaLocation="http://fyicenter.com User.xsd">
    <fyi:ID>ONE</fyi:ID>
    <fyi:Name>Frank Y. Ivy</fyi:Name>
    <fyi:BirthDate>1970-01-01+00:01</fyi:BirthDate>
    <fyi:Sex>  Male</fyi:Sex>
</fyi:User>

The XML Schema file used in the above test is, User.xsd:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) 2017 FYIcenter.com -->
<xsd:schema
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:fyi="http://fyicenter.com"
   targetNamespace="http://fyicenter.com"
   elementFormDefault="qualified">

  <xsd:element name="User">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="ID" type="xsd:integer"/>
        <xsd:element name="Name" type="xsd:string"/>
        <xsd:element name="BirthDate" type="xsd:dateTime"/>
        <xsd:element name="Sex" type="fyi:sexType"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:simpleType name="sexType">
    <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="Male"/>
      <xsd:enumeration value="Femal"/>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>

 

Using Apache Xerces DOM Sample Programs

⇒⇒FAQ for Apache Xerces XML Parser

2017-11-11, 198👍, 0💬