public final class DTSContainer extends java.lang.Object implements Stopable, java.io.Serializable
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:
registerProcessor(String, XBRLPlugInProcessor)
method on this classExtending 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:
XBRLFormulaProcessor.addCustomFunctionLibrary(XBRLRSCustomFunctionLibrary)
Modifier and Type | Class and Description |
---|---|
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.
|
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_CHECK_TOP_LEVEL_SCHEMAS
Work in progress of the new XBRL 2.1 specification version
|
static java.lang.String |
DTS_DISCOVERY_ALLOWSPACESONURIS
Spaces are not allowed in the value space of an URI, but some software vendors such as Fujitsu XWand 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_RAISE_WARNING_IF_TWO_FILES_HAVE_SAME_NAMESPACE
The DTS_DISCOVERY_RAISE_WARNING_IF_TWO_FILES_HAVE_SAME_NAMESPACE property is used to signal a warning when two files in the DTS use the same namespace
with different systemID.
|
static java.lang.String |
DTS_DISCOVERY_REPLACE_OFFICIAL_SCHEMAS_SCHEMALOCATION
The DTS_DISCOVERY_REPLACE_OFFICIAL_SCHEMAS_SCHEMALOCATION property is used to force the processor to load
standard schemas from the official location even if the schemaLocation points to a different path.
|
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_DISCOVERY_TRUST_NAMESPACES_ONLY_FOR_OFFICIAL_FILES
The DTS_DISCOVERY_TRUST_NAMESPACES_ONLY_FOR_OFFICIAL_FILES property is used internally by the processor similar to the DTS_DISCOVERY_TRUST_NAMESPACES_ONLY
but differs from DTS_DISCOVERY_TRUST_NAMESPACES_ONLY in the scope of schemas that will be trusted using the namespace only for files defined
in XBRL specifications.
|
static java.lang.String |
DTS_ERROR_MESSAGE_MAX_CHARS
The DTS_ERROR_MESSAGE_MAX_CHARS can be set to set a limit to the error messages produced by the validation.
|
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 |
DTS_USER_LANGUAGES
The DTS_USER_LANGUAGES can be set to a comma separated list of language codes in ISO-639-1 that might be used
for label selection for concepts and resources.
|
static java.lang.String |
ERROR_PROPERTY_VALUE
This is set to the constant value "error".
|
static java.lang.String |
EXPERIMENTAL_USE_CACHED_STRINGS
If this property value is "true", reading XML documents will store all text pieces into a buffer and that buffer will be
used when other strings contains sub-strings that can be obtained form the cache.
|
static java.lang.String |
FAIL_FAST
This is the default and recommended value for the FAIL_STRATEGY property
|
static java.lang.String |
FAIL_SLOW
This is the alternate value for the FAIL_STRATEGY property
|
static java.lang.String |
FAIL_STRATEGY
The FAIL_STRATEGY property allows for the processor to modify when the errors will be reported.
|
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_INTERRUPT_VALIDATION_MODE
The FORMULA_PROCESSOR_INTERRUPT_VALIDATION_MODE establish the behavior of the interrupt call on the
DTSContainer instance that is validating formulas.
|
static java.lang.String |
FORMULA_PROCESSOR_INTERRUPT_VALIDATION_MODE_CURRENT
This is one of the possible values of the FORMULA_PROCESSOR_INTERRUPT_VALIDATION_MODE property.
|
static java.lang.String |
FORMULA_PROCESSOR_INTERRUPT_VALIDATION_MODE_PROCESSOR
This is one of the possible values of the FORMULA_PROCESSOR_INTERRUPT_VALIDATION_MODE property.
|
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_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 java.lang.String |
FUNCTIONS_CREATE_PHANTOM_RELATIONSHIPS_WHEN_NEEDED_TO_MAKE_FILTER_MEMBER_NETWORK_SELECTION_TO_WORK_UNDER_CERTAIN_PROJECTS
The xfi:filter-member-network-selection function may have two operation modes:
mode 1, the filter only considers existing relationships in linkbases.
|
static java.lang.String |
FUNCTIONS_USE_TARGETROLE_IN_XFI_FILTER_MEMBER_NETWORK_SELECTION
The xfi:filter-member-network-selection function does not specify if the
targetrole attribute value shall be used when exploring dimensions
or not, in fact:
The conformance suite is unclear and does not contains any test case around this characteristic. |
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".
|
static java.lang.String |
IXBRL_DEDUPLICATE_FACTS_AFTER_LOAD
The IXBRL_DEDUPLICATE_FACTS_AFTER_LOAD property sets the processor to deduplicate facts after loading an instance document.
|
static java.lang.String |
IXBRL_DOCTYPE_VALIDATION
The IXBRL_DOCTYPE_VALIDATION property sets the processor to raise an error, a warning or ignore the existence of
<!
|
static java.lang.String |
IXBRL_V10
This is one possible value for the IXBRL_VERSION property key.
|
static java.lang.String |
IXBRL_V11
This is one possible value for the IXBRL_VERSION property key.
|
static java.lang.String |
IXBRL_VERSION
The IXBRL_VERSION property sets the version of the IXBRL processor to use along with this DTSContainer.
|
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 |
PARALLEL_PROCESSING
The PARALLEL_PROCESSING property enables all processors to execute validation in
parallel.
|
static java.lang.String |
PARALLEL_PROCESSORS
The PARALLEL_PROCESSORS property indicates the maximum number of parallel threads that the platform will
reserve for validation.
|
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 |
UTR_REPORT_AS_INCONSISTENCY
If this property controls how the UTR processor notifies the facts that does not satisfy the UTR rules.
|
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.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Integer |
addArcroleType(XBRLArcroleType arcrole)
Register a new arcroleType declaration.
|
void |
addChangeIdListener(net.sf.saxon.om.DocumentInfo physicalRoot,
java.beans.PropertyChangeListener changeIdListener)
Adds the change id listener.
|
boolean |
addChild(java.lang.Integer documentCode,
java.lang.Integer childToAdd)
Stores a child document to another document
|
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)
Deprecated.
Since version 3.2.0 the addInconsistency(XBRLInconsistency) method shall be used instead
|
void |
addInconsistency(XBRLInconsistency e)
Adds the inconsistency.
|
void |
addNodeToBatch(XMLFragment parent,
XMLFragment newNode)
Adds the node to batch.
|
boolean |
addParent(java.lang.Integer documentCode,
java.lang.Integer parentToAdd)
Stores a parent document to another document
|
void |
addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Add a PropertyChangeListener to the listener list.
|
void |
addPropertyChangeListener(java.lang.String propertyName,
java.beans.PropertyChangeListener listener)
Add a PropertyChangeListener for a specific property.
|
int |
addResource(XBRLResource resource)
The XBRLResouce initializer calls this method to store a new resource in the
DTSContainer cache.
|
java.lang.Integer |
addRoleType(XBRLRoleType role)
Register a new roleType declaration.
|
void |
addRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType,
java.lang.Integer role)
Adds or increases the count of role types for a linkbase type.
|
void |
addRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType,
XBRLRoleType role)
Adds or increases the count of role types for a linkbase type.
|
void |
addSourceToCacheByNamespace(java.lang.String targetNamespace,
javax.xml.transform.Source s1)
Adds the source to cache by namespace.
|
void |
addValidationException(XBRLValidationException e)
Adds the validation exception.
|
<T> T |
banEvents(java.util.concurrent.Callable<T> exec,
java.lang.String... events)
This method will ban events to be fired.
|
boolean |
cacheContains(java.lang.Integer 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.lang.Integer documentURI)
Obtains a document from the cache indexed by document URI
The URI is absolutized and normalized before comparison.
|
XMLDocumentURI |
cacheGet(java.net.URI documentURI)
Obtains a document from the cache using the document URI.
|
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.lang.Integer documentURI)
Removes a document form the cache.
|
XBRLResource |
cacheResource(XBRLExtendedLink parent,
net.sf.saxon.om.NodeInfo 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 in any specific ordered
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 |
clearEqualsCaches()
Clear equals caches.
|
void |
collectTopLevelSchemaUsage(java.net.URI sourceDocumentURI,
java.lang.String namespace,
java.net.URI targetDocumentURI,
boolean bMode)
Collect top level schema usage.
|
void |
commitBatch(XMLFragment parent)
Commit batch.
|
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 |
delayEvents(java.lang.Runnable runnable,
java.lang.String... events)
This method will store locally all events of the type indicated in the array string
so they will not be fired but just catch by the API.
|
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.
|
boolean |
delResource(XBRLResource resource,
java.lang.Integer elCode)
Eliminates a resource form the DTS cache.
|
void |
delRoleType(XBRLRoleType role)
Unregister a registered roleType.
|
void |
delRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType,
java.lang.Integer role)
Removes or decreases the count of role types for a linkbase type.
|
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)
Equals.
|
void |
fireChangeIdEvent(XMLFragment xmlFragment,
java.lang.String oldId,
java.lang.String id)
Fire change id event.
|
void |
firePropertyChangeEvent(java.lang.Object source,
java.lang.String propertyName,
java.lang.Object oldValue,
java.lang.Object newValue)
Convenient method to fire a property change event.
|
void |
firePropertyChangeEvent(java.lang.String propertyName,
java.lang.Object oldValue,
java.lang.Object newValue)
Convenient method to fire a property change event.
|
java.lang.Integer |
getArcroleCode(java.lang.String arcroleURI)
Gets the arc role
code (an Integer) from the arcroleURI (an String)
If there is no code already defined for the given arcroleURI a new code is created. |
XBRLArcroleType |
getArcroleType(java.lang.Integer arcroleType)
Let's store all arcroletypes and assign an index to them.
|
java.util.List<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.
|
AtomicComparerHelper |
getAtomicComparator()
Gets the atomic comparator.
|
XMLAttributesInDTS |
getAttributesDatabase()
Gets the attributes database.
|
DTSBase |
getBase(javax.xml.namespace.QName linkbaseType,
java.lang.Integer role)
Obtains a base for the specified linkbaseType and role type.
|
DTSBase |
getBase(javax.xml.namespace.QName linkbaseType,
XBRLRoleType role)
Obtains a base for the specified linkbaseType and role type.
|
java.util.Iterator<java.lang.Integer> |
getBaseRoleCodes(javax.xml.namespace.QName extendedLinkQName)
Same as
getBaseRoleTypes(QName) but returns an iterator over
integers that are unique codes for the role types which might be
faster to process on some occassions. |
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.
|
java.util.Set<java.lang.Integer> |
getChildren(java.lang.Integer documentCode)
Returns a set of document children.
|
int |
getChildrenCount(java.lang.Integer documentCode)
Returns the number of children of a document.
|
XBRLDTSDocument |
getCodeDocument(java.lang.Integer code)
Access to a document by the document key.
|
java.net.URI |
getCodeURI(java.lang.Integer code)
Returns the URI stored for the code passed as parameter
the special value -1 returns the empty URI.
|
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.
|
<T extends HasEqualsCache> |
getEqualsCache(java.lang.Class<T> clazz)
Gets the equals cache.
|
java.lang.String[] |
getErrors()
Gets the errors.
|
java.util.Iterator<java.lang.Integer> |
getExtendedLinkCodes()
Returns an iterator over all extended link codes in the DTS.
|
java.lang.Iterable<XBRLExtendedLink> |
getExtendedLinks()
Gets the extended links.
|
FactsListClassifier |
getFactsListClassifier(XBRLFactsList instance,
int aspectsToCover)
Obtains an instance for the FactsListClassifier and stores it on an internal cache for further
fast reference.
|
net.sf.saxon.s9api.Processor |
getFastConfiguration()
Method to access to the Processor corresponding to this DTSContainer and the status
of this DTSContainer.
|
java.lang.String[] |
getInformationAboutEntryPoint()
Generates information about the entry point used to load the DTS.
|
XBRLInstance |
getInstanceByURI(java.lang.Integer 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 cache.
|
java.util.Iterator<XBRLItem> |
getItemDeclarations()
Iterator over all Item concepts declarations in the DTS (crosses all taxonomies).
|
java.util.Map<java.lang.String,java.lang.String> |
getIXBRLPackagePublishersByLang()
This method returns the map of publishers in the taxonomy package to be used later
in the ESEF 3.1.5 validation rule.
|
KeyElementsInterceptorHelper |
getKeyElementsInterceptorHelper()
Gets the key elements interceptor helper.
|
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 |
getLinkbaseByCode(java.lang.Integer code)
Returns the XBRLLinkbase corresponding with the code or null if the code does not corresponds
with a linkbase.
|
XBRLLinkbase |
getLinkbaseByURI(java.lang.Integer u)
Returns the XBRLLinkbase corresponding to the Document URI or null if the URI cannot be found
or does not corresponds to a linkbase.
|
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.lang.Integer> |
getLinkbaseCodes()
Returns an iterator over all linkbase codes in the DTS.
|
java.util.Iterator<XBRLLinkbase> |
getLinkbases()
Returns an iterator over all linkbase documents in the DTS.
|
java.util.Iterator<java.net.URI> |
getLinkbaseURIs()
Returns an iterator over all linkbase documents in the DTS.
|
XBRLlrrAndRelationshipConstraints |
getLRRAndRelationshipsConstraintsChecker()
Obtains 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.
|
java.lang.Integer |
getNewURICode(java.net.URI uri)
Stores a new URI to the cache and returns the assigned
code.
|
int |
getNextDocumentKeyCode()
Provides a new document code but does not store the document
into the DTSContainer yet.
|
java.util.Set<java.net.URI> |
getNoNormalURIs()
Obtains URIs that has been normalized during the DTS loading process.
|
int |
getNumberOfInstanceURIs()
Returns the number of XBRL Instances in the DTS.
|
int |
getNumberOfItemDeclarations()
Gets the number of item declarations.
|
int |
getNumberOfLinkbaseURIs()
Returns the number of linkbase URIs in the DTS.
|
int |
getNumberOfProcessorsInSequence()
Returns the number of processors added to the PROCESSORS_SEQUENCE
property.
|
int |
getNumberOfTaxonomyURIs()
Returns the number of taxonomy URIs in the DTS.
|
int |
getNumberOfTupleDeclarations()
Gets the number of tuple declarations.
|
<T extends XBRLPlugInProcessor> |
getOrCreateProcessor(java.lang.String processorName)
This method tries to obtain the instance of the processor already registered
if it is not there, this method checks if the processor indicated in the processorName
parameter is in the PROCESSORS_SEQUENCE, if it is there a new processor instance is created.
|
java.util.Set<java.lang.Integer> |
getParents(java.lang.Integer documentCode)
Returns a set of document parents.
|
int |
getParentsCount(java.lang.Integer documentCode)
Returns the number of parents of a document.
|
<T extends 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.
|
java.beans.PropertyChangeListener[] |
getPropertyChangeListeners()
Returns an array of all the listeners that were added to the
PropertyChangeSupport object with addPropertyChangeListener().
|
java.beans.PropertyChangeListener[] |
getPropertyChangeListeners(java.lang.String propertyName)
Returns an array of all the listeners which have been associated
with the named property.
|
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.List<XBRLAttribute> 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.
|
java.lang.String |
getRelativeURI(java.lang.String documentURIAsString)
Obtains a relative URI from the documentURI using the URI passed in in the
load(URI) call as the base URI
When the load(URI[]) method was used with an array of URIs the common part of those URIs is used as the
base URI. |
java.net.URI |
getRelativeURI(java.net.URI documentURI)
Obtains a relative URI from the documentURI using the URI passed in in the
load(URI) call as the base URI
When the load(URI[]) method was used with an array of URIs the common part of those URIs is used as the
base URI. |
java.util.Iterator<javax.xml.transform.Source> |
getResolvedSourcesByNamespace(java.lang.String targetNamespace)
Gets the resolved sources by namespace.
|
XBRLResource |
getResource(java.lang.Integer code)
Gets the resource.
|
XMLFragment |
getResource(java.lang.String resourceRole,
javax.xml.namespace.QName resourceType,
java.lang.String content,
java.util.List<XBRLAttribute> attributes,
net.sf.saxon.om.AbstractItem value,
java.util.List<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.
|
java.util.Iterator<XBRLResource> |
getResources()
Make sure the DTS has beed validated or the list of resources
may not be complete.
|
java.lang.Integer |
getRoleCode(java.lang.String roleURI)
Gets the role
code (an Integer) from the roleURI (an String)
If there is no code already defined for the given roleURI a new code is created. |
XBRLRoleType |
getRoleType(java.lang.Integer roleType)
Obtains the
XBRLRoleType associated to the given roleType code (an Integer)
If no role type was registered for the given code null is returned. |
java.util.List<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.ee.schema.SchemaCompiler |
getSchemaCompiler()
Returns the current schema compiler for this configuration object.
|
int |
getSerializationMethod()
Obtains the value of the serialization method.
|
<T extends XBRLResource> |
getSimilarResource(T res,
XBRLExtendedLink el)
This method returns an XBRLResource that already exists in the
Extended Link indicated at
el and is s_equals2 of
res resource or null if no resource is found. |
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.
|
StringCache |
getStringCache()
Gets the string cache.
|
java.util.Iterator<XBRLTaxonomy> |
getTaxonomies()
Returns an iterator over all taxonomy documents in the DTS.
|
XBRLTaxonomy |
getTaxonomyByCode(java.lang.Integer code)
Returns the XBRLTaxonomy corresponding with the code or null if the code does not corresponds
with a taxonomy.
|
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 or has been loaded to validate elements even it is not loaded in the DTS.
|
java.util.Iterator<XBRLTaxonomy> |
getTaxonomyByNamespaceInDts(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.lang.Integer u)
Returns the XBRLTaxonomy corresponding to the Document URI or null if the URI cannot be found
or does not corresponds to a taxonomy.
|
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.lang.Integer> |
getTaxonomyCodes()
Returns an iterator over all taxonomy codes in the DTS.
|
java.util.Iterator<java.net.URI> |
getTaxonomyURIs()
Returns an iterator over all taxonomy documents in the DTS.
|
static 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.
|
XBRLInstance |
getUnderEvaluationInstance()
Gets the instance document that is under evaluation.
|
java.lang.Integer |
getURICode(java.net.URI uri)
Returns a URI code for a URI that is already stored
if the URI was not stored this method returns null
and the uri is not stored.
|
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 |
getWhatToValidate()
Gets the what to validate.
|
XBRLExtendedLink |
getXBRLExtendedLink(java.lang.Integer code)
Obtains an extended link from the extended link code.
|
int |
hashCode()
Hash code.
|
void |
informPossibleNamespaceGhist(java.lang.String uri)
Detected during SAX parsing.
|
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 |
isArcroleTypeUsed(java.lang.String arcroleType)
Helper method to ask the DTS if a certain arc role type is used.
|
boolean |
isAssertionSeverityLoadedInDTS()
Returns true if the assertionSeverity schema has been loaded into the DTS.
|
boolean |
isBaseDefined(javax.xml.namespace.QName linkbaseType,
java.lang.Integer role)
Returns true if there is a DTSbase defined in the DTS for
the given role and of the specified linkbaseType.
|
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.lang.Integer key)
Returns true if the document is in the DTS.
|
boolean |
isDocumentInDTS(java.net.URI documentURI)
Returns true if a document pointed to by the documentURI parameter
is in the DTS.
|
boolean |
isDocumentInDTSAndProcess(XBRLDTSDocument d)
If the document is alreay part of the DTS this method
returns true.
|
boolean |
isDocumentKeyInDTS(java.lang.Integer docCode)
Returns true of the document key is part of the DTS.
|
boolean |
isExtendedLink(java.lang.Integer docCode)
Returns true if the value of
docCode corresponds with an extended link in the DTS. |
boolean |
isFailFast()
Helper method to quickly check if this DTSContainer is set to
FAIL_FAST under the
FAIL_STRATEGY property |
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.
|
XBRLInstance |
isInstanceOfThisDTS(XBRLInstance instance,
int mode)
Check whether or not the instance document received as a parameter can be used in this
DTSContainer.
|
boolean |
isIXBRLDocumentSet()
Checks if is IXBRL document set.
|
boolean |
isLinkbase(java.lang.Integer docCode)
Returns true if the value of
docCode corresponds with a linkbase in the DTS. |
boolean |
isLocalResourceInIXBRLDocumentSet(java.nio.file.Path src)
Checks if is local resource in IXBRL document set.
|
boolean |
isProcessorInProcessorsSequence(java.lang.String processorName)
Returns true if the processor indicated in the
processorName parameter is in referenced
in the PROCESSORS_SEQUENCE property. |
boolean |
isProperty(java.lang.String property)
Helper method to check the value of a DTSContainer property and return a boolean
value representing the boolean value property.
|
boolean |
isRoleTypeUsed(java.lang.String roleType)
Helper method to ask the DTS if a certain role type is used.
|
boolean |
isShowExactitudeDetails()
Returns true if the DTSContainer.DTS_SHOW_EXACTITUDE_DETAILS property is set to true
|
static boolean |
isStandardArcrole(java.lang.String arcrole)
Detects if an arcrole is defined in the XBRL 2.1 specification or not
Note, this method does not registers the arcrole uri within the loaded DTSContainer
|
static boolean |
isStandardExtendedLink(javax.xml.namespace.QName extendedLinkNodeName)
Detects if an extended link is defined in the XBRL 2.1 specification
|
static boolean |
isStandardRole(java.lang.String role)
Detects if a role is defined in the XBRL 2.1 specification or not
Note, this method does not registers the role uri within the loaded DTSContainer
|
boolean |
isTaxonomy(java.lang.Integer docCode)
Returns true if the value of
docCode corresponds with a taxonomy in the DTS. |
boolean |
isTaxonomyLoadedByNamespace(java.lang.String namespace)
Fast implementation of a mechanism to check if a taxonomy schema has been loaded using the schema namespace.
|
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)
Loads a DTS from the indicated
url . |
XBRLDocument[] |
load(java.net.URI[] url)
Loads a DTS from the
url array. |
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.
|
XMLFragment |
makeXMLFragment(net.sf.saxon.om.NodeInfo parent,
net.sf.saxon.om.NodeName nameCode,
net.sf.saxon.type.SchemaType elementType,
boolean isNilled,
net.sf.saxon.tree.util.AttributeCollectionImpl attlist,
net.sf.saxon.event.PipelineConfiguration pipe,
int locationId)
This method is called during SAX parsing of an XML document and
must return an instance of a class that will contain the
NodeImpl.
|
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)
Register bar.
|
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.
|
java.util.Set<java.lang.Integer> |
removeAllChildren(java.lang.Integer documentCode)
removes all children documents of documentCode.
|
void |
removeAllParent(java.lang.Integer documentCode)
removes all parent documents of documentCode.
|
void |
removeChangeIdListener(net.sf.saxon.om.DocumentInfo physicalRoot)
Removes the change id listener.
|
boolean |
removeChild(java.lang.Integer documentCode,
java.lang.Integer childToRemove)
Removes a child document to another document.
|
void |
removeCodeDocument(java.lang.Integer code)
Removes a document from the document cache.
|
boolean |
removeParent(java.lang.Integer documentCode,
java.lang.Integer parentToRemove)
Removes a parent document to another document.
|
void |
removePropertyChangeListener(java.beans.PropertyChangeListener listener)
Remove a PropertyChangeListener from the listener list.
|
void |
removePropertyChangeListener(java.lang.String propertyName,
java.beans.PropertyChangeListener listener)
Remove a PropertyChangeListener for a specific property.
|
void |
removeSourceFromCacheByNamespace(java.lang.String targetNamespace)
Removes the source from cache by namespace.
|
void |
replaceDocument(java.lang.Integer code,
XBRLDTSDocument newdocument)
Replaces a document already stored in the DTS by a new document version using
the code passed in as parameter.
|
void |
replaceURICode(java.lang.Integer uriCode,
java.net.URI newURI)
This method replaces an existing URI by a new URI but maintains
the same uriCode.
|
javax.xml.transform.Source |
resolve(java.net.URI resolvedURI)
Resolve a URI against the base URI but considering first if this file is already part
of the system registered files or if the file is in XML catalogs.
|
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()
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.
|
XBRLDTSDocument |
setDocumentCode(XBRLDTSDocument document)
Store (or replace) a document in the document cache.
|
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.
|
XBRLInstance |
setUnderEvaluationInstance(XBRLInstance valInstance)
Sets or clear the instance document that is under validation.
|
void |
setVariablesForProcessors(java.util.Properties variables)
Variables is a new machanism to pass information from an external application to a custom
processor.
|
void |
setWhatToValidate(int newValue)
Sets the what to validate.
|
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.
|
static void |
shutdown()
The shutdown method has been created to allow a web applications to gracefully
stop all DTSContainer threads.
|
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()
Stop.
|
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.
|
public static final java.lang.String USE_CACHE_PROPERTY
public static final java.lang.String CONSIDER_DUPLICATES_AS_INCONSISTENCIES
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.
public static final java.lang.String CONSIDER_COMPARISON_WITH_NUMBER_WITH_PRECISION_ZERO_AS_INCONSISTENCY
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.
public static final java.lang.String GENERIC_LINKBASE_REQUIRE_ROLEREF_ARCROLEREF
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".
public static final java.lang.String GENERIC_LABEL_VERSION
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.
public static final java.lang.String GENERIC_REFERENCE_VERSION
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.
public static final java.lang.String USE_GENERIC_LABEL_AS_OF_22_JUNE_2009
This is one of the possible values of the GENERIC_LABEL_VERSION property of the DTSContainer.
public static final java.lang.String USE_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
public static final java.lang.String USE_GENERIC_REFERENCE_AS_OF_22_JUNE_2009
This is one of the possible values of the GENERIC_REFERENCE_VERSION property of the DTSContainer.
public static final java.lang.String USE_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
public static final java.lang.String ALWAYS_ADD_ref_2006_02_27_xsd_SCHEMA_TO_DTS
public static final java.lang.String USE_XDT_1_0_AS_OF_18_SEP_2006
This is one of the possible values of the XDT_VERSION property of the DTSContainer.
public static final java.lang.String USE_XDT_1_0_AS_OF_7_SEP_2009
This is one of the possible values of the XDT_VERSION property of the DTSContainer.
public static final java.lang.String USE_XDT_1_0_AS_OF_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.
public static final java.lang.String USE_XEQUAL_AS_XBRL_COMPLIANT
This is one of the possible value of the XEQUAL_MODE property.
public static final java.lang.String USE_XEQUAL_AS_FORMULA_COMPLIANT
This is one of the possible value of the XEQUAL_MODE property.
public static final java.lang.String XEQUAL_MODE
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.
public static final java.lang.String USE_SEQUAL_AS_XBRL_COMPLIANT
This is one of the possible value of the SEQUAL_MODE property.
public static final java.lang.String USE_SEQUAL_AS_FORMULA_COMPLIANT
This is one of the possible value of the SEQUAL_MODE property.
public static final java.lang.String SEQUAL_MODE
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.
public static final java.lang.String XDT_VERSION
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.
public static final java.lang.String XBRL_VERSION
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
public static final java.lang.String XBRL_VERSION_2_JUL_2008
XBRL_VERSION
,
Constant Field Valuespublic static final java.lang.String XBRL_VERSION_EXPERIMENTAL_BUG_368
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.
XBRL_VERSION
,
Constant Field Valuespublic static final java.lang.String XBRL_VERSION_25_JAN_2012
XBRL_VERSION
,
Constant Field Valuespublic static final java.lang.String XBRL_VERSION_20_FEB_2013
XBRL_VERSION
,
Constant Field Valuespublic static final java.lang.String XBRL_BASE
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.
public static final java.lang.String DTS_DISCOVERY_ON_DIFFERENT_FILE_NAMES
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.
public static final java.lang.String DTS_DISCOVERY_TRUST_NAMESPACES_ONLY
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.
public static final java.lang.String DTS_DISCOVERY_TRUST_NAMESPACES_ONLY_FOR_OFFICIAL_FILES
Refer to the documentation about DTS_DISCOVERY_TRUST_NAMESPACES_ONLY
for more information
The default value for the DTS_DISCOVERY_TRUST_NAMESPACES_ONLY_FOR_OFFICIAL_FILES is false so namespaces and locations will be used.
public static final java.lang.String DTS_DISCOVERY_RAISE_WARNING_IF_TWO_FILES_HAVE_SAME_NAMESPACE
The default value for the DTS_DISCOVERY_RAISE_WARNING_IF_TWO_FILES_HAVE_SAME_NAMESPACE property is false. No warning will be raised.
public static final java.lang.String DTS_DISCOVERY_PRELOAD_OFFICIAL_SCHEMAS
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.
public static final java.lang.String DTS_DISCOVERY_REPLACE_OFFICIAL_SCHEMAS_SCHEMALOCATION
If has been found during the implementation of the FRTA validation that some schemas refer to the xbrl-instance-2003-12-31.xsd schema using a relative location of the same schema file where it imported. No standard Schema processor will be able to process that schema but the XBRL processor can handle this by recognizind the namespace corresponds with an official namespace from the XBRL 2.1 specification and load that schema from internal resources.
The default value of this property is false. This means a DTSDiscovery exception will be raised if this condition is found but for passing the FRTA conformance suite it is required to set this property to true.
public static final java.lang.String DTS_DISCOVERY_ALLOWSPACESONURIS
public static final java.lang.String DTS_STORE_CACHE_PATH
public static final java.lang.String DTS_STORE_CACHE_ENABLE
public static final java.lang.String DTS_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.
public static final java.lang.String DTS_THIN
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'
public static final java.lang.String DTS_SHOW_EXACTITUDE_DETAILS
The default value is 'true'
public static final java.lang.String DTS_CHECK_TOP_LEVEL_SCHEMAS
public static final java.lang.String DTS_USER_LANGUAGES
The algorithm to select a proper language during the evaluation of a language for a concept or
resource is indicated here LangsProviderInstance.getLangsCombined(DTSContainer)
.
This variable has the empty string as default value
public static final java.lang.String DTS_ERROR_MESSAGE_MAX_CHARS
The default value is 1500 characters
public static final java.lang.String LOG_LEVEL
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
public static final java.lang.String DTS_PROXY_HEADER
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.
public static final java.lang.String AUTHENTICATOR_DELEGATE_INSTANCE
public static final java.lang.String PROCESSORS_SEQUENCE
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:
registerProcessor(String, XBRLPlugInProcessor)
method on this classIn 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.
public static final java.lang.String WARNING_PROPERTY_VALUE
public static final java.lang.String ERROR_PROPERTY_VALUE
public static final java.lang.String IGNORE_PROPERTY_VALUE
public static final java.lang.String FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE
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.
public static final java.lang.String FORMULA_PROCESSOR_PARAMETER_RESOLVER
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.
public static final java.lang.String FORMULA_PROCESSOR_RETAIN_INPUT_INTANCE_ON_ASSERTION_RESULTS
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.
public static final java.lang.String FORMULA_PROCESSOR_RETAIN_AFTER_FORMULA_INTANCE_ON_ASSERTION_RESULTS
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.
public static final java.lang.String PARALLEL_PROCESSING
The PARALLEL_PROCESSING_EXPERIMENTAL property value must be a boolean. The default is 'true' since version 3.2
public static final java.lang.String PARALLEL_PROCESSORS
public static final java.lang.String FORMULA_PROCESSOR_ENABLE_ASSERTION_MESSAGE_EXTENSIONS
The FORMULA_PROCESSOR_ENABLE_ASSERTION_MESSAGE_EXTENSIONS property value must be a boolean. The default is 'true'
public static final java.lang.String FORMULA_PROCESSOR_DEFAULT_MESSAGE_ROLE
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.
public static final java.lang.String FORMULA_PROCESSOR_LEVEL_OF_EXCEPTIONS_INSIDE_FILTER_XPATH_EXPRESSIONS
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.
public static final java.lang.String FORMULA_PROCESSOR_USE_STRICT_SPECIFICATION_XPATH
public static final java.lang.String IXBRL_DEDUPLICATE_FACTS_AFTER_LOAD
The deduplication process might remove facts reported in the instance so the default value is false.
public static final java.lang.String IXBRL_DOCTYPE_VALIDATION
The property value can be set to any of the standard defined constants ERROR_PROPERTY_VALUE
, WARNING_PROPERTY_VALUE
or
IGNORE_PROPERTY_VALUE
. The default value is WARNING_PROPERTY_VALUE because section 3.5.1 of Inline XBRL Part 0: Primer 1.1 discourages its use.
If the ESEFProcessor is added to the validation chain, the property value is changed to ERROR_PROPERTY_VALUE automatically
public static final java.lang.String IXBRL_VERSION
The property value can be set to any of the standard defined constants IXBRL_V10
or IXBRL_V11
.
The default value is IXBRL_V11
public static final java.lang.String IXBRL_V10
IXBRL_VERSION
,
Constant Field Valuespublic static final java.lang.String IXBRL_V11
IXBRL_VERSION
,
Constant Field Valuespublic static final java.lang.String FUNCTIONS_USE_TARGETROLE_IN_XFI_FILTER_MEMBER_NETWORK_SELECTION
targetrole
attribute value shall be used when exploring dimensions
or not, in fact:
The value of this property can be set to "true" or "false". For historical reasons, the default value is "true" but it might be changed in the future. Note the XBRL 2.1 FUNCTIONS and FORMULA conformance suites contains no tests cases indicating which value shall be used the conformance lacks tests cases to choose for one single implementation across all software vendors and RS provides multiple implementations of this function. We apologies for the inconvenience
public static final java.lang.String FUNCTIONS_CREATE_PHANTOM_RELATIONSHIPS_WHEN_NEEDED_TO_MAKE_FILTER_MEMBER_NETWORK_SELECTION_TO_WORK_UNDER_CERTAIN_PROJECTS
At this time, the default value is "true"
public static final java.lang.String FORMULA_PROCESSOR_RETAIN_USED_FACTS
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.
public static final java.lang.String FORMULA_PROCESSOR_IGNORE_ASSERTION_SATISFIED
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
public static final java.lang.String FORMULA_PROCESSOR_IGNORE_ASSERTION_NOT_SATISFIED
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
public static final java.lang.String FORMULA_PROCESSOR_RETAIN_ASSERTION_RESOURCES
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.
public static final java.lang.String FORMULA_PROCESSOR_FILTER_ORDER_CLASS
The default value of this property is an instance of the XBRLFilterOrderTool interface that passes all test cases in the formula conformance suite.
public static final java.lang.String FORMULA_PROCESSOR_USE_GLOBAL_PARAMETERS
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-parametersThe @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-parameterspublic static final java.lang.String FORMULA_PROCESSOR_SCHEMA_VALIDATE_EXTERNAL_DOCS
public static final java.lang.String FORMULA_PROCESSOR_INTERRUPT_VALIDATION_MODE
This property has been added in order to allow debugging and optimizations of formulas in a DTS. The idea is to configure the processor in single thread validation mode and measure how long each formula or assertion takes, then, if an assertion is taking too long it could be interrupted and continue with next assertion. We are using the personal validation tool for that purpose and we set this property manually in the launch properties file for the personal validation tool.
The processor fires a Events.PROCESSOR_INTERRUPTED event when the DTSContainer process has finally executed the interruption. A GUI can add a property change listener on the DTSContainer instance to be informed for this status and enable again the interrupt button if it is disabled
public static final java.lang.String FORMULA_PROCESSOR_INTERRUPT_VALIDATION_MODE_PROCESSOR
public static final java.lang.String FORMULA_PROCESSOR_INTERRUPT_VALIDATION_MODE_CURRENT
public static final java.lang.String DEFAULT_DIMENSIONS_APPLICANCY
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:
public static final java.lang.String DEFAULTS_NOT_APPLY
public static final java.lang.String DEFAULTS_ALWAYS_APPLY
public static final java.lang.String FORMULA_PROCESSOR_EXCLUSION_FILE
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"
public static final java.lang.String SERIALIZATION_OUTPUT_DEFAULT_ATTRIBUTE_VALUES
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".
public static final java.lang.String SERIALIZATION_OUTPUT_XML_ENCODING
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
public static final java.lang.String SERIALIZATION_OUTPUT_XML_ENCODING_DEFAULT
public static final java.lang.String SERIALIZATION_OUTPUT_INDENT
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.
public static final java.lang.String SERIALIZATION_OUTPUT_INDENT_DEFAULT
public static final java.lang.String SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION
The default value is "no" so the XML declaration will always be included by default.
public static final java.lang.String SERIALIZATION_OUTPUT_OMIT_XML_DECLARATION_DEFAULT
public static final java.lang.String XML_REMOVE_NAMESPACE_DECLARATIONS
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.
public static final java.lang.String EXPERIMENTAL_USE_CACHED_STRINGS
public static final java.lang.String UTR_REPORT_AS_INCONSISTENCY
The default value of this property is "true" so invalid facts will be reported as inconsistencies
public static final int FAST
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.public static final int FULL
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.public static final java.lang.String FAIL_STRATEGY
getValidationReport()
) and the process continue.
The default (and recommended) value is "fail-fast"
Note: The motivation of this feature is the capacity to load iXBRL reports that contains format errors. We didn't want
to stop the processor with an XPathException indicating this condition too early. But, if you set "fail-slow" there might
appear additional errors in the validation report that are related with missing facts because some facts will not be
properly loaded. YOU ARE WARNEDhttps://www.martinfowler.com/ieeeSoftware/failFast.pdf
,
Constant Field Valuespublic static final java.lang.String FAIL_FAST
FAIL_STRATEGY
,
Constant Field Valuespublic static final java.lang.String FAIL_SLOW
FAIL_STRATEGY
,
Constant Field Valuespublic static final java.lang.String LOGGER_NAME
public transient org.apache.log4j.Logger log
public static final int GENERATION_MODE_NODEINFO
public static final int GENERATION_MODE_OBJECTS
public static final int ADQUIRE_EXTENDED_LOCK
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.
public static final int ADQUIRE_ROLETYPES_BY_EXT_LINK_LOCK
specialValidation(SpecialValidationProcess, int, Object[])
The calling process will adquire the lock for the roles by extended link.
public static void shutdown()
public void setProperty(java.lang.String name, java.lang.String value)
name
- property namevalue
- property value as stringpublic void setVariablesForProcessors(java.util.Properties variables)
variables
- Properties instancepublic java.util.Properties getVariablesForProcessors()
setVariablesForProcessors(Properties)
in order to set the properties instancepublic void setProperties(java.util.Properties newProps)
newProps
- Propertiespublic java.util.Properties getProperties()
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.
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
obj
- the objpublic void registerBar(DTSLoadingBarInterface bar)
registerBar
in interface Stopable
bar
- the barpublic DTSLoadingBarInterface getRegisteredBar()
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.
public javax.xml.transform.URIResolver getDTSURIResolver()
public void installDTSURIResolver(javax.xml.transform.URIResolver resolver)
resolver
- the resolverpublic void installFormulaParameterResolver(XBRLFormulaParametersResolver parameterResolver)
parameterResolver
- the parameter resolverpublic void doCallInstallDTSURIResolver(HasCreateDTSUriResolver instanceClass)
instanceClass
- instance of a class implementing the interface HasCreateDTSUriResolverpublic void doCallInstallFormulaParameterResolver(HasCreateFormulaParameterResolver instanceClass)
instanceClass
- the instance classpublic void setName(java.lang.String name)
name
- the new namepublic java.lang.String getName()
public void clear() throws java.lang.Throwable
java.lang.Throwable
- the throwablepublic static DTSContainer newEmptyContainer() throws com.rs.lic.LicenseVerificationException
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
com.rs.lic.LicenseVerificationException
- the license verification exceptionpublic static DTSContainer newEmptyContainer(java.util.Properties props) throws com.rs.lic.LicenseVerificationException
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.com.rs.lic.LicenseVerificationException
- the license verification exceptionpublic static DTSContainer newCompatibleContainer(net.sf.saxon.s9api.Processor proc, java.util.Properties props) throws com.rs.lic.LicenseVerificationException
proc
- Processor (saxonica s9api)props
- Properties. May be null.com.rs.lic.LicenseVerificationException
- the license verification exceptionpublic static DTSContainer newCompatibleContainer(DTSContainer otherContainer, java.util.Properties props) throws com.rs.lic.LicenseVerificationException
otherContainer
- DTSContainer the container the new container must be compatible withprops
- Properties. May be null.com.rs.lic.LicenseVerificationException
- the license verification exceptionpublic static net.sf.saxon.s9api.Processor getCompatibleProcessor(net.sf.saxon.s9api.Processor compatWith, boolean schemaAware)
compatWith
- the other Processor the new processor must be cmpatible withschemaAware
- the schema awarepublic static DTSContainer mergeDTSs(DTSContainer[] dtss) throws com.rs.lic.LicenseVerificationException
dtss
- DTSContainer[] array of DTSs to merge into a single DTScom.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 licensepublic static DTSContainer getStaticContainer()
public void addDocumentToDTS(XBRLDTSDocument d)
d
- XMLDocumentURIpublic java.lang.Object[] specialValidation(SpecialValidationProcess process, int flags, java.lang.Object[] arguments) throws XBRLValidationException
Not using this method may cause ConcurrentModificationException if one thread is using an iterator over a collection and the other thread modifies the collection.
process
- this is the process implementation instanceflags
- OR bitmap indicating the locks to adquire see ADQUIRE_EXTENDED_LOCK
and ADQUIRE_ROLETYPES_BY_EXT_LINK_LOCK
arguments
- the argumentsXBRLValidationException
- to allow the SpecialValidationProcess to raise any validation exceptionSpecialValidationProcess
public void delDocumentFromDTS(XBRLDTSDocument d)
d
- the dpublic void save() throws XBRLSerializationException
XBRLSerializationException
- the XBRL serialization exceptionpublic boolean isDocumentInDTSAndProcess(XBRLDTSDocument d)
addDocumentToDTS(XBRLDTSDocument)
method
and returns false.
This method is syncronized to allow multiple threads to request adding a document to the DTS.
This method is used by teh API to execute dts discovery on a XBRL Document
d
- XMLDocumentURIpublic boolean isDocumentInDTS(java.net.URI documentURI)
documentURI
- the document URIpublic boolean isDocumentInDTS(java.lang.Integer key)
Note, the parameter is a URI key obtained by calling getURICode(URI)
Keys that are part of the DTS are Taxonomies, Linkbases. This API assigns keys to Extended links inside linkbases for optimization purposes so it is valid asking if an ExtendedLink key is part of the DTS.
key
- the Document Key to search for. This is the the Integer returned by the
XBRLDTSDocument.getDTSKey()
method.isDocumentKeyInDTS(Integer)
public boolean isDocumentKeyInDTS(java.lang.Integer docCode)
docCode
- the doc codeisDocumentInDTS(Integer)
public java.util.Iterator<javax.xml.namespace.QName> getBaseTypes()
public java.util.Iterator<XBRLRoleType> getBaseRoles(javax.xml.namespace.QName linkbaseType)
linkbaseType
- QName of the extended link typepublic void addRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType, XBRLRoleType role)
linkbaseType
- the linkbase typerole
- the rolepublic void addRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType, java.lang.Integer role)
linkbaseType
- the linkbase typerole
- the rolepublic void delRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType, XBRLRoleType role)
linkbaseType
- the linkbase typerole
- the rolepublic void delRoleTypeForExtendedLink(javax.xml.namespace.QName linkbaseType, java.lang.Integer role)
linkbaseType
- the linkbase typerole
- the rolepublic boolean isRoleTypeUsed(java.lang.String roleType)
Note the role type is passed in as string to avoid having to create an instance of XBRLRoleType type. If this method returns true, getRoleType(roleType) will return at least one XBRLRoleType instance.
This method is guaranteed to keep the DTSContainer variables untouched
roleType
- the role type to check.public boolean isArcroleTypeUsed(java.lang.String arcroleType)
Note the arc role type is passed in as string to avoid having to create an instance of XBRLArcroleType type. If this method returns true, getArcroleType(arcroleType) will return at least one XBRLArcroleType instance.
This method is guaranteed to keep the DTSContainer variables untouched
arcroleType
- the arc role type to check.public boolean isBaseDefined(javax.xml.namespace.QName linkbaseType, java.lang.Integer role)
linkbaseType
- QNamerole
- XBRLRoleTypepublic boolean isBaseDefined(javax.xml.namespace.QName linkbaseType, XBRLRoleType role)
linkbaseType
- QNamerole
- XBRLRoleTypepublic DTSBase getBase(javax.xml.namespace.QName linkbaseType, XBRLRoleType role)
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<XBRLRoleType> 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.
linkbaseType
- QNamerole
- XBRLRoleTypepublic DTSBase getBase(javax.xml.namespace.QName linkbaseType, java.lang.Integer role)
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<XBRLRoleType> 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.
linkbaseType
- QNamerole
- XBRLRoleTypepublic java.util.Iterator<XBRLRoleType> getBaseRoleTypes(javax.xml.namespace.QName extendedLinkQName)
extendedLinkQName
- QNamepublic java.util.Iterator<java.lang.Integer> getBaseRoleCodes(javax.xml.namespace.QName extendedLinkQName)
getBaseRoleTypes(QName)
but returns an iterator over
integers that are unique codes for the role types which might be
faster to process on some occassions.extendedLinkQName
- QNamepublic net.sf.saxon.s9api.Processor getConfiguration()
public void recompile() throws DTSDiscoveryException
DTSDiscoveryException
- the DTS discovery exceptionpublic void collectTopLevelSchemaUsage(java.net.URI sourceDocumentURI, java.lang.String namespace, java.net.URI targetDocumentURI, boolean bMode)
sourceDocumentURI
- the source document URInamespace
- the namespacetargetDocumentURI
- the target document URIbMode
- the b modepublic net.sf.saxon.s9api.Processor getFastConfiguration()
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.
public static DTSContainer.ProcessorAndSchemaCompiler getNewConfiguration(boolean schemaAware, DTSContainer dts, java.util.Properties props)
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 timeprops
- Properties to the DTSConfiguration objectpublic static void configureJavaProxy(java.util.Properties props)
props
- the properties to obtain information fromfor information about the standard properties.
,
for information about the proxy authenticator instance
public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
listener
is null, no exception is thrown and no action
is taken.listener
- The PropertyChangeListener to be addedaddPropertyChangeListener(String, PropertyChangeListener)
public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
listener
was added more than once to the same event
source, it will be notified one less time after being removed.
If listener
is null, or was never added, no exception is
thrown and no action is taken.listener
- The PropertyChangeListener to be removedpublic java.beans.PropertyChangeListener[] getPropertyChangeListeners()
If some listeners have been added with a named property, then
the returned array will be a mixture of PropertyChangeListeners
and PropertyChangeListenerProxy
s. If the calling
method is interested in distinguishing the listeners then it must
test each element to see if it's a
PropertyChangeListenerProxy
, perform the cast, and examine
the parameter.
PropertyChangeListener[] listeners = bean.getPropertyChangeListeners(); for (int i = 0; i < listeners.length; i++) { if (listeners[i] instanceof PropertyChangeListenerProxy) { PropertyChangeListenerProxy proxy = (PropertyChangeListenerProxy)listeners[i]; if (proxy.getPropertyName().equals("foo")) { // proxy is a PropertyChangeListener which was associated // with the property named "foo" } } }
PropertyChangeListeners
added or an
empty array if no listeners have been addedPropertyChangeListenerProxy
public void addPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)
propertyName
or listener
is null, no
exception is thrown and no action is taken.propertyName
- The name of the property to listen on. see XBRLEvent
listener
- The PropertyChangeListener to be addedpublic void removePropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)
listener
was added more than once to the same event
source for the specified property, it will be notified one less time
after being removed.
If propertyName
is null, no exception is thrown and no
action is taken.
If listener
is null, or was never added for the specified
property, no exception is thrown and no action is taken.propertyName
- The name of the property that was listened on.listener
- The PropertyChangeListener to be removedpublic java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String propertyName)
propertyName
- The name of the property being listened toPropertyChangeListeners
associated with
the named property. If no such listeners have been added,
or if propertyName
is null, an empty array is
returned.public void firePropertyChangeEvent(java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)
propertyName
- the event name to fireoldValue
- the old property valuenewValue
- the new property valuepublic void firePropertyChangeEvent(java.lang.Object source, java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)
source
- the object the property changedpropertyName
- the event name to fireoldValue
- the old property valuenewValue
- the new property valuepublic int getNextDocumentKeyCode()
public XBRLDTSDocument setDocumentCode(XBRLDTSDocument document)
document
- the documentpublic XBRLDTSDocument getCodeDocument(java.lang.Integer code)
XBRLDTSDocument.getDTSKey()
code
- the document keypublic void replaceDocument(java.lang.Integer code, XBRLDTSDocument newdocument)
code
- the codenewdocument
- the newdocumentpublic void removeCodeDocument(java.lang.Integer code)
code
- the document key code to removepublic boolean addParent(java.lang.Integer documentCode, java.lang.Integer parentToAdd)
documentCode
- this is the document key code of the document a parent will be addedparentToAdd
- this is the document key code of the parent document to addpublic boolean removeParent(java.lang.Integer documentCode, java.lang.Integer parentToRemove)
documentCode
- the document key a parent will be removedparentToRemove
- the parent document key to removepublic int getParentsCount(java.lang.Integer documentCode)
documentCode
- the document code the parents will be returnedpublic int getChildrenCount(java.lang.Integer documentCode)
documentCode
- the document code the children will be returnedpublic boolean addChild(java.lang.Integer documentCode, java.lang.Integer childToAdd)
documentCode
- this is the document key code of the document a child will be addedchildToAdd
- this is the document key code of the child document to addpublic boolean removeChild(java.lang.Integer documentCode, java.lang.Integer childToRemove)
documentCode
- the document a child will be removedchildToRemove
- the child document to removepublic java.util.Set<java.lang.Integer> getParents(java.lang.Integer documentCode)
documentCode
- the document the parents will be returnedpublic java.util.Set<java.lang.Integer> getChildren(java.lang.Integer documentCode)
documentCode
- the document the children will be returnedpublic java.util.Set<java.lang.Integer> removeAllChildren(java.lang.Integer documentCode)
documentCode
- the document code all children will
be removedpublic void removeAllParent(java.lang.Integer documentCode)
documentCode
- the document code all parents will
be removedpublic java.lang.Integer getNewURICode(java.net.URI uri)
uri
- the uripublic java.util.Set<java.net.URI> getNoNormalURIs()
This method allows to raise a warning later and tell the user about rare URIs in the files
public java.lang.Integer getURICode(java.net.URI uri)
URI codes are used, for example, to store loaded documents into the documents cache
uri
- the urigetNewURICode(URI)
public java.net.URI getCodeURI(java.lang.Integer code)
code
- the codepublic void replaceURICode(java.lang.Integer uriCode, java.net.URI newURI)
uriCode
- the uri codenewURI
- the new URIpublic void removeChangeIdListener(net.sf.saxon.om.DocumentInfo physicalRoot)
physicalRoot
- the physical rootpublic void addChangeIdListener(net.sf.saxon.om.DocumentInfo physicalRoot, java.beans.PropertyChangeListener changeIdListener)
physicalRoot
- the physical rootchangeIdListener
- the change id listenerpublic void fireChangeIdEvent(XMLFragment xmlFragment, java.lang.String oldId, java.lang.String id)
xmlFragment
- the xml fragmentoldId
- the old idid
- the idpublic boolean cacheContains(java.lang.Integer documentURI)
The document URI is normalized and absolutized before the index search operation
fragments are removed because the cache contains documents.
documentURI
- the document uripublic java.util.Iterator<XBRLTaxonomy> cacheSchemaByNamespace(java.lang.String namespace)
Results are not in any specific ordered
Returns the empty sequence if the namespace is not found in the DTS.
namespace
- Stringpublic XMLDocumentURI cacheGet(java.net.URI documentURI)
This method obtains the URI code from the DTSContainer and then uses that number to search into the cache.
documentURI
- the document URIpublic XMLDocumentURI cacheGet(java.lang.Integer documentURI)
documentURI
- the document uripublic int cacheSize()
public XMLDocumentURI getCacheElement(int index)
index
- the indexpublic void cachePut(XMLDocumentURI documentURI) throws DTSDiscoveryException
documentURI
- the document uriDTSDiscoveryException
- the DTS discovery exceptionpublic void cacheRemove(java.lang.Integer documentURI)
documentURI
- the document uripublic XBRLResource getResource(java.lang.Integer code)
code
- the codepublic XBRLResource cacheResource(XBRLExtendedLink parent, net.sf.saxon.om.NodeInfo ni, java.lang.Class<? extends XBRLResource> name)
resources are indexed by the NodeInfo element
parent
- - Extended link where the XBRLResource resides. Can be null if the XBRLResource is in the cache.ni
- - NodeInfo, cannot be nullname
- - class of the resource to be created if no resource exist in the cachepublic int addResource(XBRLResource resource) throws XBRLDuplicateException
XBRLResource.setCode(int)
with -1 before calling addResource(XBRLResource)
.resource
- the resourceXBRLDuplicateException
- the XBRL duplicate exceptionpublic <T extends XBRLResource> T getSimilarResource(T res, XBRLExtendedLink el)
el
and is s_equals2 of
res
resource or null if no resource is found.
This method might take long time and should be avoided because all existing
resources in the same extended link are examined against res
resource until one is found.
In order to save memory, there is no a hashMap of resources
to compare against. So use with care.
if res
is already on extended link el
it will be
skipped for comparison.
T
- the type of the resource to be returned is of the same type of the res resourceres
- the resource to search for.el
- the extended link to search for similar resourcesres
public java.util.Iterator<java.lang.String> getLanguages()
The user preferred languages list can be obtained from the LangsProviderInstance.
public boolean delResource(XBRLResource resource, java.lang.Integer elCode)
resource
- the resourceelCode
- the code of the extended link where the resource is storedpublic boolean isProcessorInProcessorsSequence(java.lang.String processorName)
processorName
parameter is in referenced
in the PROCESSORS_SEQUENCE property.processorName
- the processor to checkPROCESSORS_SEQUENCE
public XBRLDocument load(java.net.URI url) throws DTSDiscoveryException, com.rs.lic.LicenseVerificationException
url
. The DTS Discovery rules starts from the
url(s)
parameter.
If the url
is relative, the absolute url
is resolved
using the base url (uri)
obtained form the getBaseURI()
method.
The processor base uri can be parameterized if that is needed by setting a value to the XBRL_BASE
property.
All files in the DTS are validated against schemas in the DTS and explicitly referenced in the xsi:schemaLocation attributes. Note that those the schemas may not be part of the DTS.
The load process does not include XBRL 2.1 validation. It includes: just the following steps:
getStatus()
method.url
- an array of Taxonomy schemas, linkbases or instance documentsDTSDiscoveryException
- if XBRL validation errors occurs during the DTS discovery processcom.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 licensepublic XBRLDocument[] load(java.net.URI[] url) throws DTSDiscoveryException, com.rs.lic.LicenseVerificationException
url
array. The DTS Discovery rules starts at every one of the
url(s)
in the array.
If the url
is relative, the absolute url
is resolved
using the base url (uri)
obtained form the getBaseURI()
method.
The processor base uri can be parameterized if that is needed by setting a value to the XBRL_BASE
property.
All files in the DTS are validated against schemas in the DTS and explicitly referenced in the xsi:schemaLocation attributes. Note that those the schemas may not be part of the DTS.
The load process does not include XBRL 2.1 validation. It includes: just the following steps:
url
- an array of Taxonomy schemas, linkbases or instance documentsDTSDiscoveryException
- if XBRL validation errors occurs during the DTS discovery processcom.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 licensepublic XBRLDocument load(javax.xml.transform.Source source) throws DTSDiscoveryException, com.rs.lic.LicenseVerificationException
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 fileDTSDiscoveryException
- is XBRL errors were foundcom.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 licensepublic XBRLDocument[] load(javax.xml.transform.Source[] ss) throws DTSDiscoveryException, com.rs.lic.LicenseVerificationException
ss
- array of Source objectsDTSDiscoveryException
- the DTS discovery exceptioncom.rs.lic.LicenseVerificationException
- the license verification exceptionpublic void loadIntoConfiguration() throws XBRLValidationException, com.rs.lic.LicenseVerificationException
XBRLValidationException
- the XBRL validation exceptioncom.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 exceptionpublic java.net.URI getRootURI()
public java.net.URI[] getRootURIs()
public void setRootURI(java.net.URI newURI)
newURI
- the new root uripublic void loadIntoConfiguration(XBRLTaxonomy taxonomy) throws net.sf.saxon.type.SchemaException
taxonomy
- the taxonomynet.sf.saxon.type.SchemaException
- the schema exceptionpublic void addError(java.lang.Exception e)
e
- the epublic java.lang.String[] getErrors()
public XBRLArcroleType getStaticArcroleTypeByURI(java.lang.String arcrole)
Note, this method registers the arcroleURI within the loaded DTSContainer
even if no relationships exists using the arcrole. If this is not a desired
collateral effect you can check the existence of a previous registration
with a call to isArcroleTypeUsed(String)
arcrole
- the arcrolepublic static boolean isStandardArcrole(java.lang.String arcrole)
Note, this method does not registers the arcrole uri within the loaded DTSContainer
arcrole
- the arcrolepublic XBRLRoleType getStaticRoleTypeByURI(java.lang.String role)
Note, this method registers the role uri within the loaded DTSContainer
even if the role uri is nowhere referenced. If this is not a desired
collateral effect you can check the existence of a previous registration
with a call to isRoleTypeUsed(String)
role
- the rolepublic static boolean isStandardRole(java.lang.String role)
Note, this method does not registers the role uri within the loaded DTSContainer
role
- the rolepublic static boolean isStandardExtendedLink(javax.xml.namespace.QName extendedLinkNodeName)
extendedLinkNodeName
- the extended link node namepublic java.util.Iterator<XBRLRelationship> getRelationships(DTSBase base) throws XBRLValidationException
base
- DTSBase The base to be interrogatedXBRLValidationException
- the XBRL validation exceptionpublic void setSerializationMethod(int method)
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.
method
- integer code of the new Methodpublic int getSerializationMethod()
public java.util.List<XBRLArcroleType> getArcroleType(java.lang.String uri)
uri
- String with the arcroleURI to search forpublic java.util.List<XBRLRoleType> getRoleType(java.lang.String 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:
uri
- String with the roleURI to search forpublic java.util.Iterator<XBRLRoleType> getRoleTypes()
public java.util.Iterator<XBRLArcroleType> getArcroleTypes()
public java.lang.Integer getRoleCode(java.lang.String roleURI)
code
(an Integer) from the roleURI
(an String)
If there is no code already defined for the given roleURI
a new code is created.
The code string is first converted to an URI. In case of any URISyntaxException
if the
value of the property DTS_DISCOVERY_ALLOWSPACESONURIS
is true, then an inconsistency
is added to the DTS validation report.
roleURI
- the role URIisRoleTypeUsed(String)
public java.lang.Integer getArcroleCode(java.lang.String arcroleURI)
code
(an Integer) from the arcroleURI
(an String)
If there is no code already defined for the given arcroleURI
a new code is created.
The code string is first converted to an URI. In case of any URISyntaxException
if the
value of the property DTS_DISCOVERY_ALLOWSPACESONURIS
is true, then an inconsistency
is added to the DTS validation report.
arcroleURI
- the arc role URIisArcroleTypeUsed(String)
public XBRLRoleType getRoleType(java.lang.Integer roleType)
XBRLRoleType
associated to the given roleType
code (an Integer)
If no role type was registered for the given code null is returned.
roleType
- the role typepublic java.lang.Integer addRoleType(XBRLRoleType role)
role
- the rolepublic void delRoleType(XBRLRoleType role)
role
- XBRLRoleTypepublic XBRLArcroleType getArcroleType(java.lang.Integer arcroleType)
arcroleType
- the arcrole typepublic java.lang.Integer addArcroleType(XBRLArcroleType arcrole)
arcrole
- XBRLArcroleType definition to add to this DTSpublic void delArcroleType(XBRLArcroleType arcrole)
arcrole
- XBRLArcroleTypepublic XBRLlrrAndRelationshipConstraints getLRRAndRelationshipsConstraintsChecker()
public int getNumberOfItemDeclarations() throws XBRLValidationException
XBRLValidationException
- the XBRL validation exceptionpublic int getNumberOfTupleDeclarations() throws XBRLValidationException
XBRLValidationException
- the XBRL validation exceptionpublic java.util.Iterator<XBRLItem> getItemDeclarations()
public java.util.Iterator<XBRLTuple> getTupleDeclarations()
public java.util.Iterator<XMLElementDefinition> getConcepts()
public java.util.Iterator<XBRLResource> getResources()
public java.util.Iterator<XBRLTaxonomy> getTaxonomyByPrefix(java.lang.String conceptPrefix)
conceptPrefix
- the concept prefixpublic java.util.Iterator<XBRLTaxonomy> getTaxonomyByNamespaceInDts(java.lang.String namespace)
namespace
- the namespacepublic boolean isTaxonomyLoadedByNamespace(java.lang.String namespace)
namespace
- the namespacepublic java.util.Iterator<XBRLTaxonomy> getTaxonomyByNamespace(java.lang.String namespace)
namespace
- the namespacegetTaxonomyByNamespaceInDts(String)
public java.util.Iterator<java.lang.Integer> getTaxonomyCodes()
public java.util.Iterator<java.net.URI> getTaxonomyURIs()
public java.util.Iterator<XBRLTaxonomy> getTaxonomies()
public int getNumberOfTaxonomyURIs()
public java.util.Iterator<java.net.URI> getLinkbaseURIs()
public java.util.Iterator<XBRLLinkbase> getLinkbases()
public java.util.Iterator<java.lang.Integer> getLinkbaseCodes()
public java.util.Iterator<java.lang.Integer> getExtendedLinkCodes()
public int getNumberOfLinkbaseURIs()
public int getNumberOfInstanceURIs()
public XBRLInstance getInstanceByURI(java.lang.Integer u)
u
- the XBRL Report URI or nullgetInstanceURIs()
public java.util.Iterator<java.net.URI> getInstanceURIs()
public XBRLTaxonomy getTaxonomyByURI(java.net.URI u)
u
- URI of the taxonomy to retrievepublic XBRLTaxonomy getTaxonomyByURI(java.lang.Integer u)
u
- Integer of the taxonomy URI to retrievepublic XBRLLinkbase getLinkbaseByURI(java.net.URI u)
u
- URI of the linkbase to retrievepublic XBRLLinkbase getLinkbaseByCode(java.lang.Integer code)
code
- the linkbase document keypublic XBRLTaxonomy getTaxonomyByCode(java.lang.Integer code)
code
- the taxonomy schema document keypublic XBRLExtendedLink getXBRLExtendedLink(java.lang.Integer code)
code
- the codepublic XBRLLinkbase getLinkbaseByURI(java.lang.Integer u)
u
- URI of the linkbase to retrievepublic void readInfoset() throws XBRLValidationException
XBRLValidationException
- the XBRL validation exceptionpublic void delayEvents(java.lang.Runnable runnable, java.lang.String... events)
runnable
- this is the process that will be executed and all events will be catchevents
- the eventspublic <T> T banEvents(java.util.concurrent.Callable<T> exec, java.lang.String... events) throws java.lang.Exception
T
- the return value of the exec
methodexec
- this is the process that will be executed and all events will be catchevents
- the eventsjava.lang.Exception
- any exception that exec
might raisepublic java.lang.Iterable<XBRLExtendedLink> getExtendedLinks()
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
.concept
- the conceptpublic void delConcept(javax.xml.namespace.QName concept)
concept
- QNamepublic XBRLRelationship getRelationship(java.lang.String extendedLink, javax.xml.namespace.QName relationshipType, java.lang.String arcrole, java.util.List<XBRLAttribute> attributes, XMLFragment source, XMLFragment target)
extendedLink
- the extended linkrelationshipType
- the relationship typearcrole
- the arcroleattributes
- the attributessource
- the sourcetarget
- the targetpublic XBRLResource getResource(java.net.URI xpointerIdentifier)
The XPointer identifier is unique. This function may not work properly if the resource has been created programatically.
xpointerIdentifier
- the xpointer identifierpublic XMLFragment getResource(java.lang.String resourceRole, javax.xml.namespace.QName resourceType, java.lang.String content, java.util.List<XBRLAttribute> attributes, net.sf.saxon.om.AbstractItem value, java.util.List<java.lang.String> xpathChildren) throws XBRLValidationException
resourceRole
- StringresourceType
- QNamecontent
- String "simple" or "complex"attributes
- Vector<XBRLAttribute> attributes defined in the root elementvalue
- the value for simple type resourcesxpathChildren
- the xpath childrenXBRLValidationException
- the XBRL validation exceptionpublic XBRLInstance isInstanceOfThisDTS(XBRLInstance instance, int mode)
Calling to this function requires that the DTS of the instance document received as a parameter being already discovered. Otherwise the comparison will fail.
instance
- the instance, can be just an instance loaded from XML without schema validationmode
- 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.public boolean isBUG368Mode()
public boolean isVersion20122501()
public boolean isVersion20132002()
public boolean isThin()
public boolean isFailFast()
FAIL_FAST
under the
FAIL_STRATEGY
propertypublic XBRLInstance isInstanceOfThisDTS(javax.xml.transform.Source xmlSource, int mode)
xmlSource
- the xml sourcemode
- 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.public XBRLInstance isInstanceOfThisDTS(MultiDTSValidationFile item, int mode) throws java.io.IOException
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.java.io.IOException
- Signals that an I/O exception has occurred.public boolean isTaxonomy(java.lang.Integer docCode)
docCode
corresponds with a taxonomy in the DTS.docCode
- document code obtained from XBRLDTSDocument.getDTSKey()
public boolean isLinkbase(java.lang.Integer docCode)
docCode
corresponds with a linkbase in the DTS.docCode
- document code obtained from XBRLDTSDocument.getDTSKey()
public boolean isExtendedLink(java.lang.Integer docCode)
docCode
corresponds with an extended link in the DTS.docCode
- document code obtained from XBRLDTSDocument.getDTSKey()
public XBRLXSDTypeDefinition getTypeDefinition(javax.xml.namespace.QName type)
This function does not find new types defined in taxonomy schemas that has not been read from XML files.
type
- QNamepublic java.lang.String getLastResolvedSystemId()
public void addValidationException(XBRLValidationException e)
e
- the epublic void addInconsistency(XBRLInconsistency e)
e
- the e@Deprecated public void addInconsistencey(XBRLInconsistency e)
e
- the epublic XBRLValidationReport getValidationReport()
public javax.xml.transform.Source resolve(java.net.URI resolvedURI) throws javax.xml.transform.TransformerException
resolvedURI
- the resolved URIjavax.xml.transform.TransformerException
- the transformer exceptionpublic void loadExtraSchemas() throws XBRLSchemaException
XBRLSchemaException
- the XBRL schema exceptionpublic com.saxonica.ee.schema.SchemaCompiler getSchemaCompiler()
This method is for internal use only.
public boolean shouldStop()
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.
XBRLInterruptedException
- the XBRL interrupted exceptionpublic <T extends XBRLPlugInProcessor> T getProcessor(java.lang.String processorname)
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.
T
- the generic typeprocessorname
- Processor token name (statically defined on each processor class)public void registerProcessor(java.lang.String processorname, XBRLPlugInProcessor processor)
processorname
- the processornameprocessor
- the processorpublic java.util.Iterator<XBRLPlugInProcessor> getProcessors()
public boolean xEqualMode()
This is because some test cases in the formula comformance suite assumes that the comparison of XBRL entities texts are trim before they are compared but this operation is not required in the XBRL specification.
public boolean sEqualMode()
This is because some test cases in the formula comformance suite assumes that the comparison of nodes should skip ids in nested nodes while this is not stated in the XBRL 2.1 specification.
public java.net.URI getBaseURI()
XBRL_BASE
public XMLFragment resolveXPointer(java.net.URI uriHref, XMLDocumentURI doc) throws XBRLValidationException
The href MUST be absolute.
uriHref
- the URI to resolvedoc
- 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.XBRLValidationException
- if the URI cannot be resolved according to the rules in the XBRL 2.1 specificationpublic XBRLValidationReport validate(XBRLDocument doc)
All registered processors are called in the order indicated in the PROCESSORS_SEQUENCE property.
This call utilizes the XBRLPlugInProcessor.validate(XBRLDocument)
method to perform validation
doc
- XBRL Document to validatepublic int getWhatToValidate()
public void setWhatToValidate(int newValue)
newValue
- the new what to validatepublic int getNumberOfProcessorsInSequence()
public XBRLInstance getUnderEvaluationInstance()
public XBRLInstance setUnderEvaluationInstance(XBRLInstance valInstance)
Warning, this method does not store the instance per thread
valInstance
- the new under evaluation instancepublic XBRLValidationReport validate() throws XBRLInitializationException, com.rs.lic.LicenseVerificationException
This call utilizes the XBRLPlugInProcessor.validate()
method to perform validation and
might not contain an XBRLInstance in the scope. If that is desired, either call validate(XBRLDocument)
or call setUnderEvaluationInstance(XBRLInstance)
before calling this method.
XBRLInitializationException
- If the processor under a certain name cannot be createdcom.rs.lic.LicenseVerificationException
- If the user has no rights to use the indicated processorpublic static boolean registerProcessorFactory(java.lang.String name, java.lang.Class<? extends XBRLProcessorFactory> clazz)
name
- the nameclazz
- the clazzpublic static java.lang.String[] getRegisteredProcessorNames()
public static java.lang.Class<? extends XBRLProcessorFactory> getProcessorFactory(java.lang.String processorName)
processorName
- the processor namepublic boolean isGeneralVariableSchemaAware()
FORMULA_PROCESSOR_GENERAL_VARIABLE_SCHEMA_AWARE
for more information.public static java.net.URI getTempURL()
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.
public DTSContainer.Status getStatus()
DTSContainer.Status
enumerationpublic java.util.Collection<XBRLLibraryFactory> getCustomFunctionFactories()
public java.util.Iterator<javax.xml.transform.Source> getResolvedSourcesByNamespace(java.lang.String targetNamespace)
targetNamespace
- the target namespacepublic void addSourceToCacheByNamespace(java.lang.String targetNamespace, javax.xml.transform.Source s1)
targetNamespace
- the target namespaces1
- the s1public void removeSourceFromCacheByNamespace(java.lang.String targetNamespace)
targetNamespace
- the target namespacepublic boolean isShowExactitudeDetails()
public <T extends XBRLPlugInProcessor> T getOrCreateProcessor(java.lang.String processorName)
processorName
- the processor namepublic KeyElementsInterceptorHelper getKeyElementsInterceptorHelper()
public void informPossibleNamespaceGhist(java.lang.String uri)
uri
- the uripublic XMLFragment makeXMLFragment(net.sf.saxon.om.NodeInfo parent, net.sf.saxon.om.NodeName nameCode, net.sf.saxon.type.SchemaType elementType, boolean isNilled, net.sf.saxon.tree.util.AttributeCollectionImpl attlist, net.sf.saxon.event.PipelineConfiguration pipe, int locationId)
parent
- the parentnameCode
- the name codeelementType
- the element typeisNilled
- the is nilledattlist
- the attlistpipe
- the pipelocationId
- the location idpublic FactsListClassifier getFactsListClassifier(XBRLFactsList instance, int aspectsToCover)
instance
- the instanceaspectsToCover
- the aspects to coverpublic <T extends HasEqualsCache> EqualsCache<T> getEqualsCache(java.lang.Class<T> clazz)
T
- the generic typeclazz
- the clazzpublic void clearEqualsCaches()
public XMLAttributesInDTS getAttributesDatabase()
public AtomicComparerHelper getAtomicComparator()
public boolean isAssertionSeverityLoadedInDTS()
public StringCache getStringCache()
public void addNodeToBatch(XMLFragment parent, XMLFragment newNode)
parent
- the parentnewNode
- the new nodepublic void commitBatch(XMLFragment parent)
parent
- the parentpublic java.lang.String[] getInformationAboutEntryPoint()
public java.net.URI getRelativeURI(java.net.URI documentURI)
load(URI)
call as the base URI
When the load(URI[])
method was used with an array of URIs the common part of those URIs is used as the
base URI.
documentURI
- the absolute URI to made relativepublic java.lang.String getRelativeURI(java.lang.String documentURIAsString)
load(URI)
call as the base URI
When the load(URI[])
method was used with an array of URIs the common part of those URIs is used as the
base URI.
documentURIAsString
- the absolute URI to made relativedocumentURIAsString
parameter if no root
URIs exists or the URIs has not the host and scheme in commonpublic boolean isProperty(java.lang.String property)
property
- name. See DTSContainer
documentationpublic boolean isLocalResourceInIXBRLDocumentSet(java.nio.file.Path src)
src
- the srcpublic boolean isIXBRLDocumentSet()
public java.util.Map<java.lang.String,java.lang.String> getIXBRLPackagePublishersByLang()
Copyright 2006-2015 Reporting Standard S.L., C/ Torrecilla del Puerto 1, 28043, Madrid, Espaņa