Copyright ©2008 XBRL International Inc., All Rights Reserved.
Circulation of this Internal Working Draft is restricted to participants in XBRL International and is not appropriate to cite from other sources. This document is normative. Other documents may supersede this document. Recipients are invited to submit comments to s4s-feedback@xbrl.org, and to submit notification of any relevant patent rights of which they are aware and provide supporting documentation.
NOTICE:
This document serves as an example of how to use the syntax that it defines.
It will probably always remain an Internal Working Draft as it is not intended that it should ever become an XBRL Recommendation, nor proceed on that track. It is conceivable that it could become a Working Group Note at some future date but that is viewed as being unlikely.
This is the specification for XBRL specifications written in XML. This specification is closely aligned to the XMLspec materials provided by the W3C (See [XMLSPEC] ). It has been adapted to more closely fit the needs of technical XBRL specifications. It does so by trimming down some of the XMLspec features and added a small number of additional features including structured content models for revision tracking, errata tracking and a container for XML that is to be reproduced verbatim in the specification.
1 Geoff Shuetrim:
This is an example editorial comment.
2 Geoff Shuetrim:
It renders in line with the surrounding text.
1 Introduction
1.1 Background
1.2 Relationship to other work
1.3 Language independence
1.4 Terminology
1.5 Document conventions
1.6 Namespaces and namespace prefixes
1.7 Element and attribute notation
2 Syntax
2.1
Common attributes
(
@id
,
@role
,
@diff
,
@changeref
)
2.2
Element:
<spec>
2.2.1
Element:
<header>
2.2.1.1
Element:
<wg>
2.2.1.2
Element:
<title>
2.2.1.3
Element:
<subtitle?>
2.2.1.4
Element:
<pubtype?>
2.2.1.5
Element:
<id>
2.2.1.6
Element:
<parentid?>
2.2.1.7
Element:
<feedback>
2.2.1.8
Element:
<namespaces>
2.2.1.8.1
Element:
<namespace>
2.2.1.9
Element:
<version>
2.2.1.10
Element:
<status>
2.2.1.11
Element:
<date>
2.2.1.12
Element:
<authors>
2.2.1.12.1
Element:
<person+>
2.2.1.12.1.1
Element:
<name>
2.2.1.12.1.2
Element:
<affiliation?>
2.2.1.12.1.3
Element:
<email?>
2.2.1.13
Element:
<contributors>
2.2.1.14
Element:
<abstract>
2.2.1.15
Element:
<notice?>
2.2.2
Element:
<body>
2.2.2.1
Element:
<section*>
2.2.2.1.1
Element:
<head>
2.2.3
Element:
<back>
2.3
Element:
<chunk.class>
(abstract)
2.3.1
Element:
<includeChunk>
2.3.2
Element:
<p>
2.3.3
Element:
<table>
2.3.3.1
Element:
<caption>
2.3.3.2
Element:
<col>
2.3.3.3
Element:
<colgroup>
2.3.3.4
Element:
<thead>
2.3.3.5
Element:
<tbody>
2.3.3.5.1
Element:
<tr>
2.3.3.5.1.1
Element:
<th>
2.3.3.5.1.2
Element:
<td>
2.3.3.6
Element:
<tfoot>
2.3.4
Element:
<figure>
2.3.4.1
Element:
<img>
2.3.5
Element:
<example>
2.3.6
Element:
<list.class>
(abstract)
2.3.6.1
Element:
<slist>
2.3.6.1.1
Element:
<item>
2.3.6.2
Element:
<ulist>
2.3.6.3
Element:
<olist>
2.3.6.4
Element:
<bibliography>
2.3.6.4.1
Element:
<reference>
2.3.6.5
Element:
<revisions>
2.3.6.5.1
Element:
<revision>
2.3.6.6
Element:
<errata>
2.3.6.6.1
Element:
<erratum>
2.4
Element:
<phrase.class>
(abstract)
2.4.1
Element:
<includePhrase>
2.4.2
Element:
<code.class>
(abstract)
2.4.2.1
Element:
<elt>
2.4.2.2
Element:
<att>
2.4.2.3
Element:
<val>
2.4.2.4
Element:
<var>
2.4.2.5
Element:
<code>
2.4.3
Element:
<ref.class>
(abstract)
2.4.3.1
Element:
<sectionref>
2.4.3.2
Element:
<figureref>
2.4.3.3
Element:
<exampleref>
2.4.3.4
Element:
<tableref>
2.4.3.5
Element:
<bibref>
2.4.3.6
Element:
<xref>
2.4.3.7
Element:
<termref>
2.4.3.8
Element:
<requirementref>
2.4.3.9
Element:
<principleref>
2.4.3.10
Element:
<xtermref>
2.4.3.11
Element:
<xmlref>
2.4.3.12
Element:
<dateref>
2.4.3.13
Element:
<wgref>
2.4.3.14
Element:
<personref>
2.4.3.15
Element:
<namespaceref>
2.4.4
Element:
<rfc2119>
2.4.5
Element:
<em>
2.4.6
Element:
<strong>
2.4.7
Element:
<center>
2.4.8
Element:
<quote>
2.4.9
Element:
<footnote>
2.4.10
Element:
<subscript>
2.4.11
Element:
<superscript>
2.4.12
Element:
<phrase>
2.4.13
Element:
<nbsp>
2.4.14
Element:
<br>
2.4.15
Element:
<amp>
2.4.16
Element:
<verbatim>
2.4.17
Element:
<comment>
2.4.18
Element:
<definition>
2.4.19
Element:
<error>
2.4.20
Elements:
<principle>
and
<requirement>
2.4.20.1
Element:
<short>
2.4.20.2
Element:
<long>
A Normative schema
B Transformation stylesheets
C References
D Intellectual property status (non-normative)
E Acknowledgements (non-normative)
E.1 Sub-section of an appendix.
F Document history (non-normative)
G Errata corrections in this document
1 Namespaces and namespace prefixes
1 A normative example
2 A non-normative example
3 An example of poor usage
4 Marked-up differences
This is the specification for XBRL specifications written in XML. This specification is closely aligned to the XMLspec materials provided by the W3C (See [XMLSPEC]). It has been adapted to more closely fit the needs of technical XBRL specifications. It does so by trimming down some of the XMLspec features and added a small number of additional features including structured content models for revision tracking, errata tracking and a container for XML that is to be reproduced verbatim in the specification.
This specification has grown out of a need to overcome a range of limitations associated with previous specification drafting tools and processes.
This specification has been derived from the XMLspec used by the W3C. See [XMLSPEC] .
The official language of XBRL International's own work products is English and the preferred spelling convention is UK English.
Where this document refers to an XML schema, it is referring to an XML document [XML] that contains a declaration of a schema that is compliant with XML Schema [XML Schema Structures 1.0].
Definitions can be referenced from within the text
using
<termref>
elements. See
Section
2.4.3.7
for details. The content model for the
<termref>
element is set out in the normative
XML schema
supporting this document. See
Appendix A
.
The following formatting is used for normative technical material in this document:
Text of the normative example.
The following formatting is used for non-normative examples in this document:
Text of the helpful example.
Example 3 shows the formatting for non-normative bad examples (examples of poor, discouraged or disallowed usage) in this document:
The example itself.
Figure 1 shows the formatting for figures. The image has been taken from XML Saves The World. [ 1 ]
[Geoff Shuetrim: This is an example editorial comment. ]
Here is an example inline comment. [Geoff Shuetrim: It renders in line with the surrounding text. ] This can be useful for providing better context for comments.
Namespace prefixes will be used for elements and
attributes in the form
ns:name
where
ns
is the namespace prefix and
name
is the local name. Throughout this specification,
the mappings from namespace prefixes to actual
namespaces is consistent with
Table
1
.
namespace prefix 1 | namespace |
---|---|
http://xbrl.org/specification/2007
|
|
eg
|
http://example.com/
|
1. These prefixes will be used throughout the specification.
When referring to a specific element, it will be
identified by its namespace prefix and local name.
For example, the root element for a specification
container element would be referred to as
s:spec
.
Attributes are also identified by their local name
and, where appropriate, their namespace prefix.
Attributes are distinguished from elements by
prefixing them by an
@
symbol. Thus,
@id
refers to the attribute with the name
id
.
When referring to any attribute, so long as it has a
specific namespace, the local name is replaced by an
asterisk,
*
. Thus, the notation,
@xml:*
, specifies any attribute in the namespace
http://www.w3.org/XML/1998/namespace
.
@id
,
@role
,
@diff
,
@changeref
)
All elements MAY have any of the following attributes:
@id?
, an id for the element that
MUST
be unique within the document
@role?
, taking any string value to associate a
particular custom purpose for an element
@diff?
, taking a value of
chg
,
new
,
del
, or
off
to document the nature of differences at the
element level between specification versions.
off
means that even though higher level elements
have differences, this one does not.
@changeref?
, taking a value that
MUST
match an
@id
attribute value on an
<erratum>
element or a
<revision>
element. This attribute works in conjunction
with a
@diff
attribute, to relate the actual changes made to
the revision or erratum entry summarising the
changes.
This is a paragraph with no differences.
This is a paragraph that has been added.
This is a paragraph that has been deleted.
This is a paragraph that has been changed where the changes involve new text and removeddeleted text.
<spec>
The root element of the specification is the
<spec>
element
.
Attributes include:
Child elements are:
<header>
<body>
<back>
<header>
The
<header>
element contains the specification metadata.
Child elements are:
<wg>
<title>
<subtitle?>
<pubtype?>
, with a value that is one of
Specification
,
WGN
(Working Group Note),
RFC
(Request for Comments),
PN
(Practice Note), or
REQ
(Requirements)
<id>
<parentid?>
<namespaces?>
<version>
<status>
, with a value that is one of
REC
(Recommendation),
RR
(Rescinded Recommendation),
DRR
(Draft Rescinded Recommendation),
PER
(Proposed Edited Recommendation),
DPER
(Draft Proposed Edited Recommendation),
PR
(Proposed Recommendation),
DPR
(Draft Proposed Recommendation),
CR
(Candidate Recommendation),
DCR
(Draft Candidate Recommendation)
FWGN
(Final Working Group Note),
DFWGN
(Draft Final Working Group Note),
WGN
(Working Group Note),
DWGN
(Draft Working Group Note),
PWD
(Public Working Draft),
DPWD
(Draft Public Working Draft),
IWD
(Internal Working Draft), or
WGWD
(Working Group Working Draft)
<date>
<url>
<authors>
<contributors?>
<notice?>
<abstract>
<wg>
The
<wg>
element is intended to contain the name of
the working group responsible for the
specification.
<title>
The
<title>
element has text content and is intended to
contain the main title of the specification.
<subtitle?>
The
<subtitle>
element has text content and is intended to
contain the subtitle of the specification,
if such exists.
<pubtype?>
The
<pubtype>
element has text content and dentifies the
type of document to be used in constructing
the document URL for publication. Valid
types are
Specification
,
WGN
(Working Group Note),
RFC
(Request for Comments),
PN
(Practice Note) and
REQ
(Requirements). If omitted,
Specification
is assumed. This value is used as the top
level folder into which the output HTML is
placed.
<id>
The
<id>
element contains an identifying string (with
no spaces or odd characters) that will be
used when constructing the URL for the
specification.
<parentid?>
The
<parentid>
element contains an identifying string for
the document that this document supports, to
be used in constructing the document URL. If
omitted
<id>
is used to construct the URL. This is
designed to ensure that documents that are
intended to be published together, as part
of a package, are automatically placed in
the same folder for publication.
<feedback>
The
<feedback>
element contains the email address to use to
provide feedback on the document.
<namespaces>
The
<namespaces>
element contains an a child element for a
namespace defined in the specification. Each
child element is a
<namespace>
element.
<namespace>
The
<namespace>
element documents a namespace defined in
the specification. It
MUST
have an
@id
attribute.
The
<namespace>
element
MUST
have a
@value
attribute that contains the absolute URI
that is the namespace itself.
It
MAY
have a
@prefix
attribute indicating that, in the text
of the specification, this namespace
will be referred to using the prefix
contained by the
@prefix attribute
. If the
@prefix
attribute is omitted, then the namespace
is referred to, in the text of the
specification, without a namespace
prefix.
It
MAY
have a
@url
attribute, in which case, the attribute
MUST
contain the absolute URL of a normative
schema with the specified namespace.
The
<namespace>
element
MAY
contain a description of the purpose of
the namespace.
<status>
The
<status>
element has text content indicating the
status of the document. It can take one of
the following values:
REC
(Recommendation)
RR
(Rescinded Recommendation)
DRR
(Draft Rescinded Recommendation)
PER
(Proposed Edited Recommendation)
DPER
(Draft Proposed Edited Recommendation)
PR
(Proposed Recommendation)
DPR
(Draft Proposed Recommendation)
CR
(Candidate Recommendation)
DCR
(Draft Candidate Recommendation)
FWGN
(Final Working Group Note)
DFWGN
(Draft Final Working Group Note)
WGN
(Working Group Note)
DWGN
(Draft Working Group Note)
PWD
(Public Working Draft)
DPWD
(Draft Public Working Draft)
IWD
(Internal Working Draft)
WGWD
(Working Group Working Draft)
This controls both some of the boilerplate
text that is inserted into the output and
whether the output is placed into a
publication or a non publication folder. In
addition, the URL that is inserted into the
output text is only a hyperlink if the
status is one of those that is published to
the XII website (such as
PWD
)
Unless requested by XII staff, editors MUST NOT use any of the
status codes related to published documents (such as PWD
). Instead they
MAY use an associated code indicating that the document is a "not to be published"
draft (such as DPWD
).
<date>
The
<date>
element holds information about the
publication date.
Attributes include:
@day?
, in DD format
@month
, in MM format
@year
, in YYYY format
<authors>
The
<authors>
element is a container for authors/editors.
Child elements are:
<person+>
<person+>
The
<person>
element documents an author or
contributor.
Attributes include:
@id
is required for authors and
contributors
Child elements are:
<name>
<affiliation?>
<email?>
<name>
The
<name>
element contains the full name of
the person, as a text string.
<contributors>
The
<contributors>
element is a container for contributors.
Child elements are:
<person*>
(See
Section
2.2.1.12.1
)
Leave it empty if there are no contributors.
<abstract>
The
<abstract>
element is a container for a brief summary
of the content of the document.
Child elements are:
<chunk.class*>
See
Section
2.3
<notice?>
The optional
<notice>
element is a container for additional
notices that need to be bought to the
attention of readers.
Child elements are:
<chunk.class*>
See
Section
2.3
<body>
The
<body>
element contains the main content of the
document, organised into sections.
Child elements are:
<section*>
<section*>
The
<section>
element contains a section of the document
body or back.
Child elements are:
<head>
<chunk.class*>
See
Section
2.3
<section*>
<head>
The
<head>
element contains the section heading.
This element has mixed content. Along
with text, it
MAY
contain any element that is in the
substitution group for the
<phrase.class>
element (See
Section
2.4
).
<back>
The
<back>
element contains the document appendices,
organised into sections.
Child elements are:
<section*>
(See
Section
2.2.2.1
)
<chunk.class>
(abstract)
The
<chunk.class>
element is the head of the substitution group that
contains all elements that are container for chunks
of sections.
The following elements are in the substitution group
for
<chunk.class>
.
<includeChunk>
for references to external XML resources that
are to be included in the specification
<p>
for paragraph chunks
<table>
for tables
<figure>
for figures
<example>
for examples
<list.class>
for lists. See
Section
2.3.6
.
<includeChunk>
The
<includeChunk>
element allows referencing to external XML
resources that can be substituted into the
specification in its place.
The
<includeChunk>
element is in the substitution group for the
chunk:class
element defined in
Section
2.3
.
Attributes include:
@ref
, provides the URL of the external XML
resource.
Content of the
<includeChunk>
element can is not reproduced in the
specification. This element enables content to
be maintained in one place and used in several
documents.
The
<includeChunk>
element can be used to substitute for any
element that is in the substitution group for
the
<chunk.class>
element or for:
<header>
element
<section>
element
<person>
element
<reference>
element
<tr>
element
In the event that a number of chunks are to be
included by a single
<includeChunk>
element, those chunks
MUST
be contained by a
<container>
element in the external resource. The
<container>
element serves as the root of the external XML
resource and is not copied into the merged
document.
<p>
The
<p>
element is a container for paragraph content.
The
<p>
element is in the substitution group for the
chunk:class
element defined in
Section
2.3
.
Attributes include:
@role?
, provides the class name for the paragraph.
The
<p>
element can contain mixed content including any
element in the substitution group for the
<phrase.class>
element
Section
2.4
.
<table>
The
<table>
element is a container for a table structure. It
has a content model that mirrors that of HTML
tables.
Child elements are:
<caption?>
(See
Section
2.3.3.1
)
<col?>
|
<colgroup?>
<thead?>
<tbody+>
<tfoot?>
Only tables with captions will be included in a list of tables in the table of contents.
<caption>
The
<caption>
element provides the caption for a table, a
figure or an example. It can have mixed
content.
Child elements are:
<phrase.class*>
(abstract) (See
Section
2.4
)
<col>
The
<col>
element Defines the attribute values for one
or more columns in a table. You can only use
this element inside a
<table>
(
Section
2.3.3
) or a
<colgroup>
(
Section
2.3.3.3
).
Attributes include:
@span?
@width?
@align?
@char?
@charoff?
@valign?
Aside from the common attributes, these attributes behave identically to their HTML analogs.
<colgroup>
The
<colgroup>
element is a container for a sequence of
<col>
elements.
Attributes include:
@span?
@width?
@align?
@char?
@charoff?
@valign?
Child elements are:
<col*>
(See
Section
2.3.3.2
)
Its syntax matches that of the corresponding HTML element.
<thead>
The
<thead>
element is a container for the header rows
of a table.
Child elements are:
<tr>
(See
Section
2.3.3.5.1
)
<tbody>
The
<tbody>
element is a container for the body rows of
a table. Its syntax matches that of the
corresponding HTML element.
<tr>
The
<tr>
element is a container for the cells of
a table row. Its syntax matches that of
the corresponding HTML element.
<tfoot>
The
<tfoot>
element is a container for the footer rows
of a table. Its syntax matches that of the
corresponding HTML element.
Child elements are:
<tr>
(See
Section
2.3.3.5.1
)
<figure>
The
<figure>
element is a container for a figure,
illustrating some aspect of the specification.
The illustration does not have to be a graphic
image. It could be a snippet of XML or some
other structure.
Child elements that are allowed are:
<img>
(See
Section
2.3.4.1
)
<p>
(See
Section
2.3.2
)
<table>
(See
Section
2.3.3
)
<verbatim>
(See
Section
2.4.16
)
<example>
The
<example>
element is a container for an example.
Examples can be normative, normal examples or
counter examples. This distinction is expressed
by the
@role
attribute on the
<example>
element. A value of
normative
indicates that the example is normative. A value
of
counter
indicates tha the example is a counter example.
By omitting the
@role
attribute, the example is identified as a normal
example.
Child elements that are allowed are:
<img>
(See
Section
2.3.4.1
)
<p>
(See
Section
2.3.2
)
<table>
(See
Section
2.3.3
)
<verbatim>
(See
Section
2.4.16
)
<list.class>
(abstract)
The
<list.class>
element is the head of the substitution group
that contains all elements that are list
containers.
The following elements are in the substitution
group for
<list.class>
.
<slist>
for simple unordered lists without any
bullets
<ulist>
for unordered lists
<olist>
for ordered lists (i.e. with "numbers" as bullets)
<bibliography>
for lists of citations
<revisions>
for lists of revisions to the specification
<errata>
for lists of errata that have been corrected
in the specification
<slist>
The
<slist>
element is used for simple unordered and
non-bulleted lists.
The child elements are:
<item*>
for items in the list
<item>
The
<item>
element is used for simple unordered and
non-bulleted lists.
The content is a mix of text, and the following elements:
<phrase.class*>
(See
Section
2.4
)
<list.class*>
(See
Section
2.3.6
)
<ulist>
The
<ulist>
element is used for unordered but bulleted
lists.
The child elements are:
<item*>
(See
Section
2.3.6.1.1
)
<olist>
The
<olist>
element is used for ordered lists (i.e. with "numbers" as bullets).
The child elements are:
<item*>
(See
Section
2.3.6.1.1
)
<bibliography>
The
<bibliography>
element is the container for the
bibliographic references.
The child elements are:
<reference+>
, one for each citation.
<reference>
The
<reference>
element is the container for the details
of an individual citation.
Attributes include:
@id
the unique ID of the citation
@day?
the day in DD format
@month
the month in MM format
@year
the month in YYYY format
@href?
the URL of the cited work
@key
the text to use to sort the citation
and to reference it from within the
body of the specification
Child elements are:
<title>
, for the reference title
<publisher?>
, for the name of the publishing
organisation
<authors?>
(See
Section
2.2.1.12
)
<revisions>
The
<revisions>
element is the container for the revision
history.
The child elements are:
<revision+>
, one for each revision event.
<revision>
The
<revision>
element is the container for the details
of an individual revision.
Attributes include:
@id
the unique ID of the citation
@day
the day in DD format
@month
the month in MM format
@year
the month in YYYY format
@href?
the URL of the cited work
Child elements are:
<chunk.class+>
(See
Section
2.3
)
<errata>
The
<errata>
element is the container for a collection of
errata that have been fixed in the current
version.
The child elements are:
<erratum*>
, one for each erratum that has been
addressed. If left empty, the tag
indicates that no errata have been
addressed in the specification.
<erratum>
The
<erratum>
element is the container for the details
of an individual erratum that has been
addressed.
Attributes include:
@day
the day in DD format
@month
the month in MM format
@year
the month in YYYY format
Child elements are:
<chunk.class+>
(See
Section
2.3
)
<sectionref*>
(See
Section
2.4.3.1
)
<phrase.class>
(abstract)
The
<phrase.class>
element is the head of the substitution group that
contains all elements that are containers for the
phrases that make up parts of chunks of sections.
Phases typically are presented inline.
The following elements are in the substitution group
for
<phrase.class>
.
<includePhrase>
for references to external XML resources that
are to be substituted into the document.
<code.class>
(abstract) for phrases that are to be styled as
code
<ref.class>
(abstract) for various kinds of cross references
<definition>
for definitions
<requirements>
for groups of related requirements
<principles>
for groups of related design principles
<rfc2119>
for terms defined in
[IETF RFC 2119]
<error>
for error codes
<em>
for phrases requiring emphasis
<strong>
for phrases to be rendered inside
<strong>
tags
<center>
for phrases to be rendered inside
<center>
tags (i.e. centred on the page or table cell)
<quote>
for phrases needing to be quoted
<footnote>
for footnotes and table notes
<subscript>
for phrases to be presented as subscripts
<superscript>
for phrases to be presented as superscripts
<nbsp>
for non-breaking spaces
<amp>
for ampersands spaces
<verbatim>
for XML that is to be rendered verbatim
<comment>
for editorial comments
<includePhrase>
The
<includePhrase>
element allows referencing to external XML
resources that can be substituted into the
specification in its place.
The
<includePhrase>
element is in the substitution group for the
phrase.class
element defined in
Section
2.4
.
Attributes include:
@ref
, provides the URL of the external XML
resource.
Content of the
<includePhrase>
element can is not reproduced in the
specification. This element enables content to
be maintained in one place and used in several
documents.
In the event that a number of phrases are to be
included by a single
<includePhrase>
element, those phrases
MUST
be contained by a
<container>
element in the external resource. The
<container>
element serves as the root of the external XML
resource and is not copied into the merged
document.
<code.class>
(abstract)
The
<code.class>
element is the head of the substitution group
that contains all elements that are containers
for the phrases that are variants on code.
The following elements are in the substitution
group for
<code.class>
.
<elt>
for XML element names
<att>
for XML attribute names
<val>
for values
<var>
for variable names
<code>
for other kinds of code
<elt>
The
<elt>
element is for XML element names.
This element has mixed content. Along with
text, it
MAY
contain any element that is in the
substitution group for the
<phrase.class>
element.
<att>
The
<att>
element is for XML attribute names.
This element has mixed content. Along with
text, it
MAY
contain any element that is in the
substitution group for the
<phrase.class>
element.
<val>
The
<val>
element is for values.
This element has mixed content. Along with
text, it
MAY
contain any element that is in the
substitution group for the
<phrase.class>
element.
<ref.class>
(abstract)
The
<ref.class>
element is the head of the substitution group
that contains all elements that express
cross-references.
The following elements are in the substitution
group for
<ref.class>
.
<sectionref>
for references to sections in the same
document
<tableref>
for references to tables in the same
document
<figureref>
for references to figures in the same
document
<exampleref>
for references to examples in the same
document
<termref>
for references to definitions in the same
document
<errorref>
for references to errors in the same
document
<requirementref>
for references to requirements expressed in the same
document
<principleref>
for references to design principles in the same
document
<xmlref>
for references to XML fragments
<bibref>
for references to bibliographic citations
<xref>
for links to external resources
<dateref>
for references to the specification date
<wgref>
for references to the working group
responsible for the specification
<personref>
for references to an author or contributor
<sectionref>
The
<sectionref>
element is for references to sections in the
same document. It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on a
<section>
element (See
Section
2.2.2.1
).
<figureref>
The
<figureref>
element is for references to figure in the
same document. It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on a
<figure>
element (See
Section
2.3.4
).
<exampleref>
The
<exampleref>
element is for references to examples in the
same document. It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on an
<example>
element (See
Section
2.3.5
).
<tableref>
The
<tableref>
element is for references to tables in the
same document. It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on a
<table>
element (See
Section
2.3.3
).
<bibref>
The
<bibref>
element is for references to bibliographic
citations. It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on a
<reference>
element (see
Section
2.3.6.4.1
).
<xref>
The
<xref>
element is for references to external
resources. It
MUST
have a
@ref
attribute that contains the value of the URL
of the external resource. It
MAY
also have text content. Such content is
intended to be presented as the text that is
hyperlinked in the rendered specification.
<termref>
The
<termref>
element is for references to definitions. It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on the
<definition>
element containing the term definition. It
MAY
also have text content. Such content should
be the usage of the term that is being cross
referenced to the term definition.
<requirementref>
The
<requirementref>
element is for references to requirements. It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on the
<requirement>
element containing the statement of the requirement.
<principleref>
The
<principleref>
element is for references to principles. It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on the
<principle>
element containing the statement of the principle.
<xtermref>
The
<xtermref>
element is for references to external term
definitions (in fact, it MAY
be used to reference
any anchor in an external
document). It
MUST
have a
@bibref
attribute that contains the value of the
@id
attribute on the bibliographic reference
that contains the definition of the term. It
MAY
also contain an
@idref
attribute that, if provided, specifies the
ID of the term definition within the
bibliographic reference. The external
terminology reference
MUST
also have text content. Such content is
intended to be presented as the text that is
hyperlinked in the rendered specification.
<xmlref>
The
<xmlref>
element is for references to XML fragments.
It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on an element that is nested
within a
<verbatim>
element. It
MAY
also have text content. Such content SHOULD
be the text that is cross-referenced to the
XML fragment.
<dateref>
The
<dateref>
element is used to insert various
representations of the specification date
into the text of the specification.
Attributes include:
@style
, which
MUST
have one of the following values:
DD-MM-YYYY
DD Month YYYY
YYYYMMDD
<wgref>
The
<wgref>
element is for references to the name of the
working group responsible for the
specification. It is generally used as an
empty element that acts as the placeholder
for the full name of the working group,
where it is to be inserted into the text of
the specification.
<personref>
The
<personref>
element is for references to the name of an
author or contributor on the specification.
It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on the
<person>
element containing the name of the person
being referenced. Note that it is also
possible to use this element to reference
authors of cited resources, if they have
@id
attributes.
<namespaceref>
The
<namespaceref>
element is for references to namespaces
defined in the specification. It
MUST
have a
@ref
attribute that contains the value of the
@id
attribute on the
<namespace>
element containing the value of the
namespace being referenced.
The value of the
@use
attribute on the
<namespaceref>
element determines what information about
the namespace is provided in place of the
<namespaceref>
element. The
@use
attribute can have any one of the following
values:
namespace
- for the namespace itself
prefix
- for the prefix used for the namespace
description
- for the one sentence description of
the namespace
url
- for the URL of the normative schema in
which the namespace is defined.
<rfc2119>
The
<rfc2119>
element is for phrases like
"MUST"
,
"MUST NOT"
,
"MAY"
as defined in
[IETF RFC 2119]
.
This element has mixed content. Along with text,
it
MAY
contain any element that is in the substitution
group for the
<phrase.class>
element.
<em>
The
<em>
element is for phrases requiring emphasis.
This element has mixed content. Along with text,
it
MAY
contain any element that is in the substitution
group for the
<phrase.class>
element.
<strong>
The
<strong>
element is for phrases to be rendered inside
<strong>
tags in the output HTML.
This element has mixed content. Along with text,
it
MAY
contain any element that is in the substitution
group for the
<phrase.class>
element.
<center>
The
<center>
element (note American spelling) is for phrases to be rendered inside
<center>
tags in the output HTML. Here is an example:
This element has mixed content. Along with text,
it
MAY
contain any element that is in the substitution
group for the
<phrase.class>
element.
<quote>
The
<quote>
element is for phrases that need to be expressed
as a quote. In other words, this places quotation marks (""
)
around its content.
This element has mixed content. Along with text,
it
MAY
contain any element that is in the substitution
group for the
<phrase.class>
element.
<footnote>
The
<footnote>
element is for footnotes and table notes.
This element has mixed content. Along with text,
it
MAY
contain any element that is in the substitution
group for the
<phrase.class>
element.
<subscript>
The
<subscript>
element is for subscript text.
This element has mixed content. Along with text,
it
MAY
contain any element that is in the substitution
group for the
<phrase.class>
element.
<superscript>
The
<superscript>
element is for superscript text.
This element has mixed content. Along with text,
it
MAY
contain any element that is in the substitution
group for the
<phrase.class>
element.
<phrase>
The
<phrase>
element is for attaching the common attributes
(see
Section
2.1
) to a phrase.
This element has mixed content. Along with text,
it
MAY
contain any element that is in the substitution
group for the
<phrase.class>
element.
<nbsp>
The
<nbsp>
element is an empty
element that can be used for non-breaking
spaces.
<br>
The
<br>
element is an empty
element that can be used to force a new line in the rendered HTML
<verbatim>
The
<verbatim>
element is a container for XML that is to be
rendered verbatim.
<comment>
The
<comment>
element is a container for editorial comments.
The
<comment>
element is in the substitution group for the
phrase:class
element defined in
Section
2.4
.
Attributes include:
@by
, provides a reference to the commenting
author or contributor. This attribute takes
an
IDREF
value.
The
<comment>
element can contain mixed content including any
element in the substitution group for the
<phrase.class>
element
Section
2.4.
<definition>
The
<definition>
element is a container for definitions of terms used
in a technical sense in the specification.
The
<definition>
element is in the substitution group for the
phrase:class
element (See
Section
2.4).
Attributes include:
@term
, contains the reference value of the term
being defined.
@noindex
, contains true
if you do not want the definition
to be included as an entry in the table of contents. Otherwise
omit it or give it a value of false
.
It is convention (but not absolutely required)
that the
@id
attribute
starts with term-
and then has the value of
the
@term
attribute, translated to lower case everywhere
and with spaces replaced by hyphens. This makes
it easier for a human to locate the reference
while editing the document.
The
<definition>
element can contain mixed content including any
element in the substitution group for the
<phrase.class>
element
Section
2.4.
Often a definition will also contain a
<term>
element that contains the term being defined, as
it is used in the definition itself.
<error>
The
<error>
element is used as a container for text
specifying the circumstances under which a
specific error code is to be thrown.
This element has mixed content. Along with text,
it
MAY
contain any element that is in the substitution
group for the
<phrase.class>
element.
The
<error>
element can contain mixed content including any
element in the substitution group for the
<phrase.class>
element
Section
2.4.
An
<error>
element
MUST
contain exactly one
<errorcode>
element that is transformed into the specific
error code that is to be thrown.
<principle>
and
<requirement>
The
<principle>
element is a container for
statements of principles that are expected to be adhered to.
The
<requirement>
element is a container for
statements of a requirements that are expected to be met.
Both elements have the same content model.
They are in the substitution group for the
phrase:class
element
(See
Section
2.4).
Both elements can be used as phrases within other text. However, they are also both permitted as the sole child element of table row elements (See Section 2.3.3.5.1). When they are the only child of a table row element, then the principle or requirement is typically expressed using three columns within the table, the first for the name, the second for the short description and the last for the long statement of the principle or requirement.
Attributes include:
@name
,
which contains the unique identifier that will be used
by people when referring unambiguously to the principle or requirement.
@noindex
, contains true
if you do not want
the principle or requirement
to be included as an entry in the table of contents. Otherwise
omit it or give it a value of false
.
It is convention (but not absolutely required) that the
@id
attribute starts with requirement-
or principle-
as
appropriate and then has the value of the
@name
attribute, translated to lower case everywhere and with
spaces replaced by hyphens. This makes it easier for a
human to locate the reference while editing the document.
The
<principle>
element and the
<requirement>
element both contain two child elements, the
<short>
element followed by the
<long>
element.
This schema defines the allowable content that is documented in this specification
This stylesheet is used to create a temporary XML file containing the included text
from
<include.chunk>
elements before the final transformation to HTML.
This stylesheet is used to create the final HTML output from the input XML document.
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 ).
This document draws heavily on the ideas and structures developed in the [XMLSPEC] materials produced by the W3C. It also draws on the structures that have proved their value in previous XBRL specifications.
Date | Author | Details |
---|---|---|
07 October 2007 | Geoff Shuetrim |
Initial draft created. Much copying and pasting was done. |
08 October 2007 | Geoff Shuetrim |
Refinement based on stylesheet creation. |
12 October 2007 | Geoff Shuetrim |
Added
|
15 October 2007 | Geoff Shuetrim |
Added
Fixed an error in the rendering of section references to appendices. |
11 July 2008 | Hugh Wallis |
Added
Added
Refactored stylesheet considerably Added many different document stati with appropriate boilerplate text |
14 July 2008 | Hugh Wallis |
Corrected sections about |
15 December 2008 | Geoff Shuetrim |
Removed the redundant bibliographic entries and corrected a small number of formatting problems. |
This appendix contains a list of the errata corrections that have been incorporated into this document. This represents all those errata corrections that have been approved by the XBRL International Specification Working Group up to and including 11 July 2008. 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.
Number | Date | Sections | Details |
---|---|---|---|
1. | 09 October 2007 |
Section
1 Section 2.2.1.5 | Example erratum correction. |