com.ihr.xbrl.om.taxonomy

## Class XBRLTaxonomy

- java.lang.Object
- - com.ihr.xbrl.om.XMLFragment
  - - com.ihr.xbrl.om.XMLDocumentURI
    - - com.ihr.xbrl.om.XBRLDocument
      - - com.ihr.xbrl.om.taxonomy.XBRLTaxonomy

- All Implemented Interfaces:
    HasAdditionalEqualityForReassignation, XBRLRelationshipPoint, Thinable, XBRLDTSDocument, XBRLHasDTSTarget, XBRLValidation, XMLHasParent, java.lang.Cloneable, javax.xml.namespace.NamespaceContext

      public class XBRLTaxonomy
      extends XBRLDocument

  Provides the properties of an XBRL Taxonomy Information Item

  The [Parent] property is the parent class XBRLDocument.

  Author:
    Ignacio

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.ihr.xbrl.om.XBRLValidation

      `XBRLValidation.Direction`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static javax.xml.namespace.QName` | `schemaNodeName` The document node name.

    - ### Fields inherited from class com.ihr.xbrl.om.XBRLDocument

      `INSTANCE, IXBRL, LINKBASE, TAXONOMY`

    - ### Fields inherited from class com.ihr.xbrl.om.XMLFragment

      `CONCEPT_LABEL, CONCEPT_QNAME, EASY_TO_READ, ELEMENT_LABEL, EMPTYRELATIONSHIPSITERATORINSTANCE, EMPTYXMLFRAGMENTITERATORINSTANCE, FACT_CONCEPT_DATATYPE, FACT_CONCEPT_LABEL, FACT_QNAME, HIDE_COMMON_ACCURACY, idQName, NO_POSITION, OrderComparator, OrderComparator2, PERIOD_TYPE, PERIOD_VALUE, SHORT_TEXT, SOURCE_DOCUMENT, XPATH, XPOINTER`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XBRLTaxonomy(DTSContainer dts)` Creates a new empty XBRLTaxonomy instance.
    `XBRLTaxonomy(DTSContainer dts, java.net.URI txBase, java.net.URI txUri, boolean bAddToCache, XBRLDTSDocument parent)` Creates a new XBRLTaxonomy instance.
    `XBRLTaxonomy(XMLDocumentURI docURI, boolean bAddToCache)` Creates a new XBRLTaxonomy instance from an XMLDocumentURI.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addArcroleType(XBRLArcroleType arcrole)` Adds a new arcrole type to the set of arcrole types defined in this taxonomy.
    `void` | `addElement(XMLElementDefinition newElement)` Add a new element to the taxonomy.
    `void` | `addGlobalAttribute(XMLFragment attributeDefinitionHeaderNode)` Adds a new global attribute definition to this taxonomy schema.
    `void` | `addGlobalAttributeGroup(XMLFragment attributeGroupDefinitionHeaderNode)` Adds a new global attributeGroup definition to this taxonomy schema.
    `void` | `addGlobalGroup(XMLFragment groupDefinitionHeaderNode)` Adds a new global attributeGroup definition to this taxonomy schema.
    `void` | `addGlobalType(XMLFragment typeDefinitionHeaderNode)` Adds a new global type definition to this taxonomy schema.
    `void` | `addImport(XBRLImport imp)` Adds a new import to this taxonomy.
    `void` | `addInclude(XBRLInclude inc)` Adds an XBRLInclude to this taxonomy.
    `void` | `addLinkbase(XBRLLinkbase linkbase)` Adds a linkbase object to this taxonomy.
    `void` | `addRoleType(XBRLRoleType role)` Adds a new role type to the set of role types defined in this taxonomy.
    `void` | `addXMLChild(XMLHasParent child)` Adds the xml child.
    `void` | `clear()` Frees-up used memory This method should not be invoqued on live objects in the DTS.
    `XMLElementDefinition` | `convertNodeInfo(net.sf.saxon.s9api.XdmNode ni)` This method is used internally by the XBRL API in order to create an XMLElementDefinition from an XdmNode.
    `void` | `delElement(XMLElementDefinition element)` Deletes an element from the taxonomy This function will not delete the relationships the element participates on.
    `boolean` | `delGlobalAttribute(java.lang.String name)` Removes a Global attribute definition from this taxonomy schema.
    `boolean` | `delGlobalAttributeGroup(java.lang.String name)` Removes a Global attributeGroup definition from this taxonomy schema.
    `boolean` | `delGlobalGroup(java.lang.String name)` Removes a Global group definition from this taxonomy schema.
    `boolean` | `delGlobalType(java.lang.String name)` Removes a Global Type definition from this taxonomy schema.
    `void` | `discoverDTS(XBRLDTSDocument parent)` All derived classes MUST implement this method and provide the functionality according to section 3.2 of the XBRL 2.1 specification
    `org.jdom.Document` | `generateDocNode(boolean relativize, java.net.URI base)` This class has to be implemented by objects derived from XBRLDocument and must return a org.jdom.Document node with the content of this XBRLDocument object
    `XBRLArcroleType` | `getArcroleTypeByURI(java.lang.String uri)` Access to an arcrole type definition for a given URI if that arcrole type exists on this taxonomy. returns null if there is no such arcrole type for the given URI.
    `java.util.Iterator<XBRLArcroleType>` | `getArcroleTypes()` Returns an iterator over all arcrole types defined in this taxonomy.
    `java.util.Iterator<XMLElementDefinition>` | `getConcepts()` Access to the [Concepts] property This method does not return non XBRL concep definitions.
    `int` | `getDTSDocumentType()` Returns the type of DTS Document.
    `java.lang.String` | `getDTSDocumentTypeName()` Gets the DTS document type name.
    `XMLElementDefinition` | `getElementDefinitionById(java.lang.String id)` Finds the element definition based on the element name and returns an XMLDocument that can be an XMLDocument, an XBRLItem or an XBRLTuple Returns null if not found.
    `XMLElementDefinition` | `getElementDefinitionByName(java.lang.String name)` Finds the element definition based on the element name and returns an XMLDocument that can be an XMLFragment, an XBRLItem or an XBRLTuple Returns null if not found.
    `java.util.Iterator<XMLFragment>` | `getElements()` For complex type resources this returns an iterator with all children XML fragments This method may be overwriten by other classes in the hierarchy.
    `XBRLExtendedLink` | `getExtendedLink(net.sf.saxon.s9api.XdmNode key)` Gets the extended link.
    `java.lang.String` | `getFriendlyName()` Returns a string description that represents the element content in a form that users can understand.
    `java.util.Iterator<java.lang.String>` | `getGlobalAtributeGroups()` Access to an iterator over all global attribute groups.
    `XMLFragment` | `getGlobalAttributeByName(java.lang.String name)` Returns a global attribute defined in this taxonomy schema by its name.
    `XMLFragment` | `getGlobalAttributeGroupByName(java.lang.String name)` Returns a global attributeGroup defined in this taxonomy schema by its name.
    `java.util.Iterator<java.lang.String>` | `getGlobalAttributes()` Access to an iterator over all global attributes.
    `XMLFragment` | `getGlobalGroupByName(java.lang.String name)` Returns a global group defined in this taxonomy schema by its name.
    `java.util.Iterator<java.lang.String>` | `getGlobalGroups()` Access to an iterator over all element groups defined.
    `XMLFragment` | `getGlobalTypeByName(java.lang.String name)` Returns a global type defined in this taxonomy schema by its name or null if the taxonomy schema has no a definition for a global type under the type name used in the name parameter.
    `java.util.Iterator<java.lang.String>` | `getGlobalTypes()` Access to an iterator over all global types defined in the taxonomy.
    `XBRLTaxonomy` | `getImport(java.net.URI namespace)` Return the XBRLTaxonomy imported for the namespace or null if the schema for the namespace is not imported.
    `java.util.Iterator<XBRLImport>` | `getImports()` Return an iterator of all defined imports.
    `java.util.Iterator<XBRLInclude>` | `getIncludes()` Access to the includes declared on this taxonomy.
    `java.util.Iterator<XBRLItem>` | `getItems()` Access to the [Items] property.
    `java.util.Iterator<XBRLLinkbase>` | `getLinkbases()` Return an iterator of all defined linkbases.
    `int` | `getNumberOfItemDeclarations()` Returns the number of XBRL items defined in this XBRLTaxonomy.
    `int` | `getNumberOfTupleDeclarations()` Returns the number of XBRL tuples defined in this XBRLTaxonomy.
    `XBRLRoleType` | `getRoleTypeByURI(java.lang.String uri)` Access to a role type definition for a given URI if that role type exists on this taxonomy. returns null if there is no such role type for the given URI.
    `java.util.Iterator<XBRLRoleType>` | `getRoleTypes()` Returns an iterator over all role types defined in this taxonomy.
    `com.saxonica.schema.PreparedSchema` | `getSchema()` Deprecated.
    `java.lang.String` | `getTargetNamespace()` Access to the [Namespace] Property.
    `java.util.Iterator<XBRLTuple>` | `getTuples()` Access to the [Tuples] property.
    `void` | `readInfoset()` Read all structures that builds the infoset.
    `void` | `removeArcroleType(XBRLArcroleType arcrole)` Removes an arcrole type from the set of arcrole types defined in this taxonomy.
    `void` | `removeImport(XBRLImport imp)` Remove an existing import.
    `boolean` | `removeInclude(XBRLInclude inc)` Removes am include form this taxonomy.
    `void` | `removeLinkbase(XBRLLinkbase linkbase)` Removes a linkbase object that is referenced in this taxonomy.
    `void` | `removeRoleType(XBRLRoleType role)` Removes a role type from the set of role types defined in this taxonomy.
    `void` | `removeXMLChild(XMLHasParent child)` Removes the xml child.
    `void` | `setDocumentAndReload(net.sf.saxon.s9api.XdmNode node)` This method is called by the XMLFragment object each time the surrounding XdmNode object is set.
    `void` | `setTargetNamespace(java.lang.String targetNamespace)` Sets or changes the targetNamespace for this schema .

    - ### Methods inherited from class com.ihr.xbrl.om.XBRLDocument

      `addExtendedLink, addIdOfElement, addIdOfElement, addParent, changeElementId, changeExtendedLinkKey, createDocument, createDocument, delParent, equals, getAllUsedIds, getComments, getDocument, getDTS, getElementById, getExtendedLinks, getExtendedLinks, getParents, hashCode, isContentModified, isDocumentModified, isIdUsed, moveNamespacesUp, moveNamespacesUp, removeExtendedLink, removeIdOfElement, save, setComments, updateXML`

    - ### Methods inherited from class com.ihr.xbrl.om.XMLDocumentURI

      `addChild, delChild, generateLocatorToDocument, getBase, getChildren, getDocumentURI, getDTSKey, getLocalFile, getValidationReport, invalidate, invalidate, isInDTS, isOnValidation, setURI, validate`

    - ### Methods inherited from class com.ihr.xbrl.om.XMLFragment

      `addAttribute, addChild, addFromRelationship, addNamespace, addNamespace, addToRelationship, changeBase, checkBase, clone, clone, delAttribute, delAttribute, equalXdmValues, evaluateBoolean, evaluateList, evaluateNode, evaluateNumber, evaluateString, generateId, generateNode, generateNodeNamespacesAndAttributes, generateNodeValue, generatePrefix, getAllAttributes, getAttribute, getAttributeBooleanValue, getAttributeQNameValue, getAttributes, getAttributes, getAttributeStringValue, getAttributeValue, getBase, getBaseURI, getBooleanValue, getChild, getContainer, getContainerDocumentURI, getDeclaredNamespaces, getElementsHashCode, getFragment, getFriendlyName, getFromRelationships, getFromRelationships, getFromRelationships, getFromRelationships, getFromRelationships, getGenericLabelText, getId, getLang, getNamespaceURI, getNodeName, getNumberOfAttributes, getNumberOfElements, getNumberOfFromRelationships, getNumberOfToRelationships, getOrGenerateId, getParent, getPrefix, getPrefixes, getQNameValue, getRelationshipsBases, getRelationshipsChain, getRelationshipTypes, getStaticContext, getStaticNamespace, getStringValue, getToolTipText, getToRelationships, getToRelationships, getToRelationships, getToRelationships, getToRelationships, getValue, getXPathExecutable, getXPathNamespaceContext, getXPathToNode, getXPathToRoot, getXPointerElementScheme, getXPointerElementScheme, getXPointerShorthandScheme, getXPointerToNode, isDead, isNamespaceDefined, isXdmDocumentAttached, objEquals, objHashCode, qNameToString, removeAttribute, removeChild, removeChild, removeFromRelationship, removeToRelationship, resetElements, resetHash, resolve_equal2, resolveHRef, resolveHRef, s_equal2, s_equal2, s_equal2, setAttributes, setBase, setDocument, setElements, setId, setLang, setNamespaceContext, setNamespaces, setNode, setNodeName, setParent, setRegenerateNodeIfnotFound, setValue, setValue, setVariablesDefined, size, thin, toString, valueEquals, xEqual`

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

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

- - ### Field Detail

    - #### schemaNodeName

          public static final javax.xml.namespace.QName schemaNodeName

      The document node name.

  - ### Constructor Detail

    - #### XBRLTaxonomy

          public XBRLTaxonomy(DTSContainer dts,
                      java.net.URI txBase,
                      java.net.URI txUri,
                      boolean bAddToCache,
                      XBRLDTSDocument parent)
                       throws DTSDiscoveryException

      Creates a new XBRLTaxonomy instance. The document content is read from cache of documents already read, if it is not there, then the URI content is read (using standard document content resolution). The content is added to the cache if the value of the bAddToCache parameter is true. The taxonomy is attached to the parent document.
      Parameters:
        `dts` - current DTSContainer for the new XBRLTaxonomy
        `txBase` - the base URI for the creation of this taxonomy
        `txUri` - the taxonomy URI (official absolute URI)
        `bAddToCache` - boolean, true if the document should be added to the DTSContainer cache of read documents.
        `parent` - XBRLDTSDocument that is the parent of this document, this is only used if there are errors reading the document. Can be null.
      Throws:
        `DTSDiscoveryException` - the DTS discovery exception

    - #### XBRLTaxonomy

          public XBRLTaxonomy(XMLDocumentURI docURI,
                      boolean bAddToCache)
                       throws DTSDiscoveryException

      Creates a new XBRLTaxonomy instance from an XMLDocumentURI. This constructor is for internal purposes of the API.
      Parameters:
        `docURI` - the doc uri
        `bAddToCache` - the b add to cache
      Throws:
        `DTSDiscoveryException` - the DTS discovery exception

    - #### XBRLTaxonomy

          public XBRLTaxonomy(DTSContainer dts)

      Creates a new empty XBRLTaxonomy instance. The new XBRLTaxonomy will be totally empty. Use this constructor if you wish to define all taxonomy properties later using other API calls.

      The taxonomy will not have any parent object and will not be added to the set of taxonomies that belongs to the DTSContainer object. See `DTSContainer.addDocumentToDTS(XBRLDTSDocument)` in order to allow `DTSContainer.save(boolean)` to serialize the taxonomy to XML nodes. Don't forget to set a file name to this taxonomy before calling the save method. see `XMLDocumentURI.setURI(URI)` for more information.

      Parameters:
        `dts` - the DTSContainer object.

  - ### Method Detail

    - #### clear

          public void clear()
                     throws java.lang.Throwable

      Description copied from class: `XMLFragment`
      Frees-up used memory

      This method should not be invoqued on live objects in the DTS. It is automatically invoqued by the API when an object is no longer used and referenced by other objects. It is save not to call it directly.

      Specified by:
        `clear` in interface `XBRLDTSDocument`
      Overrides:
        `clear` in class `XBRLDocument`
      Throws:
        `java.lang.Throwable` - the throwable

    - #### setDocumentAndReload

          public void setDocumentAndReload(net.sf.saxon.s9api.XdmNode node)
                                    throws XBRLInconsistentDTSException,
                                           com.rs.lic.LicenseVerificationException

      Description copied from class: `XMLFragment`
      This method is called by the XMLFragment object each time the surrounding XdmNode object is set. This happens internally by the XBRL API after XML Schema validation is performed so the surrounding XML nodes acquire type information.

      Overwrite this method in parent objects in order to refresh objects that depends on the surrounding XML nodes.

      Overrides:
        `setDocumentAndReload` in class `XBRLDocument`
      Parameters:
        `node` - the new XdmNode
      Throws:
        `XBRLInconsistentDTSException` - the XBRL inconsistent dts exception
        `com.rs.lic.LicenseVerificationException` - the license verification exception

    - #### getSchema

          @Deprecated
          public com.saxonica.schema.PreparedSchema getSchema()

      Deprecated.
      This method is not used and should not be used.

      Returns:
        PreparedSchema from surrounding Saxon API.

    - #### getTargetNamespace

          public java.lang.String getTargetNamespace()

      Access to the [Namespace] Property.
      Returns:
        the targetNamespace property or null if not set

    - #### setTargetNamespace

          public void setTargetNamespace(java.lang.String targetNamespace)

      Sets or changes the targetNamespace for this schema .
      Parameters:
        `targetNamespace` - the new target namespace

    - #### getDTSDocumentType

          public int getDTSDocumentType()

      Description copied from class: `XBRLDocument`
      Returns the type of DTS Document.
      Specified by:
        `getDTSDocumentType` in class `XBRLDocument`
      Returns:
        DTSDocument.INSTANCE, DTSDocument.TAXONOMY or DTSDocument.LINKBASE

    - #### getConcepts

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

      Access to the [Concepts] property This method does not return non XBRL concep definitions.
      Returns:
        Iterator

    - #### getItems

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

      Access to the [Items] property.
      Returns:
        Iterator

    - #### getTuples

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

      Access to the [Tuples] property.
      Returns:
        Iterator

    - #### addElement

          public void addElement(XMLElementDefinition newElement)

      Add a new element to the taxonomy.
      Parameters:
        `newElement` - the new element

    - #### delElement

          public void delElement(XMLElementDefinition element)

      Deletes an element from the taxonomy

      This function will not delete the relationships the element participates on. If the desire is to remove the concept from the taxonomy and the relationships form existing extended links use the `DTSContainer.delConcept(QName)` method instead.

      Parameters:
        `element` - the element

    - #### getElementDefinitionByName

          public XMLElementDefinition getElementDefinitionByName(java.lang.String name)

      Finds the element definition based on the element name and returns an XMLDocument that can be an XMLFragment, an XBRLItem or an XBRLTuple Returns null if not found.
      Parameters:
        `name` - Element name
      Returns:
        XMLFragment

    - #### getElementDefinitionById

          public XMLElementDefinition getElementDefinitionById(java.lang.String id)
                                                        throws XBRLValidationException

      Finds the element definition based on the element name and returns an XMLDocument that can be an XMLDocument, an XBRLItem or an XBRLTuple Returns null if not found.
      Parameters:
        `id` - Element id
      Returns:
        XMLFragment
      Throws:
        `XBRLValidationException` - the XBRL validation exception

    - #### getDTSDocumentTypeName

          public java.lang.String getDTSDocumentTypeName()

      Description copied from class: `XBRLDocument`
      Gets the DTS document type name.
      Specified by:
        `getDTSDocumentTypeName` in class `XBRLDocument`
      Returns:
        the DTS document type name

    - #### getIncludes

          public java.util.Iterator<XBRLInclude> getIncludes()

      Access to the includes declared on this taxonomy.
      Returns:
        iterator over all includes on this taxonomy
      Since:
        2.6.8

    - #### getImports

          public java.util.Iterator<XBRLImport> getImports()

      Return an iterator of all defined imports.
      Returns:
        Iterator<XBRLImport>

    - #### getGlobalTypeByName

          public XMLFragment getGlobalTypeByName(java.lang.String name)

      Returns a global type defined in this taxonomy schema by its name or null if the taxonomy schema has no a definition for a global type under the type name used in the name parameter.
      Parameters:
        `name` - the type name
      Returns:
        an XMLFragment that is the header node of the type definition in the taxonomy
      Since:
        2.6.7

    - #### getGlobalTypes

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

      Access to an iterator over all global types defined in the taxonomy. They can be either simple types or complex types.
      Returns:
        Iterator<String>
      Since:
        2.6.7

    - #### getGlobalAttributeByName

          public XMLFragment getGlobalAttributeByName(java.lang.String name)

      Returns a global attribute defined in this taxonomy schema by its name.
      Parameters:
        `name` - the attribute name
      Returns:
        an XMLFragment that is the header node of the attribute definition in the taxonomy
      Since:
        2.6.7

    - #### getGlobalAttributes

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

      Access to an iterator over all global attributes.
      Returns:
        Iterator<String>
      Since:
        2.6.7

    - #### getGlobalAttributeGroupByName

          public XMLFragment getGlobalAttributeGroupByName(java.lang.String name)

      Returns a global attributeGroup defined in this taxonomy schema by its name.
      Parameters:
        `name` - the attributeGroup name
      Returns:
        an XMLFragment that is the header node of the attributeGroup definition in the taxonomy
      Since:
        2.6.7

    - #### getGlobalAtributeGroups

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

      Access to an iterator over all global attribute groups.
      Returns:
        Iterator<String>
      Since:
        2.6.7

    - #### getGlobalGroupByName

          public XMLFragment getGlobalGroupByName(java.lang.String name)

      Returns a global group defined in this taxonomy schema by its name.
      Parameters:
        `name` - the group name
      Returns:
        an XMLFragment that is the header node of the group definition in the taxonomy
      Since:
        2.6.7

    - #### getGlobalGroups

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

      Access to an iterator over all element groups defined.
      Returns:
        Iterator<String>
      Since:
        2.6.7

    - #### delGlobalType

          public boolean delGlobalType(java.lang.String name)

      Removes a Global Type definition from this taxonomy schema. It will not be serialized back to XML nodes.
      Parameters:
        `name` - the global type name
      Returns:
        boolean, true if successfully deleted
      Since:
        2.6.7

    - #### delGlobalAttribute

          public boolean delGlobalAttribute(java.lang.String name)

      Removes a Global attribute definition from this taxonomy schema. It will not be serialized back to XML nodes.
      Parameters:
        `name` - the global attribute name
      Returns:
        boolean, true if successfully deleted
      Since:
        2.6.7

    - #### delGlobalAttributeGroup

          public boolean delGlobalAttributeGroup(java.lang.String name)

      Removes a Global attributeGroup definition from this taxonomy schema. It will not be serialized back to XML nodes.
      Parameters:
        `name` - the global attributeGroup name
      Returns:
        boolean, true if successfully deleted
      Since:
        2.6.7

    - #### delGlobalGroup

          public boolean delGlobalGroup(java.lang.String name)

      Removes a Global group definition from this taxonomy schema. It will not be serialized back to XML nodes.
      Parameters:
        `name` - the global group name
      Returns:
        boolean, true if successfully deleted
      Since:
        2.6.7

    - #### addGlobalType

          public void addGlobalType(XMLFragment typeDefinitionHeaderNode)

      Adds a new global type definition to this taxonomy schema.

      The parameter must contain all nodes representing the type definition as nested XMLFragment objects

      Parameters:
        `typeDefinitionHeaderNode` - the first XMLFragment object. Must be a complexType node or a simpleType node with an attribute o name "name". the attribute value will be used in order to obtain the type name.
      Since:
        2.6.7

    - #### addGlobalAttribute

          public void addGlobalAttribute(XMLFragment attributeDefinitionHeaderNode)

      Adds a new global attribute definition to this taxonomy schema.

      The parameter must contain all nodes representing the attribute definition as nested XMLFragment objects

      Parameters:
        `attributeDefinitionHeaderNode` - the first XMLFragment object. Must be a xs:attribute node with an attribute named "name". the attribute value will be used in order to obtain the attribute name.
      Since:
        2.6.7

    - #### addGlobalAttributeGroup

          public void addGlobalAttributeGroup(XMLFragment attributeGroupDefinitionHeaderNode)

      Adds a new global attributeGroup definition to this taxonomy schema.

      The parameter must contain all nodes representing the attributeGroup definition as nested XMLFragment objects

      Parameters:
        `attributeGroupDefinitionHeaderNode` - the first XMLFragment object. Must be a xs:attributeGroup node with an attribute named "name". the attribute value will be used in order to obtain the attribute name.
      Since:
        2.6.7

    - #### addGlobalGroup

          public void addGlobalGroup(XMLFragment groupDefinitionHeaderNode)

      Adds a new global attributeGroup definition to this taxonomy schema.

      The parameter must contain all nodes representing the attributeGroup definition as nested XMLFragment objects

      Parameters:
        `groupDefinitionHeaderNode` - the first XMLFragment object. Must be a xs:attributeGroup node with an attribute named "name". the attribute value will be used in order to obtain the attribute name.
      Since:
        2.6.7

    - #### getImport

          public XBRLTaxonomy getImport(java.net.URI namespace)

      Return the XBRLTaxonomy imported for the namespace or null if the schema for the namespace is not imported.
      Parameters:
        `namespace` - the namespace
      Returns:
        XBRLTaxonomy

    - #### getLinkbases

          public java.util.Iterator<XBRLLinkbase> getLinkbases()

      Return an iterator of all defined linkbases.
      Returns:
        Iterator

    - #### addLinkbase

          public void addLinkbase(XBRLLinkbase linkbase)

      Adds a linkbase object to this taxonomy. The linkbase can be embedded or external. this piece of information is put in the parent of the linkbase object. If the parent is a taxonomy then it is a embedded linkbase. if the parent is the linkbase itself then it is an external linkbase.
      Parameters:
        `linkbase` - the linkbase

    - #### removeLinkbase

          public void removeLinkbase(XBRLLinkbase linkbase)

      Removes a linkbase object that is referenced in this taxonomy. The linkbase can be embedded or external.
      Parameters:
        `linkbase` - to remove

    - #### getExtendedLink

          public XBRLExtendedLink getExtendedLink(net.sf.saxon.s9api.XdmNode key)
                                           throws DTSDiscoveryException

      Description copied from class: `XBRLDocument`
      Gets the extended link.
      Overrides:
        `getExtendedLink` in class `XBRLDocument`
      Parameters:
        `key` - the key
      Returns:
        the extended link
      Throws:
        `DTSDiscoveryException` - the DTS discovery exception

    - #### discoverDTS

          public void discoverDTS(XBRLDTSDocument parent)
                           throws DTSDiscoveryException,
                                  com.rs.lic.LicenseVerificationException

      Description copied from class: `XBRLDocument`
      All derived classes MUST implement this method and provide the functionality according to section 3.2 of the XBRL 2.1 specification
      Specified by:
        `discoverDTS` in interface `XBRLDTSDocument`
      Specified by:
        `discoverDTS` in class `XBRLDocument`
      Parameters:
        `parent` - the parent
      Throws:
        `DTSDiscoveryException` - the DTS discovery exception
        `com.rs.lic.LicenseVerificationException` - the license verification exception

    - #### addRoleType

          public void addRoleType(XBRLRoleType role)

      Adds a new role type to the set of role types defined in this taxonomy.

      The XBRLRoleType object automatically calls this method when a parent is set to a role type.

      Parameters:
        `role` - XBRLRoleType to be added

    - #### removeRoleType

          public void removeRoleType(XBRLRoleType role)

      Removes a role type from the set of role types defined in this taxonomy.

      The XBRLRoleType object automatically calls this method when a parent is set to a role type.

      Parameters:
        `role` - XBRLRoleType to be removed

    - #### getRoleTypes

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

      Returns an iterator over all role types defined in this taxonomy.
      Returns:
        Iterator<XBRLRoleType> object

    - #### getRoleTypeByURI

          public XBRLRoleType getRoleTypeByURI(java.lang.String uri)

      Access to a role type definition for a given URI if that role type exists on this taxonomy. returns null if there is no such role type for the given URI.
      Parameters:
        `uri` - as a String
      Returns:
        XBRLRoleType

    - #### addArcroleType

          public void addArcroleType(XBRLArcroleType arcrole)

      Adds a new arcrole type to the set of arcrole types defined in this taxonomy.

      The XBRLArcroleType object automatically calls this method when a parent is set to an arcrole type.

      Parameters:
        `arcrole` - XBRLArcroleType to be added

    - #### removeArcroleType

          public void removeArcroleType(XBRLArcroleType arcrole)

      Removes an arcrole type from the set of arcrole types defined in this taxonomy.

      The XBRLArcroleType object automatically calls this method when a parent is set to an arcrole type.

      Parameters:
        `arcrole` - XBRLArcroleType to be removed

    - #### getArcroleTypes

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

      Returns an iterator over all arcrole types defined in this taxonomy.
      Returns:
        Iterator<XBRLArcroleType> object

    - #### getArcroleTypeByURI

          public XBRLArcroleType getArcroleTypeByURI(java.lang.String uri)

      Access to an arcrole type definition for a given URI if that arcrole type exists on this taxonomy. returns null if there is no such arcrole type for the given URI.
      Parameters:
        `uri` - as a String
      Returns:
        XBRLArcroleType

    - #### convertNodeInfo

          public XMLElementDefinition convertNodeInfo(net.sf.saxon.s9api.XdmNode ni)
                                               throws XBRLValidationException

      This method is used internally by the XBRL API in order to create an XMLElementDefinition from an XdmNode.
      Parameters:
        `ni` - XdmNode
      Returns:
        XMLElementDefinition
      Throws:
        `XBRLValidationException` - the XBRL validation exception

    - #### readInfoset

          public void readInfoset()
                           throws XBRLValidationException

      Description copied from class: `XBRLDocument`
      Read all structures that builds the infoset.
      Specified by:
        `readInfoset` in class `XBRLDocument`
      Throws:
        `XBRLValidationException` - the XBRL validation exception

    - #### getNumberOfItemDeclarations

          public int getNumberOfItemDeclarations()

      Returns the number of XBRL items defined in this XBRLTaxonomy.

      This is concept definitions that are in the xbrli:item substitution group or has xbrli:item on any on its ancestors in the substitution group hierarchy.

      Returns:
        integer

    - #### getNumberOfTupleDeclarations

          public int getNumberOfTupleDeclarations()

      Returns the number of XBRL tuples defined in this XBRLTaxonomy.

      This is concept definitions that are in the xbrli:tuple substitution group or has xbrli:tuple on any on its ancestors in the substitution group hierarchy.

      Returns:
        integer

    - #### generateDocNode

          public org.jdom.Document generateDocNode(boolean relativize,
                                          java.net.URI base)
                                            throws XBRLSerializationException

      Description copied from class: `XBRLDocument`
      This class has to be implemented by objects derived from XBRLDocument and must return a org.jdom.Document node with the content of this XBRLDocument object
      Specified by:
        `generateDocNode` in class `XBRLDocument`
      Parameters:
        `relativize` - boolean indicating if all URIs must be relativized
        `base` - URI the base uri to relativize other URIs
      Returns:
        org.jdom.Document
      Throws:
        `XBRLSerializationException` - the XBRL serialization exception

    - #### removeImport

          public void removeImport(XBRLImport imp)

      Remove an existing import.
      Parameters:
        `imp` - XBRLImport

    - #### addInclude

          public void addInclude(XBRLInclude inc)

      Adds an XBRLInclude to this taxonomy.
      Parameters:
        `inc` - the inc
      Since:
        2.6.8

    - #### removeInclude

          public boolean removeInclude(XBRLInclude inc)

      Removes am include form this taxonomy.
      Parameters:
        `inc` - the inc
      Returns:
        boolean true if successfully removed
      Since:
        2.6.8

    - #### addXMLChild

          public void addXMLChild(XMLHasParent child)
                           throws XBRLInconsistentDTSException

      Description copied from interface: `XMLHasParent`
      Adds the xml child.
      Specified by:
        `addXMLChild` in interface `XMLHasParent`
      Overrides:
        `addXMLChild` in class `XMLFragment`
      Parameters:
        `child` - the child
      Throws:
        `XBRLInconsistentDTSException` - the XBRL inconsistent dts exception

    - #### removeXMLChild

          public void removeXMLChild(XMLHasParent child)

      Description copied from interface: `XMLHasParent`
      Removes the xml child.
      Specified by:
        `removeXMLChild` in interface `XMLHasParent`
      Overrides:
        `removeXMLChild` in class `XMLFragment`
      Parameters:
        `child` - the child

    - #### addImport

          public void addImport(XBRLImport imp)
                         throws XBRLInconsistentDTSException

      Adds a new import to this taxonomy.
      Parameters:
        `imp` - XBRLImport
      Throws:
        `XBRLInconsistentDTSException` - the XBRL inconsistent dts exception

    - #### getElements

          public java.util.Iterator<XMLFragment> getElements()

      Description copied from class: `XMLFragment`
      For complex type resources this returns an iterator with all children XML fragments This method may be overwriten by other classes in the hierarchy.
      Overrides:
        `getElements` in class `XMLFragment`
      Returns:
        Iterator

    - #### getFriendlyName

          public java.lang.String getFriendlyName()

      Description copied from class: `XMLFragment`
      Returns a string description that represents the element content in a form that users can understand. This method may be overridden by parent classes.

      Remarks, this method may return very long names not suitable for user interface

      Overrides:
        `getFriendlyName` in class `XMLFragment`
      Returns:
        Non empty String. Internationalization is enabled