Можно упростить EnforcePrimitiveType
метод при помощи typeof(PrimitiveDataType).IsPrimitive
свойство. Я пропускаю что-то?
Предполагая Java 5 или более поздней версии, установите схему на SAXParserFactory :
SchemaFactory schemaFactory = SchemaFactory
.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(new File("myschema.xsd"));
SAXParserFactory saxFactory = SAXParserFactory.newInstance();
saxFactory.setSchema(schema);
SAXParser parser = saxFactory.newSAXParser();
parser.parse("data.xml", new DefaultHandler() {
// TODO: other handler methods
@Override
public void error(SAXParseException e) throws SAXException {
throw e;
}
});
Вы обрабатываете ошибки проверки, переопределяя метод ошибки в вашем обработчике и действовать так, как считаете нужным.