summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2012-12-14 11:59:54 +0100
committerAndrew Branson <andrew.branson@cern.ch>2012-12-14 11:59:54 +0100
commit92f7cb40b6ca1917bb351e6092ef8bf8c975791d (patch)
treeccf1ff1261948a26ca0366b276ed198dfced92c6
parent15cdcf54a2a8ec595a91f2885155d348706c05c6 (diff)
Do Schema parsing in the Schema object rather than the Validator
-rw-r--r--src/main/java/com/c2kernel/persistency/outcome/Schema.java24
-rw-r--r--src/main/java/com/c2kernel/persistency/outcome/SchemaValidator.java24
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());
}