SchemaFactory Sınıfı
newInstance metodu
Factory şöyle
yaratılır.
SchemaFactory f = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Şöyle de
yapabilirdik.
SchemaFactory factory =
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
newSchema metodu
XSD dosyasını yüklemek için kullanılır. Dosyadan yüklemek için şöyle yaparız.
Schema schema = factory.newSchema(new File("/tmp/checkxsd.xsd"));
Stream'den yüklemek için şöyle yaparız.
InputStream xsd = ...;
Schema schema = factory.newSchema(new StreamSource(xsd));
String'den yükleme için şöyle yaparız.
Schema schema = factory.newSchema(new StreamSource(new StringReader(xsd)))
Schema Sınıfı
newValidator metodu
Şöyle
yaparız.
Validator validator = schema.newValidator();
Validator Sınıfı
setErrorHandler metodu
Bir ErrorHandler sınıfı
tanımlarız
public class LoggingErrorHandler implements ErrorHandler {
@Override
public void warning(SAXParseException exc) {..}
@Override
public void error(SAXParseException exc) {...}
@Override
public void fatalError(SAXParseException exc) throws SAXParseException {...}
}
Bu sınıfı Validator nesnesine
veririz.
LoggingErrorHandler errorHandler = new LoggingErrorHandler();
validator.setErrorHandler(errorHandler);
validate metodu
Verilen XML'i
doğrular.
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new File("/home/my-pc/MyXMLFile.xml"))
Şöyle de
yapabiliriz.
InputStream xml = ...;
Validator validator = schema.newValidator();
validator.validate(new StreamSource(xml));
Eğer hata varsa exception
atar.
Validator validator = schema.newValidator();
Source source = new StreamSource(myXmlFile);
try {
validator.validate(source);
return null;
}catch (SAXException ex) {
String validationMessage = ex.getMessage();
return validationMessage;
}