Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
schema/csl-mlz.rnc
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
955 lines (846 sloc)
27.7 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" | |
namespace cs = "http://purl.org/net/xbiblio/csl" | |
namespace dc = "http://purl.org/dc/elements/1.1/" | |
dc:title [ "Citation Style Language - Extension Schema for MLZ" ] | |
dc:creator [ "Frank Bennett" ] | |
dc:creator [ "Rintze Zelle" ] | |
dc:rights [ | |
"Copyright 2012 by Frank Bennett and Rintze Zelle. Permission to freely use, copy and distribute." | |
] | |
dc:description [ | |
"Extends the official CSL schema for use with Multilingual Zotero." | |
] | |
include "csl-jurisdictions.rnc" | |
include "csl-repository.rnc" { | |
version = attribute version { "1.1mlz1" } | |
## Add "skip-words" attribute | |
locale.style-options = | |
element cs:style-options { | |
## Limit the "ordinal" form to the first day of the month. | |
[ a:defaultValue = "false" ] | |
attribute limit-day-ordinals-to-day-1 { xsd:boolean }?, | |
## Specify whether punctuation (a period or comma) is placed within | |
## or outside (default) the closing quotation mark. | |
[ a:defaultValue = "false" ] | |
attribute punctuation-in-quote { xsd:boolean }?, | |
## Resets the default list of skip-words. List is comma-delimited list of arbitrary strings. | |
attribute skip-words { text }?, | |
## Resets the default list of leading-noise-words. List is comma-delimited list of arbitrary strings. | |
attribute leading-noise-words { text }?, | |
## Resets | |
attribute name-as-sort-order { list { xsd:language+ } }?, | |
## Resets | |
attribute name-never-short { list { xsd:language+ } }?, | |
## Resets | |
attribute jurisdiction-preference { text }? | |
} | |
## Replace affixes by affixes-date on cs:date-part | |
locale.date.date-part = | |
element cs:date-part { | |
affixes-date, font-formatting, text-case, (day | month | year) | |
} | |
## Override definition of date to add use-default-locale | |
rendering-element.date = | |
element cs:date { | |
attribute variable { variables.dates }, | |
(( | |
## Limit the date parts rendered. | |
[ a:defaultValue = "year-month-day" ] | |
attribute date-parts { | |
## Year, month and day | |
"year-month-day" | |
| | |
## Year and month | |
"year-month" | |
| | |
## Year only | |
"year" | |
| | |
# Month and day only | |
"month-day" | |
}?, | |
date.form, | |
use-default-locale, | |
rendering-element.date.date-part.localized*) | |
| (rendering-element.date.date-part.non-localized+, delimiter)), | |
affixes, | |
display, | |
font-formatting, | |
text-case | |
} | |
## For translations and reprints | |
rendering-element = | |
rendering-element.names | |
| rendering-element.date | |
| rendering-element.label | |
| rendering-element.text | |
| rendering-element.number | |
| rendering-element.choose | |
| rendering-element.group | |
| rendering-element.alternative | |
| rendering-element.alternative-text | |
## Terms (adding email, instant-message, television-broadcast, radio-broadcast, and podcast) | |
terms = | |
terms.gender-assignable | |
| terms.gender-variants | |
| terms.locator | |
| | |
## Contributor roles | |
variables.names | |
| "editortranslator" | |
| | |
## Miscellaneous terms | |
"accessed" | |
| "ad" | |
| "and" | |
| "and others" | |
| "anonymous" | |
| "at" | |
| "available at" | |
| "bc" | |
| "by" | |
| "circa" | |
| "cited" | |
| "email" | |
| "et-al" | |
| "forthcoming" | |
| "from" | |
| "ibid" | |
| "in" | |
| "in press" | |
| "instant-message" | |
| "internet" | |
| "interview" | |
| "letter" | |
| "no date" | |
| "online" | |
| "podcast" | |
| "presented at" | |
| "radio-broadcast" | |
| "reference" | |
| "retrieved" | |
| "scale" | |
| "television-broadcast" | |
| "version" | |
| | |
## Punctuation | |
"open-quote" | |
| "close-quote" | |
| "open-inner-quote" | |
| "close-inner-quote" | |
| "page-range-delimiter" | |
| | |
## Seasons | |
"season-01" | |
| "season-02" | |
| "season-03" | |
| "season-04" | |
| | |
## (legacy; remove in CSL 1.1) | |
category.field | |
date.form = | |
## Select the localized date format ("text" or "numeric"). | |
attribute form { | |
## Text date form (e.g., "December 15, 2005"). | |
"text" | |
| | |
## Numeric date form (e.g., "2005-12-15"). | |
"numeric" | |
| | |
## Add imperial date form | |
"imperial" | |
} | |
year = | |
attribute name { "year" }, | |
## Year forms: "long" ("2005"), "short" ("05"). | |
[ a:defaultValue = "long" ] attribute form { "short" | "long" | "numeric" | "numeric-leading-zeros" | "imperial" }?, | |
range-delimiter | |
## Add support for locale-specific layouts | |
style.citation = | |
element cs:citation { | |
citation.options, | |
sort?, | |
citation.layout-locale*, | |
citation.layout-default | |
} | |
style.bibliography = | |
element cs:bibliography { | |
bibliography.options, | |
sort?, | |
bibliography.layout-locale*, | |
bibliography.layout | |
} | |
## Support for complex conditions | |
choose.if = ( if-simple | if-complex ) | |
choose.else-if = ( else-if-simple | else-if-complex ) | |
## Allow cs:institution element as child element of cs:names, add | |
## name-label-before, name-label-after | |
rendering-element.names = | |
element cs:names { | |
names.attributes, | |
attribute require-match { xsd:boolean }?, | |
(names.label-before?, | |
names.name?, | |
names.et-al?, | |
names.institution?, | |
names.label-after?), | |
names.substitute? | |
} | |
## Replace affixes by affixes-date on cs:date-part | |
rendering-element.date.date-part.non-localized = | |
## Specify, in the desired order, the date parts that should be | |
## rendered and their formatting. | |
element cs:date-part { | |
affixes-date, font-formatting, text-case, (day | month | year) | |
} | |
## Allow "label-form" attribute to accompany "macro" on cs:text | |
## Allow "leading-noise-words" attribute to accompany "variable" on cs:text | |
text.attributes = | |
( | |
## Select a macro. | |
attribute macro { xsd:NMTOKEN }, | |
attribute label-form { term.form }?, | |
[a:defaultValue = "false" ] attribute label-capitalize-if-first { xsd:boolean }?) | |
| ( | |
## Select a term. | |
attribute term { terms }, | |
[ a:defaultValue = "long" ] attribute form { term.form }?, | |
## Specify term plurality: singular ("false") or plural ("true"). | |
[ a:defaultValue = "false" ] attribute plural { xsd:boolean }?, | |
## Force use of the style default locale for the term | |
use-default-locale) | |
| | |
## Specify verbatim text. | |
attribute value { text } | |
| ( | |
## Select a variable. | |
attribute variable { variables.strings }, | |
## Form of the variable | |
[ a:defaultValue = "long" ] attribute form { "short" | "long" }?, | |
## What to do with leading noise words | |
attribute leading-noise-words { "drop" | "demote" }?) | |
## Allow "locator" variable on, add "label-form" attribute to cs:number | |
number.attributes = | |
attribute variable { variables.numbers | "locator" }, | |
## Number forms: "numeric" ("4"), "ordinal" ("4th"), "long-ordinal" | |
## ("fourth"), "roman" ("iv"). | |
[ a:defaultValue = "numeric" ] | |
attribute form { | |
"numeric" | "ordinal" | "long-ordinal" | "roman" | |
}?, | |
attribute label-form { term.form }?, | |
[ a:defaultValue = "false" ] attribute label-capitalize-if-first { xsd:boolean }?, | |
attribute gender { "masculine" | "feminine" }?, | |
## Render only a substring of the number input. Forces rendering as cs:text, | |
## numeric attributes will be ignored when this is used. | |
[ a:defaultValue = "false" ] | |
attribute substring { xsd:integer }? | |
name.attributes = | |
## Use to separate the second-to-last and last name of a name list by | |
## the "and" term or ampersand. | |
attribute and { | |
## Use the "and" term (e.g., "Doe, Johnson and Smith"). | |
"text" | |
| | |
## Use the "ampersand" (e.g., "Doe, Johnson & Smith"). | |
"symbol" | |
}?, | |
## 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."). | |
[ a:defaultValue = "contextual" ] | |
attribute delimiter-precedes-et-al { | |
## The name delimiter is only used when the truncated name list | |
## consists of two or more names. | |
"contextual" | |
| | |
## The name delimiter is always used. | |
"always" | |
| | |
## The name delimiter is never used. | |
"never" | |
| | |
## The name delimiter is only used if the preceding name is inverted as | |
## a result of the "name-as-sort-order" attribute. | |
"after-inverted-name" | |
}?, | |
## 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"). | |
[ a:defaultValue = "contextual" ] | |
attribute delimiter-precedes-last { | |
## The name delimiter is only used when the name list consists of | |
## three or more names. | |
"contextual" | |
| | |
## The name delimiter is always used. | |
"always" | |
| | |
## The name delimiter is never used. | |
"never" | |
| | |
## The name delimiter is only used if the preceding name is inverted as | |
## a result of the "name-as-sort-order" attribute. | |
"after-inverted-name" | |
}?, | |
## Set the minimum number of names needed in a name variable to activate | |
## et-al abbreviation. | |
attribute et-al-min { xsd:integer }?, | |
## Set the number of names to render when et-al abbreviation is active. | |
attribute et-al-use-first { xsd:integer }?, | |
## As "et-al-min", but only affecting subsequent citations to an item. | |
attribute et-al-subsequent-min { xsd:integer }?, | |
## As "et-al-use-first", but only affecting subsequent citations to an | |
## item. | |
attribute et-al-subsequent-use-first { xsd:integer }?, | |
## 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. | |
[ a:defaultValue = "false" ] | |
attribute et-al-use-last { xsd:boolean }?, | |
## If set to "false", names are not initialized and "initialize-with" | |
## only affects initials already present in the input data. | |
[ a:defaultValue = "true" ] attribute initialize { xsd:boolean }?, | |
## Activate initializing of given names. The attribute value is appended | |
## to each initial (e.g., with ". ", "Orson Welles" becomes "O. Welles"). | |
attribute initialize-with { text }?, | |
## Specify whether (and which) names should be rendered in their sort | |
## order (e.g., "Doe, John" instead of "John Doe"). | |
attribute name-as-sort-order { | |
## Render the first name of each name variable in sort order. | |
"first" | |
| | |
## Render all names in sort order. | |
"all" | |
}?, | |
## Sets the delimiter for name-parts that have switched positions as a | |
## result of "name-as-sort-order" (e.g., ", " in "Doe, John"). | |
[ a:defaultValue = ", " ] attribute sort-separator { text }?, | |
## Suppress output if number of names is at or above a min, | |
## or at or below a max value | |
attribute suppress-min { xsd:integer }?, | |
attribute suppress-max { xsd:integer }? | |
## Drop affixes | |
label.attributes-shared = | |
## Specify when the plural version of a term is selected. | |
[ a:defaultValue = "contextual" ] | |
attribute plural { "always" | "never" | "contextual" }?, | |
font-formatting, | |
strip-periods, | |
text-case | |
## Add back affixes (removed from label.attributes-shared) | |
label.attributes = | |
attribute variable { variables.numbers | "locator" | "page" }, | |
[ a:defaultValue = "long" ] | |
attribute form { "long" | "short" | "symbol" | "static" }?, | |
[ a:defaultValue = "false" ] | |
attribute capitalize-if-first { xsd:boolean }?, | |
use-default-locale, | |
affixes | |
## Add "is-parallel", "quotes", "subgroup-delimiter", | |
## "subgroup-delimiter-precedes-last", attribute on cs:group | |
group.attributes = | |
quotes, | |
attribute subgroup-delimiter { text }?, | |
attribute subgroup-delimiter-precedes-last { | |
"contextual" | "always" | "never" | |
}?, | |
attribute no-repeat { | |
list { variables+ } | |
}?, | |
attribute parallel-first { | |
list { variables+ } | |
}?, | |
attribute parallel-last { | |
list { variables+ } | |
}?, | |
attribute parallel-last-to-first { | |
list { variables+ } | |
}?, | |
attribute parallel-delimiter-override { | |
xsd:string | |
}?, | |
attribute parallel-delimiter-override-on-suppress { | |
xsd:string | |
}?, | |
attribute layout-delimiter-override { | |
xsd:string | |
}?, | |
attribute reject { | |
"comma-safe" | "comma-safe-numbers-only" | "empty-label" | "empty-label-no-decor" | |
}?, | |
attribute require { | |
"comma-safe" | "comma-safe-numbers-only" | "empty-label" | "empty-label-no-decor" | |
}? | |
style.options = | |
style.demote-non-dropping-particle, | |
style.initialize-with-hyphen, | |
style.page-range-format, | |
style.year-range-format, | |
style.require-comma-on-symbol, | |
names-inheritable-options, | |
name-inheritable-options, | |
attribute disable-duplicate-year-suppression { | |
list { jurisdictions+ } | |
}?, | |
attribute track-containers { list { item-types+ } }? | |
## Add conditions, allow "type" on "variable", limit "position" to one | |
## position | |
condition = | |
## 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. | |
[ a:defaultValue = "true" ] attribute disambiguate { "true" | "check-ambiguity-and-backreference" } | |
| | |
## Tests whether the given variables contain numeric text. | |
attribute is-numeric { | |
list { variables+ } | |
} | |
| | |
## Tests whether the given date variables contain approximate dates. | |
attribute is-uncertain-date { | |
list { variables.dates+ } | |
} | |
| | |
## Tests whether the locator matches the given locator types. | |
attribute locator { | |
list { (terms.locator.testable | "sub-verbo")+ } | |
} | |
| | |
## Tests whether the cite position matches the given positions. | |
attribute position { | |
list { | |
"first" | |
| "container-subsequent" | |
| "subsequent" | |
| "ibid" | |
| "ibid-with-locator" | |
| "near-note" | |
| "far-note" | |
} | |
} | |
| | |
## Tests whether the item matches the given types. | |
attribute type { | |
list { item-types+ } | |
} | |
| | |
## Tests whether the default ("long") forms of the given variables | |
## contain non-empty values. | |
attribute variable { | |
list { variables+ | "type" } | |
} | |
| | |
## Tests whether the statement containing the condition is being | |
## executed inside cs:citation or cs:bibliography | |
attribute context { "citation" | "bibliography" | "alternative" } | |
| | |
## False if no date value, or date contains a month or season. | |
attribute has-year-only { | |
list { variables.dates+ } | |
} | |
| | |
## False if no date value, no month or season value, or date contains a day. | |
attribute has-to-month-or-season { | |
list { variables.dates+ } | |
} | |
| | |
## False if no date value, no month value, or no day value. | |
attribute has-day { | |
list { variables.dates+ } | |
} | |
| attribute is-plural { variables.names } | |
| | |
## Tests whether the jurisdiction variable matches the given jurisdictions (deprecated, | |
## as it will validate and match only for exact match to country code) | |
attribute jurisdiction { | |
list { jurisdictions+ } | |
} | |
| | |
## Tests whether the country variable matches the given country code | |
attribute country { | |
list { jurisdictions+ } | |
} | |
| | |
## Tests whether the page label matches the given label | |
attribute page { | |
list { terms.locator+ } | |
} | |
| | |
## Tests whether the number label matches the given label | |
## "number" is an anomaly | |
## In the Juris-M in-field abbrevs for extended locator labels, | |
## "no." stands for "issue". | |
## However, when testing for @number label, the processor | |
## assigns the label "number" as label to the number field | |
## if it has no value. So: | |
## no. 22 = issue 22 | |
## 22 = number 22 | |
attribute number { | |
list { terms.locator+ | "number" } | |
} | |
| | |
## True if the locale of the item matches the | |
## locale to be tested. Both are resolved before | |
## testing. | |
attribute locale { | |
list { xsd:language+ } | |
} | |
| | |
## True if the genre field of the item matches | |
## the respective argument, where "-" in the | |
## argument represents a space character. | |
attribute genre { | |
"email" | |
| "instant-message" | |
| "podcast" | |
| "radio-broadcast" | |
| "television-broadcast" | |
} | |
| | |
## Court class for Jurism | |
attribute court-class { | |
xsd:string | |
} | |
| | |
## Chapter count for two-stage formatting of chapters in bibliography | |
attribute container-multiple { | |
xsd:boolean | |
} | |
| | |
## Bibliography position as an item in a tracked container | |
attribute container-subsequent { | |
xsd:boolean | |
} | |
| | |
## Has multiple subunits separated by | | |
attribute has-subunit { | |
list { variables+ } | |
} | |
| | |
## Matches value of cite-form supplied by Abbrevs Filter | |
attribute cite-form { | |
xsd:integer | |
} | |
affixes = | |
[ a:defaultValue = "" ] | |
attribute prefix { string-no-leading-space }?, | |
[ a:defaultValue = "" ] | |
attribute suffix { string-no-trailing-space }? | |
## Add "normal" value on text-case attribute | |
text-case = | |
attribute text-case { | |
## display all text as lowercase | |
"lowercase" | |
| | |
## display all text as uppercase | |
"uppercase" | |
| | |
## capitalize first character; other characters | |
## displayed as is | |
"capitalize-first" | |
| | |
## capitalize first character of every word; | |
## other characters displayed lowercase | |
"capitalize-all" | |
| | |
## display as title case (the Chicago Manual | |
## of Style calls this "headline style") | |
"title" | |
| | |
## display as sentence case/sentence style | |
"sentence" | |
| | |
## do not perform formatting operations on input | |
"normal" | |
}? | |
## standard variables | |
variables.strings = | |
"abstract" | |
| "annote" | |
| "archive" | |
| "archive_location" | |
| "archive-place" | |
| "citation-label" | |
| "citation-number" | |
| "collection-title" | |
| "container-title" | |
| "container-title-short" | |
| "country" | |
| "dimensions" | |
| "DOI" | |
| "event" | |
| "event-place" | |
| "first-reference-note-number" | |
| "first-container-reference-note-number" | |
| "genre" | |
| "hereinafter" | |
| "ISBN" | |
| "ISSN" | |
| "jurisdiction" | |
| "keyword" | |
| "locator" | |
| "medium" | |
| "note" | |
| "original-publisher" | |
| "original-publisher-place" | |
| "original-title" | |
| "PMID" | |
| "PMCID" | |
| "publisher" | |
| "publisher-place" | |
| "references" | |
| "reviewed-title" | |
| "scale" | |
| "section" | |
| "source" | |
| "status" | |
| "title" | |
| "title-short" | |
| "title-main" | |
| "title-sub" | |
| "URL" | |
| "version" | |
| "volume-title" | |
| "year-suffix" | |
independent-style.style.info = | |
element cs:info { | |
info.title, | |
info.title-short?, | |
info.id, | |
independent-style.info.link.self, | |
independent-style.info.link.template*, | |
independent-style.info.link.documentation+, | |
info.author*, | |
info.contributor*, | |
info.category.citation-format, | |
info.category.field*, | |
info.issn?, | |
info.eissn?, | |
info.issnl?, | |
info.summary?, | |
info.published?, | |
info.updated, | |
info.rights, | |
info.law-module? | |
} | |
} | |
## Set court categories as prep for court-class condition | |
locale.court-class = | |
element cs:court-class { | |
attribute name { xsd:string }, | |
attribute country { jurisdictions }, | |
attribute courts { list { xsd:string+ } } | |
} | |
style.locale |= | |
## Use to (re)define localized terms, dates and options. | |
element cs:locale { | |
## Specify the affected locale(s). If "xml:lang" is not set, the | |
## "cs:locale" element affects all locales. | |
attribute xml:lang { xsd:language }?, | |
(locale.style-options? & locale.date* & locale.terms? & locale.court-class*) | |
} | |
## Use default locale (for cs:text w/term, cs:label, and cs:date-part) | |
use-default-locale = ( [ a:defaultValue = "false" ] attribute default-locale { xsd:boolean }? ) | |
info.law-module = | |
element cs:law-module { | |
attribute types { | |
list { | |
( "bill" | |
| "legal_case" | |
| "legislation" | |
| "bill" | |
| "report" | |
| "regulation" | |
| "hearing" | |
| "locator" | |
)+ | |
} | |
} | |
} | |
term.form |= "static" | |
## Add support for locale-specific layouts | |
citation.layout-locale = | |
element cs:layout { | |
affixes, | |
delimiter, | |
font-formatting, | |
layout.locale, | |
rendering-element+ | |
} | |
citation.layout-default = | |
element cs:layout { | |
affixes, delimiter, font-formatting, rendering-element+ | |
} | |
## Add support for locale-specific layouts | |
bibliography.layout-locale = | |
element cs:layout { | |
affixes, | |
font-formatting, | |
layout.locale, | |
rendering-element+ | |
} | |
layout.locale = | |
attribute locale { | |
list { xsd:language+ } | |
} | |
## Similar to label, but inherits variable from <names> tag | |
names.label-before = | |
element cs:label { | |
attribute form { term.form }?, | |
affixes-leading-name-label, | |
label.attributes-shared | |
} | |
names.label-after = | |
element cs:label { | |
attribute form { term.form }?, | |
affixes-trailing-name-label, | |
label.attributes-shared | |
} | |
## Institution, used to format institutional subunit names | |
## Institutional subunit names always follow personal names | |
## when this element is included in cs:names | |
names.institution = | |
element cs:institution { | |
institution-attributes, | |
## formatting and affixes of long and short | |
## forms may be controlled individually | |
element cs:institution-part { | |
((attribute name { "long" }, | |
## apply formatting to long form only | |
## if short form is also available | |
attribute if-short { "true" | "false" }?) | |
| attribute name { "short" }), | |
text-case, | |
strip-periods, | |
font-formatting, | |
affixes-trailing-name-label | |
}* | |
} | |
## Attributes for use in formatting institution names | |
institution-attributes = | |
delimiter?, | |
attribute form { "long" | "short" }?, | |
attribute part-separator { text }?, | |
## The order of institution subunits can be reversed | |
attribute reverse-order { "true" | "false" }?, | |
( | |
## Include the first n institutional subunit names, | |
## even when a personal name is also present | |
attribute use-first { xsd:integer } | |
| | |
## Include the first n institutional subunit names | |
## only if no personal names are present | |
attribute substitute-use-first { xsd:integer })?, | |
## Controls appearance of "and"/"&". Default is "none". | |
attribute and { "text" | "symbol" | "none" }?, | |
## Always include the last n institutional subunit names, | |
## after first dropping subunits with stop-last | |
attribute use-last { xsd:integer }?, | |
## Always ignore the last n institutional subunit names | |
attribute stop-last { xsd:integer }?, | |
## Controls which forms of an institutional subunit name | |
## to include | |
attribute institution-parts { | |
"long" | "short" | "long-short" | "short-long" | |
}?, | |
## Suppress output if number of names is at or above a min, | |
## or at or below a max value | |
attribute suppress-min { xsd:integer }?, | |
attribute suppress-max { xsd:integer }? | |
## Abbreviation setting of ranges in year dates | |
## (by default no reformatting is applied to the input data). | |
style.year-range-format = | |
attribute year-range-format { | |
"expanded" | "minimal" | "minimal-two" | "chicago" | |
}? | |
style.require-comma-on-symbol = | |
attribute require-comma-on-symbol { | |
"never" | "always" | "after-number" | |
}? | |
## Strings for use in affixes | |
string-no-leading-space = xsd:string { pattern = "([^ ].*)*" } | |
string-no-trailing-space = xsd:string { pattern = "(.*[^ ])*" } | |
affixes-date = | |
attribute prefix { text }?, | |
attribute suffix { text }? | |
affixes-leading-name-label = | |
attribute prefix { string-no-leading-space }?, | |
attribute suffix { text }? | |
affixes-trailing-name-label = | |
attribute prefix { text }?, | |
attribute suffix { string-no-trailing-space }? | |
## Modifications to contents csl-terms.rnc | |
div { | |
## Add locator terms | |
terms.locator.testable |= "Chapter" | "Section" | "article" | "rule" | "title" | "number" | |
| "illustration" | "introduction" | "preamble" | "principle" | "publication" | "schedule" | |
| "series," | "subdivision" | "subsection" | "supplement" | "table" | "title" | |
| "subparagraph" | "amendment" | "annotation" | "appendix" | "bibliography" | "clause" | |
| "comment" | "decision" | "department" | "division" | "example" | "hypothetical" | "field" | |
## Add non-locator terms accompanying number variables | |
terms.non-locator-number-variables |= | |
"supplement" | |
| | |
## Extended numeric terms | |
xsd:string { | |
pattern = | |
"(chapter\-number|collection\-number|edition|issue|note|number|number\-of\-volumes|page|section|volume|)\-\d{2}" | |
} | |
} | |
## Additional item types (csl-types.rnc) | |
div { | |
item-types |= | |
"classic" | "gazette" | "regulation" | "treaty" | "standard" | "hearing" | "video" | "legal_commentary" | |
} | |
## Additional variables (csl-variables.rnc) | |
div { | |
## Add name variables | |
variables.names |= "authority" | "director" | "commenter" | "committee" | "contributor" | "alt-translator" | "dummy" | |
## Add date variables | |
variables.dates |= "available-date" | "locator-date" | "publication-date" | "alt-issued" | |
## Add number variables | |
variables.numbers |= "call-number" | "page" | "page-first" | "supplement" | "division" | "locator-extra" | "document-number" | |
## Add string variables | |
variables.strings |= "gazette-flag" | "admin-flag" | "document-name" | "archive_collection" | "language-name" | "language-name-original" | "alt-title" | "alt-container-title" | |
} | |
## For complex conditions | |
div { | |
if-simple = element cs:if { match?, condition+, rendering-element* } | |
if-complex = element cs:if { cs-conditions, rendering-element* } | |
else-if-simple = element cs:else-if { match?, condition+, rendering-element* } | |
else-if-complex = element cs:else-if { cs-conditions, rendering-element* } | |
cs-conditions = element cs:conditions { match, cs-condition+ } | |
cs-condition = element cs:condition { match?, condition+ } | |
} | |
div { | |
rendering-element.alternative = | |
## Use to enclose a set of rendering elements. Elements within the alternative | |
## scope will render in the destination locale of a translation or reprint. | |
## See also alternative-text. | |
element cs:alternative { | |
affixes, | |
delimiter, | |
rendering-element+ | |
} | |
} | |
div { | |
rendering-element.alternative-text = | |
## Reruns the cs:layout scope with alternative data. Use alternative-text | |
## to add an annotation providing details of the source of a reprint or | |
## translation. | |
element cs:alternative-text { | |
affixes | |
}? | |
} | |
div { | |
exclude.types = attribute exclude-types { list { item-types+ } } | |
bibliography.options |= bibliography.hanging-indent, | |
bibliography.line-formatting-options, | |
bibliography.second-field-align, | |
bibliography.subsequent-author-substitute-options, | |
names-inheritable-options, | |
name-inheritable-options, | |
exclude.types?, | |
attribute consolidate-containers { list { item-types+ } }? | |
} |