eu.cdevreeze.tqa.base.taxonomybuilder

Type members

Classlikes

abstract class AbstractDtsCollector(val acceptsEmptyUriSet: Boolean) extends DocumentCollector

Abstract partially implemented DTS discovery as document collector. It is memory-hungry in that all found documents are stored in memory while finding the DTS. It is also unforgiving in that broken links are not allowed.

Abstract partially implemented DTS discovery as document collector. It is memory-hungry in that all found documents are stored in memory while finding the DTS. It is also unforgiving in that broken links are not allowed.

If there is a broken link due to a typo, consider tweaking the DocumentBuilder with some post-processing.

Authors

Chris de Vreeze

sealed abstract class CanBeTaxonomyPackageDocumentChild extends TaxonomyPackageNode with CanBeDocumentChild
final class DefaultDtsCollector(acceptsEmptyUriSet: Boolean) extends AbstractDtsCollector

Default DTS discovery implementation. It will fail for all found URIs that cannot be resolved to taxonomy documents.

Default DTS discovery implementation. It will fail for all found URIs that cannot be resolved to taxonomy documents.

This document collector works well with XBRL Taxonomy Packages, passing an entry point in such a taxonomy package, and using a document builder that uses the XML catalog of the taxonomy package.

DTS discovery also works if one or more taxonomy schemas and/or linkbases have been combined in the same XML document, below another (wrapper) root element. Embedded linkbases are also picked up.

Authors

Chris de Vreeze

Companion
object
Companion
class

Description in a taxonomy package

Description in a taxonomy package

Authors

Chris de Vreeze

Strategy for collecting taxonomy documents. Typically implemented as DTS discovery, although it is also possible that all document URIs must be explicitly mentioned, as is the case for TrivialDocumentCollector.

Strategy for collecting taxonomy documents. Typically implemented as DTS discovery, although it is also possible that all document URIs must be explicitly mentioned, as is the case for TrivialDocumentCollector.

Authors

Chris de Vreeze

Documentation group, so either a Name or a Description

Documentation group, so either a Name or a Description

Authors

Chris de Vreeze

final class EntryPoint extends TaxonomyPackageElem

EntryPoint in a taxonomy package

EntryPoint in a taxonomy package

Authors

Chris de Vreeze

EntryPoint document in a taxonomy package

EntryPoint document in a taxonomy package

Authors

Chris de Vreeze

EntryPoints element in a taxonomy package

EntryPoints element in a taxonomy package

Authors

Chris de Vreeze

final class Identifier extends TaxonomyPackageElem

Identifier in a taxonomy package

Identifier in a taxonomy package

Authors

Chris de Vreeze

final class Language extends TaxonomyPackageElem

Language in a taxonomy package

Language in a taxonomy package

Authors

Chris de Vreeze

Languages element in a taxonomy package

Languages element in a taxonomy package

Authors

Chris de Vreeze

final class License extends TaxonomyPackageElem

License in a taxonomy package

License in a taxonomy package

Authors

Chris de Vreeze

Name in a taxonomy package

Name in a taxonomy package

Authors

Chris de Vreeze

Other element in a taxonomy package

Other element in a taxonomy package

Authors

Chris de Vreeze

Publication date in a taxonomy package

Publication date in a taxonomy package

Authors

Chris de Vreeze

final class Publisher extends TaxonomyPackageElem

Publisher in a taxonomy package

Publisher in a taxonomy package

Authors

Chris de Vreeze

Publisher country in a taxonomy package

Publisher country in a taxonomy package

Authors

Chris de Vreeze

final class PublisherUrl extends TaxonomyPackageElem

Publisher URL in a taxonomy package

Publisher URL in a taxonomy package

Authors

Chris de Vreeze

Superseded taxonomy packages element in a taxonomy package

Superseded taxonomy packages element in a taxonomy package

Authors

Chris de Vreeze

final class TaxonomyBuilder(val documentBuilder: DocumentBuilder, val documentCollector: DocumentCollector, val extraSubstitutionGroupMap: SubstitutionGroupMap, val relationshipFactory: RelationshipFactory, val arcFilter: XLinkArc => Boolean) extends BasicTaxonomyFactory

Fluent interface for bootstrapping a taxonomy. The type system helps in getting bootstrapping right, if we start with the TaxonomyBuilder companion object.

Fluent interface for bootstrapping a taxonomy. The type system helps in getting bootstrapping right, if we start with the TaxonomyBuilder companion object.

Authors

Chris de Vreeze

Companion
object

Fluent type-safe API to create a TaxonomyBuilder. Note that typically it makes sense to create a TaxonomyBuilder once, and keep it, using it to create taxonomies for different entrypoints. Hence, creating a TaxonomyBuilder is typically rather easy, given a DocumentBuilder. Mostly it is the creation of the DocumentBuilder that can be challenging, due to the URI resolution strategy to pass, and possibly also due to the use of a document cache.

Fluent type-safe API to create a TaxonomyBuilder. Note that typically it makes sense to create a TaxonomyBuilder once, and keep it, using it to create taxonomies for different entrypoints. Hence, creating a TaxonomyBuilder is typically rather easy, given a DocumentBuilder. Mostly it is the creation of the DocumentBuilder that can be challenging, due to the URI resolution strategy to pass, and possibly also due to the use of a document cache.

Companion
class

Taxonomy package root element.

Taxonomy package root element.

It does not check validity of the taxonomy package.

Authors

Chris de Vreeze

Companion
object
Companion
class
final case class TaxonomyPackageCommentNode(text: String) extends CanBeTaxonomyPackageDocumentChild with Comment
sealed abstract class TaxonomyPackageElem extends CanBeTaxonomyPackageDocumentChild with Elem with ScopedElemLike with SubtypeAwareElemLike

XML element inside a taxonomy package XML tree. This API is immutable, provided the backing element is immutable.

XML element inside a taxonomy package XML tree. This API is immutable, provided the backing element is immutable.

The yaidom SubtypeAwareElemApi and ScopedElemApi query API is offered.

Note that the package-private constructor contains redundant data, in order to speed up (yaidom-based) querying.

It is not required that the taxonomy package elements are schema-valid. Construction of a taxonomy package element is indeed quite lenient.

Note that the backing element implementation can be any implementation of yaidom query API trait BackingNodes.Elem.

This class hierarchy depends on Java 8 or later, due to the use of Java 8 time API.

Creation of TaxonomyPackageElem objects is designed not to fail, even if the XML element is not taxonomy package element content. Of course, after creation many query methods may fail in such cases. It is also possible to use these data classes for taxonomy package elements embedded in other XML elements, or only for parts of taxonomy package elements.

Authors

Chris de Vreeze

Companion
object
Companion
class
sealed abstract class TaxonomyPackageNode extends Node

"Taxonomy package DOM node".

"Taxonomy package DOM node".

Authors

Chris de Vreeze

final case class TaxonomyPackageProcessingInstructionNode(target: String, data: String) extends CanBeTaxonomyPackageDocumentChild with ProcessingInstruction

Taxonomy package reference in a taxonomy package

Taxonomy package reference in a taxonomy package

Authors

Chris de Vreeze

final case class TaxonomyPackageTextNode(text: String) extends TaxonomyPackageNode with Text

Trivial document collector, performing no DTS discovery, but expecting all document URIs to be explicitly given as "entry points" instead.

Trivial document collector, performing no DTS discovery, but expecting all document URIs to be explicitly given as "entry points" instead.

Authors

Chris de Vreeze

final class Version extends TaxonomyPackageElem

Version in a taxonomy package

Version in a taxonomy package

Authors

Chris de Vreeze

Versioning report in a taxonomy package

Versioning report in a taxonomy package

Authors

Chris de Vreeze

Versioning reports element in a taxonomy package

Versioning reports element in a taxonomy package

Authors

Chris de Vreeze