1)javalearnersWithErrors.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<javalearners >
<learner age="30"><fname> Anilkumar </fname><lname>Chintha</lname></learner>
<learner age="1">
<fname>Rishitha</fname>
<lname>Chintha</lname>
</learner>
<learner age="34">
<fname>Sunil</fname>
<lname>Chintha</lname>
</learner>
</javalearners>
2)MyErrorHandler.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package xmlproject;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
/**
*
* @author Rishitha
*/
public class MyErrorHandler implements ErrorHandler{
@Override
public void warning(SAXParseException exception) throws SAXException {
System.out.println("Warning "+exception.getMessage()); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void error(SAXParseException exception) throws SAXException {
System.out.println("Error Anil"+exception.getMessage() );//To change body of generated methods, choose Tools | Templates.
throw exception;
}
@Override
public void fatalError(SAXParseException exception) throws SAXException {
System.out.println("fatalError "+exception.getMessage());
throw exception;
//To change body of generated methods, choose Tools | Templates.
}
}
3)XmlProjectWithValidator.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package xmlproject;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
*
* @author Rishitha
*/
public class XmlprojectWithValidator {
public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
// TODO code application logic here
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
fac.setIgnoringElementContentWhitespace(false);
fac.setIgnoringComments(true);
SchemaFactory schemaFactory
= SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
fac.setSchema(schemaFactory.newSchema(
new Source[]{new StreamSource("jlxsd.xsd")}));
DocumentBuilder bu = fac.newDocumentBuilder();
bu.setErrorHandler(new MyErrorHandler());
Document doc = bu.parse(new File("javalearnersWithErrors.xml"));
Element rootNode = doc.getDocumentElement();
NodeList list = rootNode.getElementsByTagName("learner");
for (int i = 0; i < list.getLength(); i++) {
Element learner = (Element) list.item(i);
NodeList learnerEleFirstList = learner.getElementsByTagName("fname");
Node fnameNode = learnerEleFirstList.item(0);
System.out.println(fnameNode.getFirstChild().getNodeValue());
NodeList learnerEleLastList = learner.getElementsByTagName("lname");
Node lnameNode = learnerEleLastList.item(0);
System.out.println(lnameNode.getFirstChild().getNodeValue());
}
}
}
4)jlxsd.xsd
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="javalearners">
<xs:complexType>
<xs:sequence>
<xs:element name="learner" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="fname"/>
<xs:element type="xs:string" name="lname"/>
</xs:sequence>
<xs:attribute type="xs:byte" name="age" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
If you want to see errors... remove some element or make a mistake in xml.
Organize the above files as given in below screen shot.
Also add xml and xsd in the root of xmlproject.

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<javalearners >
<learner age="30"><fname> Anilkumar </fname><lname>Chintha</lname></learner>
<learner age="1">
<fname>Rishitha</fname>
<lname>Chintha</lname>
</learner>
<learner age="34">
<fname>Sunil</fname>
<lname>Chintha</lname>
</learner>
</javalearners>
2)MyErrorHandler.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package xmlproject;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
/**
*
* @author Rishitha
*/
public class MyErrorHandler implements ErrorHandler{
@Override
public void warning(SAXParseException exception) throws SAXException {
System.out.println("Warning "+exception.getMessage()); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void error(SAXParseException exception) throws SAXException {
System.out.println("Error Anil"+exception.getMessage() );//To change body of generated methods, choose Tools | Templates.
throw exception;
}
@Override
public void fatalError(SAXParseException exception) throws SAXException {
System.out.println("fatalError "+exception.getMessage());
throw exception;
//To change body of generated methods, choose Tools | Templates.
}
}
3)XmlProjectWithValidator.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package xmlproject;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
*
* @author Rishitha
*/
public class XmlprojectWithValidator {
public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
// TODO code application logic here
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
fac.setIgnoringElementContentWhitespace(false);
fac.setIgnoringComments(true);
SchemaFactory schemaFactory
= SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
fac.setSchema(schemaFactory.newSchema(
new Source[]{new StreamSource("jlxsd.xsd")}));
DocumentBuilder bu = fac.newDocumentBuilder();
bu.setErrorHandler(new MyErrorHandler());
Document doc = bu.parse(new File("javalearnersWithErrors.xml"));
Element rootNode = doc.getDocumentElement();
NodeList list = rootNode.getElementsByTagName("learner");
for (int i = 0; i < list.getLength(); i++) {
Element learner = (Element) list.item(i);
NodeList learnerEleFirstList = learner.getElementsByTagName("fname");
Node fnameNode = learnerEleFirstList.item(0);
System.out.println(fnameNode.getFirstChild().getNodeValue());
NodeList learnerEleLastList = learner.getElementsByTagName("lname");
Node lnameNode = learnerEleLastList.item(0);
System.out.println(lnameNode.getFirstChild().getNodeValue());
}
}
}
4)jlxsd.xsd
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="javalearners">
<xs:complexType>
<xs:sequence>
<xs:element name="learner" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="fname"/>
<xs:element type="xs:string" name="lname"/>
</xs:sequence>
<xs:attribute type="xs:byte" name="age" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
If you want to see errors... remove some element or make a mistake in xml.
Organize the above files as given in below screen shot.
Also add xml and xsd in the root of xmlproject.
No comments:
Post a Comment