Publicado el 25 de mayo de 2024 por Editor
La especificación Table Constraints se publicó esta semana como un borrador de trabajo público. Este conjunto de extensiones especializadas del estándar xBRL-CSV promete mejorar materialmente las comprobaciones de validación manteniendo la compatibilidad con versiones anteriores.
La especificación recientemente publicada introduce instrucciones de validación adicionales que se integran perfectamente en los archivos de metadatos xBRL-CSV. Estas instrucciones mejorarán la capacidad de los procesadores para validar archivos CSV de manera eficiente antes de cargar una taxonomía XBRL y construir un informe de Modelo de información abierta (OIM). En particular, la especificación está diseñada para permitir la transmisión y la paralelización, lo que permite que la mayoría de las comprobaciones se realicen utilizando memoria constante en una sola fila a la vez. Sin embargo, también permite a los procesadores la flexibilidad de cargar archivos CSV completos en la memoria o transferirlos a un almacenamiento persistente si es necesario.
Este borrador de especificación respalda el Modelo de Información Abierto (OIM) y se alinea con los objetivos más amplios de XBRL International para proporcionar un modelo independiente de sintaxis para datos XBRL. OIM facilita la transformación confiable de datos XBRL en varias representaciones, mejorando su utilidad y accesibilidad en diferentes plataformas y casos de uso.
La publicación de la especificación Table Constraints marca una mayor evolución del estándar xBRL-CSV y fue creada en respuesta a los requisitos regulatorios y de la industria para acelerar la validación a medida que una mayor granularidad comienza a convertirse en una realidad, especialmente en los informes bancarios y de seguros. Al ofrecer nuevas formas de acelerar las capacidades de validación, su objetivo es agilizar el proceso de trabajo con datos XBRL, haciéndolos más accesibles y fáciles de gestionar para los usuarios de todo el mundo.
XBRL International invita a las partes interesadas y a las partes interesadas a revisar el borrador de trabajo público y brindar comentarios para ayudar a refinar y finalizar la especificación.
Para obtener más detalles y acceder al borrador, consulte aquí.
Contracciones de la tabla DE ESPECIFICACIONES OIM xBRL-CSV
Definiciones
- Eliminación de metadatos
- Validación de metadatos
- Validación de informes
- Linter de restricción de tabla
- Validador de restricciones de tabla
- Tipo de taxonomía asociada
- columna restringida
- Columna de dimensión restringida
- Columna de hechos restringidos
- Asunto de restricción
- columna de contenido
- Parámetro definido
- Columna de dimensión
- Objeto identificador de clave
- Objeto claves
- Lista de valores locales
- Columnas sin clave
- Tipo de esquema con zona horaria opcional
- Objeto de parámetros
- Columnas de clave principal
- Objeto de clave primaria
- Parámetros de clave primaria
- Clave primaria ordenada
- Columna de propiedad
- Clave de referencia
- Objeto clave de referencia
- índice objetivo
- Objeto clave único
- Objeto de restricción de valor
- Dimensión central xBRL-CSV
Códigos de error
- tce: nombre de clave duplicada
- tce:illegalAllowedValue
- tce:dimensión ilegal
- tce:ilegalDurationType
- tce: tipo de período ilegal
- tce:ilegalPrimaryKeyField
- tce:duraciones incomparables
- tce: períodos incomparables
- tce: orden de columna no válida
- tce:invalidColumnRole 2
- tce: tipo de duración no válida
- tce: estructura JSON no válida
- tce: identificador de clave no válido
- tce: tipo de período no válido
- tce: campo de clave primaria no válido
- tce: clave de referencia no válida
- tce: columna clave de referencia no válida
- tce: restricción de tipo inválido 2 3
- tce: columna de clave única no válida
- tce: valor no válido 2 3 4
- tce:propiedadfuera de lugar
- tce: propiedad de clave faltante
- tce: falta zona horaria
- tce: valor faltante
- tce:primaryKeyViolation 2 3
- tce:referenceKeyViolation
- tce: zona horaria inesperada
- tce:violación de clave única
- tce: tipo de duración desconocida
- tce: tipo de período desconocido
- tce: zona horaria desconocida
- tcl: valor permitido no válido
- tcl: tipo no coincide
- xbrlce: identificador no válido 2 3 4
- xbrlce:JSON no válido
1. Resumen
Las restricciones de tabla xBRL-CSV son un conjunto de extensiones compatibles con versiones anteriores de xBRL-CSV que permiten comprobaciones de validación básicas, pero extremadamente eficientes.
2. Introducción
Esta especificación define una serie de instrucciones de validación adicionales que se encuentran dentro de los archivos de metadatos xBRL-CSV , lo que respalda la validación eficiente de los archivos CSV antes de cargar una taxonomía XBRL y la construcción de un modelo de informe OIM.
Esta especificación no estipula un modelo de procesamiento. El diseño está destinado a permitir la transmisión y la paralelización. La mayoría de las comprobaciones se pueden realizar utilizando memoria constante, operando en una sola fila a la vez. Sin embargo, los procesadores siguen siendo libres de cargar archivos CSV completos en la memoria o transferirlos a un almacenamiento persistente, si esto es conveniente para implementar las comprobaciones descritas aquí o para operaciones posteriores.
2.1 Convenciones de documentación
2.1.1 Códigos de error
Los QNames en texto rojo entre paréntesis después de una declaración «DEBE» o «NO DEBE» prescriben códigos de error estandarizados que se utilizarán si se viola la condición anterior. Las declaraciones «DEBE» o «NO DEBE» que no tienen un código de error prescrito no se pueden hacer cumplir automáticamente y los procesadores no están obligados a detectar infracciones.
2.2 Espacios de nombres y prefijos de espacios de nombres
Los prefijos utilizados en esta especificación deben interpretarse de acuerdo con la siguiente tabla:
3. Validación
Esta especificación define tres tipos de validación y dos tipos de procesador.
La validación se divide en las siguientes categorías:
- Validación de metadatos: validación esencial de los metadatos de restricciones de tabla para garantizar la coherencia interna
- Linting de metadatos: validación adicional de los metadatos de restricciones de tabla para garantizar la coherencia con la taxonomía
- Validación de informes: restricciones aplicadas a tablas de datos xBRL-CSV
Un validador de restricciones de tabla es un procesador que toma un informe xBRL-CSV como entrada y aplica las restricciones definidas en esta especificación.
Al encontrar un documento con el tipo de documento xBRL-CSV, un validador de restricciones de tabla DEBE realizar la validación de metadatos y la validación de informes, generando tcecódigos de error según corresponda.
Algunos metadatos de restricciones de tabla se superponen con la información presente en la taxonomía y es importante que esta información sea coherente.
Cuando se le indica que verifique un documento con el tipo de documento xBRL-CSV, un linter de restricción de tabla DEBE generar errores con los tclcódigos de error especificados si el documento no cumple con las verificaciones de linting de metadatos definidas en esta especificación.
3.1 estructura JSON
Las instrucciones de restricción de tablas están integradas en archivos de metadatos xBRL-CSV y están sujetas a las mismas restricciones de sintaxis JSON básicas (xbrlce:invalidJSON).
Algunas restricciones estructurales son específicas de esta especificación (tce:invalidJSONStructure):
- las propiedades de restricción de tabla marcadas como «obligatorias» DEBEN estar presentes dondequiera que esté presente el objeto circundante; y
- Los objetos definidos por esta especificación no permiten propiedades adicionales.
Se esperan propiedades de restricción de tabla en ubicaciones específicas dentro de los metadatos xBRL-CSV. Si una propiedad aparece en una ubicación distinta a la prescrita para ella, se DEBE plantear tce:misplacedProperty .
3.2 Roles de columna
La especificación xBRL-CSV define explícitamente tres funciones para una columna:
- Una columna de hechos produce hechos en el modelo OIM;
- Una columna de comentarios contiene información que no sobrevive en el modelo OIM; y
- Una columna de grupo de propiedades contiene referencias a objetos que ayudan en la construcción de hechos.
Esta especificación utiliza las siguientes definiciones adicionales:
- Cualquier columna que no sea una columna de comentarios es una columna de contenido.
- Una columna de contenido que no es una columna de hechos ni una columna de grupo de propiedades es una columna de propiedades.
- Una columna de propiedad que proporciona un valor para una dimensión es una columna de dimensión.
- Una columna de hechos o de dimensión con restricciones de valor es una columna restringida.
- Una columna que es a la vez una columna de hechos y una columna restringida es una columna de hechos restringida.
- Una columna que es a la vez una columna de dimensión y una columna restringida es una columna de dimensión restringida
3.3 Definiciones de parámetros
Los parámetros esperados se pueden documentar colocando una tc:parameterspropiedad en las propiedades adicionales de un objeto de plantilla de tabla.
El valor de la tc:parameterspropiedad es un objeto de parámetros.
Las claves de un objeto de parámetros DEBEN ser identificadores (xbrlce:invalidIdentifier).
Cada valor es un objeto de restricción de valor.
Un parámetro que se ha definido mediante este mecanismo se conoce como parámetro definido.
3.4 Restricciones de valor de
Se pueden aplicar restricciones a todos los valores de una columna xBRL-CSV colocando una tc:constraintspropiedad en las propiedades adicionales de un objeto de columna.
El valor de la tc:constraintspropiedad es un objeto de restricción de valor.
3.5 Restricciones de valor
Un objeto de restricción de valor especifica restricciones en los valores de una columna o parámetro. Tiene las siguientes propiedades:
type(cadena)
(opcional) Identifica un esquema XML o un tipo XBRL-CSV que los valores DEBEN satisfacer.
dimension(cadena)
(opcional) Identifica la dimensión de destino, si la hay, para este valor.
optional(booleano)
(opcional) Controla si SE PUEDE omitir un valor. El valor predeterminado es false.
nillable(booleano)
(opcional) Controla si se permiten valores nulos. El valor predeterminado es true.
allowedValues
(opcional) Una lista de cadenas que especifican los valores permitidos.
allowedPatterns
(opcional) Una lista de patrones que restringen los valores permitidos.
timeZone(booleano)
(opcional) Controla si los valores de fecha incluyen un componente de zona horaria.
periodType(cadena)
(opcional) Restricción de tipo adicional para valores de tipoperiod
durationType(cadena)
(opcional) Restricción de tipo adicional para valores de tipoxs:duration
La columna restringida o el parámetro definido asociado con un objeto de restricción de valor se conoce como sujeto de restricción.
3.5.1 Validación de tipo
Todas las dimensiones principales, excepto noteIdPUEDEN especificarse en tablas de datos y metadatos xBRL-CSV. Esta dimensión se conoce en esta especificación como dimensión central xBRL-CSV y se identifica mediante una de las siguientes cadenas: conceptentityperiodunitlanguage.
Si typese especifica, su valor DEBE identificar (tce:invalidTypeConstraint):
- un tipo base de esquema XML, con el prefijo xs;
- una dimensión central xBRL-CSV; o
- la cadena decimals, que indica que el sujeto de la restricción proporciona un valor para la decimalspropiedad.
Si typeno se especifica, dimensionDEBE especificarse y DEBE identificar una dimensión central xBRL-CSV (tce:invalidTypeConstraint). En este caso, typeel valor predeterminado es dimension.
Todos los valores para el sujeto de la restricción DEBEN ser válidos contra Type (tce:invalidValue).
En el caso de un tipo de esquema XML, la validación la prescribe esa especificación.
En el caso de una dimensión central xBRL-CSV , las representaciones permitidas están definidas por xBRL-CSV.
3.5.2 Identificación de dimensiones
El dimensioncampo PUEDE usarse para especificar una dimensión a la que se dirige una columna de dimensión o un parámetro definido.
Si dimensión está ausente, el asunto de la restricción DEBE ser una columna de hechos.
Si dimensión está presente, el asunto de la restricción NO DEBE ser una columna de hechos (tce:invalidColumnRole).
Si el sujeto de la restricción es un parámetro definido, dimensión DEBE estar presente excepto en el caso en que typetenga el valor decimals (tce:invalidColumnRole).
Si dimensionidentifica una dimensión central xBRL-CSV, typeDEBE dejarse sin especificar (tce:invalidTypeConstraint); por defecto tendrá el valor de dimension, como se indicó anteriormente.
Si dimensión está presente, todas las referencias de parámetros en grupos de propiedades y columnas de hechos que apuntan al sujeto de la restricción DEBEN estar vinculadas a dimensión (tce:illegalDimension).
3.5.3 Valores requeridos
Si optionalse establece en false, los valores para el sujeto de la restricción NO DEBEN estar ausentes (tce:missingValue):
- para un parámetro definido, el parámetro DEBE especificarse a nivel de tabla o informe;
- para una columna restringida, el valor DEBE especificarse para cada fila en cada tabla para la plantilla de tabla.
3.5.4 Valores anulables
Si nillablese establece en false, los valores para el sujeto de la restricción NO DEBEN ser #nilel valor JSON null (tce:invalidValue).
3.5.5 Valores permitidos
Si allowedValuesse especifica, cada elemento de la lista DEBE cumplir con Type (tce:illegalAllowedValue), y cada valor para el sujeto de restricción DEBE coincidir con uno de allowedValues( tce:invalidValue ).
Cuando typees un tipo de esquema XML, la igualdad se determina de acuerdo con las reglas del esquema XML y allowedValuesse comporta de manera equivalente a <xs:enumeration>.
Cuando typese trata de una dimensión central de xBRL-CSV, la igualdad se determina como se define en OIM 5.1.
3.5.6 Patrones permitidos
Si allowedPatternsse especifica, los valores para el sujeto de la restricción DEBEN ajustarse a al menos uno de los patrones (tce:invalidValue).
Para cada patrón, la coincidencia se realiza según el esquema XML, como si el patrón estuviera especificado en formato <xs:pattern>.
3.5.7 Zona horaria
Si timeZonese especifica la propiedad, typeDEBE ser periodun tipo de esquema con zona horaria opcional (tce:unknownTimeZone).
Si timeZonese establece en true, todos los valores para el sujeto de la restricción DEBEN tener un componente de zona horaria ( tce:missingTimeZone ).
Si timeZonese establece en false, los valores NO DEBEN tener un componente de zona horaria ( tce:unexpectedTimeZone ).
Si timeZoneestá ausente, la presencia o ausencia de un componente de zona horaria no tiene restricciones.
3.5.8 Tipo de período
Si periodTypese especifica la propiedad, typeDEBE ser period (tce:illegalPeriodType).
La periodTypepropiedad toma uno de los siguientes valores (tce:unknownPeriodType), con implicaciones destacadas para la validación del valor del sujeto de restricción (tce:invalidPeriodType):
- year, half, quarter, week, month,day
- estos valores corresponden a los formatos de período abreviados definidos en xBRL-CSV:
- p.ej 2024, 2024H1, 2024Q2, 2024W29, 2024-06,2024-06-01
- cuando periodTypecoincide con una de estas cadenas, DEBE usarse su forma abreviada para los valores sujetos de restricción .
- estos valores corresponden a los formatos de período abreviados definidos en xBRL-CSV:
- instant
- en este caso, DEBE usarse una representación xBRL-CSV válida para un período instantáneo
- Se permiten formas abreviadas con sufijos.
- p.ej 2024W29@start,2024Q2@end
- un xs:durationvalor
- en este caso, el intervalo de tiempo del período DEBE coincidir con la duración especificada
- por ejemplo, P9Mpermitiría2024-01-01.2024-09-30
- en este caso, el intervalo de tiempo del período DEBE coincidir con la duración especificada
3.5.9 Tipo de duración
Si durationTypese especifica la propiedad, typeDEBE ser xs:duration( tce:illegalDurationType).
La durationTypepropiedad toma uno de los siguientes valores ( tce:unknownDurationType), con implicaciones destacadas para la validación del valor del sujeto de restricción (tce:invalidDurationType ):
- yearMonth
- dayTime
3.5.10 Eliminación de restricciones de valor
El tipo asociado con un sujeto de restricción en la taxonomía se conoce como tipo de taxonomía asociada.
Si se especifican dimensiony , el tema de la restricción apunta a una dimensión definida por taxonomía y el tipo de taxonomía asociado es el tipo de dimensión.type
Si dimensionno se especifica y typese especifica, el asunto de la restricción es una columna de hecho restringida y el tipo de taxonomía asociada es el tipo de datos del hecho .
Cuando un sujeto de restricción tiene un tipo de taxonomía asociado , DEBE ser igual o derivado de type( tcl:typeMismatch ).
Además, cada valor allowedValues(si está presente) DEBE ser válido según el tipo de taxonomía asociado ( tcl:invalidAllowedValue ).
3.6 Teclas
Se pueden aplicar restricciones en varias filas colocando una tc:keyspropiedad en las propiedades adicionales de un objeto de plantilla de tabla .
El valor de la tc:keyspropiedad es un objeto de claves . Tiene las siguientes propiedades:
primary
(opcional) un objeto de clave principal
unique
(opcional) una lista de objetos clave únicos
reference
(opcional) una lista de objetos clave de referencia
DEBE especificarse al menos una propiedad (tce:missingKeyProperty).
Cada uno de los objetos clave tiene una namepropiedad sujeta a las siguientes restricciones:
- Los nombres DEBEN ser identificadores (xbrlce:invalidIdentifier).
- Los nombres DEBEN ser únicos entre las claves definidas en el mismo objeto de claves (tce:duplicateKeyName).
3.6.1 primario
Un objeto de clave principal establece el índice único principal de una tabla.
Tiene las siguientes propiedades:
name(cadena)
(opcional) El valor predeterminado esprimary
fields
(obligatorio) Lista de cadenas que identifican columnas o parámetros
sortedColumns(booleano)
(opcional) Especifica si las columnas están ordenadas. El valor predeterminado es true.
sortedRows(booleano)
(opcional) Especifica si las filas están ordenadas. El valor predeterminado es true.
dimensional(booleano)
(opcional) Especifica si los campos de la clave corresponden a las dimensiones de OIM. El valor predeterminado es true.
3.6.1.1 Campos de clave principal
Cada entrada en la fieldslista DEBE corresponder a una columna restringida o un parámetro definido en la plantilla de tabla actual (tce:illegalPrimaryKeyField).
Cada entrada en la fieldslista DEBE tener optionalconfigurada en false (tce:invalidPrimaryKeyField).
3.6.1.2 Aplicación de clave primaria
Las columnas de contenido en la plantilla de tabla que no se encuentran entre las columnas de clave principal se conocen como columnas sin clave.
Los validadores de restricciones de tabla DEBEN generar tce:primaryKeyViolation si se usa la misma combinación de valores para los campos de clave principal para más de una fila, de acuerdo con cada campo type(usando la semántica de igualdad del esquema XML), en todas las tablas para la plantilla de tabla.
3.6.1.3 Orden de columnas
Si sortedColumns se establece en verdadero, las columnas DEBEN ordenarse de la siguiente manera (tce:invalidColumnOrder):
- columnas de clave principal en el orden en que aparecen fields; entonces
- columnas restringidas en orden lexicográfico por nombre de columna; entonces
- columnas de comentarios en orden lexicográfico por nombre de columna.
3.6.1.4 Clasificación de filas
Cuando sortedRows se establece en true, la aplicación de la clave principal se puede optimizar verificando que cada tabla de la plantilla de tabla esté ordenada por clave principal y que no haya dos tablas para la plantilla de tabla que tengan la misma combinación de valores para los parámetros de clave principal (o si la tienen). , los rangos de las columnas de clave principal están separados, de modo que estas tablas podrían combinarse mediante concatenación en una sola tabla ordenada por clave principal).
Para establecer el orden de las filas, los valores de las columnas de clave principal se comparan a su vez:
- si el valor en la fila actual es menor que el valor correspondiente en la fila anterior, se genera tce:primaryKeyViolation
- si el valor en la fila actual es mayor que el valor correspondiente en la fila anterior, la validación continúa en la siguiente fila
- si los valores son iguales, el empate se resuelve comparando la siguiente columna en la secuencia de columnas de clave principal, y así sucesivamente de forma recursiva.
- si los valores son iguales en todas las columnas de la lista de columnas de clave principal, se genera tce:primaryKeyViolation
Los valores se comparan según su type:
- un valor nulo (#nilo JSON null) se considera igual a otro valor nulo y menor que cualquier valor que no sea nulo
- para los tipos derivados de xs:decimal, xs:float, xs:double, xs:boolean, xs:base64Binaryy xs:hex64Binary, los valores se comparan de una manera equivalente a las expresiones XPath 3.1 $cur lt $prevy $cur eq $prev, donde $cures el valor de la fila actual y $preves el valor de la fila anterior
- para los tipos derivados de xs:string, xs:QNamey xs:anyURI, los valores se normalizan con espacios en blanco y se comparan léxicamente según sus puntos de código Unicode
- esto es equivalente a la expresión XPath 3.1 fn:compare($cur, $prev, «http://www.w3.org/2005/xpath-functions/collation/codepoint»)donde $cury$prevson las representaciones de cadenas normalizadas con espacios en blanco de los valores de las filas actual y anterior, respectivamente.
- Para tipos de esquema con zona horaria opcional, se supone que los valores sin un componente de zona horaria tienen una zona horaria UTC ( Z) y se comparan como se describe en Operadores de comparación de valores de duración, fecha y hora.
- para valores derivados de xs:duration:
- si ambos valores coinciden con el patrón ‘[^DT]*’, o ambos coinciden con el patrón, ‘[^YM]*[DT].*’se comparan según dos subtipos de duración totalmente ordenados
- De lo contrario, se genera un error ( tce:incomparableDurations )
- para valores de tipo period, la comparación se realiza según la semántica de la dimensión central del período :
- si los valores del período representan instantes, se comparan de acuerdo con las reglas paraxs:dateTime
- Si los valores del período representan duraciones y sus intervalos de tiempo tienen la misma duración, sus fechas de inicio se comparan de acuerdo con las reglas paraxs:dateTime
- de lo contrario, se genera un error ( tce:incomparablePeriods )
Para evitar la posibilidad de tce:incomparableDurationserrores , se recomienda a tce:incomparablePeriodslos autores de plantillas que apliquen restricciones timeZoney .periodTypedurationType
3.6.1.5 Tablas de dimensiones
Si dimensionalse establece en true, DEBEN cumplirse las siguientes condiciones (tce:invalidDimensionalTable):
- cada miembro de las columnas de clave principal DEBE ser una columna de dimensión restringida con la dimensionrestricción especificada
- cada miembro de columnas que no son clave DEBE ser una columna de hechos restringida
- cada columna de hechos restringida DEBE tener una referencia de parámetro a cada miembro de las columnas de clave principal
- es decir, las dimensiones de la clave principal se aplican a todos los hechos seguidos
3.6.2 unique
Un objeto clave único establece un índice único auxiliar para una tabla.
Tiene las siguientes propiedades:
name(cadena)
(obligatorio) un nombre para la clave
columns
(obligatorio) lista de cadenas
nameDEBE ser un identificador (xbrlce:invalidIdentifier).
Cada miembro de columns DEBE ser una columna restringida (tce:invalidUniqueKeyColumn ).
Mientras que la clave principal se utiliza normalmente para dimensiones que califican todos los hechos de una tabla y puede incluir dimensiones especificadas mediante parámetros, las claves únicas normalmente implican columnas de hechos y no se pueden aplicar a los parámetros. Otra diferencia es que todos los campos de una clave principal son obligatorios, mientras que las claves únicas pueden incluir columnas opcionales.
Los procesadores DEBEN generar tce:uniqueKeyViolation si se usa la misma combinación de valores para las columnas de clave única para más de una fila, según typela semántica de igualdad de cada campo (usando el esquema XML), en todas las tablas para la plantilla de tabla. A efectos de esta comprobación, dos valores ausentes se consideran iguales entre sí.
3.6.3 reference
Es común que las referencias se apliquen entre tablas (de ahí el término de base de datos «clave externa»), pero las claves de referencia también pueden hacer referencia a un índice definido dentro de la misma plantilla de tabla (una «clave externa autorreferencial»).
Una clave de referencia se define utilizando un objeto de clave de referencia. Tiene las siguientes propiedades:
name(cadena)
(obligatorio) un nombre para la clave
columns
(obligatorio) una lista de cadenas que identifican columnas en la plantilla de tabla actual.
keyRef
(obligatorio) un objeto identificador de clave que identifica una clave en esta plantilla de tabla u otra plantilla
negate(booleano)
(opcional) si true, la restricción se invierte para que pase si y solo si NO se encuentra una coincidencia en el índice al que se hace referencia. El valor predeterminado es false.
Name DEBE ser un identificador (xbrlce:invalidIdentifier ).
Cada miembro de columnsDEBE ser una columna restringida (tce:invalidReferenceKeyColumn).
columnsDEBE tener el mismo número de columnas que la clave especificada en keyRef (tce:invalidReferenceKey)
La validación de la clave de referencia se realiza de la siguiente manera para cada fila de la plantilla de tabla, y se genera tce:referenceKeyViolation si la verificación falla:
- Si negatees así false, la lista de valores locales DEBE coincidir con una entrada en el índice de destino.
- Si negatees así true, la lista de valores locales NO DEBE coincidir con una entrada en el índice de destino.
Como es habitual, las comparaciones se realizan según las definiciones de igualdad para type.
3.6.3.1 objetos de identificador de clave
Un objeto identificador de clave identifica una clave.
Tiene las siguientes propiedades:
tableTemplate(cadena)
(obligatorio) El nombre de una plantilla de tabla
key(cadena)
(opcional) El nombre de una clave para esa plantilla de tabla.
Se aplican las siguientes restricciones (tce:invalidKeyIdentifier):
- tableTemplateDEBE identificar una plantilla de tabla en los metadatos efectivos xBRL-CSV .
- Si keyse especifica, DEBE corresponder al nombre de una clave primaria o única para la plantilla identificada por tableTemplate.
- Si keyno se especifica, tableTemplateDEBE tener una clave principal y keytoma el nombre de la clave principal.
3.7 Ejemplo
Este ejemplo muestra los metadatos de un conjunto de archivos CSV que capturan datos de préstamos.
Apéndice A Situación de la propiedad intelectual (no normativa)
Este documento y sus traducciones pueden copiarse y proporcionarse a otros, y los trabajos derivados que lo comenten, lo expliquen o ayuden en su implementación pueden prepararse, copiarse, publicarse y distribuirse, en su totalidad o en parte, sin restricción de ningún tipo. , siempre que el aviso de derechos de autor anterior y este párrafo estén incluidos en todas dichas copias y trabajos derivados. Sin embargo, este documento en sí no puede modificarse de ninguna manera, como eliminar el aviso de derechos de autor o las referencias a XBRL International o a organizaciones XBRL, excepto cuando sea necesario traducirlo a idiomas distintos del inglés. Los miembros de XBRL International aceptan otorgar ciertas licencias según la Política de propiedad intelectual de XBRL International (https://www.xbrl.org/legal).
Este documento y la información aquí contenida se proporcionan «TAL CUAL» y XBRL INTERNATIONAL RENUNCIA A TODAS LAS GARANTÍAS, EXPRESAS O IMPLÍCITAS, INCLUYENDO, PERO NO LIMITADO A, CUALQUIER GARANTÍA DE QUE EL USO DE LA INFORMACIÓN AQUÍ NO INFRINGIRÁ NINGÚN DERECHO O GARANTÍA IMPLÍCITA. DE COMERCIABILIDAD O IDONEIDAD PARA UN PROPÓSITO PARTICULAR.
La atención de los usuarios de este documento está dirigida a la posibilidad de que el cumplimiento o la adopción de las especificaciones de XBRL International puedan requerir el uso de una invención cubierta por derechos de patente. XBRL International no será responsable de identificar patentes para las cuales cualquier especificación de XBRL International pueda requerir una licencia, ni de realizar investigaciones legales sobre la validez legal o el alcance de aquellas patentes que se le presenten. Las especificaciones de XBRL International son prospectivas y meramente informativas. Los posibles usuarios son responsables de protegerse contra la responsabilidad por infracción de patentes. XBRL International no toma ninguna posición con respecto a la validez o alcance de cualquier propiedad intelectual u otros derechos que puedan reclamarse relacionados con la implementación o el uso de la tecnología descrita en este documento o la medida en que cualquier licencia bajo dichos derechos podría o no ser disponible; tampoco declara que haya hecho ningún esfuerzo por identificar dichos derechos. Los miembros de XBRL International aceptan otorgar ciertas licencias según la Política de propiedad intelectual de XBRL International (https://www.xbrl.org/legal).
Publicado originalmente: https://www.xbrl.org/news/table-constraints-public-working-draft-released/