5 Şubat 2016 Cuma

Schema ve Validator Sınıfları

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;
}

Hiç yorum yok:

Yorum Gönder