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 /src/main/java/com/c2kernel/persistency/outcome/Schema.java | |
| parent | 15cdcf54a2a8ec595a91f2885155d348706c05c6 (diff) | |
Do Schema parsing in the Schema object rather than the Validator
Diffstat (limited to 'src/main/java/com/c2kernel/persistency/outcome/Schema.java')
| -rw-r--r-- | src/main/java/com/c2kernel/persistency/outcome/Schema.java | 24 |
1 files changed, 24 insertions, 0 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;
+ }
+
+}
|
