From 92f7cb40b6ca1917bb351e6092ef8bf8c975791d Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 14 Dec 2012 11:59:54 +0100 Subject: Do Schema parsing in the Schema object rather than the Validator --- .../com/c2kernel/persistency/outcome/Schema.java | 24 ++++++++++++++++++++++ .../persistency/outcome/SchemaValidator.java | 24 ++-------------------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/c2kernel/persistency/outcome/Schema.java b/src/main/java/com/c2kernel/persistency/outcome/Schema.java index ee1797c..0538233 100644 --- a/src/main/java/com/c2kernel/persistency/outcome/Schema.java +++ b/src/main/java/com/c2kernel/persistency/outcome/Schema.java @@ -1,5 +1,12 @@ package com.c2kernel.persistency.outcome; +import java.io.IOException; +import java.io.StringReader; + +import org.exolab.castor.xml.schema.reader.SchemaReader; +import org.xml.sax.ErrorHandler; +import org.xml.sax.InputSource; + /** * @author Andrew Branson * @@ -15,6 +22,7 @@ public class Schema { public int docVersion; public boolean breakApart; public String schema; + public org.exolab.castor.xml.schema.Schema som; /** * @param docType @@ -30,4 +38,20 @@ public class Schema { this.breakApart = breakApart; this.schema = schema; } + + public Schema(String schema) { + this.schema = schema; } + + public org.exolab.castor.xml.schema.Schema parse(ErrorHandler errorHandler) throws IOException { + InputSource schemaSource = new InputSource(new StringReader(schema)); + SchemaReader mySchemaReader = new SchemaReader(schemaSource); + if (errorHandler!= null) { + mySchemaReader.setErrorHandler(errorHandler); + mySchemaReader.setValidation(true); + } + som = mySchemaReader.read(); + return som; + } + +} diff --git a/src/main/java/com/c2kernel/persistency/outcome/SchemaValidator.java b/src/main/java/com/c2kernel/persistency/outcome/SchemaValidator.java index be8564b..fea38b6 100644 --- a/src/main/java/com/c2kernel/persistency/outcome/SchemaValidator.java +++ b/src/main/java/com/c2kernel/persistency/outcome/SchemaValidator.java @@ -1,10 +1,6 @@ package com.c2kernel.persistency.outcome; import java.io.IOException; -import java.io.StringReader; - -import org.exolab.castor.xml.schema.reader.SchemaReader; -import org.xml.sax.InputSource; /************************************************************************** @@ -20,32 +16,16 @@ import org.xml.sax.InputSource; public class SchemaValidator extends OutcomeValidator { - org.exolab.castor.xml.schema.Schema castorSchema; - /** - * - */ - public SchemaValidator() { } - public org.exolab.castor.xml.schema.Schema getSOM() { - return castorSchema; - } - - /** - * - */ - @Override public synchronized String validate(String outcome) { errors = new StringBuffer(); + Schema schema = new Schema(outcome); try { - InputSource schemaSource = new InputSource(new StringReader(outcome)); - SchemaReader mySchemaReader = new SchemaReader(schemaSource); - mySchemaReader.setErrorHandler(this); - mySchemaReader.setValidation(true); - castorSchema = mySchemaReader.read(); + schema.parse(this); } catch (IOException e) { errors.append(e.getMessage()); } -- cgit v1.2.3