Table Linkbase Conformance Suite 1.0

Public Working Draft 19 October 2011

Copyright ©2011 XBRL International Inc., All Rights Reserved.

This version:
<http://www.xbrl.org/WGN/table-linkbase-conformance/PWD-2011-10-19/table-linkbase-conformance-WGN-PWD-2011-10-19.html>
Editors:
Hugh Wallis, Standard Dimensions <hugh@standarddimensions.com>
Herm Fischer, Mark V Systems <fischer@markv.com>
Contributor:
Roland Hommes, RHOCON <roland@rhocon.nl>

Status

Circulation of this Public Working Draft is unrestricted. Other documents may supersede this document. Recipients are invited to submit comments to rendering-feedback@xbrl.org, and to submit notification of any relevant patent rights of which they are aware and provide supporting documentation.

Abstract

This document is a Working Group Note, describing the Table Linkbase Conformance Suite. It provides important information to enable users to understand the file structure and contents of the Conformance Suite and their usage. It is an early draft as the conformance suite is still only in its infancy.

Table of Contents

1 Introduction
2 Structure
3 Processing
4 Normative schemas
4.1 Testcases Index File
4.2 Testcase Variations File
5 Intellectual property status (non-normative)
6 Acknowledgements (non-normative)

Appendices

A Document history (non-normative)
B Errata corrections in this document


1 Introduction

This document is a Working Group Note, describing the Table Linkbase Conformance Suite. It provides important information to enable users to understand the file structure and contents of the Conformance Suite and their usage. It is an early draft as the conformance suite is still only in its infancy.

2 Structure

The structure of the conformance suite is similar to that of other conformance suites, with each set of tests residing in a folder beneath the tests-report folder. Each of these sub-folders has a name of the form NNNN-module where NNNN is a four digit number identifying the set of tests and module identifies the module of the table linkbase specification that the tests pertain to.

In the subfolder table for each of these sets of tests there are files containing the expected result of each of the tests. The expected result is a minimal html file with an html table(s) structure and contents that would reflect the view produced by the table linkbase. If the table linkbase has multiple z-axis choices, then multiple tables are sequentially in the table file, in the document order of the z-axis choices. Each expected result table has sufficient html style information so that it can be minimally rendered by a browser to demonstrate headers expected, header row/column merging/spanning expected, and cell contents.

There is a top level index file, testcases-index.xml in the conf folder. This file identifies the testcase files that contain test variations.

The tests themselves and their descriptions, along with needed files such as schemas etc. are listed in each testcase file. Each test is called a variation, and specifies <data> inputs and the expected <result> . The result may include errors and table(s) produced. An <error> is provided for each error (by its designated QName), and a single <table> results file is provided with a prototype of all of the tables that would result. (A table specification with multiple z-axes may produce multiple table results, but they are prototyped in a single table expected-output file.

The only tests currently available are those in the 1000-aspect-rules-axis folder. As the specifications advance in their development, additional tests will be provided and this document updated to newer versions.

3 Processing

The index file is used to drive the test tool to load each available testcase variation file.

Each testcase variation file has individual test variations that specify, in the <data> section the inputs to the test. The <data> child element with @readMeFirst = true is the entry point for instance or DTS loading. A test may either load a DTS entry (schema or linkbase) if it is to produce a table structure with no sample data contents of cells, and does not need contextual information provided by an intext, or may load an XBRL instance as its entry point if it requires contextual information and/or fact items.

Errors in processing that are expected to be detected with the variation inputs must be matched to the <error> elements in the <result> for the variation.

If the <result> of the variation provides a <table> then the test suite is expected to examine the view produced by the tool under test and compare it to the structure and contents of the expected result. A tool comparing its produced view to the expected result will be able to compare structural information (column and row headers, column and row headers that are merged/spanned, and grid cell content assignment) from a structural semantics point of view and should not consider those html table features as representing style and rendering. The style and rendering are minimally provided in the test suite so that the expected result table can be viewed in a ordinary browser.

4 Normative schemas

4.1 Testcases Index File

<xs:schema
xmlns:xs
="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="testcase">
<xs:complexType>
<xs:attribute name="uri" use="required" type="xs:anyURI"/>
</xs:complexType>
</xs:element>
<xs:element name="testcases">
<xs:complexType>
<xs:sequence>
<xs:element ref="testcase" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:string"/>
<xs:attribute name="date" use="required" type="xs:date"/>
</xs:complexType>
</xs:element>
</xs:schema>

4.2 Testcase Variations File

<xs:schema
xmlns:xs
="http://www.w3.org/2001/XMLSchema"

xmlns:conf
="http://xbrl.org/2008/conformance"
targetNamespace="http://xbrl.org/2008/conformance" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="testcase">
<xs:complexType>
<xs:sequence>
<xs:element ref="conf:creator"/>
<xs:element name="number" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element ref="conf:description"/>
<xs:element ref="conf:reference" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="conf:variation" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="creator">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="email" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="description" type="xs:string"/>
<xs:element name="reference">
<xs:complexType>
<xs:attribute name="specification" type="xs:string"/>
<xs:attribute name="id" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="variation">
<xs:complexType>
<xs:sequence>
<xs:element ref="conf:creator" minOccurs="0"/>
<xs:element name="number" type="xs:string" minOccurs="0"/>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element ref="conf:description"/>
<xs:element ref="conf:reference" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="conf:data"/>
<xs:element ref="conf:result"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="data">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="conf:schema"/>
<xs:element ref="conf:linkbase"/>
<xs:element ref="conf:instance"/>
<xs:element ref="conf:parameter"/>
<xs:element ref="conf:filter"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="schema" type="conf:inputFileType"/>
<xs:element name="linkbase" type="conf:inputFileType"/>
<xs:element name="instance" type="conf:inputFileType"/>
<xs:complexType name="inputFileType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="readMeFirst" type="xs:boolean" use="optional" default="false"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="parameter">
<xs:complexType>
<xs:attribute name="name" type="xs:QName"/>
<xs:attribute name="datatype" type="xs:QName"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="filter">
<xs:complexType>
<xs:attribute name="file" type="xs:IDREF"/>
<xs:attribute name="id" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
<xs:element name="result">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="assertionTests">
<xs:complexType>
<xs:attribute name="assertionID" type="xs:string"/>
<xs:attribute name="countSatisfied" type="xs:integer"/>
<xs:attribute name="countNotSatisfied" type="xs:integer"/>
</xs:complexType>
</xs:element>
<xs:element name="filterTest" type="xs:string"/>
<xs:element name="instance" type="xs:anyURI"/>
<xs:element name="table" type="xs:anyURI"/>
<xs:element name="error" type="xs:QName"/>
</xs:choice>
<xs:attribute name="expected" use="optional">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="valid"/>
<xs:enumeration value="invalid"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>

5 Intellectual property status (non-normative)

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to XBRL International or XBRL organizations, except as required to translate it into languages other than English. Members of XBRL International agree to grant certain licenses under the XBRL International Intellectual Property Policy (www.xbrl.org/legal).

This document and the information contained herein is provided on an "AS IS" basis and XBRL INTERNATIONAL DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

The attention of users of this document is directed to the possibility that compliance with or adoption of XBRL International specifications may require use of an invention covered by patent rights. XBRL International shall not be responsible for identifying patents for which a license may be required by any XBRL International specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. XBRL International specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents. XBRL International takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Members of XBRL International agree to grant certain licenses under the XBRL International Intellectual Property Policy (www.xbrl.org/legal).

6 Acknowledgements (non-normative)

This document could not have been written without the contributions of many people.

Appendix A Document history (non-normative)

DateAuthorDetails
14 October 2011Hugh Wallis

Initial version.

14 October 2011Herm Fischer

Clarified use of expected results that are in html tables. Added processing section.

Appendix B Errata corrections in this document

This appendix contains a list of the errata that have been incorporated into this document. This represents all those errata corrections that have been approved by the XBRL International Rendering Working Group up to and including 19 October 2011. Hyperlinks to relevant e-mail threads may only be followed by those who have access to the relevant mailing lists. Access to internal XBRL mailing lists is restricted to members of XBRL International Inc.

No errata have been incorporated into this document.