com.ihr.xbrl.om

## Class DTSContainer

- java.lang.Object
- - com.ihr.xbrl.om.DTSContainer

- All Implemented Interfaces:
    Stopable, java.io.Serializable

      public class DTSContainer
      extends java.lang.Object
      implements Stopable, java.io.Serializable

  The DTSContainer is the root class that ties all pieces in a DTS together

  One instance of a DTSContainer is required on the creator of almost every object in this API.

  You can obtain the DTSContainer on every object derived from `XMLFragment`

  Correspondence table between objects in the XBRL Infoset and this API

  Class | Infoset Object
  --- | ---
  `DTSContainer` | 2.2.1 DTS Information Item
  `XBRLDocument` | 2.2.2 XBRL Document Information Item
  `XBRLTaxonomy` | 2.2.3 XBRL Taxonomy Information Item
  `XBRLImport` | 2.2.4 XBRL Imported XBRL Taxonomy Information Item
  `XBRLRoleType` | 2.2.5 XBRL Role Type Information Item
  `XBRLArcroleType` | 2.2.6 XBRL Arcrole Type Information Item
  `XBRLUsedOn` | 2.2.7 XBRL Used On Information Item
  `XMLElementDefinition` | 2.2.8 XBRL Concept Information Item
  `XBRLItem` | 2.2.9 XBRL Item Information Item
  `XBRLTuple` | 2.2.10 XBRL Tuple Information Item
  `XBRLLinkbase` | 2.2.11 XBRL Linkbase Information Item
  `XBRLExtendedLink` | 2.2.12 XBRL Extended Link Information Item
  `XBRLDocumentation` | 2.2.13 XBRL Documentation Information Item
  `XBRLRelationship` | 2.2.14 XBRL Relationship Information Item
  `XBRLResource` | 2.2.15 XBRL Resource Information Item

  The DTSContainer implements the Stopable interface in order to allow the GUI to request the cancellation of the operation of opening a DTS.

  Extending the available processors:

  The available set of XBRL processors is extensible. Processors are discovered using factories. A factory is a class that creates the processor when the processor is needed for a specific task such as validation of a DTS.

  All factories must implement the `XBRLProcessorFactory` interface.

  Processor factories are loaded during the static initialization of the DTSContainer class. It is possible creating additional factories to be registered during the static initialization according to the following rules:

  - In a resource available in the classpath called RSXBRLMANIFEST/xbrlprocessors.properties a line with a property named "processor-factories" whose value is a comma separated list of processor factory classes, and
  - The -Dxbrl.processors system property may contain a comma separated list of processor factory classes, and
  - Applications may call the `registerProcessor(String, XBRLPlugInProcessor)` method on this class
  It is not possible to override standard processor names (Core XBRL 2.1, Dimensions and Formula)

  Extending the available functions in the formula processor:

  Custom function factories are loaded during the static initialization of the DTSContainer class. It is possible creating additional factories to be registered during the static initialization according to the following rules:

  - In a resource available in the classpath called RSXBRLMANIFEST/customlibraries.properties a line with a property named "library-factories" whose value is a comma separated list of library factory classes, and
  - The -Dxbrl.libraries system property may contain a comma separated list of library factory classes, and
  - Applications may call the `XBRLFormulaProcessor.addCustomFunctionLibrary(XBRLRSCustomFunctionLibrary)`
  Author:
    Ignacio
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `DTSContainer.IteratorConcepts` This class joins an iterator over XBRLItem and another iterator over XBRLTuple together into a single Iterator over XMLElementDefinition objects.
    `static class` | `DTSContainer.ProcessorAndSchemaCompiler` Helper class to encapsulate the saxonica Processor of this DTSContainer and a saxonica SchemaCompiler together.
    `static class` | `DTSContainer.Status` The Enum Status.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ADQUIRE_EXTENDED_LOCK` Constant to be used as flag for `specialValidation(SpecialValidationProcess, int, Object[])` the calling process will adquire the lock for the extended links so it can create temporary extended links that will be deleted before exiting validation.
    `static int` | `ADQUIRE_ROLETYPES_BY_EXT_LINK_LOCK` Constant to be used as flag for `specialValidation(SpecialValidationProcess, int, Object[])` The calling process will adquire the lock for the roles by extended link.
    `static java.lang.String` | `ALWAYS_ADD_ref_2006_02_27_xsd_SCHEMA_TO_DTS` ALWAYS_ADD_ref_2006_02_27_xsd_SCHEMA_TO_DTS is defined as "http://www.reportingstandard.com/properties/always_add_ref_2006_02_27_schema_to_DTS" Possible value is a string that can be converted into a boolean "true" or "false" Default value is "false" Some taxonomies does not incorporate the URL of the reference schema http://www.xbrl.org/2006/ref-2006-02-27.xsd to the DTS but use its namespace in the reference linkbase instead.
    `static java.lang.String` | `AUTHENTICATOR_DELEGATE_INSTANCE` The AUTHENTICATOR_DELEGATE_INSTANCE property is the instance of an object implementing java.net.Authenticator that will be registered as the default authenticator.
    `static java.lang.String` | `CONSIDER_COMPARISON_WITH_NUMBER_WITH_PRECISION_ZERO_AS_INCONSISTENCY` CONSIDER_COMPARISON_WITH_NUMBER_WITH_PRECISION_ZERO_AS_INCONSISTENCY is defined as "http://www.reportingstandard.com/properties/compare-with-number-p-zero-is-inconsistency" Possible value is a String that can be converted into a boolean "true" or "false" Default value is "false" According to the XBRL 2.1 specification in the simple equation A = B + C, if A is zero with precision 0 the comparison must return true regardless the value of B + C.
    `static java.lang.String` | `CONSIDER_DUPLICATES_AS_INCONSISTENCIES` CONSIDER_DUPLICATES_AS_INCONSISTENCIES is defined as "http://www.reportingstandard.com/properties/duplicate-is-inconsistency" Possible value is a String that can be converted into a boolean "true" or "false" Default value is "false" According to the XBRL 2.1 specification duplicates must be ignored for calculation checking.
    `static java.lang.String` | `DEFAULT_DIMENSIONS_APPLICANCY` The DEFAULT_DIMENSIONS_APPLICANCY property indicates how the Formula Functions (this does not affects Dimensions Validation) returns the value of a Fact item when the Fact item is NOT reported for a dimension that contains a default value.
    `static java.lang.String` | `DEFAULTS_ALWAYS_APPLY` Possible value for the DEFAULT_DIMENSIONS_APPLICANCY property.
    `static java.lang.String` | `DEFAULTS_NOT_APPLY` Possible value for the DEFAULT_DIMENSIONS_APPLICANCY property.
    `static java.lang.String` | `DTS_DISCOVERY_ALLOWSPACESONURIS` Spaces are not allowed in the value space of an URI, but some software vendors failed to implement this rule and this means there are URIs with spaces in some taxonomies (at the SEC there are some... and taxonomies in asian countries might also contain space too).
    `static java.lang.String` | `DTS_DISCOVERY_ON_DIFFERENT_FILE_NAMES` The DTS_DISCOVERY_ON_DIFFERENT_FILE_NAMES property specifies how the processor reacts when a reference to a file differs from the real file name on the file system but the file subsystem resolves to the same file name.
    `static java.lang.String` | `DTS_DISCOVERY_PRELOAD_OFFICIAL_SCHEMAS` The DTS_DISCOVERY_PRELOAD_OFFICIAL_SCHEMAS property is used internally by the processor to decide if, after creating a new DTSContainer instance, the official schemas from XBRL International will be loaded in the XML processor.
    `static java.lang.String` | `DTS_DISCOVERY_TRUST_NAMESPACES_ONLY` The DTS_DISCOVERY_TRUST_NAMESPACES_ONLY property is used internally by the processor to decide about the strategy to load or reject a new schema will be loaded into the processor based on the new schema target namespace or in both, the target namespace and the schema location.
    `static java.lang.String` | `DTS_PROXY_HEADER` The DTS_PROXY_HEADER property is the head of the following three properties: DTS_PROXY_HEADER/address/{n} indicates the proxy address DTS_PROXY_HEADER/port/{n} indicates the proxy port number (no defaults are recognized) DTS_PROXY_HEADER/type/{n} indicates the proxy type "HTTP" or "SOCKS" are recognized types.
    `static java.lang.String` | `DTS_RESOLVER` The DTS_RESOLVER property is used in order to add additional DTS URI resolvers to the default ones after the DTS configuration process has been finished.
    `static java.lang.String` | `DTS_SHOW_EXACTITUDE_DETAILS` The DTS_SHOW_EXACTITUDE_DETAILS property controls how the values for the calculation inconsistencies are converted to strings.
    `static java.lang.String` | `DTS_STORE_CACHE_ENABLE` The DTS_STORE_CACHE_ENABLE property is used to enable or disable the use of a dynamic cache.
    `static java.lang.String` | `DTS_STORE_CACHE_PATH` if this property is set, during the DTS discovery process, when a file comes from the Internet, a copy of the file will be written to a directory down on this folder.
    `static java.lang.String` | `DTS_THIN` The DTS_THIN property liberates internal resources that can be obtained back from the original XML nodes and reduces the DTS memory footprint.
    `static java.lang.String` | `ERROR_PROPERTY_VALUE` This is set to the constant value "error".
    `static int` | `FAST` FAST is a constant for the `mode` parameter in the `isInstanceOfThisDTS(Source, int)` function.
    `static java.lang.String` | `FORMULA_PROCESSOR_DEFAULT_MESSAGE_ROLE` The FORMULA_PROCESSOR_DEFAULT_MESSAGE_ROLE property indicates the default role URI string that will be used for the resolution of the winning message when no role (null) is indicated or when no message is found for the selected role (second opportunity).
    `static java.lang.String` | `FORMULA_PROCESSOR_ENABLE_ASSERTION_MESSAGE_EXTENSIONS` The FORMULA_PROCESSOR_ENABLE_ASSERTION_MESSAGE_EXTENSIONS property indicates if the processor will calculate and return custom messages during the evaluation of assertions.
    `static java.lang.String` | `FORMULA_PROCESSOR_EXCLUSION_FILE` The FORMULA_PROCESSOR_EXLUSION_FILE property can be set to a file name (using URI notation) that may contain formula or assertion identifiers that the processor will skip evaluation.
    `static java.lang.String` | `FORMULA_PROCESSOR_FILTER_ORDER_CLASS` The FORMULA_PROCESSOR_FILTER_ORDER_CLASS property indicates the name of a class that must implement the XBRLFilterOrderTool interface.
    `static java.lang.String` | `FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE` The FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE property contains a value 'true' or 'false' that defines the behavior of the XPath expression evaluation for General Variables.
    `static java.lang.String` | `FORMULA_PROCESSOR_IGNORE_ASSERTION_NOT_SATISFIED` The FORMULA_PROCESSOR_IGNORE_ASSERTION_NOT_SATISFIED property indicates if the evaluation of assertions with "assertion not satisfied" result will generate a message that will be added to the validation report or if the message will not be generated at all.
    `static java.lang.String` | `FORMULA_PROCESSOR_IGNORE_ASSERTION_SATISFIED` The FORMULA_PROCESSOR_IGNORE_ASSERTION_SATISFIED property indicates if the evaluation of assertions with "assertion satisfied" result will generate a message that will be added to the validation report or if the message will not be generated at all.
    `static java.lang.String` | `FORMULA_PROCESSOR_LEVEL_OF_EXCEPTIONS_INSIDE_FILTER_XPATH_EXPRESSIONS` The FORMULA_PROCESSOR_LEVEL_OF_EXCEPTIONS_INSIDE_FILTER_XPATH_EXPRESSIONS property indicates how the formula processor will react when a the evaluation of a formula filter raises an XPath exception.
    `static java.lang.String` | `FORMULA_PROCESSOR_PARALLEL_PROCESSING_EXPERIMENTAL` The FORMULA_PROCESSOR_PARALLEL_PROCESSING_EXPERIMENTAL property enables the formula processor to execute formulas in parallel.
    `static java.lang.String` | `FORMULA_PROCESSOR_PARAMETER_RESOLVER` The FORMULA_PROCESSOR_PARAMETER_RESOLVER property is used in order to add additional Variable Parameter resolvers to the formula processor.
    `static java.lang.String` | `FORMULA_PROCESSOR_RETAIN_AFTER_FORMULA_INTANCE_ON_ASSERTION_RESULTS` The FORMULA_PROCESSOR_RETAIN_AFTER_FORMULA_INTANCE_ON_ASSERTION_RESULTS property is used to configure the formula processor in order to allow XBRLAssertionResult instances to keep a reference of the original input instance after the execution of the formulas in the variable set that defined the input of the consistency assertion.
    `static java.lang.String` | `FORMULA_PROCESSOR_RETAIN_ASSERTION_RESOURCES` The FORMULA_PROCESSOR_RETAIN_ASSERTION_RESOURCES property allows applications to access the internal resources that were used during the evaluation of an assertion.
    `static java.lang.String` | `FORMULA_PROCESSOR_RETAIN_INPUT_INTANCE_ON_ASSERTION_RESULTS` The FORMULA_PROCESSOR_RETAIN_INPUT_INTANCE_ON_ASSERTION_RESULTS property is used to configure the formula processor in order to allow XBRLAssertionResult instances to keep a reference of the original input instance.
    `static java.lang.String` | `FORMULA_PROCESSOR_RETAIN_USED_FACTS` The FORMULA_PROCESSOR_RETAIN_USED_FACTS property sets the processor to record all facts from fact variables that binds to a particular formula during assertion evaluation.
    `static java.lang.String` | `FORMULA_PROCESSOR_SCHEMA_VALIDATE_EXTERNAL_DOCS` All documents in the DTS must be schema valid.
    `static java.lang.String` | `FORMULA_PROCESSOR_USE_GLOBAL_PARAMETERS` The original version of the variables specification (The already approved recommendation) considers that parameters must have arcs connecting the parameter with the variable set using it.
    `static java.lang.String` | `FORMULA_PROCESSOR_USE_STRICT_SPECIFICATION_XPATH` The FORMULA_PROCESSOR_USE_STRICT_SPECIFICATION_XPATH property sets the processor to use the XPath expressions defined for filters in the formula specification as they are written in the specifications document.
    `static int` | `FULL` FULL is a constant for the `mode` parameter in the `isInstanceOfThisDTS(Source, int)` function.
    `static int` | `GENERATION_MODE_NODEINFO` ORIGINAL serialization method means that the serialization of this object will be made using the document that was first read from source file.
    `static int` | `GENERATION_MODE_OBJECTS` GENERATION_MODE_OBJECTS serialization method means that the serialization of this object will be made using the object model and objects in the infoset.
    `static java.lang.String` | `GENERIC_LABEL_VERSION` GENERIC_LABEL_VERSION is defined as "http://www.reportingstandard.com/properties/generic-linkbase/label-version" Possible values of this property are USE_GENERIC_LABEL_AS_OF_22_JUNE_2009 or USE_GENERIC_LABEL_AS_OF_CURRENT_EXPERIMENTAL.
    `static java.lang.String` | `GENERIC_LINKBASE_REQUIRE_ROLEREF_ARCROLEREF` GENERIC_LINKBASE_REQUIRE_ROLEREF_ARCROLEREF is defined as "http://www.reportingstandard.com/properties/generic-linkbase/require-roleRef-arcroleRef" Possible value is a String that can be converted into a boolean "true" or "false" Default value is "true" if the PROCESSORS_SEQUENCE property contains the formula processor and "false" otherwise.
    `static java.lang.String` | `GENERIC_REFERENCE_VERSION` GENERIC_REFERENCE_VERSION is defined as "http://www.reportingstandard.com/properties/generic-linkbase/reference-version" Possible values of this property are USE_GENERIC_REFERENCE_AS_OF_22_JUNE_2009 or USE_GENERIC_REFERENCE_AS_OF_CURRENT_EXPERIMENTAL.
    `static java.lang.String` | `IGNORE_PROPERTY_VALUE` This is set to the constant value "ignore".
    `org.apache.log4j.Logger` | `log` All log information goes through this logger.
    `static java.lang.String` | `LOG_LEVEL` The log level that will be set to the standard logger at com.ihr.xbrl The value must be a valid string representation of the level as indicated in the log4j logging package.
    `static java.lang.String` | `LOGGER_NAME` LOGGER_NAME is defined as com.ihr.xbrl and is final
    `static java.lang.String` | `PROCESSORS_SEQUENCE` The PROCESSORS_SEQUENCE property contains a comma separated list of processors responsible of performing DTS validation The default value for the PROCESSORS_SEQUENCE property is XBRLCoreProcessor.PROCESSORNAME which is "XBRL21Core" Note: In order to perform XBRL 2.1 validation and XBRL Dimensions 1.0 validation, the value of this property must be set to XBRLCoreProcessor.PROCESSORNAME,XDTProcessor.PROCESSORNAME this is: "XBRL21Core,XBRLDimensions" Processors extensibility: Creating your own processors for project specific validation rules Processor factories are loaded during the static initialization of the DTSContainer class.
    `static java.lang.String` | `SEQUAL_MODE` The SEQUAL_MODE property indicates if the s-equal function follow the rules of the XBRL 2.1 specification or if it should follow the interpretation made by the authors of the XBRL formula specification.
    `static java.lang.String` | `SERIALIZATION_OUTPUT_DEFAULT_ATTRIBUTE_VALUES` The SERIALIZATION_OUTPUT_DEFAULT_ATTRIBUTE_VALUES indicates if during the serialization phase (conversion from internal object model representation to the XBRL syntax) the default values for attributes will be explicitly serialized or will be hidden.
    `static java.lang.String` | `SERIALIZATION_OUTPUT_INDENT` The SERIALIZATION_OUTPUT_INDENT property can be set to either "yes" or "no".
    `static java.lang.String` | `SERIALIZATION_OUTPUT_INDENT_DEFAULT` The Constant SERIALIZATION_OUTPUT_INDENT_DEFAULT.
    `static java.lang.String` | `SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION` The SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION cat be set to either "yes" or "no".
    `static java.lang.String` | `SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION_DEFAULT` The Constant SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION_DEFAULT.
    `static java.lang.String` | `SERIALIZATION_OUTPUT_XML_ENCODING` The SERIALIZATION_OUTPUT_XML_ENCODING property can be set to the encoding for XML files produced by the API.
    `static java.lang.String` | `SERIALIZATION_OUTPUT_XML_ENCODING_DEFAULT` The Constant SERIALIZATION_OUTPUT_XML_ENCODING_DEFAULT.
    `static java.lang.String` | `USE_CACHE_PROPERTY` USE_CACHE_PROPERTY is defined as "http://www.reportingstandard.com/properties/use-cache" Possible values are String that can be converted to a boolean "true" or "false" Default value is "true" Cache is read form the catalog file XBRLCatalog.xml There may be catalog files at the folder where the tool is initiated, or in the user's home directory or both.
    `static java.lang.String` | `USE_GENERIC_LABEL_AS_OF_22_JUNE_2009` USE_GENERIC_LABEL_AS_OF_22_JUNE_2009 is defined as GENERIC_LABEL_22_JUN_2009.
    `static java.lang.String` | `USE_GENERIC_LABEL_CURRENT_EXPERIMENTAL` USE_GENERIC_LABEL_AS_OF_CURRENT_EXPERIMENTAL is defined as GENERIC_LABEL_CURRENT_EXPERIMENTAL.
    `static java.lang.String` | `USE_GENERIC_REFERENCE_AS_OF_22_JUNE_2009` USE_GENERIC_REFERENCE_AS_OF_22_JUNE_2009 is defined as GENERIC_REFERENCE_22_JUN_2009.
    `static java.lang.String` | `USE_GENERIC_REFERENCE_CURRENT_EXPERIMENTAL` USE_GENERIC_REFERENCE_AS_OF_CURRENT_EXPERIMENTAL is defined as GENERIC_REFERENCE_CURRENT_EXPERIMENTAL.
    `static java.lang.String` | `USE_SEQUAL_AS_FORMULA_COMPLIANT` USE_SEQUAL_AS_FORMULA_COMPLIANT is defined as FORMULA_COMPLIANT.
    `static java.lang.String` | `USE_SEQUAL_AS_XBRL_COMPLIANT` USE_SEQUAL_AS_XBRL_COMPLIANT is defined as XBRL_COMPLIANT.
    `static java.lang.String` | `USE_XDT_1_0_AS_OF_18_SEP_2006` USE_XDT_1_0_AS_OF_18_SEP_2006 is defined as XDT_18_SEP_2006.
    `static java.lang.String` | `USE_XDT_1_0_AS_OF_25_JAN_2012` USE_XDT_1_0_AS_OF_25_JAN_2012 is defined as XDT_25_JAN_2012.
    `static java.lang.String` | `USE_XDT_1_0_AS_OF_7_SEP_2009` USE_XDT_1_0_AS_OF_7_SEP_2009 is defined as XDT_7_SEP_2009.
    `static java.lang.String` | `USE_XEQUAL_AS_FORMULA_COMPLIANT` USE_XEQUAL_AS_FORMULA_COMPLIANT is defined as FORMULA_COMPLIANT.
    `static java.lang.String` | `USE_XEQUAL_AS_XBRL_COMPLIANT` USE_XEQUAL_AS_XBRL_COMPLIANT is defined as XBRL_COMPLIANT.
    `static java.lang.String` | `WARNING_PROPERTY_VALUE` This is set to the constant value "warning".
    `static java.lang.String` | `XBRL_BASE` The XBRL_BASE property indicates the directory that will be used as base for resolution of files that during the DTS Discovery process.
    `static java.lang.String` | `XBRL_VERSION` The XBRL_VERSION property indicates the version of the XBRL specification to be used when multiple editions of the XBRL 2.1 specification causes different behavior of the XBRL processor.
    `static java.lang.String` | `XBRL_VERSION_2_JUL_2008` Default value for the XBRL Processor in production.
    `static java.lang.String` | `XBRL_VERSION_20_FEB_2013` This configures the processor to use the specification version released on February 20 of 2013.
    `static java.lang.String` | `XBRL_VERSION_25_JAN_2012` This configures the processor to use the specification version released on January 25 of 2012.
    `static java.lang.String` | `XBRL_VERSION_EXPERIMENTAL_BUG_368` Experimental value of the XBRL Processor according to the BUG 368.
    `static java.lang.String` | `XDT_VERSION` The XDT_VERSION property indicates the version of the Dimensions Specification to be used.
    `static java.lang.String` | `XEQUAL_MODE` The XEQUAL_MODE property indicates if the x-equal function follow the rules of the XBRL 2.1 specification or if it should follow the interpretation made by the authors of the XBRL formula specification.
    `static java.lang.String` | `XML_REMOVE_NAMESPACE_DECLARATIONS` The XML_REMOVE_NAMESPACE_DECLARATIONS property indicates if the toString method in the XMLFragment generates a string with namespace declarations or without namespace declarations.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addArcroleType(XBRLArcroleType arcrole)` Register a new arcroleType declaration.
    `void` | `addDocumentToDTS(XBRLDTSDocument d)` Adds a document to the DTS container objects.
    `void` | `addError(java.lang.Exception e)` Adds the error.
    `void` | `addInconsistencey(XBRLInconsistency e)` Adds the inconsistencey.
    `void` | `addResource(XBRLResource resource)` The XBRLResouce initializer calls this method to store a new resource in the DTSContainer cache.
    `void` | `addRoleType(XBRLRoleType role)` Register a new roleType declaration.
    `void` | `addRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType, XBRLRoleType role)` Adds or increases the count of role types for a linkbase type.
    `void` | `addValidationException(XBRLValidationException e)` Adds the validation exception.
    `boolean` | `cacheContains(java.net.URI documentURI)` Interrogates objects in the cache of documents indexed by documentURI returns true if the documentURI is on the cache The document URI is normalized and absolutized before the index search operation fragments are removed because the cache contains documents.
    `XMLDocumentURI` | `cacheGet(java.net.URI documentURI)` Obtains a document from the cache indexed by document URI The URI is absolutized and normalized before comparison.
    `void` | `cachePut(XMLDocumentURI documentURI)` Stores a document in the cache indexed by document URI The URI is absolutized and normalized before stored being stored.
    `void` | `cacheRemove(java.net.URI documentURI)` Removes a document form the cache.
    `XBRLResource` | `cacheResource(XBRLExtendedLink parent, net.sf.saxon.s9api.XdmNode ni, java.lang.Class<? extends XBRLResource> name)` Obtains a resource from the cache or creates a new resource corresponding to the node supplied as a parameter and stores it in the cache for further reference.
    `java.util.Iterator<XBRLTaxonomy>` | `cacheSchemaByNamespace(java.lang.String namespace)` Obtains a series of XBRLTaxonomy objects from the cache based on the namespace declared in the XBRLTaxonomy schema Results are not indexed Returns the empty sequence if the namespace is not found in the DTS.
    `int` | `cacheSize()` Returns the number of files in the cache.
    `void` | `clear()` Similarly to the clear method in collections, this method frees up memory and resources used in this object.
    `void` | `collectTopLevelSchemaUsage(java.net.URI sourceDocumentURI, java.lang.String namespace, java.net.URI targetDocumentURI, boolean bMode)` Collect top level schema usage.
    `static void` | `configureJavaProxy(java.util.Properties props)` Configures java virtual machine proxy according with the properties received.
    `void` | `delArcroleType(XBRLArcroleType arcrole)` Unregister a loaded arcroleType declaration.
    `void` | `delConcept(javax.xml.namespace.QName concept)` Removes a concept form the DTS and removes also all relationships this concept participates on.
    `void` | `delDocumentFromDTS(XBRLDTSDocument d)` Del document from dts.
    `void` | `delResource(XBRLResource resource)` Eliminates a resource form the DTS except if the class is marked with NotRegistrableResource interface.
    `void` | `delRoleType(XBRLRoleType role)` Unregister a registered roleType.
    `void` | `delRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType, XBRLRoleType role)` Removes or decreases the count of role types for a linkbase type.
    `void` | `doCallInstallDTSURIResolver(HasCreateDTSUriResolver instanceClass)` Executes a call to the method createAndRegisterDTSUriResolver on the class passed in as a parameter.
    `void` | `doCallInstallFormulaParameterResolver(HasCreateFormulaParameterResolver instanceClass)` Do call install formula parameter resolver.
    `boolean` | `equals(java.lang.Object obj)`
    `java.util.Vector<XBRLArcroleType>` | `getArcroleType(java.lang.String uri)` Access to the arcroleType object from the URI regardless where it is defined or if there are multiple valid definitions of the same arcrole URI.
    `java.util.Iterator<XBRLArcroleType>` | `getArcroleTypes()` Access to an iterator over defined XBRL Arcrole Types defined on all taxonomies in the loaded DTS.
    `DTSBase` | `getBase(javax.xml.namespace.QName linkbaseType, XBRLRoleType role)` Obtains a base for the specified linkbaseType and role type.
    `java.util.Iterator<XBRLRoleType>` | `getBaseRoles(javax.xml.namespace.QName linkbaseType)` Iterator over all roles used on xlink:role attributes on extended links Iterator elements can be casted to XBRLRoleType objects.
    `java.util.Iterator<XBRLRoleType>` | `getBaseRoleTypes(javax.xml.namespace.QName extendedLinkQName)` Return an iterator over all XBRLRoleType elements where DTSBase exists.
    `java.util.Iterator<javax.xml.namespace.QName>` | `getBaseTypes()` Returns an iterator over the QNames of all DTSBases in the DTS this is all types of containers of relationships.
    `java.net.URI` | `getBaseURI()` Access to the base URI for the XBRL processor.
    `XMLDocumentURI` | `getCacheElement(int index)` Returns the nth element in the cache.
    `static net.sf.saxon.s9api.Processor` | `getCompatibleProcessor(net.sf.saxon.s9api.Processor compatWith, boolean schemaAware)` Gets the compatible processor.
    `XMLElementDefinition` | `getConcept(javax.xml.namespace.QName concept)` Returns a concept declaration in the DTS regardless it is a tuple, item or pure element returns null if the concept is not defined in the DTS or if the value of the QName for the concept parameter is null.
    `java.util.Iterator<XMLElementDefinition>` | `getConcepts()` Iterator over all XBRL Concept declarations (Items and Tuples) in the DTS (crosses all taxonomies).
    `net.sf.saxon.s9api.Processor` | `getConfiguration()` Obtains the Saxonica Processor object used by all elements in this DTS.
    `java.util.Collection<XBRLLibraryFactory>` | `getCustomFunctionFactories()` Access to the collection of all registered Library Factories.
    `javax.xml.transform.URIResolver` | `getDTSURIResolver()` Access to the URIResolver of this DTSContainer.
    `java.lang.String[]` | `getErrors()` Gets the errors.
    `java.lang.Iterable<XBRLExtendedLink>` | `getExtendedLinks()` Gets the extended links.
    `net.sf.saxon.s9api.Processor` | `getFastConfiguration()` Method to access to the Processor corresponding to this DTSContainer and the status of this DTSContainer.
    `XBRLInstance` | `getInstanceByURI(java.net.URI u)` Returns an XBRLInstance that has been loaded into the document cache using the document URI.
    `java.util.Iterator<java.net.URI>` | `getInstanceURIs()` Returns an iterator over URIs of loaded instances in the document chache.
    `java.util.Iterator<XBRLItem>` | `getItemDeclarations()` Iterator over all Item concepts declarations in the DTS (crosses all taxonomies).
    `java.util.Iterator<java.lang.String>` | `getLanguages()` Returns an iterator over all languages used in labels in the DTS.
    `java.lang.String` | `getLastResolvedSystemId()` Returns the systemId of the last file resolved by the Resolver during the DTSDiscovery process or null if the DTSDiscoveryProcess is not on-going.
    `XBRLLinkbase` | `getLinkbaseByURI(java.net.URI u)` Returns the XBRLLinkbase corresponding to the Document URI or null if the URI cannot be found or does not corresponds to a linkbase.
    `java.util.Iterator<java.net.URI>` | `getLinkbaseURIs()` Returns an iterator over all linkbase documents in the DTS.
    `XBRLlrrAndRelationshipConstraints` | `getLRRAndRelationshipsConstraintsChecker()` Obstains an instance of the XBRLlrrAndRelationshipConstraints class that is unique for the entire DTSContainer live cycle.
    `java.lang.String` | `getName()` Returns back the DTS name, this is useful for GUIs only.
    `static DTSContainer.ProcessorAndSchemaCompiler` | `getNewConfiguration(boolean schemaAware, DTSContainer dts, java.util.Properties props)` Creates a new Configuration object.
    `int` | `getNumberOfInstanceURIs()` Returns the number of XBRL Instalces in the DTS.
    `int` | `getNumberOfItemDeclarations()` Gets the number of item declarations.
    `int` | `getNumberOfLinkbaseURIs()` Returns the number of linkbase URIs in the DTS.
    `int` | `getNumberOfTaxonomyURIs()` Returns the number of taxonomy URIs in the DTS.
    `int` | `getNumberOfTupleDeclarations()` Gets the number of tuple declarations.
    `XBRLPlugInProcessor` | `getProcessor(java.lang.String processorname)` Returns an already registered plug-in processor based on the processor name.
    `static java.lang.Class<? extends XBRLProcessorFactory>` | `getProcessorFactory(java.lang.String processorName)` Accesss to the processor factory class for the processor name.
    `java.util.Iterator<XBRLPlugInProcessor>` | `getProcessors()` Access to all registered plug-in processors.
    `java.util.Properties` | `getProperties()` Access to the properties of this DTSContainer.
    `DTSLoadingBarInterface` | `getRegisteredBar()` If this DTSContainer has a registered object that implements the DTSLoadingBarInterface interface this function returns it.
    `static java.lang.String[]` | `getRegisteredProcessorNames()` Access to all registered processor names.
    `XBRLRelationship` | `getRelationship(java.lang.String extendedLink, javax.xml.namespace.QName relationshipType, java.lang.String arcrole, java.util.Vector<XMLFragment> attributes, XMLFragment source, XMLFragment target)` Returns the relationship that matches the search criteria.
    `java.util.Iterator<XBRLRelationship>` | `getRelationships(DTSBase base)` Return all relationships in a DTSBase.
    `XMLFragment` | `getResource(java.lang.String resourceRole, javax.xml.namespace.QName resourceType, java.lang.String content, java.util.Vector<XMLFragment> attributes, net.sf.saxon.value.Value<?> value, java.util.Vector<java.lang.String> xpathChildren)` Search for a resource in the DTS with the given id.
    `XBRLResource` | `getResource(java.net.URI xpointerIdentifier)` Resolves an XBRLResource from its XPointer identifier.
    `XBRLResource` | `getResource(XBRLResource res)` Locates a resource in the DTS that is identical to the resource received as a parameter.
    `java.util.Iterator<XBRLResource>` | `getResources()` Make sure the DTS has beed validated or the list of resources may not be complete.
    `java.util.Vector<XBRLRoleType>` | `getRoleType(java.lang.String uri)` Access to the roleType object from the URI regardless where it is defined or if there are multiple valid definitions of the same role URI.
    `java.util.Iterator<XBRLRoleType>` | `getRoleTypes()` Access to an iterator over defined XBRL Role Types defined on all taxonomies in the loaded DTS.
    `java.net.URI` | `getRootURI()` Returns the DTS root URI or the starting point of the DTS Discovery.
    `java.net.URI[]` | `getRootURIs()` Returns an array of URIs that contains the DTS Discovery starting points.
    `com.saxonica.schema.SchemaCompiler` | `getSchemaCompiler()` Returns the current schema compiler for this configuration object.
    `int` | `getSerializationMethod()` Obtains the value of the serialization method.
    `XBRLArcroleType` | `getStaticArcroleTypeByURI(java.lang.String arcrole)` Gets the static arcrole type by uri.
    `static DTSContainer` | `getStaticContainer()` The static container exist only for static objects like standard roleTypes and standard arcroleTypes that are not used on any specific DTS.
    `XBRLRoleType` | `getStaticRoleTypeByURI(java.lang.String role)` Gets the static role type by uri.
    `DTSContainer.Status` | `getStatus()` Access to the processor status.
    `java.util.Iterator<XBRLTaxonomy>` | `getTaxonomyByNamespace(java.lang.String namespace)` Returns an iterator over all taxonomy schemas that matches the corresponding namespace and are loaded into the DTS.
    `java.util.Iterator<XBRLTaxonomy>` | `getTaxonomyByPrefix(java.lang.String conceptPrefix)` Returns an iterator over all taxonomy schemas whose target namespace matches the prefix.
    `XBRLTaxonomy` | `getTaxonomyByURI(java.net.URI u)` Returns the XBRLTaxonomy corresponding to the Document URI or null if the URI cannot be found or does not corresponds to a taxonomy.
    `java.util.Iterator<java.net.URI>` | `getTaxonomyURIs()` Returns an iterator over all taxonomy documents in the DTS.
    `java.net.URI` | `getTempURL()` Returns a URL pointin to a temporary folder in the local drive.
    `java.util.Iterator<XBRLTuple>` | `getTupleDeclarations()` Iterator over all Tuple concept declarations in the DTS (crosses all taxonomies).
    `XBRLXSDTypeDefinition` | `getTypeDefinition(javax.xml.namespace.QName type)` Find the type definition for the specific QName This function does not find new types defined in taxonomy schemas that has not been read from XML files.
    `XBRLValidationReport` | `getValidationReport()` Access to the internal validation report.
    `java.util.Properties` | `getVariablesForProcessors()` Access to the variables that has been set to be available for processors.
    `int` | `hashCode()`
    `void` | `installDTSURIResolver(javax.xml.transform.URIResolver resolver)` Sets a new resolver to this DTSContainer object.
    `void` | `installFormulaParameterResolver(XBRLFormulaParametersResolver parameterResolver)` Sets a new resolver to this XBRLFormulaParametersResolver object.
    `boolean` | `isBaseDefined(javax.xml.namespace.QName linkbaseType, XBRLRoleType role)` Returns true if there is a DTSbase defined in the DTS for the given role and of the specified linkbaseType.
    `boolean` | `isBUG368Mode()` Returns true if the user has set the property XBRL_VERSION to the value XBRL_VERSION_EXPERIMENTAL_BUG_368.
    `boolean` | `isDocumentInDTS(java.net.URI key)` Returns true if the document is in the DTS.
    `boolean` | `isDocumentInDTS(XBRLDTSDocument d)` Search the different DTS document containers and try to find the document in the cache.
    `boolean` | `isGeneralVariableSchemaAware()` This method returns the value of the property FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE See `FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE` for more information.
    `XBRLInstance` | `isInstanceOfThisDTS(MultiDTSValidationFile item, int mode)` Check whether or not the document in the xmlSource is an instance document according to this DTS.
    `XBRLInstance` | `isInstanceOfThisDTS(javax.xml.transform.Source xmlSource, int mode)` Check whether or not the document in the xmlSource is an instance document according to this DTS.
    `boolean` | `isInstanceOfThisDTS(XBRLInstance instance, int mode)` Check whether or not the instance document received as a parameter can be used in this DTSContainer.
    `boolean` | `isShowExactitudeDetails()` Returns true if the DTSContainer.DTS_SHOW_EXACTITUDE_DETAILS property is set to true
    `boolean` | `isThin()` Helper method to know if this DTS has the DTS_THIN property set to true or false.
    `boolean` | `isVersion20122501()` Checks if is version20122501.
    `boolean` | `isVersion20132002()` Checks if is version20132002.
    `XBRLDocument` | `load(javax.xml.transform.Source source)` Load a DTS.
    `XBRLDocument[]` | `load(javax.xml.transform.Source[] ss)` Load a DTS from a set of urls.
    `XBRLDocument` | `load(java.net.URI url)` Load a DTS.
    `XBRLDocument[]` | `load(java.net.URI[] url)` Load a DTS from a set of urls.
    `void` | `loadExtraSchemas()` Called internally by the API when extra schemas must be loaded in the configuration object and schema compiler.
    `void` | `loadIntoConfiguration()` Switch the configuration object to strict schema validation, then loads all documents in this DTS (thus in the cache) into the configuration object.
    `void` | `loadIntoConfiguration(XBRLTaxonomy taxonomy)` Load a new schema into the schema compiler.
    `static DTSContainer` | `mergeDTSs(DTSContainer[] dtss)` Merges several DTSs into a single DTS.
    `static DTSContainer` | `newCompatibleContainer(DTSContainer otherContainer, java.util.Properties props)` Creates a new DTSContainer that is compatible with the Processor suppied as a parameter.
    `static DTSContainer` | `newCompatibleContainer(net.sf.saxon.s9api.Processor proc, java.util.Properties props)` Creates a new DTSContainer that is compatible with the Processor suppied as a parameter.
    `static DTSContainer` | `newEmptyContainer()` Method used to create a new empty DTSContainer.
    `static DTSContainer` | `newEmptyContainer(java.util.Properties props)` Method used to create a new empty DTSContainer.
    `void` | `readInfoset()` Method used to populate the object model in all objects defined within this DTS.
    `void` | `recompile()` Recompile schemas loaded into the schemaconfiguration.
    `void` | `registerBar(DTSLoadingBarInterface bar)` Sets the loading bar object that will be informed about progress in the loading process.
    `void` | `registerProcessor(java.lang.String processorname, XBRLPlugInProcessor processor)` Called by the processor to self register.
    `static boolean` | `registerProcessorFactory(java.lang.String name, java.lang.Class<? extends XBRLProcessorFactory> clazz)` Register a new processor factory for the indicated processor name.
    `XMLFragment` | `resolveXPointer(java.net.URI uriHref, XMLDocumentURI doc)` resolve the XPointer to the node pointed to and returns the XMLFragment it points to or null if none can be found.
    `void` | `save(boolean relativize)` Save all files in the DTS.
    `boolean` | `sEqualMode()` The default value of the SEQUAL_MODE is XBRL_COMPLIANT but the conformance suite of the formula processor requires it to be set to FORMULA_COMPLIANT.
    `void` | `setName(java.lang.String name)` Sets the name of this DTS to the specified name.
    `void` | `setProperties(java.util.Properties newProps)` Internal method using during class constructors to set the properties of this DTSContainer.
    `void` | `setProperty(java.lang.String name, java.lang.String value)` Sets a DTSConfiguration property.
    `void` | `setRootURI(java.net.URI newURI)` Sets the root uri.
    `void` | `setSerializationMethod(int method)` Sets the serialization method to OBJECTS or ORIGINAL.
    `void` | `setVariablesForProcessors(java.util.Properties variables)` Variables is a new machanism to pass information from an external application to a custom processor.
    `boolean` | `shouldStop()` This function will be called by classes that knows what to do if the loading proces of a DTS has been cancelled by the user.
    `java.lang.Object[]` | `specialValidation(SpecialValidationProcess process, int flags, java.lang.Object[] arguments)` Performs a special validation process that requires adquisition of internal locks that are only available inside the DTSContainer.
    `void` | `stop()` This method will be called by another thread in order to request the DTSContainer process to stop execution.
    `XBRLValidationReport` | `validate()` Executes all registered validators indicated in the PROCESSORS_SEQUENCE property of this DTS and returns the XBRLValidationReport instance with the validation result.
    `XBRLValidationReport` | `validate(XBRLDocument doc)` Validates a new document against this already loaded DTS.
    `boolean` | `xEqualMode()` The default value of the XEQUAL_MODE is XBRL_COMPLIANT but the conformance suite of the formula processor requires it to be set to FORMULA_COMPLIANT.

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### USE_CACHE_PROPERTY

          public static final java.lang.String USE_CACHE_PROPERTY

      USE_CACHE_PROPERTY is defined as "http://www.reportingstandard.com/properties/use-cache" Possible values are String that can be converted to a boolean "true" or "false" Default value is "true" Cache is read form the catalog file XBRLCatalog.xml There may be catalog files at the folder where the tool is initiated, or in the user's home directory or both.
      See Also:
        Constant Field Values

    - #### CONSIDER_DUPLICATES_AS_INCONSISTENCIES

          public static final java.lang.String CONSIDER_DUPLICATES_AS_INCONSISTENCIES

      CONSIDER_DUPLICATES_AS_INCONSISTENCIES is defined as "http://www.reportingstandard.com/properties/duplicate-is-inconsistency" Possible value is a String that can be converted into a boolean "true" or "false" Default value is "false"

      According to the XBRL 2.1 specification duplicates must be ignored for calculation checking. Very often this is a problem in real projects that wanted to detect if the incoming instance is trying to avoid calculation checks by submitting duplicates in the instance. Setting this value to "true" generates an "inconsistency" warning in case a calculation rule has been skipped due to the existence of a duplicate fact in the instance document.

      Since:
        2.6.3
      See Also:
        Constant Field Values

    - #### CONSIDER_COMPARISON_WITH_NUMBER_WITH_PRECISION_ZERO_AS_INCONSISTENCY

          public static final java.lang.String CONSIDER_COMPARISON_WITH_NUMBER_WITH_PRECISION_ZERO_AS_INCONSISTENCY

      CONSIDER_COMPARISON_WITH_NUMBER_WITH_PRECISION_ZERO_AS_INCONSISTENCY is defined as "http://www.reportingstandard.com/properties/compare-with-number-p-zero-is-inconsistency" Possible value is a String that can be converted into a boolean "true" or "false"

      Default value is "false"

      According to the XBRL 2.1 specification in the simple equation A = B + C, if A is zero with precision 0 the comparison must return true regardless the value of B + C.

      If this property has the value "true" a warning will be raised if this condition happens.

      Since:
        2.6.5
      See Also:
        Constant Field Values

    - #### GENERIC_LINKBASE_REQUIRE_ROLEREF_ARCROLEREF

          public static final java.lang.String GENERIC_LINKBASE_REQUIRE_ROLEREF_ARCROLEREF

      GENERIC_LINKBASE_REQUIRE_ROLEREF_ARCROLEREF is defined as "http://www.reportingstandard.com/properties/generic-linkbase/require-roleRef-arcroleRef" Possible value is a String that can be converted into a boolean "true" or "false"

      Default value is "true" if the PROCESSORS_SEQUENCE property contains the formula processor and "false" otherwise.

      All defined extended links in the XBRL 2.1 specification (presentationLink, calculationLink, definitionLink, labelLink and referenceLink) requires the existence of a roleRef element pointing to the role definition for roles not defined in the XBRL 2.1 specification and arcroleRef element pointing to the arcrole definition for arcroles not defined in the XBRL 2.1 specification. For consistency reasons, the Generic Links 1.0 specification (Recommendation 22 June 2009) requires the same constraints on roles and arcroles used in generic links. Just sticking to the wording of the XBRL 2.1 specification, roleRef and arcroleRef elements would not be required on generic links.

      The GENERIC_LINKBASE_REQUIRE_ROLEREF_ARCROLEREF allows the processor to raise an error (DTSDiscoveryException) if roles or arcroles defined in generic links does not contain a roleRef arcroleRef element (as required in the Generic Links 1.0); in this case, the property value should be "true" or not raise an error as defined in the XBRL 2.1 specification without the constraints defined in the Generic Links 1.0; in this case, the property value should be "false".

      See Also:
        Constant Field Values

    - #### GENERIC_LABEL_VERSION

          public static final java.lang.String GENERIC_LABEL_VERSION

      GENERIC_LABEL_VERSION is defined as "http://www.reportingstandard.com/properties/generic-linkbase/label-version" Possible values of this property are USE_GENERIC_LABEL_AS_OF_22_JUNE_2009 or USE_GENERIC_LABEL_AS_OF_CURRENT_EXPERIMENTAL.

      The schema for the Generic labels 1.0 specification defined on June 22 2009 contains an arcrole definition for the arcrole type http://xbrl.org/arcrole/2008/element-label. That arcrole type contains an attribute called cyclesAllowed whose value was "none".

      The (currently not dated) version of the errata corrections for the Generic labels 1.0 specification changes the value of the cyclesAllowed attribute from "none" to "undirected". For this reason the property adjust the processor for using the original or the newest version of that schema.

      The default value for this property is USE_GENERIC_LABEL_AS_OF_22_JUNE_2009. Note this value will be changed at a later time.

      See Also:
        Constant Field Values

    - #### GENERIC_REFERENCE_VERSION

          public static final java.lang.String GENERIC_REFERENCE_VERSION

      GENERIC_REFERENCE_VERSION is defined as "http://www.reportingstandard.com/properties/generic-linkbase/reference-version" Possible values of this property are USE_GENERIC_REFERENCE_AS_OF_22_JUNE_2009 or USE_GENERIC_REFERENCE_AS_OF_CURRENT_EXPERIMENTAL.

      The schema for the Generic references 1.0 specification defined on June 22 2009 contains an arcrole definition for the arcrole type http://xbrl.org/arcrole/2008/element-reference. That arcrole type contains an attribute called cyclesAllowed whose value was "none".

      The (currently not dated) version of the errata corrections for the Generic references 1.0 specification changes the value of the cyclesAllowed attribute from "none" to "undirected". For this reason the property adjust the processor for using the original or the newest version of that schema.

      The default value for this property is USE_GENERIC_REFERENCE_AS_OF_22_JUNE_2009. Note this value will be changed at a later time.

      See Also:
        Constant Field Values

    - #### USE_GENERIC_LABEL_AS_OF_22_JUNE_2009

          public static final java.lang.String USE_GENERIC_LABEL_AS_OF_22_JUNE_2009

      USE_GENERIC_LABEL_AS_OF_22_JUNE_2009 is defined as GENERIC_LABEL_22_JUN_2009.

      This is one of the possible values of the GENERIC_LABEL_VERSION property of the DTSContainer.

      See Also:
        Constant Field Values

    - #### USE_GENERIC_LABEL_CURRENT_EXPERIMENTAL

          public static final java.lang.String USE_GENERIC_LABEL_CURRENT_EXPERIMENTAL

      USE_GENERIC_LABEL_AS_OF_CURRENT_EXPERIMENTAL is defined as GENERIC_LABEL_CURRENT_EXPERIMENTAL.

      This is one of the possible values of the GENERIC_LABEL_VERSION property of the DTSContainer.

      Note: the specification wording still has not been approved. The new specification version changes the cyclesAllowed attribute on the arcrole definition for element-label relationships from none to undirected

      See Also:
        Constant Field Values

    - #### USE_GENERIC_REFERENCE_AS_OF_22_JUNE_2009

          public static final java.lang.String USE_GENERIC_REFERENCE_AS_OF_22_JUNE_2009

      USE_GENERIC_REFERENCE_AS_OF_22_JUNE_2009 is defined as GENERIC_REFERENCE_22_JUN_2009.

      This is one of the possible values of the GENERIC_REFERENCE_VERSION property of the DTSContainer.

      See Also:
        Constant Field Values

    - #### USE_GENERIC_REFERENCE_CURRENT_EXPERIMENTAL

          public static final java.lang.String USE_GENERIC_REFERENCE_CURRENT_EXPERIMENTAL

      USE_GENERIC_REFERENCE_AS_OF_CURRENT_EXPERIMENTAL is defined as GENERIC_REFERENCE_CURRENT_EXPERIMENTAL.

      This is one of the possible values of the GENERIC_REFERENCE_VERSION property of the DTSContainer.

      Note: the specification wording still has not been approved. The new specification version changes the cyclesAllowed attribute on the arcrole definition for element-reference relationships from none to undirected

      See Also:
        Constant Field Values

    - #### ALWAYS_ADD_ref_2006_02_27_xsd_SCHEMA_TO_DTS

          public static final java.lang.String ALWAYS_ADD_ref_2006_02_27_xsd_SCHEMA_TO_DTS

      ALWAYS_ADD_ref_2006_02_27_xsd_SCHEMA_TO_DTS is defined as "http://www.reportingstandard.com/properties/always_add_ref_2006_02_27_schema_to_DTS" Possible value is a string that can be converted into a boolean "true" or "false" Default value is "false" Some taxonomies does not incorporate the URL of the reference schema http://www.xbrl.org/2006/ref-2006-02-27.xsd to the DTS but use its namespace in the reference linkbase instead. This is poor design in XML terms because the same namespace could potentially be driven to a different URL. But there is no way to open a DTS if it contains this error so we have had to add this property in order to deal with this. Taxonomies that constains this problem are: Central Bank of India created by IRIS and Fujitsu.
      See Also:
        Constant Field Values

    - #### USE_XDT_1_0_AS_OF_18_SEP_2006

          public static final java.lang.String USE_XDT_1_0_AS_OF_18_SEP_2006

      USE_XDT_1_0_AS_OF_18_SEP_2006 is defined as XDT_18_SEP_2006.

      This is one of the possible values of the XDT_VERSION property of the DTSContainer.

      See Also:
        Constant Field Values

    - #### USE_XDT_1_0_AS_OF_7_SEP_2009

          public static final java.lang.String USE_XDT_1_0_AS_OF_7_SEP_2009

      USE_XDT_1_0_AS_OF_7_SEP_2009 is defined as XDT_7_SEP_2009.

      This is one of the possible values of the XDT_VERSION property of the DTSContainer.

      See Also:
        Constant Field Values

    - #### USE_XDT_1_0_AS_OF_25_JAN_2012

          public static final java.lang.String USE_XDT_1_0_AS_OF_25_JAN_2012

      USE_XDT_1_0_AS_OF_25_JAN_2012 is defined as XDT_25_JAN_2012.

      This is one of the possible values of the XDT_VERSION property of the DTSContainer.

      Note: there are no functional differences between XDT specification version September 7th 2009 and January 1st 2012. Both values are equivalent.

      See Also:
        Constant Field Values

    - #### USE_XEQUAL_AS_XBRL_COMPLIANT

          public static final java.lang.String USE_XEQUAL_AS_XBRL_COMPLIANT

      USE_XEQUAL_AS_XBRL_COMPLIANT is defined as XBRL_COMPLIANT.

      This is one of the possible value of the XEQUAL_MODE property.

      See Also:
        Constant Field Values

    - #### USE_XEQUAL_AS_FORMULA_COMPLIANT

          public static final java.lang.String USE_XEQUAL_AS_FORMULA_COMPLIANT

      USE_XEQUAL_AS_FORMULA_COMPLIANT is defined as FORMULA_COMPLIANT.

      This is one of the possible value of the XEQUAL_MODE property.

      See Also:
        Constant Field Values

    - #### XEQUAL_MODE

          public static final java.lang.String XEQUAL_MODE

      The XEQUAL_MODE property indicates if the x-equal function follow the rules of the XBRL 2.1 specification or if it should follow the interpretation made by the authors of the XBRL formula specification.

      The value of the XEQUAL_MODE constant is "http://www.reportingstandard.com/properties/x-equal"

      The default value for the property is USE_XEQUAL_AS_XBRL_COMPLIANT which is safer in all conditions except when passing the XBRL functions comformance suite.

      See Also:
        Constant Field Values

    - #### USE_SEQUAL_AS_XBRL_COMPLIANT

          public static final java.lang.String USE_SEQUAL_AS_XBRL_COMPLIANT

      USE_SEQUAL_AS_XBRL_COMPLIANT is defined as XBRL_COMPLIANT.

      This is one of the possible value of the SEQUAL_MODE property.

      See Also:
        Constant Field Values

    - #### USE_SEQUAL_AS_FORMULA_COMPLIANT

          public static final java.lang.String USE_SEQUAL_AS_FORMULA_COMPLIANT

      USE_SEQUAL_AS_FORMULA_COMPLIANT is defined as FORMULA_COMPLIANT.

      This is one of the possible value of the SEQUAL_MODE property.

      See Also:
        Constant Field Values

    - #### SEQUAL_MODE

          public static final java.lang.String SEQUAL_MODE

      The SEQUAL_MODE property indicates if the s-equal function follow the rules of the XBRL 2.1 specification or if it should follow the interpretation made by the authors of the XBRL formula specification.

      The value of the SEQUAL_MODE constant is "http://www.reportingstandard.com/properties/s-equal"

      The default value for the property is USE_SEQUAL_AS_XBRL_COMPLIANT which is safer in all conditions except when passing the XBRL functions comformance suite.

      See Also:
        Constant Field Values

    - #### XDT_VERSION

          public static final java.lang.String XDT_VERSION

      The XDT_VERSION property indicates the version of the Dimensions Specification to be used. The possible values are USE_XDT_1_0_AS_OF_18_SEP_2006 or USE_XDT_1_0_AS_OF_7_SEP_2009; both are defined as constants to the DTSContainer object for convenience.

      The value of the XDT_VERSION constant is "http://www.reportingstandard.com/properties/xdt-version".

      The default value for the property it refers to is USE_XDT_1_0_AS_OF_7_SEP_2009 which is the lastest release with errata corrections of the XDT specification.

      See Also:
        Constant Field Values

    - #### XBRL_VERSION

          public static final java.lang.String XBRL_VERSION

      The XBRL_VERSION property indicates the version of the XBRL specification to be used when multiple editions of the XBRL 2.1 specification causes different behavior of the XBRL processor.

      As of 02/07/2008 Reporting Standard has found no differences in the XBRL processor implementation with previous XBRL 2.1 implementations. The default value of this property is XBRL_VERSION_2_JUL_2008 `XBRL_VERSION_2_JUL_2008`

      As of 26/07/2010 the XBRL 2.1 specification working group is working (for longer than a year) in changing how summation-item works and the recognition of zero with precision zero. There is a new value for experimental purposes that is XBRL_VERSION_EXPERIMENTAL_BUG_368.

      On 25/01/2012 the XBRL consortium has approve a new edition of the XBRL 2.1 specification consolidating all changes made to the specification in the last years. This is in fact a new specification version regardless the specification name says it is an errata correction. Calculations and inconsistencies and errors regarding calculations are different than in previous specification versions. Conformance suite test cases are not consistent between this version of the specification and previous versions. `XBRL_VERSION_25_JAN_2012` `XBRL_VERSION_20_FEB_2013`

      See Also:
        Constant Field Values

    - #### XBRL_VERSION_2_JUL_2008

          public static final java.lang.String XBRL_VERSION_2_JUL_2008

      Default value for the XBRL Processor in production.
      See Also:
        `XBRL_VERSION`, Constant Field Values

    - #### XBRL_VERSION_EXPERIMENTAL_BUG_368

          public static final java.lang.String XBRL_VERSION_EXPERIMENTAL_BUG_368

      Experimental value of the XBRL Processor according to the BUG 368. This definition will be changed later if the working group finally approves the changes and the new specification has a date.

      The previous value was "XBRL_EXPERIMENTAL_BUG_368". On 2011/07/12 the value has been changed to "XBRL_PER_7_MAR_2011";

      This value is now deprecated and shall be replaced by the new value "XBRL_25_JAN_2012". Please note there are differences between PER_7_MAR_2011 and specification version of 25 JAN 2012 because rounding is on this specification version is IEEE roundTiesToEven.

      See Also:
        `XBRL_VERSION`, Constant Field Values

    - #### XBRL_VERSION_25_JAN_2012

          public static final java.lang.String XBRL_VERSION_25_JAN_2012

      This configures the processor to use the specification version released on January 25 of 2012. There are substantial changes in the specification so this may impact validation of the calculations.
      See Also:
        `XBRL_VERSION`, Constant Field Values

    - #### XBRL_VERSION_20_FEB_2013

          public static final java.lang.String XBRL_VERSION_20_FEB_2013

      This configures the processor to use the specification version released on February 20 of 2013. There are changes in the DTS Discovery rules and additional constraints in the use of the standard role URI
      See Also:
        `XBRL_VERSION`, Constant Field Values

    - #### XBRL_BASE

          public static final java.lang.String XBRL_BASE

      The XBRL_BASE property indicates the directory that will be used as base for resolution of files that during the DTS Discovery process.

      The data type of this property is a URI. Users MUST take care the provided String can be converted into a URI

      The default value depends on the existence of a value for the environment variable XBRLCATALOGPATH.

      if that variable is set. the default value will be ${XBRLCATALOGPATH}/Other/

      if that variable is not set, the default value is the directory where the processor is running. "user.dir"/

      Note that the xbrl-base is a directory so the method reading this property value ensures the value ends with a slash character "/" in order to allow proper resolution of local files.

      See Also:
        Constant Field Values

    - #### DTS_DISCOVERY_ON_DIFFERENT_FILE_NAMES

          public static final java.lang.String DTS_DISCOVERY_ON_DIFFERENT_FILE_NAMES

      The DTS_DISCOVERY_ON_DIFFERENT_FILE_NAMES property specifies how the processor reacts when a reference to a file differs from the real file name on the file system but the file subsystem resolves to the same file name. This is, for example, the case of Windows file systems that does not distinguish between upper case file names and lower case file names. The value of this property can be set as "warning" (this is the default), "error" or "ignore".

      If set to "warning", the processor will add an inconsistency to the validation phase. The inconsistency will indicate that the DTS will be valid on certain systems like "Windows" because windows does not distinguish between uppercase file names and lowercase file names, but it will not be valid on "Unix" because unix considers upper case file names different from lower case file names.

      If set to "error", the processor will consider this as an error even if the processor is running on a windows system and the file name can be resolved to a local file. This is our recommended value when running on a server validating incoming files on a regulator system

      If set to "ignore", the processor will ignore and this "problem" is detected, the processor will ignore it.

      See Also:
        Constant Field Values

    - #### DTS_DISCOVERY_TRUST_NAMESPACES_ONLY

          public static final java.lang.String DTS_DISCOVERY_TRUST_NAMESPACES_ONLY

      The DTS_DISCOVERY_TRUST_NAMESPACES_ONLY property is used internally by the processor to decide about the strategy to load or reject a new schema will be loaded into the processor based on the new schema target namespace or in both, the target namespace and the schema location.

      If an schema already loaded into the XML processor has both, the same target namespace and the same schema location, it is safe to ignore the second reference to the same schema (XML schema processors do this normally) but, when the same schema is loaded from a different location this might be due to three possibilities: (1) the second schema is doing an include of the first schema using the same target namespace (which is correct) or (2) the second schema is the same as the first schema but in a different location (which would be an error due to duplicate definitions of everything but is a common mistake in the conformance suites) or, the second schema is different from the first schema and contains duplicate definitions among with new definitions which is an error.

      The default value for the DTS_DISCOVERY_TRUST_NAMESPACES_ONLY is false so namespaces and locations will be used.

      See Also:
        Constant Field Values

    - #### DTS_DISCOVERY_PRELOAD_OFFICIAL_SCHEMAS

          public static final java.lang.String DTS_DISCOVERY_PRELOAD_OFFICIAL_SCHEMAS

      The DTS_DISCOVERY_PRELOAD_OFFICIAL_SCHEMAS property is used internally by the processor to decide if, after creating a new DTSContainer instance, the official schemas from XBRL International will be loaded in the XML processor.

      If the official schemas are not loaded when the DTSContainer is created, they will be discovered during the DTS discovery process and loaded from the cache or from the Internet depending on how other properties are set.

      The default value of this property is true. This means that default schemas will be loaded from internal resources when a DTSContainer is created.

      The only reason for setting this property to false would be to use other locations of the official schemas rather than the official locations of the schemas, like, for example, the formula conformance suite when it is downloaded from the SVN repository.

      See Also:
        Constant Field Values

    - #### DTS_DISCOVERY_ALLOWSPACESONURIS

          public static final java.lang.String DTS_DISCOVERY_ALLOWSPACESONURIS

      Spaces are not allowed in the value space of an URI, but some software vendors failed to implement this rule and this means there are URIs with spaces in some taxonomies (at the SEC there are some... and taxonomies in asian countries might also contain space too). This property allows for spaces on URIs to be accepted even if they are not valid according with RFCs and Schema validation. The default value of this property is "false" and its use is strongly discouraged.
      See Also:
        Constant Field Values

    - #### DTS_STORE_CACHE_PATH

          public static final java.lang.String DTS_STORE_CACHE_PATH

      if this property is set, during the DTS discovery process, when a file comes from the Internet, a copy of the file will be written to a directory down on this folder. The purpose of this folder is double: (1) to be used for generating new ZIP files for the taxonomy catalog. (2) to speed-up dts loading the second time the same entry point is open. This will be implemented in a new URIResolver
      See Also:
        Constant Field Values

    - #### DTS_STORE_CACHE_ENABLE

          public static final java.lang.String DTS_STORE_CACHE_ENABLE

      The DTS_STORE_CACHE_ENABLE property is used to enable or disable the use of a dynamic cache. The dynamic cache stores locally copies of files obtained from the Internet and uses them during the next DTS Discovery process using the same files. The default value is "false" so this is not used in headless environments. GUI tools might pass true to this property.
      See Also:
        Constant Field Values

    - #### DTS_RESOLVER

          public static final java.lang.String DTS_RESOLVER

      The DTS_RESOLVER property is used in order to add additional DTS URI resolvers to the default ones after the DTS configuration process has been finished. The DTS_RESOLVER property value must be an instance of a class implementing the HasCreateDTSUriResolver interface. The DTSContainer will call the createAndRegisterDTSUriResolver method in order to let the class create and register the new URI resolver.

      In case multiple DTS_RESOLVER shall be added in a chain by the calling application, the calling application may use an instance of the class MultiDTSUriResolverFactory which implements the functionality of creating all of them and registering to the DTSContainer in the proper order. Refer to the documentation of the MultiDTSUriResolverFactory for more information.

      See Also:
        `MultiDTSUriResolverFactory`, `HasCreateDTSUriResolver`, Constant Field Values

    - #### DTS_THIN

          public static final java.lang.String DTS_THIN

      The DTS_THIN property liberates internal resources that can be obtained back from the original XML nodes and reduces the DTS memory footprint. The cost of setting this property value to 'true' is that loading the DTS and validation may take longer because the same object is created multiple times.

      The default value of this property is 'true'. It is safe to set it to either 'true' or 'false' in terms of the final result. The only tradeoff is the amount of memory and time required to perform complete loading and validation.

      since version 2.8.5 the default value is now 'true'

      See Also:
        Constant Field Values

    - #### DTS_SHOW_EXACTITUDE_DETAILS

          public static final java.lang.String DTS_SHOW_EXACTITUDE_DETAILS

      The DTS_SHOW_EXACTITUDE_DETAILS property controls how the values for the calculation inconsistencies are converted to strings. If the value is true, the text representation includes details about the precision or the decimals. If the value is false, just the number is shown.

      The default value is 'true'

      See Also:
        Constant Field Values

    - #### LOG_LEVEL

          public static final java.lang.String LOG_LEVEL

      The log level that will be set to the standard logger at com.ihr.xbrl

      The value must be a valid string representation of the level as indicated in the log4j logging package. This is typically ALL, TRACE, DEBUG, WARN, ERROR or OFF.

      Use ALL for the processor to generate all debug messages sent to appenders registered for loggers at com.ihr.xbrl !!WARNING!! this may slow down performance.

      Default value is Level.ERROR

      See Also:
        Constant Field Values

    - #### DTS_PROXY_HEADER

          public static final java.lang.String DTS_PROXY_HEADER

      The DTS_PROXY_HEADER property is the head of the following three properties:
      - DTS_PROXY_HEADER/address/{n} indicates the proxy address
      - DTS_PROXY_HEADER/port/{n} indicates the proxy port number (no defaults are recognized)
      - DTS_PROXY_HEADER/type/{n} indicates the proxy type "HTTP" or "SOCKS" are recognized types.
      - DTS_PROXY_HEADER/noProxyFor semicolon separated list of hosts for which direct connections will be made (no proxy)
      Where {n} is a sequential number starting with 0.

      Use this properties in order to set a collection of proxies that will be used in turn for opening external files.

      Note the taxonomy cache is independent from the proxies. The taxonomy cache always takes preference over any proxy configurations. Taxonomy cache sources are local files or the XBRL Database.

      See Also:
        Constant Field Values

    - #### AUTHENTICATOR_DELEGATE_INSTANCE

          public static final java.lang.String AUTHENTICATOR_DELEGATE_INSTANCE

      The AUTHENTICATOR_DELEGATE_INSTANCE property is the instance of an object implementing java.net.Authenticator that will be registered as the default authenticator. Authentication may be required by web servers or by proxy servers.
      See Also:
        Constant Field Values

    - #### PROCESSORS_SEQUENCE

          public static final java.lang.String PROCESSORS_SEQUENCE

      The PROCESSORS_SEQUENCE property contains a comma separated list of processors responsible of performing DTS validation

      The default value for the PROCESSORS_SEQUENCE property is XBRLCoreProcessor.PROCESSORNAME which is "XBRL21Core"

      Note: In order to perform XBRL 2.1 validation and XBRL Dimensions 1.0 validation, the value of this property must be set to XBRLCoreProcessor.PROCESSORNAME,XDTProcessor.PROCESSORNAME this is: "XBRL21Core,XBRLDimensions"

      Processors extensibility: Creating your own processors for project specific validation rules

      Processor factories are loaded during the static initialization of the DTSContainer class. It is possible users create additional factories to be registered during the static initialization according to the following rules:

    - The -Dxbrl.processors system property may contain a comma separated list of processor factory classes
      Applications may call the `registerProcessor(String, XBRLPlugInProcessor)` method on this class
    It is not possible to override standard processor names (Core XBRL 2.1, Dimensions and Formula)

    In case of any error during the initialization of custom XBRL processors a RuntimeException is produced encapsulating an XBRLInitializationException. The XBRL Processor may be in an unusable status in this case. Regular processors for XBRL 2.1, Dimensions and Formula processing are safe and does not raise XBRLInitialization exceptions.

See Also:
  Constant Field Values

- #### WARNING_PROPERTY_VALUE

      public static final java.lang.String WARNING_PROPERTY_VALUE

  This is set to the constant value "warning".
  See Also:
    Constant Field Values

- #### ERROR_PROPERTY_VALUE

      public static final java.lang.String ERROR_PROPERTY_VALUE

  This is set to the constant value "error".
  See Also:
    Constant Field Values

- #### IGNORE_PROPERTY_VALUE

      public static final java.lang.String IGNORE_PROPERTY_VALUE

  This is set to the constant value "ignore".
  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE

      public static final java.lang.String FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE

  The FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE property contains a value 'true' or 'false' that defines the behavior of the XPath expression evaluation for General Variables.

  Default value is 'true'

  If the value is 'true' then the XPath expression will be schema aware. Nodes returned by the evaluation of the XPath expression will be typed according with the data types defined in the schemas.

  If the value is 'false' then the XPath expression will NOT be schema aware. Nodes returned by the evaluation of the XPath expression will NOT be typed (they will be Untyped nodes) and data conversion will be necessary in the XPath expressions using them.

  Before 09/01/2011, The formula tests suite contained one test case that requires to load an external XML file using the doc() XPath function. That target XML file was NOT valid against the referenced schema. After 09/01/2011 the tests suite was changed in order make the XML file schema aware.

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_PARAMETER_RESOLVER

      public static final java.lang.String FORMULA_PROCESSOR_PARAMETER_RESOLVER

  The FORMULA_PROCESSOR_PARAMETER_RESOLVER property is used in order to add additional Variable Parameter resolvers to the formula processor.

  The FORMULA_PROCESSOR_PARAMETER_RESOLVER property value must be an instance of a class implementing the HasCreateFormulaParameterResolver interface. The DTSContainer will call the createAndRegisterDTSUriResolver method in order to let the class create and register the new URI resolver.

  In case multiple FORMULA_PROCESSOR_PARAMETER_RESOLVER shall be added in a chain by the calling application, the calling application may use an instance of the class MultiFormulaParameterResolverFactory which implements the functionality of creating all of them and registering to the DTSContainer in the proper order. Refer to the documentation of the MultiFormulaParameterResolverFactory for more information.

  See Also:
    `MultiFormulaParameterResolverFactory`, Constant Field Values

- #### FORMULA_PROCESSOR_RETAIN_INPUT_INTANCE_ON_ASSERTION_RESULTS

      public static final java.lang.String FORMULA_PROCESSOR_RETAIN_INPUT_INTANCE_ON_ASSERTION_RESULTS

  The FORMULA_PROCESSOR_RETAIN_INPUT_INTANCE_ON_ASSERTION_RESULTS property is used to configure the formula processor in order to allow XBRLAssertionResult instances to keep a reference of the original input instance. Note this information may by useful on private validation modules at a later time or for debugging purposes.

  The default value of this property is "false" so a call to the function returning this value on the XBRLAssertionResult object will return null.

  Put this property to true if you want to use this information in the API.

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_RETAIN_AFTER_FORMULA_INTANCE_ON_ASSERTION_RESULTS

      public static final java.lang.String FORMULA_PROCESSOR_RETAIN_AFTER_FORMULA_INTANCE_ON_ASSERTION_RESULTS

  The FORMULA_PROCESSOR_RETAIN_AFTER_FORMULA_INTANCE_ON_ASSERTION_RESULTS property is used to configure the formula processor in order to allow XBRLAssertionResult instances to keep a reference of the original input instance after the execution of the formulas in the variable set that defined the input of the consistency assertion. Note this information may by useful on private validation modules at a later time or for debugging purposes.

  The default value of this property is "false" so a call to the function returning this value on the XBRLAssertionResult object will return null.

  Put this property to true if you want to use this information in the API.

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_PARALLEL_PROCESSING_EXPERIMENTAL

      public static final java.lang.String FORMULA_PROCESSOR_PARALLEL_PROCESSING_EXPERIMENTAL

  The FORMULA_PROCESSOR_PARALLEL_PROCESSING_EXPERIMENTAL property enables the formula processor to execute formulas in parallel. The idea is to reduce execution time to perform validation by executing, as much as possible, things in parallel.

  The FORMULA_PROCESSOR_PARALLEL_PROCESSING_EXPERIMENTAL property value must be a boolean. The default is 'false'

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_ENABLE_ASSERTION_MESSAGE_EXTENSIONS

      public static final java.lang.String FORMULA_PROCESSOR_ENABLE_ASSERTION_MESSAGE_EXTENSIONS

  The FORMULA_PROCESSOR_ENABLE_ASSERTION_MESSAGE_EXTENSIONS property indicates if the processor will calculate and return custom messages during the evaluation of assertions. The property value must be a string representing a boolean value. A value of 'true' means the formula processor will try to evaluate the right message in the right language during the evaluation of an assertion. The value of 'false' means the formula processor will ignore the existence of those resources.

  The FORMULA_PROCESSOR_ENABLE_ASSERTION_MESSAGE_EXTENSIONS property value must be a boolean. The default is 'true'

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_DEFAULT_MESSAGE_ROLE

      public static final java.lang.String FORMULA_PROCESSOR_DEFAULT_MESSAGE_ROLE

  The FORMULA_PROCESSOR_DEFAULT_MESSAGE_ROLE property indicates the default role URI string that will be used for the resolution of the winning message when no role (null) is indicated or when no message is found for the selected role (second opportunity).

  The FORMULA_PROCESSOR_DEFAULT_MESSAGE_ROLE property value must be a string. The default value is 'http://www.xbrl.org/2010/role/message' that is defined in the Generic messages 1.0 specification.

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_LEVEL_OF_EXCEPTIONS_INSIDE_FILTER_XPATH_EXPRESSIONS

      public static final java.lang.String FORMULA_PROCESSOR_LEVEL_OF_EXCEPTIONS_INSIDE_FILTER_XPATH_EXPRESSIONS

  The FORMULA_PROCESSOR_LEVEL_OF_EXCEPTIONS_INSIDE_FILTER_XPATH_EXPRESSIONS property indicates how the formula processor will react when a the evaluation of a formula filter raises an XPath exception. According with the Formula Specification this exception MUST be raised up to the formula processor and, for this reason, the default value is "error". But other formula processors have different implementations and they just ignore XPath exceptions produced.

  In order to create high quality taxonomies we encourage taxonomy developers to set this property to "error" and create test cases in order to test the taxonomy and execution of formulas in all possible circumstances. Adding filters to the variables when needed in order to prevent the XPath expression to raise an exception when the exception is not desired.

  Possible values of this property are: "error" (the default and recommented value) and "warning". Note that "ignore" is not a valid property value.

  Setting this property value to "error" is key in order to guarantee high interoperability of the formulas defined in XBRL taxonomies as Reporting Standard XBRL formula processor has implemented all the formula specification and other software vendors are not able to raise or recognize (maybe they even skip execution) of assertions defined in formula linkbases.

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_USE_STRICT_SPECIFICATION_XPATH

      public static final java.lang.String FORMULA_PROCESSOR_USE_STRICT_SPECIFICATION_XPATH

  The FORMULA_PROCESSOR_USE_STRICT_SPECIFICATION_XPATH property sets the processor to use the XPath expressions defined for filters in the formula specification as they are written in the specifications document. This mode passes all test cases in the formula conformance suite and shall be considered as the right model to use for high quality taxonomy development. Surprisingly this mode cannot be used to validate EBA instances because it generates XPath errors. The EBA instances use of face specific functions designed for Fact Items with tuple arguments without the proper filter to process only tuples. While it is not indicated in the formula conformance suite that filters shall accept invalid arguments and not raise an exception during evaluation this is the common practice of some regulators and other formula processors does not raise errors when they should be raised. This is the reason we have set this property in our processor. When this property is set to "true", the processor will raise an exception if a tuple is used in an XPath expression that is indicated to process only items. If this property is set to "false" a filter will be automatically introduced (which is not part of the formula specification) and the execution will not raise an exception. For HIGH QUALITY taxonomy development, the value of this property shall be set to "true". In order to validate instances created with low quality taxonomies, set this property to "false". The default value of this property is "false".
  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_RETAIN_USED_FACTS

      public static final java.lang.String FORMULA_PROCESSOR_RETAIN_USED_FACTS

  The FORMULA_PROCESSOR_RETAIN_USED_FACTS property sets the processor to record all facts from fact variables that binds to a particular formula during assertion evaluation. This information might be useful for debug purposes of an assertion execution but may not be relevant in production environments because it consumes extra memory.

  The default value of this property is 'false' so, no facts are recorded. If the value is set to 'true' then facts are recorded and are accessible through methods in the XBRLAssertionResult class.

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_IGNORE_ASSERTION_SATISFIED

      public static final java.lang.String FORMULA_PROCESSOR_IGNORE_ASSERTION_SATISFIED

  The FORMULA_PROCESSOR_IGNORE_ASSERTION_SATISFIED property indicates if the evaluation of assertions with "assertion satisfied" result will generate a message that will be added to the validation report or if the message will not be generated at all.

  The property exists to allow for a more user friendly validation report in which only non compliant assertions are reported and save memory for not storing information that will not be used

  The default value is "false", this means all messages are generated

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_IGNORE_ASSERTION_NOT_SATISFIED

      public static final java.lang.String FORMULA_PROCESSOR_IGNORE_ASSERTION_NOT_SATISFIED

  The FORMULA_PROCESSOR_IGNORE_ASSERTION_NOT_SATISFIED property indicates if the evaluation of assertions with "assertion not satisfied" result will generate a message that will be added to the validation report or if the message will not be generated at all.

  The property exists to allow for a more user friendly validation report in which only compliant assertions are reported and save memory for not storing information that will not be used

  The default value is "false", this means all messages are generated

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_RETAIN_ASSERTION_RESOURCES

      public static final java.lang.String FORMULA_PROCESSOR_RETAIN_ASSERTION_RESOURCES

  The FORMULA_PROCESSOR_RETAIN_ASSERTION_RESOURCES property allows applications to access the internal resources that were used during the evaluation of an assertion. That information shall be used by applications to access variables evaluated and facts used during evaluation time.

  Note this property may consume a lot of memory if used for all assertions in a taxonomy and the taxonomy contains a big number of assertions. For this reason it is strongly recommended this property is used in combination with either FORMULA_PROCESSOR_IGNORE_ASSERTION_SATISFIED or FORMULA_PROCESSOR_IGNORE_NOT_ASSERTION_SATISFIED set to 'true' so only assertions that are important for the consumer application generates detailed log messages.

  When this property value is set to 'true' the method getEvaluatedResources() in the XBRLAssertionResult class returns the instance of the XBRLFormulaResource that serves as base for assertion evaluation. If this property value is set to 'false' the method getEvaluatedResources() returns null.

  The default value is "false", this means, no detailed information will be collected, which is adequate for general validation purposes.

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_FILTER_ORDER_CLASS

      public static final java.lang.String FORMULA_PROCESSOR_FILTER_ORDER_CLASS

  The FORMULA_PROCESSOR_FILTER_ORDER_CLASS property indicates the name of a class that must implement the XBRLFilterOrderTool interface. That class will be used to obtain the order in which the filters bind to a variable evaluation will be added to the final XPath 2 expression.

  The default value of this property is an instance of the XBRLFilterOrderTool interface that passes all test cases in the formula conformance suite.

  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_USE_GLOBAL_PARAMETERS

      public static final java.lang.String FORMULA_PROCESSOR_USE_GLOBAL_PARAMETERS

  The original version of the variables specification (The already approved recommendation) considers that parameters must have arcs connecting the parameter with the variable set using it. This is written in the paragraph that says:

  The @name attribute on a parameter declaration contains the QName of the parameter being declared. This is the QName used by the variable processor to uniquely identify the parameter when setting its value. It is not the QName by which the parameter is referenced when it is used. That QName is specified by relationship of the parameter to the resource that makes use of it.

  http://www.xbrl.org/Specification/variables/REC-2009-06-22/variables-REC-2009-06-22.html#sec-parameters
  The proposed edit recommendation (still not a recommendation) published on 2011-10-19 contains a different wording and effectively makes parameters global, but there is no additional documentation about this change in the document. The new wording says:

  The @name attribute on a parameter declaration contains the QName of the parameter being declared. This QName MAY be used within any XPath expression as a global QName to access the parameter. Additionally the parameter MAY be referenced by a QName specified on relationship of the parameter to a resource that makes use of it.

  http://www.xbrl.org/Specification/variables/PER-2011-10-19/variables-PER-2011-10-19.html#sec-parameters
  This property allows the Formula Processor to consider parameters as global resources as indicated in the new PER of 2011. If the value is "true" the new interpretation is considered. If the value is "false" the old (recommended) interpretation is used. The default value is "false".
  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_SCHEMA_VALIDATE_EXTERNAL_DOCS

      public static final java.lang.String FORMULA_PROCESSOR_SCHEMA_VALIDATE_EXTERNAL_DOCS

  All documents in the DTS must be schema valid. But there may be cases in which an XPath expression that exists in a custom made formula linkbase uses the fn:doc() function to load external files. The recommended behavior is that external XML files were also schema valid but it has been noticed this is not the case in real projects. If this property value is set to 'false' externally loaded documents will not be schema validated. If this property is set to 'true' externally referenced documents will be validated against already loaded schemas and referenced schemas within the document. The default value is 'true'
  See Also:
    Constant Field Values

- #### DEFAULT_DIMENSIONS_APPLICANCY

      public static final java.lang.String DEFAULT_DIMENSIONS_APPLICANCY

  The DEFAULT_DIMENSIONS_APPLICANCY property indicates how the Formula Functions (this does not affects Dimensions Validation) returns the value of a Fact item when the Fact item is NOT reported for a dimension that contains a default value.

  Background: The desired and natural interpretation of this property should be "Defaults-NOT-apply". Defaults should apply only when the dimension exist on hypercubes linked with the primary item and after that test there should be a question about what the dimension value is. The authors of the formula specification and the base specification working group, surprisingly, has implemented the opposite. According to their interpretation of the Dimensions Specification, default values are always returned for a fact regardless the fact does not contains that dimension declared on any hypercube.

  Due to the reason the interpretation made by the formula WG and base WG is not understandable by business users, this processor allows our users to decide if they want to operate in the "natural mode" of not allowing defaults to appear when they are not desired or in the "anti natural mode" where defaults are always returned.

  The possible values for this parameter are:

  - "Defaults-NOT-apply" which is the natural value users can set in order to see default values when they are desired.
  - "Defaults-ALWAYS-apply" which is undesired, but it is the value that the Formula and Base spec authors has agreed on. (Unfortunately this is the default value in order to pass the International Tests Suites)
  See Also:
    Constant Field Values

- #### DEFAULTS_NOT_APPLY

      public static final java.lang.String DEFAULTS_NOT_APPLY

  Possible value for the DEFAULT_DIMENSIONS_APPLICANCY property.
  See Also:
    Constant Field Values

- #### DEFAULTS_ALWAYS_APPLY

      public static final java.lang.String DEFAULTS_ALWAYS_APPLY

  Possible value for the DEFAULT_DIMENSIONS_APPLICANCY property.
  See Also:
    Constant Field Values

- #### FORMULA_PROCESSOR_EXCLUSION_FILE

      public static final java.lang.String FORMULA_PROCESSOR_EXCLUSION_FILE

  The FORMULA_PROCESSOR_EXLUSION_FILE property can be set to a file name (using URI notation) that may contain formula or assertion identifiers that the processor will skip evaluation. The file format is one entry per line, blank lines are skipped and lines starting with hash sign '#' are skipped too.

  The default value of this property is not set (or null) and means that all formulas and assertions will be evaluated.

  The file can be absolute or relative. If it is relative the absolute base path to resolve the relative URI is the value of the system property "user.dir"

  See Also:
    Constant Field Values

- #### SERIALIZATION_OUTPUT_DEFAULT_ATTRIBUTE_VALUES

      public static final java.lang.String SERIALIZATION_OUTPUT_DEFAULT_ATTRIBUTE_VALUES

  The SERIALIZATION_OUTPUT_DEFAULT_ATTRIBUTE_VALUES indicates if during the serialization phase (conversion from internal object model representation to the XBRL syntax) the default values for attributes will be explicitly serialized or will be hidden.

  It is a good practice in XML to hide attributes when they have the default values assigned in the XML Schemas. This reduces the file size and maintains the same expressiveness after XML Schema validation, but the US-SEC requires the order attribute to be explicitly serialized on all relationships even if it is meaningless.

  The value can be either "true" or "false". The default value for this property is "false".

  See Also:
    Constant Field Values

- #### SERIALIZATION_OUTPUT_XML_ENCODING

      public static final java.lang.String SERIALIZATION_OUTPUT_XML_ENCODING

  The SERIALIZATION_OUTPUT_XML_ENCODING property can be set to the encoding for XML files produced by the API. The default encoding is "UTF-8"

  Some "modern" projects, still use encodings defined in the old 60s... such as ASCII... If you have to deal with this projects you have to provide the value "ASCII" to this property in order to make sure the output is encoded as ASCII

  See Also:
    Constant Field Values

- #### SERIALIZATION_OUTPUT_XML_ENCODING_DEFAULT

      public static final java.lang.String SERIALIZATION_OUTPUT_XML_ENCODING_DEFAULT

  The Constant SERIALIZATION_OUTPUT_XML_ENCODING_DEFAULT.
  See Also:
    Constant Field Values

- #### SERIALIZATION_OUTPUT_INDENT

      public static final java.lang.String SERIALIZATION_OUTPUT_INDENT

  The SERIALIZATION_OUTPUT_INDENT property can be set to either "yes" or "no".

  The default value is "yes". so the XML is indented and you can see the nesting of XML nodes in a text editor. Change it to "no" if that is not required and you can save some space on disk.

  See Also:
    Constant Field Values

- #### SERIALIZATION_OUTPUT_INDENT_DEFAULT

      public static final java.lang.String SERIALIZATION_OUTPUT_INDENT_DEFAULT

  The Constant SERIALIZATION_OUTPUT_INDENT_DEFAULT.
  See Also:
    Constant Field Values

- #### SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION

      public static final java.lang.String SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION

  The SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION cat be set to either "yes" or "no".

  The default value is "no" so the XML declaration will always be included by default.

  See Also:
    Constant Field Values

- #### SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION_DEFAULT

      public static final java.lang.String SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION_DEFAULT

  The Constant SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION_DEFAULT.
  See Also:
    Constant Field Values

- #### XML_REMOVE_NAMESPACE_DECLARATIONS

      public static final java.lang.String XML_REMOVE_NAMESPACE_DECLARATIONS

  The XML_REMOVE_NAMESPACE_DECLARATIONS property indicates if the toString method in the XMLFragment generates a string with namespace declarations or without namespace declarations. The prefixes will always remain at the elements and attributes but the namespaces can be stripped off.

  The default value of this property is "true" so namespaces will be stripped.

  This property affects GUI tools that outputs text versions of the XML extracted from files or generated internally.

  See Also:
    Constant Field Values

- #### FAST

      public static final int FAST

  FAST is a constant for the `mode` parameter in the `isInstanceOfThisDTS(Source, int)` function. It indicates that the comparison of the DTS will use only the files explicitly referenced in this file and not the files inside files referenced in this file (no recurse discovery of DTS files). This is faster but DTSs that contains the same files using different starting points will not be found.
  See Also:
    Constant Field Values

- #### FULL

      public static final int FULL

  FULL is a constant for the `mode` parameter in the `isInstanceOfThisDTS(Source, int)` function. It indicates that the comparison of the DTS will use all files in the DTS of both documents. This is slowest than FAST comparison but will detect all DTS that are the same DTS regardless the starting points of discovery are the same on both DTSs under comparison.
  See Also:
    Constant Field Values

- #### LOGGER_NAME

      public static final java.lang.String LOGGER_NAME

  LOGGER_NAME is defined as com.ihr.xbrl and is final
  See Also:
    Constant Field Values

- #### log

      public org.apache.log4j.Logger log

  All log information goes through this logger.

- #### GENERATION_MODE_NODEINFO

      public static final int GENERATION_MODE_NODEINFO

  ORIGINAL serialization method means that the serialization of this object will be made using the document that was first read from source file. This consumes more memory but is safer in terms of storing into the database the same objects that were sent to the processor. This is a global setting for all linkbases, schemas and instance documents.
  See Also:
    Constant Field Values

- #### GENERATION_MODE_OBJECTS

      public static final int GENERATION_MODE_OBJECTS

  GENERATION_MODE_OBJECTS serialization method means that the serialization of this object will be made using the object model and objects in the infoset.
  See Also:
    Constant Field Values

- #### ADQUIRE_EXTENDED_LOCK

      public static final int ADQUIRE_EXTENDED_LOCK

  Constant to be used as flag for `specialValidation(SpecialValidationProcess, int, Object[])`

  the calling process will adquire the lock for the extended links so it can create temporary extended links that will be deleted before exiting validation.

  See Also:
    Constant Field Values

- #### ADQUIRE_ROLETYPES_BY_EXT_LINK_LOCK

      public static final int ADQUIRE_ROLETYPES_BY_EXT_LINK_LOCK

  Constant to be used as flag for `specialValidation(SpecialValidationProcess, int, Object[])`

  The calling process will adquire the lock for the roles by extended link.

  See Also:
    Constant Field Values

- ### Method Detail

  - #### setProperty

        public void setProperty(java.lang.String name,
                       java.lang.String value)

    Sets a DTSConfiguration property. This method does not change the configuration of the currently created DTSContainer it just sets or change the value of one of the properties. If another DTSContainer is created from this properties then, the new DTSContainer will be configured according witht he properties set here
    Parameters:
      `name` - property name
      `value` - property value as string

  - #### setVariablesForProcessors

        public void setVariablesForProcessors(java.util.Properties variables)

    Variables is a new machanism to pass information from an external application to a custom processor. Before the validation starts, the DTSContainer can be set to a some properties and the properties are available from the validators. A custom validator can read the variables and act in consequence.
    Parameters:
      `variables` - Properties instance
    Since:
      2.7.5

  - #### getVariablesForProcessors

        public java.util.Properties getVariablesForProcessors()

    Access to the variables that has been set to be available for processors. This method returns null if no variables has been set. Call `setVariablesForProcessors(Properties)` in order to set the properties instance
    Returns:
      Properties or null
    Since:
      2.7.5

  - #### setProperties

        public void setProperties(java.util.Properties newProps)

    Internal method using during class constructors to set the properties of this DTSContainer.
    Parameters:
      `newProps` - Properties

  - #### getProperties

        public java.util.Properties getProperties()

    Access to the properties of this DTSContainer.

    Properties are set during the creation of the DTSContainer to their default or indicated values.

    Warning, changes in the values of some properties in a DTS already created may or may not be a safe operation.

    Returns:
      Properties object

  - #### hashCode

        public int hashCode()

    Overrides:
      `hashCode` in class `java.lang.Object`

  - #### equals

        public boolean equals(java.lang.Object obj)

    Overrides:
      `equals` in class `java.lang.Object`

  - #### registerBar

        public void registerBar(DTSLoadingBarInterface bar)

    Description copied from interface: `Stopable`
    Sets the loading bar object that will be informed about progress in the loading process. Set this to null to deactivate bar
    Specified by:
      `registerBar` in interface `Stopable`
    Parameters:
      `bar` - DTSLoadingBarInterface object

  - #### getRegisteredBar

        public DTSLoadingBarInterface getRegisteredBar()

    If this DTSContainer has a registered object that implements the DTSLoadingBarInterface interface this function returns it. Otherwise it returns null.

    This function is used internally by the API in order to send messages to the GUI during the process of dts discovery and loading a DTS into the object model.

    Returns:
      DTSLoadingBarInterface
    Since:
      2.6.8

  - #### getDTSURIResolver

        public javax.xml.transform.URIResolver getDTSURIResolver()

    Access to the URIResolver of this DTSContainer. The URIResolver can be changed if there is a need to obtain documents from different sources like a database, cache etc. Some URIResolvers like the DatabaseURIResolver operates in cascade mode and requires to know the current URIResolver in order to set it as the next resolver in the cascade.
    Returns:
      URIResolver

  - #### installDTSURIResolver

        public void installDTSURIResolver(javax.xml.transform.URIResolver resolver)

    Sets a new resolver to this DTSContainer object. The URIResolver will be used to locate files in the DTS.
    Parameters:
      `resolver` - the resolver
    Since:
      2.6.11

  - #### installFormulaParameterResolver

        public void installFormulaParameterResolver(XBRLFormulaParametersResolver parameterResolver)

    Sets a new resolver to this XBRLFormulaParametersResolver object. The XBRLFormulaParametersResolver will be used to obtain formula parameters during formula evaluation.
    Parameters:
      `parameterResolver` - the parameter resolver
    Since:
      2.7.1

  - #### doCallInstallDTSURIResolver

        public void doCallInstallDTSURIResolver(HasCreateDTSUriResolver instanceClass)

    Executes a call to the method createAndRegisterDTSUriResolver on the class passed in as a parameter.
    Parameters:
      `instanceClass` - instance of a class implementing the interface HasCreateDTSUriResolver
    Since:
      2.6.11

  - #### doCallInstallFormulaParameterResolver

        public void doCallInstallFormulaParameterResolver(HasCreateFormulaParameterResolver instanceClass)

    Do call install formula parameter resolver.
    Parameters:
      `instanceClass` - the instance class

  - #### setName

        public void setName(java.lang.String name)

    Sets the name of this DTS to the specified name. DTS Names are useful for GUIs only
    Parameters:
      `name` - the new name

  - #### getName

        public java.lang.String getName()

    Returns back the DTS name, this is useful for GUIs only. If the dts name is not set, this function provides a new name for this DTS that is the constant string "DTS" followed by a number that will be incremented on each use.
    Returns:
      String, never returns null

  - #### clear

        public void clear()
                   throws java.lang.Throwable

    Similarly to the clear method in collections, this method frees up memory and resources used in this object. Do not call this method unless you are absolutely sure the DTS is no longer needed anymore. This includes objects created and using this DTS as a reference.
    Throws:
      `java.lang.Throwable` - the throwable

  - #### newEmptyContainer

        public static DTSContainer newEmptyContainer()
                                              throws com.rs.lic.LicenseVerificationException

    Method used to create a new empty DTSContainer.

    After object instantiation you may be interested in using any of the load methods in order to load the DTS into the container.

    The default DTSContainer created using this method takes the default value for all DTS properties.

    The `USE_CACHE_PROPERTY` value is `true`

    Returns:
      DTSContainer
    Throws:
      `com.rs.lic.LicenseVerificationException` - the license verification exception
    Since:
      1.0

  - #### newEmptyContainer

        public static DTSContainer newEmptyContainer(java.util.Properties props)
                                              throws com.rs.lic.LicenseVerificationException

    Method used to create a new empty DTSContainer. Use the load method to load the DTS into the container
    Parameters:
      `props` - Properties to configure the processor. null for using default values for all properties. The processor creates a local copy of the properties indicated here so during cleanUp phase of this DTS the properties used on this call will not be reset, but the properties effectively used in the report will.
    Returns:
      DTSContainer
    Throws:
      `com.rs.lic.LicenseVerificationException` - the license verification exception

  - #### newCompatibleContainer

        public static DTSContainer newCompatibleContainer(net.sf.saxon.s9api.Processor proc,
                                          java.util.Properties props)
                                                   throws com.rs.lic.LicenseVerificationException

    Creates a new DTSContainer that is compatible with the Processor suppied as a parameter. This is useful when there will be XPath Expressions executed in the application that requires also access to XBRL nodes.
    Parameters:
      `proc` - Processor (saxonica s9api)
      `props` - Properties. May be null.
    Returns:
      DTSContainer
    Throws:
      `com.rs.lic.LicenseVerificationException` - the license verification exception

  - #### newCompatibleContainer

        public static DTSContainer newCompatibleContainer(DTSContainer otherContainer,
                                          java.util.Properties props)
                                                   throws com.rs.lic.LicenseVerificationException

    Creates a new DTSContainer that is compatible with the Processor suppied as a parameter. This is useful when there will be XPath Expressions executed in the application that requires also access to XBRL nodes.
    Parameters:
      `otherContainer` - DTSContainer the container the new container must be compatible with
      `props` - Properties. May be null.
    Returns:
      DTSContainer
    Throws:
      `com.rs.lic.LicenseVerificationException` - the license verification exception

  - #### getCompatibleProcessor

        public static net.sf.saxon.s9api.Processor getCompatibleProcessor(net.sf.saxon.s9api.Processor compatWith,
                                                          boolean schemaAware)

    Gets the compatible processor.
    Parameters:
      `compatWith` - the other Processor the new processor must be cmpatible with
      `schemaAware` - the schema aware
    Returns:
      the compatible processor

  - #### mergeDTSs

        public static DTSContainer mergeDTSs(DTSContainer[] dtss)
                                      throws com.rs.lic.LicenseVerificationException

    Merges several DTSs into a single DTS.
    Parameters:
      `dtss` - DTSContainer[] array of DTSs to merge into a single DTS
    Returns:
      DTSContainer
    Throws:
      `com.rs.lic.LicenseVerificationException` - Only thrown when the license is limited to a set of files and there is a file in the DTS that is out of the valid list of files under the license

  - #### getStaticContainer

        public static DTSContainer getStaticContainer()

    The static container exist only for static objects like standard roleTypes and standard arcroleTypes that are not used on any specific DTS. When a static role type is used in a DTS a copy of the static role type is returned instead and the dts of that role type is changed from the static dts container to the calling container.
    Returns:
      DTSContainer

  - #### addDocumentToDTS

        public void addDocumentToDTS(XBRLDTSDocument d)

    Adds a document to the DTS container objects. Depending on the document type this is added to different object containers.
    Parameters:
      `d` - XMLDocumentURI

  - #### specialValidation

        public java.lang.Object[] specialValidation(SpecialValidationProcess process,
                                           int flags,
                                           java.lang.Object[] arguments)
                                             throws XBRLValidationException

    Performs a special validation process that requires adquisition of internal locks that are only available inside the DTSContainer. Using this method prevents multiple threads to access (and modify) DTSContainer collections that are also accessed from Iterators.

    Not using this method may cause ConcurrentModificationException if one thread is using an iterator over a collection and the other thread modifies the collection.

    Parameters:
      `process` - this is the process implementation instance
      `flags` - OR bitmap indicating the locks to adquire see `ADQUIRE_EXTENDED_LOCK` and `ADQUIRE_ROLETYPES_BY_EXT_LINK_LOCK`
      `arguments` - the arguments
    Returns:
      whatever is returned from the SpecialValidationProcess.processImpl method
    Throws:
      `XBRLValidationException` - to allow the SpecialValidationProcess to raise any validation exception
    See Also:
      `SpecialValidationProcess`

  - #### delDocumentFromDTS

        public void delDocumentFromDTS(XBRLDTSDocument d)

    Del document from dts.
    Parameters:
      `d` - the d

  - #### save

        public void save(boolean relativize)
                  throws XBRLSerializationException

    Save all files in the DTS. Files loaded from the web or official locations cached to local files will not be saved and will be silently ignored. Only files with a file: URI scheme will be saved. Instance documents are not part of the DTS so they are not saved calling this method.
    Parameters:
      `relativize` - true if the URIs will be relativized according to the parent document. False to absolutize all URIs
    Throws:
      `XBRLSerializationException` - the XBRL serialization exception
    Since:
      2.6.4

  - #### isDocumentInDTS

        public boolean isDocumentInDTS(XBRLDTSDocument d)

    Search the different DTS document containers and try to find the document in the cache. return false if the document in not in the DTS
    Parameters:
      `d` - XMLDocumentURI
    Returns:
      boolean

  - #### isDocumentInDTS

        public boolean isDocumentInDTS(java.net.URI key)

    Returns true if the document is in the DTS.

    Note: The URI must be absolute and the URI text MUST NOT have non US-ASII characters. Non US-ASCII characters must be transformed into escaped UTF-8 characters previously to calling this function.

    Parameters:
      `key` - the Document URI to search for
    Returns:
      boolean

  - #### getBaseTypes

        public java.util.Iterator<javax.xml.namespace.QName> getBaseTypes()

    Returns an iterator over the QNames of all DTSBases in the DTS this is all types of containers of relationships.
    Returns:
      Iterator

  - #### getBaseRoles

        public java.util.Iterator<XBRLRoleType> getBaseRoles(javax.xml.namespace.QName linkbaseType)

    Iterator over all roles used on xlink:role attributes on extended links Iterator elements can be casted to XBRLRoleType objects.
    Parameters:
      `linkbaseType` - QName of the extended link type
    Returns:
      Iterator<XBRLRoleType> an Iterator over all XBRLRoleType objects used in the DTS

  - #### addRoleTypeForExtendedLink

        public void addRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType,
                                      XBRLRoleType role)

    Adds or increases the count of role types for a linkbase type. Used internally by the API. Do not use or use at your own risk.
    Parameters:
      `linkbaseType` - the linkbase type
      `role` - the role

  - #### delRoleTypeForExtendedLink

        public void delRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType,
                                      XBRLRoleType role)

    Removes or decreases the count of role types for a linkbase type. Used internally by the API. Do not use or use at your own risk.
    Parameters:
      `linkbaseType` - the linkbase type
      `role` - the role

  - #### isBaseDefined

        public boolean isBaseDefined(javax.xml.namespace.QName linkbaseType,
                            XBRLRoleType role)

    Returns true if there is a DTSbase defined in the DTS for the given role and of the specified linkbaseType.
    Parameters:
      `linkbaseType` - QName
      `role` - XBRLRoleType
    Returns:
      boolean

  - #### getBase

        public DTSBase getBase(javax.xml.namespace.QName linkbaseType,
                      XBRLRoleType role)

    Obtains a base for the specified linkbaseType and role type.

    bases are stored in a cache of returned bases to accelerate applications

    if a DTSBase is not found a new empty DTSBase is created. if no DTS has been loaded or the DTS loading process was interrupted then null is returned.

    if a loop of this type:

         Iterator iterR = dts.getBaseRoles(DefinitionLinkbase.lbType);
          while (iterR.hasNext()) {
           XBRLRoleType rt = iterR.next();
           // add it only if there are "all" relationships in there
           DTSBase base = dts.getBase(DefinitionLinkbase.lbType, rt);
           ...
          }
         }

    the call to getBase may modify the surrounding iterator and produce an exception in the next cycle. The solution is to call `isBaseDefined(QName, XBRLRoleType)` before calling `getBase(QName, XBRLRoleType)`

    a base is an object that contains a set of extended links of the same linkbaseType and role. Multiple relationships with different arcroles are inside the same base object.

    Parameters:
      `linkbaseType` - QName
      `role` - XBRLRoleType
    Returns:
      DTSBase object

  - #### getBaseRoleTypes

        public java.util.Iterator<XBRLRoleType> getBaseRoleTypes(javax.xml.namespace.QName extendedLinkQName)

    Return an iterator over all XBRLRoleType elements where DTSBase exists. If there are none a new empty set is created.
    Parameters:
      `extendedLinkQName` - QName
    Returns:
      Iterator

  - #### getConfiguration

        public net.sf.saxon.s9api.Processor getConfiguration()

    Obtains the Saxonica Processor object used by all elements in this DTS.
    Returns:
      Processor

  - #### recompile

        public void recompile()
                       throws DTSDiscoveryException

    Recompile schemas loaded into the schemaconfiguration. This method would be only called by DTS editors that requires the schemas in the DTS to be loaded again
    Throws:
      `DTSDiscoveryException` - the DTS discovery exception

  - #### collectTopLevelSchemaUsage

        public void collectTopLevelSchemaUsage(java.net.URI sourceDocumentURI,
                                      java.lang.String namespace,
                                      java.net.URI targetDocumentURI,
                                      boolean bMode)

    Collect top level schema usage.
    Parameters:
      `sourceDocumentURI` - the source document uri
      `namespace` - the namespace
      `targetDocumentURI` - the target document uri
      `bMode` - the b mode

  - #### getFastConfiguration

        public net.sf.saxon.s9api.Processor getFastConfiguration()

    Method to access to the Processor corresponding to this DTSContainer and the status of this DTSContainer.

    If schemas has been already compiled this method returns the shared Processor. If the status of this DTSContainer is still reading external files then a new Processor non schema aware will be created.

    Returns:
      Processor

  - #### getNewConfiguration

        public static DTSContainer.ProcessorAndSchemaCompiler getNewConfiguration(boolean schemaAware,
                                                                  DTSContainer dts,
                                                                  java.util.Properties props)

    Creates a new Configuration object. If the new configuration object is SchemaAware then the core schemas for XBRL are loaded.
    Parameters:
      `schemaAware` - boolean (true if the new configuration object MUST be schema aware)
      `dts` - a DTSContainer object suitable to provide schemas from the cache or null if not available at this time
      `props` - Properties to the DTSConfiguration object
    Returns:
      ProcessorAndSchemaCompiler

  - #### configureJavaProxy

        public static void configureJavaProxy(java.util.Properties props)

    Configures java virtual machine proxy according with the properties received. This method is called automatically when a new DTSContainer is created. On version 2.8.5 this method has been exposed to allow the GUIs to initialize the jvm proxies before any DTSContainer is created. In any case, properties must be set prior to call this method.
    Parameters:
      `props` - the properties to obtain information from
    See Also:
      `for information about the standard properties.`, `for information about the proxy authenticator instance`

  - #### cacheContains

        public boolean cacheContains(java.net.URI documentURI)

    Interrogates objects in the cache of documents indexed by documentURI returns true if the documentURI is on the cache

    The document URI is normalized and absolutized before the index search operation

    fragments are removed because the cache contains documents.

    Parameters:
      `documentURI` - the document uri
    Returns:
      boolean true if the document refrenced by the documentURI is already in the cache

  - #### cacheSchemaByNamespace

        public java.util.Iterator<XBRLTaxonomy> cacheSchemaByNamespace(java.lang.String namespace)

    Obtains a series of XBRLTaxonomy objects from the cache based on the namespace declared in the XBRLTaxonomy schema

    Results are not indexed

    Returns the empty sequence if the namespace is not found in the DTS.

    Parameters:
      `namespace` - String
    Returns:
      Iterator<XBRLTaxonomy> the XBRLTaxonomy object that defines the specified namespace

  - #### cacheGet

        public XMLDocumentURI cacheGet(java.net.URI documentURI)

    Obtains a document from the cache indexed by document URI The URI is absolutized and normalized before comparison.
    Parameters:
      `documentURI` - the document uri
    Returns:
      The XMLDocumentURI stored in the cache or null if the document is not in the cache

  - #### cacheSize

        public int cacheSize()

    Returns the number of files in the cache.
    Returns:
      the int

  - #### getCacheElement

        public XMLDocumentURI getCacheElement(int index)

    Returns the nth element in the cache.
    Parameters:
      `index` - the index
    Returns:
      the cache element

  - #### cachePut

        public void cachePut(XMLDocumentURI documentURI)
                      throws DTSDiscoveryException

    Stores a document in the cache indexed by document URI The URI is absolutized and normalized before stored being stored.
    Parameters:
      `documentURI` - the document uri
    Throws:
      `DTSDiscoveryException` - the DTS discovery exception

  - #### cacheRemove

        public void cacheRemove(java.net.URI documentURI)

    Removes a document form the cache. The document is identified by its URI
    Parameters:
      `documentURI` - the document uri

  - #### cacheResource

        public XBRLResource cacheResource(XBRLExtendedLink parent,
                                 net.sf.saxon.s9api.XdmNode ni,
                                 java.lang.Class<? extends XBRLResource> name)

    Obtains a resource from the cache or creates a new resource corresponding to the node supplied as a parameter and stores it in the cache for further reference.

    resources are indexed by the NodeInfo element

    Parameters:
      `parent` - - Extended link where the XBRLResource resides. Can be null if the XBRLResource is in the cache.
      `ni` - - NodeInfo, cannot be null
      `name` - - class of the resource to be created if no resource exist in the cache
    Returns:
      The XBRLResource object from the cache or just created

  - #### addResource

        public void addResource(XBRLResource resource)
                         throws XBRLDuplicateException

    The XBRLResouce initializer calls this method to store a new resource in the DTSContainer cache. This method is for internal use. if the resource class is marked with NotRegistableResource then the old resource will remain and the new resource will not be registered
    Parameters:
      `resource` - the resource
    Throws:
      `XBRLDuplicateException` - the XBRL duplicate exception

  - #### getResource

        public XBRLResource getResource(XBRLResource res)

    Locates a resource in the DTS that is identical to the resource received as a parameter. This function should be called by applications tring to create a resource programatically when the new resource creation has raised a XBRLDuplicateResource exception. The parameter is the resource that was about to be created. Returns the existing resource that has already been added to the parent container.
    Parameters:
      `res` - XBRLResource
    Returns:
      XBRLResource

  - #### getLanguages

        public java.util.Iterator<java.lang.String> getLanguages()

    Returns an iterator over all languages used in labels in the DTS.
    Returns:
      Iterator

  - #### delResource

        public void delResource(XBRLResource resource)

    Eliminates a resource form the DTS except if the class is marked with NotRegistrableResource interface.
    Parameters:
      `resource` - the resource

  - #### load

        public XBRLDocument load(java.net.URI url)
                          throws DTSDiscoveryException,
                                 com.rs.lic.LicenseVerificationException

    Load a DTS. The DTS Discovery rules start at the given uri. If the uri is relative, the absolute uri is calculated automatically. All files in the DTS are schema validated. Some of the schemas may not be part of the DTS. All Infoset properties of the loaded files are readed The load process does not include XBRL 2.1 validation
    Parameters:
      `url` - a Taxonomy schema, linkbase or instance document
    Returns:
      an XBRLDocument object
    Throws:
      `DTSDiscoveryException` - is XBRL errors were found
      `com.rs.lic.LicenseVerificationException` - Only thrown when the license is limited to a set of files and there is a file in the DTS for which there is no license

  - #### load

        public XBRLDocument[] load(java.net.URI[] url)
                            throws DTSDiscoveryException,
                                   com.rs.lic.LicenseVerificationException

    Load a DTS from a set of urls. The DTS Discovery rules start at every one of the urls in the set. If the url is relative, the absolute uri is calculated automatically using the current folder as the base url. All files in the DTS are schema validated. Some of the schemas may not be part of the DTS. All Infoset properties of the loaded files are readed The load process does not include XBRL 2.1 validation. It includes: - DTS discovery - Schema validation - Infoset process
    Parameters:
      `url` - an array of Taxonomy schemas, linkbases or instance documents
    Returns:
      an XBRLDocument object
    Throws:
      `DTSDiscoveryException` - is XBRL errors were found
      `com.rs.lic.LicenseVerificationException` - Only thrown when the license is limited to a set of files and there is a file in the DTS for which there is no license

  - #### load

        public XBRLDocument load(javax.xml.transform.Source source)
                          throws DTSDiscoveryException,
                                 com.rs.lic.LicenseVerificationException

    Load a DTS. The DTS Discovery rules start at the URL indicated in the SystemID of the source object received as a parameter. If the uri is relative, the absolute uri is calculated automatically. All files in the DTS are schema validated. Some of the schemas may not be part of the DTS. All Infoset properties of the loaded files are readed The load process does not include XBRL 2.1 validation
    Parameters:
      `source` - a Taxonomy schema, linkbase or instance document as a javax.xml.transform.Source. Note the SystemId value in the source will be used for the resolution of relative URLs in the file
    Returns:
      an XBRLDocument object
    Throws:
      `DTSDiscoveryException` - is XBRL errors were found
      `com.rs.lic.LicenseVerificationException` - Only thrown when the license is limited to a set of files and there is a file in the DTS for which there is no license
    Since:
      2.6.4

  - #### load

        public XBRLDocument[] load(javax.xml.transform.Source[] ss)
                            throws DTSDiscoveryException,
                                   com.rs.lic.LicenseVerificationException

    Load a DTS from a set of urls. The DTS Discovery rules start at every one of the urls in the set. If the url is relative, the absolute uri is calculated automatically using the current folder as the base url. All files in the DTS are schema validated. Some of the schemas may not be part of the DTS. All Infoset properties of the loaded files are readed The load process does not include XBRL 2.1 validation. It includes: - DTS discovery - Schema validation - Infoset process
    Parameters:
      `ss` - array of Source objects
    Returns:
      array of XBRLDocument objects
    Throws:
      `DTSDiscoveryException` - the DTS discovery exception
      `com.rs.lic.LicenseVerificationException` - the license verification exception
    Since:
      2.6.4

  - #### loadIntoConfiguration

        public void loadIntoConfiguration()
                                   throws XBRLValidationException,
                                          com.rs.lic.LicenseVerificationException

    Switch the configuration object to strict schema validation, then loads all documents in this DTS (thus in the cache) into the configuration object. Finally, the Infoset is populated
    Throws:
      `XBRLValidationException` - the XBRL validation exception
      `com.rs.lic.LicenseVerificationException` - Thrown if there is a file in the DTS for which the license is not valid. Only happens if the license is limited to a set of files. Open licenses does not generate this exception

  - #### getRootURI

        public java.net.URI getRootURI()

    Returns the DTS root URI or the starting point of the DTS Discovery. If the DTS was opened from a set of URIs this method returns the first one only. If the DTSContainer is empty, this method returns null
    Returns:
      a URI or null

  - #### getRootURIs

        public java.net.URI[] getRootURIs()

    Returns an array of URIs that contains the DTS Discovery starting points.
    Returns:
      array of URIs or null if not set or not DTS is loaded

  - #### setRootURI

        public void setRootURI(java.net.URI newURI)

    Sets the root uri.
    Parameters:
      `newURI` - the new root uri

  - #### loadIntoConfiguration

        public void loadIntoConfiguration(XBRLTaxonomy taxonomy)
                                   throws net.sf.saxon.type.SchemaException

    Load a new schema into the schema compiler. If the schema already exist in the configuration object it is not loaded
    Parameters:
      `taxonomy` - the taxonomy
    Throws:
      `net.sf.saxon.type.SchemaException` - the schema exception

  - #### addError

        public void addError(java.lang.Exception e)

    Adds the error.
    Parameters:
      `e` - the e

  - #### getErrors

        public java.lang.String[] getErrors()

    Gets the errors.
    Returns:
      the errors

  - #### getStaticArcroleTypeByURI

        public XBRLArcroleType getStaticArcroleTypeByURI(java.lang.String arcrole)

    Gets the static arcrole type by uri.
    Parameters:
      `arcrole` - the arcrole
    Returns:
      the static arcrole type by uri

  - #### getStaticRoleTypeByURI

        public XBRLRoleType getStaticRoleTypeByURI(java.lang.String role)

    Gets the static role type by uri.
    Parameters:
      `role` - the role
    Returns:
      the static role type by uri

  - #### getRelationships

        public java.util.Iterator<XBRLRelationship> getRelationships(DTSBase base)
                                                              throws XBRLValidationException

    Return all relationships in a DTSBase.
    Parameters:
      `base` - DTSBase The base to be interrogated
    Returns:
      Iterator
    Throws:
      `XBRLValidationException` - the XBRL validation exception

  - #### setSerializationMethod

        public void setSerializationMethod(int method)

    Sets the serialization method to OBJECTS or ORIGINAL.

    OBJECTS means that the objects that are part of this document will be used to serialize the document. This is the default value and it is safe because during the loading phase the infoset is read and the infoset contains an object model representation of all possible content.

    ORIGINAL is faster and even safer than OBJECTS unless the application has changed things in the objects of this document.

    Parameters:
      `method` - integer code of the new Method

  - #### getSerializationMethod

        public int getSerializationMethod()

    Obtains the value of the serialization method. This is either OBJECTS or ORIGINAL
    Returns:
      integer constant

  - #### getArcroleType

        public java.util.Vector<XBRLArcroleType> getArcroleType(java.lang.String uri)

    Access to the arcroleType object from the URI regardless where it is defined or if there are multiple valid definitions of the same arcrole URI. If the arcroleType is not declared in the DTS the function returns an empty Vector the function tries to locate the arcroleType definition in the following order:
    1. in the DTS cache (All defined in a taxonomy schema in the DTS)
    2. statically defined in the XBRL 2.1 specification
    3. in the set of virtual arcroleTypes (arcroleTypes not defined in the DTS but used in other extended links)
    Parameters:
      `uri` - String with the arcroleURI to search for
    Returns:
      a Vector of XBRLArcroleType definitions for the same role uri within the entire DTS or an empty vector

  - #### getRoleType

        public java.util.Vector<XBRLRoleType> getRoleType(java.lang.String uri)

    Access to the roleType object from the URI regardless where it is defined or if there are multiple valid definitions of the same role URI. If the roleType is not declared in the DTS the function returns an empty Vector. The method tries to locate the roleType definition in the following order: 1) in the DTS cache (All defined in a taxonomy schema in the DTS) 2) statically defined in the XBRL 2.1 specification 3) in the set of virtual roleTypes (roleTypes not defined in the DTS but used in other extended links)
    Parameters:
      `uri` - String with the roleURI to search for
    Returns:
      Vector of XBRLRoleType including all definitions within the DTS

  - #### getRoleTypes

        public java.util.Iterator<XBRLRoleType> getRoleTypes()

    Access to an iterator over defined XBRL Role Types defined on all taxonomies in the loaded DTS.
    Returns:
      Iterator<XBRLRoleType>

  - #### getArcroleTypes

        public java.util.Iterator<XBRLArcroleType> getArcroleTypes()

    Access to an iterator over defined XBRL Arcrole Types defined on all taxonomies in the loaded DTS.
    Returns:
      Iterator<XBRLArcroleType>

  - #### addRoleType

        public void addRoleType(XBRLRoleType role)

    Register a new roleType declaration. This function is called from the XBRLTaxonomy object when the roleTypes are read.
    Parameters:
      `role` - the role

  - #### delRoleType

        public void delRoleType(XBRLRoleType role)

    Unregister a registered roleType.
    Parameters:
      `role` - XBRLRoleType

  - #### addArcroleType

        public void addArcroleType(XBRLArcroleType arcrole)

    Register a new arcroleType declaration. This function is called from the XBRLTaxonomy object when the arcroleTypes are read.
    Parameters:
      `arcrole` - XBRLArcroleType definition to add to this DTS

  - #### delArcroleType

        public void delArcroleType(XBRLArcroleType arcrole)

    Unregister a loaded arcroleType declaration.
    Parameters:
      `arcrole` - XBRLArcroleType

  - #### getLRRAndRelationshipsConstraintsChecker

        public XBRLlrrAndRelationshipConstraints getLRRAndRelationshipsConstraintsChecker()

    Obstains an instance of the XBRLlrrAndRelationshipConstraints class that is unique for the entire DTSContainer live cycle. This class is used to validate all relationship constraints.
    Returns:
      instance of XBRLlrrAndRelationshipConstraints

  - #### getNumberOfItemDeclarations

        public int getNumberOfItemDeclarations()
                                        throws XBRLValidationException

    Gets the number of item declarations.
    Returns:
      the number of item declarations in the whole DTS. Only XBRLConcepts in the xbrli:item substitution group counts
    Throws:
      `XBRLValidationException` - the XBRL validation exception

  - #### getNumberOfTupleDeclarations

        public int getNumberOfTupleDeclarations()
                                         throws XBRLValidationException

    Gets the number of tuple declarations.
    Returns:
      the number of tuple declarations in the whole DTS. Only XBRLConcepts in the xbrli:tuple substitution group counts
    Throws:
      `XBRLValidationException` - the XBRL validation exception

  - #### getItemDeclarations

        public java.util.Iterator<XBRLItem> getItemDeclarations()

    Iterator over all Item concepts declarations in the DTS (crosses all taxonomies).
    Returns:
      Iterator<XBRLItem>

  - #### getTupleDeclarations

        public java.util.Iterator<XBRLTuple> getTupleDeclarations()

    Iterator over all Tuple concept declarations in the DTS (crosses all taxonomies).
    Returns:
      Iterator<XBRLTuple>

  - #### getConcepts

        public java.util.Iterator<XMLElementDefinition> getConcepts()

    Iterator over all XBRL Concept declarations (Items and Tuples) in the DTS (crosses all taxonomies).
    Returns:
      Iterator<XMLElementDefinition>

  - #### getResources

        public java.util.Iterator<XBRLResource> getResources()

    Make sure the DTS has beed validated or the list of resources may not be complete.
    Returns:
      Iterator≶XBRLResource>

  - #### getTaxonomyByPrefix

        public java.util.Iterator<XBRLTaxonomy> getTaxonomyByPrefix(java.lang.String conceptPrefix)

    Returns an iterator over all taxonomy schemas whose target namespace matches the prefix. This function is used to find the apropriate namespace in a loop. Use with caution, because different namespaces in different files may use the same prefix. If there is no taxonomies matching the prefix, the function returns an empty sequence
    Parameters:
      `conceptPrefix` - the concept prefix
    Returns:
      Iterator<XBRLTaxonomy>

  - #### getTaxonomyByNamespace

        public java.util.Iterator<XBRLTaxonomy> getTaxonomyByNamespace(java.lang.String namespace)

    Returns an iterator over all taxonomy schemas that matches the corresponding namespace and are loaded into the DTS. Never returns null.
    Parameters:
      `namespace` - the namespace
    Returns:
      Iterator<XBRLTaxonomy>

  - #### getTaxonomyURIs

        public java.util.Iterator<java.net.URI> getTaxonomyURIs()

    Returns an iterator over all taxonomy documents in the DTS.
    Returns:
      Iterator<URI>

  - #### getNumberOfTaxonomyURIs

        public int getNumberOfTaxonomyURIs()

    Returns the number of taxonomy URIs in the DTS.
    Returns:
      int

  - #### getLinkbaseURIs

        public java.util.Iterator<java.net.URI> getLinkbaseURIs()

    Returns an iterator over all linkbase documents in the DTS.
    Returns:
      Iterator

  - #### getNumberOfLinkbaseURIs

        public int getNumberOfLinkbaseURIs()

    Returns the number of linkbase URIs in the DTS.
    Returns:
      int

  - #### getNumberOfInstanceURIs

        public int getNumberOfInstanceURIs()

    Returns the number of XBRL Instalces in the DTS. Note: Instance are taken from the document cache. If the DTS has validated a document that was never added to the cache, the document will not be added to this counter. XBRL reports added to URIs to the load methods will be returned.
    Returns:
      int

  - #### getInstanceByURI

        public XBRLInstance getInstanceByURI(java.net.URI u)

    Returns an XBRLInstance that has been loaded into the document cache using the document URI.
    Parameters:
      `u` - the XBRL Report URI or null
    Returns:
      XBRLInstance
    See Also:
      `getInstanceURIs()`

  - #### getInstanceURIs

        public java.util.Iterator<java.net.URI> getInstanceURIs()

    Returns an iterator over URIs of loaded instances in the document chache.
    Returns:
      Iterator of URIs of loaded XBRLInstance

  - #### getTaxonomyByURI

        public XBRLTaxonomy getTaxonomyByURI(java.net.URI u)

    Returns the XBRLTaxonomy corresponding to the Document URI or null if the URI cannot be found or does not corresponds to a taxonomy.
    Parameters:
      `u` - URI of the taxonomy to retrieve
    Returns:
      XBRLTaxonomy

  - #### getLinkbaseByURI

        public XBRLLinkbase getLinkbaseByURI(java.net.URI u)

    Returns the XBRLLinkbase corresponding to the Document URI or null if the URI cannot be found or does not corresponds to a linkbase.
    Parameters:
      `u` - URI of the linkbase to retrieve
    Returns:
      XBRLLinkbase object

  - #### readInfoset

        public void readInfoset()
                         throws XBRLValidationException

    Method used to populate the object model in all objects defined within this DTS.
    Throws:
      `XBRLValidationException` - the XBRL validation exception

  - #### getExtendedLinks

        public java.lang.Iterable<XBRLExtendedLink> getExtendedLinks()

    Gets the extended links.
    Returns:
      the extended links

  - #### getConcept

        public XMLElementDefinition getConcept(javax.xml.namespace.QName concept)

    Returns a concept declaration in the DTS regardless it is a tuple, item or pure element

    returns null if the concept is not defined in the DTS or if the value of the QName for the concept parameter is null

    .
    Parameters:
      `concept` - the concept
    Returns:
      XMLFragment or null

  - #### delConcept

        public void delConcept(javax.xml.namespace.QName concept)

    Removes a concept form the DTS and removes also all relationships this concept participates on.
    Parameters:
      `concept` - QName
    Since:
      2.6.4

  - #### getRelationship

        public XBRLRelationship getRelationship(java.lang.String extendedLink,
                                       javax.xml.namespace.QName relationshipType,
                                       java.lang.String arcrole,
                                       java.util.Vector<XMLFragment> attributes,
                                       XMLFragment source,
                                       XMLFragment target)

    Returns the relationship that matches the search criteria. Only one relationship in the DTS matches the criteria returns null if no relationship can be found
    Parameters:
      `extendedLink` - the extended link
      `relationshipType` - the relationship type
      `arcrole` - the arcrole
      `attributes` - the attributes
      `source` - the source
      `target` - the target
    Returns:
      the relationship

  - #### getResource

        public XBRLResource getResource(java.net.URI xpointerIdentifier)

    Resolves an XBRLResource from its XPointer identifier.

    The XPointer identifier is unique. This function may not work properly if the resource has been created programatically.

    Parameters:
      `xpointerIdentifier` - the xpointer identifier
    Returns:
      XBRLResource
    Since:
      2.7.1

  - #### getResource

        public XMLFragment getResource(java.lang.String resourceRole,
                              javax.xml.namespace.QName resourceType,
                              java.lang.String content,
                              java.util.Vector<XMLFragment> attributes,
                              net.sf.saxon.value.Value<?> value,
                              java.util.Vector<java.lang.String> xpathChildren)
                                throws XBRLValidationException

    Search for a resource in the DTS with the given id. TODO: deal with complex type resources, currenlty only simple type resources can be searched using parameters FIXED: Versioning now uses XPointers to locate resources
    Parameters:
      `resourceRole` - String
      `resourceType` - QName
      `content` - String "simple" or "complex"
      `attributes` - Vector attributes defined in the root element
      `value` - the value for simple type resources
      `xpathChildren` - the xpath children
    Returns:
      XMLFragment representing the resource or null if not found
    Throws:
      `XBRLValidationException` - the XBRL validation exception

  - #### isInstanceOfThisDTS

        public boolean isInstanceOfThisDTS(XBRLInstance instance,
                                  int mode)

    Check whether or not the instance document received as a parameter can be used in this DTSContainer. This requires first that the two Saxon configuration objects share compatible containers and then that the instance DTS matches the loaded DTS. Calling to this function requires that the DTS of the instance document received as a parameter being already discovered. Otherwise the comparison will fail.
    Parameters:
      `instance` - the instance
      `mode` - can be DTSContainer.FAST constant or DTSContainer.FULL (slowest) comparison. FULL comparison considers the whole DTS. FAST comparison considers only the files explicitly referenced in this file.
    Returns:
      boolean value

  - #### isBUG368Mode

        public boolean isBUG368Mode()

    Returns true if the user has set the property XBRL_VERSION to the value XBRL_VERSION_EXPERIMENTAL_BUG_368.
    Returns:
      boolean value

  - #### isVersion20122501

        public boolean isVersion20122501()

    Checks if is version20122501.
    Returns:
      true, if is version20122501

  - #### isVersion20132002

        public boolean isVersion20132002()

    Checks if is version20132002.
    Returns:
      true, if is version20132002

  - #### isThin

        public boolean isThin()

    Helper method to know if this DTS has the DTS_THIN property set to true or false.
    Returns:
      boolean value

  - #### isInstanceOfThisDTS

        public XBRLInstance isInstanceOfThisDTS(javax.xml.transform.Source xmlSource,
                                       int mode)

    Check whether or not the document in the xmlSource is an instance document according to this DTS. Source objects may not have the system-id set to the absolute path.
    Parameters:
      `xmlSource` - the xml source
      `mode` - can be DTSContainer.FAST constant or DTSContainer.FULL (slowest) comparison. FULL comparison considers the whole DTS. FAST comparison considers only the files explicitly referenced in this file.
    Returns:
      DocumentInfo or null if there is no match

  - #### isInstanceOfThisDTS

        public XBRLInstance isInstanceOfThisDTS(MultiDTSValidationFile item,
                                       int mode)
                                         throws java.io.IOException

    Check whether or not the document in the xmlSource is an instance document according to this DTS. Source objects may not have the system-id set to the absolute path.
    Parameters:
      `item` - this is a MultiDTSValidationFile instance, the instance document is read two times. One for testing the DTS and, if the DTS is OK, to be loaded into that DTS.
      `mode` - can be DTSContainer.FAST constant or DTSContainer.FULL (slowest) comparison. FULL comparison considers the whole DTS. FAST comparison considers only the files explicitly referenced in this file.
    Returns:
      DocumentInfo or null if there is no match
    Throws:
      `java.io.IOException` - Signals that an I/O exception has occurred.

  - #### getTypeDefinition

        public XBRLXSDTypeDefinition getTypeDefinition(javax.xml.namespace.QName type)

    Find the type definition for the specific QName

    This function does not find new types defined in taxonomy schemas that has not been read from XML files.

    Parameters:
      `type` - QName
    Returns:
      the XBRLTypeDefinition or null

  - #### getLastResolvedSystemId

        public java.lang.String getLastResolvedSystemId()

    Returns the systemId of the last file resolved by the Resolver during the DTSDiscovery process or null if the DTSDiscoveryProcess is not on-going. This method is used to generate error messages
    Returns:
      string
    Since:
      2.8.1

  - #### addValidationException

        public void addValidationException(XBRLValidationException e)

    Adds the validation exception.
    Parameters:
      `e` - the e

  - #### addInconsistencey

        public void addInconsistencey(XBRLInconsistency e)

    Adds the inconsistencey.
    Parameters:
      `e` - the e

  - #### getValidationReport

        public XBRLValidationReport getValidationReport()

    Access to the internal validation report. This report is not complete. It contains only validation problems during the DTS loading process.
    Returns:
      XBRLValidationReport

  - #### loadExtraSchemas

        public void loadExtraSchemas()
                              throws XBRLSchemaException

    Called internally by the API when extra schemas must be loaded in the configuration object and schema compiler.
    Throws:
      `XBRLSchemaException` - the XBRL schema exception

  - #### getSchemaCompiler

        public com.saxonica.schema.SchemaCompiler getSchemaCompiler()

    Returns the current schema compiler for this configuration object. This method is used to resolve unresolved references to already loaded schemas.

    This method is for internal use only.

    Returns:
      SchemaCompiler

  - #### stop

        public void stop()

    Description copied from interface: `Stopable`
    This method will be called by another thread in order to request the DTSContainer process to stop execution.

    It is not warranted the process will stop immediately

    Specified by:
      `stop` in interface `Stopable`

  - #### shouldStop

        public boolean shouldStop()

    This function will be called by classes that knows what to do if the loading proces of a DTS has been cancelled by the user.

    Prior to version 2.7.0 The functions returned true if the user had requested cancellation.

    Starting from version 2.7.0 this function throws an XBRLInterruptedException that is a sub class of XBRLRuntimeException captured during the load method. If the exception is produced. the DTSContainer is cleared and then the load function ends.

    Returns:
      boolean value. True if the user has requested cancellation.

  - #### getProcessor

        public XBRLPlugInProcessor getProcessor(java.lang.String processorname)

    Returns an already registered plug-in processor based on the processor name. In the DTS there is just one instance of a processor by processor name. For example, there is just one XBRL Dimensions processor for a loaded DTS or just one XBRLFormula processor for a loaded DTS.

    This function returns the registered, loaded, and instantiated processor using the processor name as a key. This method does not instantiates the processor if it is not already registered.

    Processors are created by calling the

        create

    function of the processor main class. They automatically self register within the DTS that is passed in as a parameter. Further calls to the create method using the same DTS as a parameter will always return the already registered processor.
    Parameters:
      `processorname` - Processor token name (statically defined on each processor class)
    Returns:
      XBRLPlugInProcessor or null if it is not registered
    Since:
      2.6.8

  - #### registerProcessor

        public void registerProcessor(java.lang.String processorname,
                             XBRLPlugInProcessor processor)

    Called by the processor to self register. This method also tells the XBRLPlugInProcessor to configure itself with the properties of this DTSContainer via a call to the configure method on the processor instance.
    Parameters:
      `processorname` - the processorname
      `processor` - the processor
    Since:
      2.6.8

  - #### getProcessors

        public java.util.Iterator<XBRLPlugInProcessor> getProcessors()

    Access to all registered plug-in processors.
    Returns:
      Iterator over registered processors
    Since:
      2.6.9

  - #### xEqualMode

        public boolean xEqualMode()

    The default value of the XEQUAL_MODE is XBRL_COMPLIANT but the conformance suite of the formula processor requires it to be set to FORMULA_COMPLIANT.

    This is because some test cases in the formula comformance sute assumes that the comparison of XBRL entities texts are trim before thay are compared but this operation is not required in the XBRL specification.

    Returns:
      true or false depending on the value of the XEQUAL_MODE property on this DTSContainer instance.

  - #### sEqualMode

        public boolean sEqualMode()

    The default value of the SEQUAL_MODE is XBRL_COMPLIANT but the conformance suite of the formula processor requires it to be set to FORMULA_COMPLIANT.

    This is because some test cases in the formula comformance sute assumes that the comparison of nodes should skip ids in nested nodes while this is not stated in the XBRL 2.1 specification.

    Returns:
      true or false depending on the value of the SEQUAL_MODE property on this DTSContainer instance.

  - #### getBaseURI

        public java.net.URI getBaseURI()

    Access to the base URI for the XBRL processor.
    Returns:
      an URI whose value depends on the XBRL_BASE property of the XBRL processor or null if there is an error.
    See Also:
      `XBRL_BASE`

  - #### resolveXPointer

        public XMLFragment resolveXPointer(java.net.URI uriHref,
                                  XMLDocumentURI doc)
                                    throws XBRLValidationException

    resolve the XPointer to the node pointed to and returns the XMLFragment it points to or null if none can be found.

    The href MUST be absolute.

    Parameters:
      `uriHref` - the URI to resolve
      `doc` - XMLDocumentURI in which uriHRef exist. if null then the XMLDocumentURI is obtained from the cache. If the document has not been loaded in the cache (it is not in the DTS) and the doc parameter is null, most likely, this function will return null.
    Returns:
      XMLFragment if it can be found or null if it cannot be found
    Throws:
      `XBRLValidationException` - if the URI cannot be resolved according to the rules in the XBRL 2.1 specification

  - #### validate

        public XBRLValidationReport validate(XBRLDocument doc)
                                      throws XBRLInitializationException

    Validates a new document against this already loaded DTS. Then, returns an XBRLValidationReport with all validation errors.

    All registered processors are called in the order indicated in the PROCESSORS_SEQUENCE property.

    Parameters:
      `doc` - XBRL Document to validate
    Returns:
      XBRLValidationReport
    Throws:
      `XBRLInitializationException` - if a processor cannot be initialized
    Since:
      2.7.2

  - #### validate

        public XBRLValidationReport validate()
                                      throws XBRLInitializationException,
                                             com.rs.lic.LicenseVerificationException

    Executes all registered validators indicated in the PROCESSORS_SEQUENCE property of this DTS and returns the XBRLValidationReport instance with the validation result.
    Returns:
      XBRLValidationReport
    Throws:
      `XBRLInitializationException` - If the processor under a certain name cannot be created
      `com.rs.lic.LicenseVerificationException` - If the user has no rights to use the indicated processor

  - #### registerProcessorFactory

        public static boolean registerProcessorFactory(java.lang.String name,
                                       java.lang.Class<? extends XBRLProcessorFactory> clazz)

    Register a new processor factory for the indicated processor name.
    Parameters:
      `name` - the name
      `clazz` - the clazz
    Returns:
      true if the processor name is new. false if it was previously registered

  - #### getRegisteredProcessorNames

        public static java.lang.String[] getRegisteredProcessorNames()

    Access to all registered processor names.
    Returns:
      array of strings
    Since:
      2.7.1

  - #### getProcessorFactory

        public static java.lang.Class<? extends XBRLProcessorFactory> getProcessorFactory(java.lang.String processorName)

    Accesss to the processor factory class for the processor name.
    Parameters:
      `processorName` - the processor name
    Returns:
      instance of the processor factory
    Since:
      2.7.1

  - #### isGeneralVariableSchemaAware

        public boolean isGeneralVariableSchemaAware()

    This method returns the value of the property FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE
    See `FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE` for more information.
    Returns:
      true or false

  - #### getTempURL

        public java.net.URI getTempURL()

    Returns a URL pointin to a temporary folder in the local drive. This URI should be used when `getBaseURI()` returns null and a URL must be set to a document prior to generate the document nodes.

    If the updateXML method of the XBRLDocument class is called with this URL, no document will be written in the target directory.

    Returns:
      URI
    Since:
      2.7

  - #### getStatus

        public DTSContainer.Status getStatus()

    Access to the processor status.
    Returns:
      the status

  - #### getCustomFunctionFactories

        public java.util.Collection<XBRLLibraryFactory> getCustomFunctionFactories()

    Access to the collection of all registered Library Factories. The formula processor calls this method during initialization phase
    Returns:
      Collection<? extends XBRLLibraryFactory>

  - #### isShowExactitudeDetails

        public boolean isShowExactitudeDetails()

    Returns true if the DTSContainer.DTS_SHOW_EXACTITUDE_DETAILS property is set to true
    Returns:
      true, if is show exactitude details