Click here to Skip to main content
15,867,946 members
Please Sign up or sign in to vote.
3.00/5 (2 votes)
See more:
Hi I need to develop a validator for a large xml agains xsd.I've developed it..But now requirement changed. Now i need partial xml validator..which means it should return true though xml validated partially..

For example
XML
<Retail>

<product>
</product>

<product>
</product>

<product>
</product>

</Retail>


In the above code..even the two products are right validator should return true.

The java validator which i've used

Java
package com.xmlpack;
import java.io.File;
import java.io.IOException;
import javax.xml.XMLConstants;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.*;
import org.xml.sax.SAXException;

public class SampleXmlValidator  {

	public static void main(String args[]) throws SAXException, IOException {

		// Construct a StreamSource from a File.
		Source xmlFile = new StreamSource(new File(
				"D:/SampleXML/sample/src/com/xml/product.xml"));
		// SchemaFactory is a schema compiler. It reads external representations
		// of schemas and prepares them for validation.
		SchemaFactory schemaFactory = SchemaFactory
				.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

		// This object represents a set of constraints that can be checked/
		// enforced against an XML document.
		Schema schema = schemaFactory.newSchema(new File(
				"D:/SampleXML/sample/src/com/xsd/product.xsd"));

		// A processor that checks an XML document against Schema.
		Validator validator = schema.newValidator();
	
		try {
			validator.validate(xmlFile);
			System.out.println(xmlFile.getSystemId() + " is valid");
		} catch (SAXException e) {
			System.out.println(xmlFile.getSystemId() + " is NOT valid");
			System.out.println("Reason: " + e.getLocalizedMessage());
		}
	}
}
Posted
Updated 7-Aug-12 22:40pm
v2
Comments
barneyman 8-Aug-12 0:03am    
The point about XSDs is that document passes, or doesn't there's no such thing as 'partial' validation - maybe you want to look at introducing child namespaces and other XSDs??

1 solution

 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900