Class XMLResolverConfiguration

java.lang.Object
org.xmlresolver.XMLResolverConfiguration
All Implemented Interfaces:
ResolverConfiguration

public class XMLResolverConfiguration extends Object implements ResolverConfiguration
Configures an XML resolver.

Many aspects of catalog processing can be configured. This class examines both system properties and the properties specified in a separate properties file. The initial list of catalog files can be provided as a property or directly when the configuration is created.

The following table lays out the features recognized by this class and the system properties and configuration file properties that can be used to specify them.

Resolver features and properties that set them
Feature System property File property Type
ResolverFeature.ACCESS_EXTERNAL_DOCUMENT xml.catalog.accessExternalDocument access-external-document String
ResolverFeature.ACCESS_EXTERNAL_ENTITY xml.catalog.accessExternalEntity access-external-entity String
ResolverFeature.ALLOW_CATALOG_PI xml.catalog.allowPI allow-oasis-xml-catalog-pi Boolean¹
ResolverFeature.ALWAYS_RESOLVE xml.catalog.alwaysResolve always-resolve Boolean¹
ResolverFeature.ARCHIVED_CATALOGS xml.catalog.archivedCatalogs archived-catalogs Boolean¹
ResolverFeature.CACHE_DIRECTORY xml.catalog.cache cache String
ResolverFeature.CACHE_UNDER_HOME xml.catalog.cacheUnderHome cache-under-home Boolean¹
ResolverFeature.CACHE_ENABLED xml.catalog.cacheEnabled cache-enabled Boolean¹
ResolverFeature.CATALOG_ADDITIONS xml.catalog.additions catalog-additions List of strings²
ResolverFeature.CATALOG_FILES xml.catalog.files catalogs List of strings²
ResolverFeature.CATALOG_LOADER_CLASS xml.catalog.catalogLoaderClass catalog-loader-class String
ResolverFeature.CLASSPATH_CATALOGS xml.catalog.classpathCatalogs classpath-catalogs String
ResolverFeature.DEFAULT_LOGGER_LOG_LEVEL xml.catalog.defaultLoggerLogLevel default-logger-log-level String
ResolverFeature.MASK_JAR_URIS xml.catalog.maskJarUris mask-jar-uris Boolean¹
ResolverFeature.MERGE_HTTPS xml.catalog.mergeHttps merge-https Boolean¹
ResolverFeature.PARSE_RDDL xml.catalog.parseRddl parse-rddl Boolean¹
ResolverFeature.PREFER_PROPERTY_FILE xml.catalog.preferPropertyFile prefer-property-file Boolean¹
ResolverFeature.PREFER_PUBLIC xml.catalog.prefer prefer "public" or "system
ResolverFeature.RESOLVER_LOGGER_CLASS xml.catalog.resolverLoggerClass resolver-logger-class String
ResolverFeature.SAXPARSERFACTORY_CLASS xml.catalog.saxParserFactoryClass saxparserfactory-class String
ResolverFeature.URI_FOR_SYSTEM xml.catalog.uriForSystem uri-for-system Boolean¹
ResolverFeature.XMLREADER_SUPPLIER - - Supplier<XMLReader>
¹ Any of "true", "yes", or "1" is true; everything else is false.
² The list of strings is semicolon delimited
³ Public is preferred if the value is "public", any other value is equivalent to "system".

Several additional features can only be set to objects at runtime and have no corresponding properties.

  • Constructor Details

    • XMLResolverConfiguration

      public XMLResolverConfiguration()
      Construct a default configuration.

      The default configuration uses system properties and searches the classpath for an xmlcatalog.properties file. It uses the settings found there to configure the resolver.

    • XMLResolverConfiguration

      public XMLResolverConfiguration(String catalogFiles)
      Construct a configuration from a delimited string of catalog files.

      The default configuration uses system properties and searches the classpath for an xmlcatalog.properties file. It uses the settings found there to configure the resolver, but replaces any list of catalog files found there with the catalog files provided in the constructor.

      Parameters:
      catalogFiles - A semi-colon (;) delimited list of catalog files
    • XMLResolverConfiguration

      public XMLResolverConfiguration(List<String> catalogFiles)
      Construct a configuration from a list of catalog files.

      The default configuration uses system properties and searches the classpath for an xmlcatalog.properties file. It uses the settings found there to configure the resolver, but replaces any list of catalog files found there with the catalog files provided in the constructor.

      Parameters:
      catalogFiles - A list of catalog files.
    • XMLResolverConfiguration

      public XMLResolverConfiguration(List<URL> propertyFiles, List<String> catalogFiles)
      Construct a resolver configuration with specific properties and catalog files.

      The default configuration uses system properties and the properties found in the first propertyFiles property file that it can read. (It uses at most one property file.) It uses those settings to configure the resolver, but replaces any list of catalog files found there with the catalog files provided in the constructor.

      Parameters:
      propertyFiles - A list of property files from which to attempt to load configuration properties.
      catalogFiles - A list of catalog files.
    • XMLResolverConfiguration

      public XMLResolverConfiguration(XMLResolverConfiguration current)
      A copying constructor.

      This constructor creates a new resolver configuration with the same properties as an existing configuration. It gets its own copy of the catalog file list and CatalogManager.

      Parameters:
      current - The configuration to copy.
  • Method Details

    • addCatalog

      public void addCatalog(String catalog)
      Add a catalog file to the list of catalogs.

      This adds a catalog file to the end of the list of catalogs. This file will be loaded by opening the specified file.

      Parameters:
      catalog - The catalog file.
    • addCatalog

      public void addCatalog(URI catalog, InputSource data)
      Add a catalog file to the list of catalogs.

      This adds a catalog file to the end of the list of catalogs. This file will be loaded by reading from the specified input source.

      Parameters:
      catalog - The catalog file.
      data - The input source that provides the catalog content.
      Throws:
      NullPointerException - if either catalog or data is null.
    • removeCatalog

      public boolean removeCatalog(String catalog)
      Remove a catalog from the list of catalogs.

      Removes the specified catalog from the list of catalogs (if it was present in the list).

      Parameters:
      catalog - The catalog file.
      Returns:
      True if the catalog was removed.
    • setFeature

      public <T> void setFeature(ResolverFeature<T> feature, T value)
      Set a configuration feature.

      Sets the specified feature to the specified value. Unknown features are ignored.

      Specified by:
      setFeature in interface ResolverConfiguration
      Type Parameters:
      T - A type appropriate for the feature.
      Parameters:
      feature - The feature.
      value - The new value.
      Throws:
      NullPointerException - if the value is null for features that cannot be null
    • getFeature

      public <T> T getFeature(ResolverFeature<T> feature)
      Return the value of a feature.

      Returns the value of the specified feature.

      Specified by:
      getFeature in interface ResolverConfiguration
      Type Parameters:
      T - A type appropriate to the feature.
      Parameters:
      feature - The feature or null if the feature is unknown.
      Returns:
      The feature value.
    • getFeatures

      public Iterator<ResolverFeature<?>> getFeatures()
      Iterate over all the known features.
      Specified by:
      getFeatures in interface ResolverConfiguration
      Returns:
      An iterator over all the known features.