Hi mukul and Michael,
  
sorry for this communication gap i was on vacation.well thanks for your time 
and reply...but problem is; In our system we need to capture all th well formed 
errors in one go. getting one fatal error is not acceptable as per our 
requirement.

it will be a great help if you can let me know where i am doing wrong for this 
(need urgent solution) or atleast let me know where can i find solution. 
 
The (relevant portion of the) XML document follows:(with two well formed 
errors)***************
<?xml version="1.0" encoding="UTF-8"?>
<rootDirMapping>
     <rootDir>AppData</rootDir>
     <mappingFile>MappingFiles</mappingFile>
     <schemaFile>SchemaFiles<schemaFile>
     <validationHierarchy>1hierarchy<validationHierarchy>
     <database>database</database>
</rootDirMapping>
The (relevant portion of the) XML schema follows:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
xmlns:xs="http://www.w3.org/2001/XMLSchema";>
     <xs:element name="rootDirMapping">
          <xs:complexType>
               <xs:sequence>
                    <xs:element name="rootDir" type="xs:string" />
                    <xs:element name="mappingFile" type="xs:string" />
                    <xs:element name="schemaFile" type="xs:string" />
                    <xs:element name="validationHierarchy" type="xs:string" />
                    <xs:element name="database" type="xs:string" />
               </xs:sequence>
          </xs:complexType>
     </xs:element>
</xs:schema>
************************************************************* 
The (relevant portion of the) Java Code follows:
public static boolean validateWithSchema(String XMLFile, String Schema){
           boolean result = true;
           long startTime = System.currentTimeMillis();
           // Instantiate the DOM parser.
           DOMParser parser = new DOMParser();
           // set the features
           try{
           parser.setFeature("http://xml.org/sax/features/namespaces",true);
           parser.setFeature("http://xml.org/sax/features/validation",true);
           
parser.setFeature("http://apache.org/xml/features/validation/schema",true);
           
parser.setFeature("http://apache.org/xml/features/validation/schema-full-checking",true);
           
parser.setFeature("http://apache.org/xml/features/continue-after-fatal-error";, 
true);
           
parser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",Schema);
           // myErrorHandler is a descendant of ErrorHandler, it should be set 
here to be able to catch parse errors
           forgivingErrorHandler hndl = new forgivingErrorHandler();
           parser.setErrorHandler(hndl);
           } catch (SAXNotSupportedException ex){
                System.out.println("SAXNotSupportedException Exception");
           } catch (SAXNotRecognizedException ex){
                System.out.println("SAXNotRecognizedException Exception");
           }
           // parse the xml file, the errorhandler class has callbacks,
           // so those will be called automatically there is a parse error
           try{
                parser.parse(XMLFile);
              //System.out.println("Parsed Successfully by DOM Parser");
           } catch (org.xml.sax.SAXException ex){
                System.out.println("SAXException Exception");
              ex.printStackTrace();
           } catch (java.io.IOException ex){
                System.out.println("IOException Exception");
           }
          return result;
          }
The (relevant portion of the) Java Code for Error Handler follows:
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;

public class forgivingErrorHandler implements org.xml.sax.ErrorHandler {
     
     public forgivingErrorHandler() {}
     public void error(org.xml.sax.SAXParseException err) throws SAXException {
          FileWriter fstream;
          try {
               String 
fs="D:\\WORKSPACE\\xmlValidation\\ExceptionLogs\\Errors.txt";
               fstream = new FileWriter(fs,true);
               PrintWriter out = new PrintWriter(fstream);
               out.write("Exception 
at:"+err.getLineNumber()+"***"+err.getMessage()+"\n\n\n");
               out.close();
          } catch (IOException e) {
               e.printStackTrace();
          }
          
     }

     public void fatalError(org.xml.sax.SAXParseException fe) throws 
SAXException {
          FileWriter fstream;
          try {
               String 
fs="D:\\WORKSPACE\\xmlValidation\\ExceptionLogs\\FatalErrors.txt";
               fstream = new FileWriter(fs,true);
               PrintWriter out = new PrintWriter(fstream);
               out.write("Exception 
at:"+fe.getLineNumber()+"***"+fe.getMessage()+"\n\n\n");
               out.close();
          } catch (IOException e) {
               e.printStackTrace();
          }
          
     }

     public void warning(org.xml.sax.SAXParseException war) throws SAXException 
{
          FileWriter fstream;
          try {
               fstream = new 
FileWriter("D:\\WORKSPACE\\xmlValidation\\ExceptionLogs\\Warnings.txt",true);
               PrintWriter out = new PrintWriter(fstream);
               out.write("Exception 
at:"+war.getLineNumber()+"***"+war.getMessage()+"\n\n\n");
               out.close();
          } catch (IOException e) {
               System.out.println("Here are we in the Warning section....");
               e.printStackTrace();
          }
          
     }
     
     
}

I have put xml-apis.jar, xercesImpl.jar, serializer.jar, resolver.jar at build 
path.

Unfortunately, when I try to validate the above XML document against the 
Schema, it throws errors as I explained above… only one fatal error.
Errors that I got*****************************
Exception at:8***The element type "validationHierarchy" must be terminated by 
the matching end-tag "</validationHierarchy>".

Exception at:8***The end-tag for element type "validationHierarchy" must end 
with a '>' delimiter.

Exception at:9***XML document structures must start and end within the same 
entity.

Exception at:-1***Premature end of file.
*************************

it will be a great help if you can let me know where i am doing wrong for this 
(need urgent solution) or atleast let me know where can i find solution. 

Thanks
Vineet Rajput
Software Engineer 
Snap-On Business Solution
Logix Techno Park,
Noida,INDIA












Reply via email to