En esta sección explicaremos como crear una tabla de definición de conceptos para una Taxonomía usando el DTS Definition Language en Excel. También veremos como usar los conceptos definidos como referencias en otras instrucciones.
Tablas de Conceptos
A menudo, en las instrucciones que definiremos más adelante, aparece como parámetro de una instrucción una coordenada de hoja que apunta a una Tabla de Conceptos. Una Tabla de Concepto es una sencilla estructura donde se definen las propiedades de los conceptos
Las Tablas de Conceptos se utilizan con la finalidad de reducir el número de columnas necesarias para proporcionar la información requerida para completar una instrucción. Al mismo tiempo estas tablas permiten compartir la columna completa entre varios enlaces extendidos. De esta forma se pueden incluir en la misma hoja los linkbase de Presentación, Cálculo, Definición y Etiquetas usando columnas diferentes de la misma hoja.
Puede crear las cabeceras de la Tabla de Conceptos utilizando el plug-in de Excel XBRL Taxonomy Language. Para hacer esto acuda al grupo Configuration y pulse sobre el botón Table Headers y elija la opción Concepts |
Estructura de la tabla de conceptos
Prefix | Name | ID | Type | SubsGroup | Balance | Period | Abstract | Nillable | Attribute |
pref | ConceptName | pref_ConceptName | xbrli:monetaryItemType | xbrli:item | debit | instant | false | true | Sheet!A3 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
end |
La última fila de la tabla debe ser solamente la palabra «end». Todas las filas por debajo de esta última no serán consideras a la hora de construir la taxonomía.Aunque nos estamos refiriendo a las columnas por el nombre de las mismas, las cabeceras de las tablas no son relevantes para TaxonomyBuilder y no son usadas, lo que sí es importante es el orden en el cual están definidas las columnas.
Que información se debe introducir en cada columna de la tabla de conceptos:
- Prefix: El prefijo de la taxonomía definido en la instrucción BOT.
- Name: El nombre del concepto, esto es, la etiqueta del elemento.
- Id: El identificador del elemento. Por norma general será la concatenación del prefijo con un carácter de subrayado más el nombre del concepto. Este elemento no es obligatorio, pero si un concepto no tiene Id, no podrá ser relacionado.
- Type: El tipo del concepto. Se puede definir como:
- Un QName (usando el patrón prefix:typeName o con el typeName, previamente definido como variable, sin necesidad de prefijo), para elementos de tipo simple (ej: elemento XBRL)
- Una Coordenada de hoja Excel para elementos de tipo complejo (ej: Tupla XBRL).
Todos los tipos XBRL son permitidos al igual que los tipos globales. Usar tipos propios requiere de una definición previa y de ser añadidos al DTS mediante la instrucción IMPORT.
- SubsGroup: El grupo de sustitución de los conceptos. Esta columna puede dejarse en blanco si el grupo de sustitución no es necesario Dependiendo del elemento que estemos definiendo el subgrupo será:
- «xbrli:item» (o bien «xbrli:tuple») para conceptos XBRL .
- «link:part» para elementos usados como contenido de recursos en un linkbase de recursos.
Para elementos XML planos este puede ser cualquier definición de concepto ya existente.
- Balance: Esta columna puede contener las cadenas de texto “debit” (conceptos de débito) o “credit” (conceptos de crédito) cuando aplique. En caso contrario puede dejarse en blanco.
- Period: Para definiciones de conceptos XBRL reportables esta columna debe contener la cadena “instant” o “duration”. Para cualquier otra definición esta columna puede dejarse en blanco.
- Abstract: El valor booleano («true«, «false«) del atributo Abstract en la definición de elementos. Si no existe ningún valor, el elemento no tendrá el atributo Abstract y seremos notificados mediante un mensaje de aviso.
- Nillable: El valor booleano del atributo Nillable en la definición de elementos. Si no existe ningún valor, el elemento no tendrá el atributo Nillable y seremos notificados mediante un mensaje de aviso.
- Attributes: La coordenada a la Tabla de Atributos que el nuevo concepto contendrá una vez que se ha generado. Esta columna puede dejarse en blanco si el elemento no tuviera atributos.
La Tabla de Atributos debe tener la siguiente estructura:
Prefix | Attribute name | Data type | Value |
value | creationID | string | 200912210001 |
... | ... | ... | ... |
end |
Puede crear las cabeceras de la Tabla de Atributos utilizando el plug-in de Excel XBRL Taxonomy Language. Para hacer esto acuda al grupo Configuration y pulse sobre el botón Table Headers y elija la opción Attributes |
Cada concepto puede tener un número diferente de atributos. El contenido de cada columna en la tabla se explica a continuación:
- Prefix: Este es el atributo prefijo. El prefijo debe ser un prefijo existente asociado o bien con un esquema de taxonomía o bien con un espacio de nombres declarado como variable.
- Attribute name: Es el nombre local del atributo.
- Data type: Este es el tipo de dato del atributo. Tipos de dato válidos son: QName, Date, String y Number. Cualquier otro tipo de dato será considerado como cadena y se generará un aviso.
- Value: Este es el valor del atributo. El usuario es libre de usar fórmulas Excel para generar el valor de la celda.
Creación de Tuplas XBRL
Las tuplas requieren dos cosas: la definición del concepto en la Tabla de Conceptos y el tipo de datos de la tupla (que normalmente es una definición de datos complejos). TaxonomyBuilder soporta la definición de tipos de datos complejos locales en Excel.
El enlace entre la definición de conceptos y la definición de tipos complejos se realiza en la tabla de conceptos, especificando una coordenada en la columna Type. La coordenada debe apuntar a la celda superior derecha de la tabla (sin tener en cuenta la cabecera).
Puede crear las cabeceras de la Tabla de Tupla utilizando el plug-in de Excel XBRL Taxonomy Language. Para hacer esto acuda al grupo Configuration y pulse sobre el botón Table Headers y elija la opción Tuple |
Estructura de la tabla de tuplas:
Composition | Prefix | Name | minOccurs | maxOccurs |
sequence | Reporte consolidado | 1 | 1 | |
element | ifrs-gp | DescriptionOfReclassification | 1 | 1 |
element | ifrs-gp | NatureOfReclassification | 1 | 1 |
element | ifrs-gp | ReasonForReclassification | 1 | 1 |
choice | 1 | unbounded | ||
element | ifrs-gp | ElementoReclasificado | 1 | unbounded |
element | ifrs-gp | ElementoNoReclasificado | 1 | unbounded |
Siendo el contenido de cada una de las columnas:
- Composition: Esta columna contiene los tokens y el estilo de sangrado para especificar la estructura del contenido:
- Tokens: Los tokens que admite esta columna son:
- all”: Define el elemento raíz de la jerarquía.
- “sequence”: Define la lista de los nodos hijos.
- “choice”: Define una lista de nodos hijos auto-excluyentes.
- “element”: Es un hijo elemento de la tupla
- Estilo de sangrado: La herramienta reconoce automáticamente el nivel de sangrado de una celda con el fin de obtener los elementos que pertenecen al elemento padre. En el ejemplo anterior la fila «sequence» es el nodo raíz, las cuatro filas siguientes son los elementos hijo. Las dos últimas filas son a su vez hijas del elemento “choice”. El orden de la fila (posición relativa) es también respetada en la creación del modelo de contenido.
- Tokens: Los tokens que admite esta columna son:
- Prefix: Este es el prefijo del concepto cuando el token de «Composition» es “element”. El prefijo debe ser seleccionado de entre alguno de los prefijos que ya están definidos en el DTS.
- Name: Este es el nombre del concepto cuando el token es del tipo “element”. El nombre debe ser seleccionado de entre alguno de los que ya están definidos en el DTS. Cuando una tupla contiene otra tupla, la tupla contenida debe ser definida antes de que sea referenciada por la tupla contenedora. La única excepción a esta regla se da cuando una tupla contiene una auto referencia. Esto es también válido para la definición del modelo de contenido.
- minOccurs: Es un número que indica el número mínimo de ocurrencias que el elemento puede aparecer anidado en su elemento padre.
- maxOccurs: Es un número que indica el número máximo de ocurrencias que el elemento puede aparecer anidado en su elemento padre. También puede utilizarse la cadena literal “unbounded” para indicar que no hay un numero máximo de ocurrencias.
Referencia a Concepto
Una referencia a concepto es una coordenada de hoja a una tabla que contiene dos celdas:
- La celda apuntada deberá contener el prefijo
- La siguiente celda en horizontal deberá contener el nombre del concepto definido en el DTS.
Estos conceptos pueden ser definidos usando la instrucción CONCEPTS o en una taxonomía cargada usando la instrucción LOAD.
Ejemplo:
ej | EstadoSituacionFinancieraClasificadoPresentacion |
La coordenada de hoja debe apuntar a la celda que contiene el prefijo. En el ejemplo anterior esta celda está resaltada con un fondo de color verde oliva.
Instrucción CONCEPTS
Esta instrucción especifica un conjunto de definiciones de concepto (items o tuplas) y de elementos XML. La instrucción CONCEPTS debe estar siempre anidada dentro de un bloque de instrucciones BOT y EOT.
La instrucción CONCEPTS tiene los siguientes parámetros:
Número | Requerido | Contenido | Tipo |
4 | Sí | Coordenada de la celda donde comienza la tabla de conceptos. La tabla de conceptos tiene una estructura fija de columnas. Esta coordenada debe ser la esquina superior izquierda de la tabla (sin contar la cabecera). | Número |