Citation Style Language
Bruce D'Arcus
Simon Kornblith
Frank Bennett
Rintze Zelle
Copyright 2007-2012 by Frank Bennett, Bruce D'Arcus, Simon Kornblith, and Rintze Zelle. Permission to freely use, copy and distribute.
RELAX NG compact schema for the Citation Style Language (CSL).
This macro call has no corresponding macro.
This macro call has no corresponding macro.
Subparts of the CSL schema
cs:style and cs:locale - Root Elements
Select whether citations appear in-text or as notes.
in-text
note
Specify the locale of the locale file.
Set a default style locale.
Indicate CSL version compatibility ("1.0" for CSL 1.0).
1.0
Obsolete for dependent styles. Will be disallowed with CSL 1.1.
in-text
note
cs:info - Style and Locale File Metadata
Metadata for independent styles.
Metadata for dependent styles.
Metadata for locale files.
Specify the citation format of the style (using the "citation-format"
attribute) or the fields and disciplines for which the style is
relevant (using the "field" attribute).
Specify the URI to establish the identity of the style. The URI
should be stable, unique and dereferenceable URI.
Specify the journal's ISSN(s) for journal-specific styles. An ISSN
must consist of four digits, a hyphen, three digits, and a check
digit (a numeral digit or roman X), e.g. "1234-1231".
Specify the journal's eISSN for journal-specific styles.
Specify the journal's ISSN-L for journal-specific styles.
\d{4}\-\d{3}(\d|x|X)
Specify how the URL relates to the style.
self
The URI of the CSL style itself.
template
URI of the style from which the current style is derived.
documentation
URI of style documentation.
independent-parent
Obsolete for independent styles. Will be disallowed with
CSL 1.1.
Specify how the URL relates to the style.
self
The URI of the CSL style itself.
independent-parent
URI of the CSL style whose content should be used for
processing. Required for dependent styles.
documentation
URI of style documentation.
template
Obsolete for dependent styles. Will be disallowed with CSL
1.1.
Specify when the style was initially created or made available.
Specify an abbreviated style title (e.g., "APA")
Specify when the style was last updated (e.g.,
"2007-10-26T21:32:52+02:00")
cs:locale in Independent Styles
Use to (re)define localized terms, dates and options.
Specify the affected locale(s). If "xml:lang" is not set, the
"cs:locale" element affects all locales.
cs:locale Contents - Localization Data
Localized global options are specified as attributes in the
cs:style-options element. If future versions of CSL include localized
options that are citation or bibliography specific, the elements
cs:citation-options and cs:bibliography-options can be added.
Limit the "ordinal" form to the first day of the month.
Specify whether punctuation (a period or comma) is placed within
or outside (default) the closing quotation mark.
Select the localized date format ("text" or "numeric").
text
Text date form (e.g., "December 15, 2005").
numeric
Numeric date form (e.g., "2005-12-15").
The "cs:term" element can either hold a basic string, or "cs:single" and
"cs:multiple" child elements to give singular and plural forms of the term.
long
masculine
feminine
last-digit
last-two-digits
whole-number
long
masculine
feminine
long
masculine
feminine
"verb-short" reverts to "verb" if the "verb-short" form is not available.
"symbol" reverts to "short" if the "symbol" form is not available.
"verb" and "short" revert to "long" if the specified form is not available.
long
verb
short
verb-short
symbol
Singular version of the term.
Plural version of the term.
cs:macro
Use to create collections of (reusable) formatting instructions.
cs:citation and cs:bibliography
Use to describe the formatting of citations.
Use to describe the formatting of the bibliography.
cs:names Rendering Element
[
Specify the delimiter for name lists of name variables rendered by
the same cs:names element.
]
Select the "long" (first name + last name, for Western names),
"short" (last name only, for Western names), or "count" name form
(returning the number of names in the name variable, which can be
useful for some sorting algorithms).
long
short
count
[
Set the delimiter for names in a name variable (e.g., ", " in
"Doe, Smith")
]
Use to separate the second-to-last and last name of a name list by
the "and" term or ampersand.
text
Use the "and" term (e.g., "Doe, Johnson and Smith").
symbol
Use the "ampersand" (e.g., "Doe, Johnson & Smith").
Specify when the name delimiter is used between a truncated name list
and the "et-al" (or "and others") term in case of et-al abbreviation
(e.g., "Smith, Doe et al." or "Smith, Doe, et al.").
contextual
The name delimiter is only used when the truncated name list
consists of two or more names.
always
The name delimiter is always used.
never
The name delimiter is never used.
after-inverted-name
The name delimiter is only used if the preceding name is inverted as
a result of the "name-as-sort-order" attribute.
Specify when the name delimiter is used between the second-to-last
and last name of a non-truncated name list. Only has an effect when
the "and" term or ampersand is used (e.g., "Doe and Smith" or "Doe,
and Smith").
contextual
The name delimiter is only used when the name list consists of
three or more names.
always
The name delimiter is always used.
never
The name delimiter is never used.
after-inverted-name
The name delimiter is only used if the preceding name is inverted as
a result of the "name-as-sort-order" attribute.
Set the minimum number of names needed in a name variable to activate
et-al abbreviation.
Set the number of names to render when et-al abbreviation is active.
As "et-al-min", but only affecting subsequent citations to an item.
As "et-al-use-first", but only affecting subsequent citations to an
item.
If set to "true", the "et-al" (or "and others") term is replaced by
an ellipsis followed by the last name of the name variable.
If set to "false", names are not initialized and "initialize-with"
only affects initials already present in the input data.
Activate initializing of given names. The attribute value is appended
to each initial (e.g., with ". ", "Orson Welles" becomes "O. Welles").
Specify whether (and which) names should be rendered in their sort
order (e.g., "Doe, John" instead of "John Doe").
first
Render the first name of each name variable in sort order.
all
Render all names in sort order.
Sets the delimiter for name-parts that have switched positions as a
result of "name-as-sort-order" (e.g., ", " in "Doe, John").
Use to format individual name parts (e.g., "Jane DOE").
family
given
Specify the term used for et-al abbreviation and its formatting.
Select the term to use for et-al abbreviation.
et-al
and others
Ignored in CSL 1.0.1. Will be disallowed with CSL 1.1.
Inherits variable from the parent cs:names element.
Specify substitution options when the name variables selected on the
parent cs:names element are empty.
Short version of cs:names, without children, allowed in cs:substitute.
cs:date Rendering Element
Limit the date parts rendered.
year-month-day
Year, month and day
year-month
Year and month
year
Year only
Specify overriding formatting for localized dates (affixes
cannot be overridden, as these are considered locale-specific).
Example uses are forcing the use of leading-zeros, or of the
"short" month form. Has no effect on which, and in what order,
date parts are rendered.
Specify, in the desired order, the date parts that should be
rendered and their formatting.
day
Day forms: "numeric" ("5"), "numeric-leading-zeros" ("05"), "ordinal"
("5th").
numeric
numeric-leading-zeros
ordinal
month
Months forms: "long" (e.g., "January"), "short" ("Jan."), "numeric"
("1"), and "numeric-leading-zeros" ("01").
long
short
numeric
numeric-leading-zeros
year
Year forms: "long" ("2005"), "short" ("05").
short
long
Specify a delimiter for date ranges (by default the en-dash). A custom
delimiter is retrieved from the largest date part ("day", "month" or
"year") that differs between the two dates.
cs:text Rendering Element
Use to call macros, render variables, terms, or verbatim text.
Select a macro.
Select a term.
Specify term plurality: singular ("false") or plural ("true").
Specify verbatim text.
Select a variable.
short
long
cs:number Rendering Element
Use to render a number variable.
Number forms: "numeric" ("4"), "ordinal" ("4th"), "long-ordinal"
("fourth"), "roman" ("iv").
numeric
ordinal
long-ordinal
roman
cs:label Rendering Element
Use to render a term whose pluralization depends on the content of a
variable. E.g., if "page" variable holds a range, the plural label
"pp." is selected instead of the singular "p.".
locator
page
long
short
symbol
Specify when the plural version of a term is selected.
always
never
contextual
cs:group Rendering Element
Use to group rendering elements. Groups are useful for setting a
delimiter for the group children, for organizing the layout of
bibliographic entries (using the "display" attribute), and for
suppressing the rendering of terms and verbatim text when variables
are empty.
Options
Specify whether the non-dropping particle is demoted in inverted
names (e.g., "Koning, W. de").
never
sort-only
display-and-sort
Specify whether compound given names (e.g., "Jean-Luc") are
initialized with ("J-L") or without a hyphen ("JL").
Reformat page ranges in the "page" variable.
chicago
expanded
minimal
minimal-two
Activate cite grouping and specify the delimiter for cites within a
cite group.
Activate cite grouping and specify the method of citation collapsing.
citation-number
Collapse ranges of numeric cites, e.g. from "[1,2,3]" to "[1-3]".
year
Collapse cites by suppressing repeated names, e.g. from "(Doe
2000, Doe 2001)" to "(Doe 2000, 2001)".
year-suffix
Collapse cites as with "year", but also suppresses repeated
years, e.g. from "(Doe 2000a, Doe 2000b)" to "(Doe 2000a, b)".
year-suffix-ranged
Collapses cites as with "year-suffix", but also collapses
ranges of year-suffixes, e.g. from "(Doe 2000a, Doe 2000b,
Doe 2000c)" to "(Doe 2000a-c)".
Specify the delimiter between year-suffixes. Defaults to the cite
delimiter.
Specify the delimiter following a group of collapsed cites. Defaults
to the cite delimiter.
Set to "true" to activate disambiguation by showing names that were
originally hidden as a result of et-al abbreviation.
Set to "true" to activate disambiguation by expanding names, showing
initials or full given names.
Set to "true" to activate disambiguation by adding year-suffixes
(e.g., "(Doe 2007a, Doe 2007b)") for items from the same author(s)
and year.
Specify how name are expanded for disambiguation.
all-names
Each ambiguous names is progressively transformed until
disambiguated (when disambiguation is not possible, the name
remains in its original form).
all-names-with-initials
As "all-names", but name expansion is limited to showing
initials.
primary-name
As "all-names", but disambiguation is limited to the first name
of each cite.
primary-name-with-initials
As "all-names-with-initials", but disambiguation is limited to
the first name of each cite.
by-cite
As "all-names", but only ambiguous names in ambiguous cites are
expanded.
Set the number of preceding notes (footnotes or endnotes) within
which the current item needs to have been previously cited in order
for the "near-note" position to be "true".
Set to "true" to render bibliographic entries with hanging indents.
Set the spacing between bibliographic entries.
Set the spacing between bibliographic lines.
0
Use to align any subsequent lines of bibliographic entries with the
beginning of the second field.
flush
Align the first field with the margin.
margin
Put the first field in the margin and align all subsequent
lines of text with the margin.
Substitute names that repeat in subsequent bibliographic entries by
the attribute value.
Specify the method of substitution of names repeated in subsequent
bibliographic entries.
complete-all
Requires a match of all rendered names in the name variable, and
substitutes once for all names.
complete-each
Requires a match of all rendered names in the name variable,
and substitutes for each name.
partial-each
Substitutes for each name, until the first mismatch.
partial-first
Substitutes the first name if it matches.
Options affecting cs:names, for cs:style, cs:citation and cs:bibliography.
Inheritable name option, companion for "delimiter" on cs:names.
Options affecting cs:name, for cs:style, cs:citation and cs:bibliography.
Inheritable name option, companion for "delimiter" on cs:name.
Inheritable name option, companion for "form" on cs:name.
long
short
count
cs:sort - Sorting
Specify how cites and bibliographic entries should be sorted. By
default, items appear in the order in which they were cited.
The minimum number of names needed in a name variable to activate
name list truncation. Overrides the values set on any
"et-al-(subsequent-)min" attributes.
The number of names to render when name list truncation is
activated. Overrides the values set on the
"et-al-(subsequent-)use-first" attributes.
Use to override the value of the "et-at-use-last" attribute.
Select between an ascending and descending sort.
ascending
descending
cs:choose - Conditional Statements
Use to conditionally render rendering elements.
If used, the element content is only rendered if it disambiguates two
otherwise identical citations. This attempt at disambiguation is only
made after all other disambiguation methods have failed.
true
Tests whether the given variables contain numeric text.
Tests whether the given date variables contain approximate dates.
Tests whether the locator matches the given locator types.
sub-verbo
Tests whether the cite position matches the given positions.
first
subsequent
ibid
ibid-with-locator
near-note
Tests whether the item matches the given types.
Tests whether the default ("long") forms of the given variables
contain non-empty values.
Set the testing logic.
all
Element only tests "true" when all conditions test "true" for all
given test values.
any
Element tests "true" when any condition tests "true" for any given
test value.
none
Element only tests "true" when none of the conditions test "true"
for any given test value.
Formatting attributes.
By default, bibliographic entries consist of continuous runs of text.
With the "display" attribute, portions of each entry can be
individually positioned.
block
Places the content in a block stretching from margin to margin.
left-margin
Places the content in a block starting at the left margin.
right-inline
Places the content in a block to the right of a preceding
"left-margin" block.
indent
Places the content in a block indented to the right by a standard
amount.
The font-formatting attributes are based on those of CSS and XSL-FO.
italic
normal
oblique
normal
small-caps
normal
bold
light
none
underline
baseline
sup
sub
When set to "true", quotes are placed around the rendered text.
When set to "true", periods are removed from the rendered text.
lowercase
Renders text in lowercase.
uppercase
Renders text in uppercase.
capitalize-first
Capitalizes the first character (other characters remain in
their original case).
capitalize-all
Capitalizes the first character of every word (other characters
remain in their original case).
title
Renders text in title case.
sentence
Renders text in sentence case.