diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2012-12-14 11:59:54 +0100 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2012-12-14 11:59:54 +0100 |
| commit | 92f7cb40b6ca1917bb351e6092ef8bf8c975791d (patch) | |
| tree | ccf1ff1261948a26ca0366b276ed198dfced92c6 | |
| parent | 15cdcf54a2a8ec595a91f2885155d348706c05c6 (diff) | |
Do Schema parsing in the Schema object rather than the Validator
| -rw-r--r-- | src/main/java/com/c2kernel/persistency/outcome/Schema.java | 24 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/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());
}
|
