[utilities COMMIT] /java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java

noreply at shibboleth.net noreply at shibboleth.net
Mon Jan 20 13:30:42 EST 2014


Author: scantor
Date: Mon Jan 20 13:30:42 2014
New Revision: 523

URL: http://svn.shibboleth.net/view/utilities?rev=523&view=rev
Log:
Streamline use of enum and schema language handling.

Modified:
    java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java

Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java?rev=523&r1=522&r2=523&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/SchemaBuilder.java Mon Jan 20 13:30:42 2014
@@ -58,31 +58,30 @@
     public static enum SchemaLanguage {
 
         /** W3 XML Schema. */
-        XML("xsd"),
+        XML(XMLConstants.W3C_XML_SCHEMA_NS_URI),
 
         /** OASIS RELAX NG Schema. */
-        RELAX("rng");
-
-        /** File extension used for the schema files. */
-        @Nonnull private String schemaFileExtension;
-
+        RELAX(XMLConstants.RELAXNG_NS_URI);
+
+        /** Constant for use with {@link SchemaFactory#newInstance(String)}. */
+        @Nonnull private String schemaFactoryURI;
+        
         /**
          * Constructor.
          * 
-         * @param extension file extension used for the schema files
+         * @param uri schema factory identifier
          */
-        private SchemaLanguage(@Nonnull @NotEmpty String extension) {
-            schemaFileExtension = Constraint.isNotNull(StringSupport.trimOrNull(extension),
-                    "Extension cannot be null or empty");
+        private SchemaLanguage(@Nonnull @NotEmpty String uri) {
+            schemaFactoryURI = Constraint.isNotNull(StringSupport.trimOrNull(uri), "URI cannot be null or empty");
         }
 
         /**
-         * Gets the file extension used for the schema files.
+         * Get a {@link SchemaFactory} instance for a schema language.
          * 
-         * @return file extension used for the schema files
+         * @return  a factory instance
          */
-        @Nonnull @NotEmpty public String getSchemaFileExtension() {
-            return schemaFileExtension;
+        @Nonnull public SchemaFactory getSchemaFactory() {
+            return SchemaFactory.newInstance(schemaFactoryURI);
         }
     };
 
@@ -250,12 +249,7 @@
     @Nonnull public Schema buildSchema() throws SAXException {
         Constraint.isNotEmpty(sources, "No schema sources specified");
 
-        final SchemaFactory schemaFactory;
-        if (schemaLang == SchemaLanguage.XML) {
-            schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-        } else {
-            schemaFactory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI);
-        }
+        final SchemaFactory schemaFactory = schemaLang.getSchemaFactory();
         
         if (features.isEmpty()) {
             schemaFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);



More information about the commits mailing list