327 lines
14 KiB
Plaintext
327 lines
14 KiB
Plaintext
# This file is a customization of DocBook V5.0 initially created by
|
|
# Corbas Consulting Ltd on behalf of Bloomsbury Academic, and
|
|
# subsequently (2013) considerably extended by Brad Scott,
|
|
# Brambletye Publishing.
|
|
# This schema customizes the DocBook Publishers Schema version 1.0
|
|
#
|
|
# Copyright 1992-2007 HaL Computer Systems, Inc.,
|
|
# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
|
|
# Corporation, Norman Walsh, Sun Microsystems, Inc., and the
|
|
# Organization for the Advancement of Structured Information
|
|
# Standards (OASIS).
|
|
#
|
|
#
|
|
#
|
|
# Permission to use, copy, modify and distribute the DocBook schema
|
|
# and its accompanying documentation for any purpose and without fee
|
|
# is hereby granted in perpetuity, provided that the above copyright
|
|
# notice and this paragraph appear in all copies. The copyright
|
|
# holders make no representation about the suitability of the schema
|
|
# for any purpose. It is provided "as is" without expressed or implied
|
|
# warranty.
|
|
#
|
|
# If you modify the DocBook schema in any way, label your schema as a
|
|
# variant of DocBook. See the reference documentation
|
|
# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook)
|
|
# for more information.
|
|
#
|
|
# Please direct all questions, bug reports, or suggestions for changes
|
|
# to the docbook@lists.oasis-open.org mailing list. For more
|
|
# information, see http://www.oasis-open.org/docbook/.
|
|
|
|
|
|
# -------------------
|
|
# Version history
|
|
#
|
|
# 20171115: added olink/@type='glossary'
|
|
# 20171005: added otherHardback as @role value on biblioid[@class='isbn']
|
|
# 20170602: added philosopherName as @role value on phrase
|
|
# 20170412: trailing citations in bibliodiv now optional
|
|
# 20170221: added section/@role='recipe'
|
|
# 20160720: added annotations as @role value on note
|
|
# 20160707: added caseName as @role value on phrase; and extension so @label allowed on informalexample
|
|
# 20160705: added support for legal case reports, incl note/@role
|
|
# 20160314: added openAccess as value of biblioid/@role
|
|
# 20160210: added specialEdition as value of biblioid/@role
|
|
# 20151209: added info as @role value on para; and recording and film as values on bibliomixed
|
|
# 20151123: added companionWebsite as value of biblioset/@role to support the text block that may sometimes appear
|
|
# 20151101: added set, pack, otherVolume as permissible valies of biblioid/@role for ISBN types
|
|
# 20151029: added end-para-note as an option for footnote/@role, for legal texts
|
|
# 20150930: added period and gender for para/@role for additional reference support
|
|
# 20150928: added oao as value for para/@role to support Oxford Art Online link blocks
|
|
# 20150515: added fashionKeywords as a @role option for keywordset; and @role=fpa to mediaobject for FPA articles
|
|
# removed species as a @role option on bibliomisc
|
|
# added taxonRank, taxonName, taxonEnglish to phrase/@role
|
|
# added taxonForeign to foreignphrase/@role
|
|
# added taxonAuthority to para/@role
|
|
# 20150313: added @role="lawStatedAt" to date element to support legal books
|
|
# 20150224: added trade-pbk as a ISBN type
|
|
# 20141022: added @role=legalContents to preface for tables of cases and statutes etc
|
|
# extended content model of formalpara for legal texts
|
|
# 20141008: added @role=embeddedArticle to sidebar for features in complex reference works, eg BEWDF
|
|
# 20140910: added @role=continuation to phrase for textual notes that indicate when text continues, in case this needs to be displayed differently
|
|
# 20140908: added @role=snapshotArticle to article for BEWDF and related content
|
|
# added @role=noPrintRights to releaseinfo
|
|
# 20140704: added @role ="synonym" | "pronunciation" | "origin" to phrase, for dictionary granularity
|
|
# added @role="category" | "species" to bibliomisc, for article classification, and natural history content
|
|
# added @role=articleGroup to article for groups of articles in A-Z reference
|
|
# added @role=subArticle to section for article groups
|
|
# 20140623: added @role = "overview-objectives" | "terms" | "exercises-activities" to section and sidebar
|
|
# 20140619: added keywordset + bibliography @role values for BEWDF and wider support, and new @role values for article
|
|
# 20140422: added olink @type value
|
|
# 20140421: added @role=relative to link to support links to media in the data package
|
|
# 20140311: added @role=toc to itemizedlist to support inline toc processing
|
|
# 20140125: added @role to link to support better checking of targets
|
|
# 20140123: allowed drama and poetry within epigraph
|
|
# 20140121: added @role=impressions on para
|
|
# 20140113: added @role=titlePage to cover, and @role=imprintLogo to mediaobject
|
|
# 20140110: added @role=translation to title
|
|
# 20140108: added @role=description to bibliomisc for other general content in some biblio items
|
|
# 20131219: added title/@role value "keepWithNext" for some A-Z support
|
|
# added para[@role=see] for A-Z articles
|
|
# 20131218: allowed @role on article
|
|
# 20131213: allowed nested <part>s
|
|
# -------------------
|
|
|
|
namespace ctrl = "http://nwalsh.com/xmlns/schema-control/"
|
|
namespace rng = "http://relaxng.org/ns/structure/1.0"
|
|
namespace s = "http://www.ascc.net/xml/schematron"
|
|
namespace db = "http://docbook.org/ns/docbook"
|
|
default namespace = "http://docbook.org/ns/docbook"
|
|
|
|
include "publishers-51cr.rnc"
|
|
{
|
|
|
|
# Extensions to the DocBook schema
|
|
db.epigraph =
|
|
element epigraph {
|
|
db.epigraph.attlist,
|
|
db.epigraph.info,
|
|
db.attribution?,
|
|
(db.para.blocks | db.literallayout | db.linegroup | db.dialogue | db.poetry | db.drama)+
|
|
}
|
|
|
|
# Legal books sometimes have more than just a para in a numbered item
|
|
db.formalpara =
|
|
## A paragraph with a title
|
|
element formalpara {
|
|
db.formalpara.attlist,
|
|
db.formalpara.info,
|
|
db.indexing.inlines*,
|
|
(db.all.blocks)+
|
|
}
|
|
|
|
|
|
# this has been loosened to allow daggers etc as footnote marks (was NMTOKEN)
|
|
## Identifies the desired footnote mark
|
|
db.footnote.label.attribute = attribute label { text }
|
|
|
|
# some books have nested part divisions, so we need to add db.part here
|
|
db.components =
|
|
db.dedication
|
|
| db.acknowledgements
|
|
| db.preface
|
|
| db.chapter
|
|
| db.appendix
|
|
| db.article
|
|
| db.colophon
|
|
| db.part
|
|
|
|
|
|
|
|
db.toc.components = db.toc
|
|
|
|
|
|
# Add @label to informalexample, since you can get numbered examples, even if they have no title
|
|
db.informalexample.attlist =
|
|
db.informalexample.role.attribute?
|
|
& db.informalexample.label.attribute?
|
|
& db.common.attributes
|
|
& db.common.linking.attributes
|
|
& db.informalexample.floatstyle.attribute?
|
|
& (db.informalexample.width.attribute
|
|
| db.informalexample.pgwide.attribute)?
|
|
|
|
|
|
|
|
# Constraints added to tighten schema
|
|
# enforce @xml:id in some places
|
|
|
|
db.book.attlist =
|
|
db.book.role.attribute
|
|
& db.xml.id.attribute
|
|
& db.common.base.attributes
|
|
& db.common.linking.attributes
|
|
& db.label.attribute?
|
|
& db.book.status.attribute?
|
|
|
|
db.book.role.attribute = attribute role { "fullText" | "pdfOnly"}
|
|
|
|
db.preface.role.attribute = attribute role { "prelims" | "contributors" | "legalContents" }
|
|
|
|
db.part.role.attribute = attribute role { "front" | "back" | "labelOverRide" }
|
|
|
|
db.article.role.attribute = attribute role { "xref" | "lessonPlan" | "biblioArticle" | "articleGroup" | "snapshotArticle"}
|
|
|
|
db.chapter.role.attribute = attribute role { "notes" | "labelOverRide" }
|
|
|
|
db.appendix.role.attribute = attribute role { "ancillary" }
|
|
|
|
db.section.role.attribute = attribute role { "overview-objectives" | "terms" | "exercises-activities" | "notes" | "labelOverRide" | "bibliography" | "subArticle" | "recipe" }
|
|
|
|
db.figure.role.attribute = attribute role { "labelOverRide" }
|
|
|
|
db.olink.type.attribute = attribute type { "otherBook" | "otherArticle" | "glossary" }
|
|
|
|
db.keywordset.role.attribute = attribute role { "BergGlossary" | "BergKeywords" | "fashionKeywords"}
|
|
|
|
db.bibliography.role.attribute = attribute role { "further-reading" }
|
|
|
|
db.bibliomixed.role.attribute = attribute role { "monograph" | "serial" | "contribution" | "article" | "message" | "website" | "unpublished" | "case" | "legislation" | "other" | "series" | "recording" | "film"}
|
|
db.bibliomixed.attlist =
|
|
db.bibliomixed.role.attribute
|
|
& db.xml.id.attribute
|
|
& db.common.base.attributes
|
|
& db.annotations.attribute?
|
|
|
|
db.personname.role.attribute = attribute role { "first-last" | "last-first" }
|
|
|
|
db.bibliomisc.role.attribute = attribute role { "series" | "imprint" | "previousTitle" | "legalRef" | "heading1" | "heading2" | "contributorStatement" | "anon" | "description" | "category"}
|
|
db.bibliomisc.attlist =
|
|
db.bibliomisc.role.attribute
|
|
& db.common.attributes
|
|
& db.common.linking.attributes
|
|
|
|
db.date.role.attribute = attribute role { "accessed" | "lawStatedAt" }
|
|
|
|
db.pubdate.role.attribute = attribute role { "published" }
|
|
|
|
db.link.role.attribute = attribute role { "bib" | "figure" | "table" | "xref" | "relative" }
|
|
|
|
db.mediaobject.role.attribute = attribute role { "imprintLogo" | "fpa" }
|
|
|
|
db.releaseinfo.role.attribute = attribute role { "noDigitalRights" | "noPrintRights"}
|
|
|
|
db.bridgehead.role.attribute = attribute role { "level1" | "level2" | "level3" | "level4" }
|
|
|
|
db.biblioid.role.attribute = attribute role { "hardback" | "paperback" | "xml" | "epdf" | "epub" | "trade-pbk" | "set" | "pack" | "otherVolume" | "specialEdition" | "openAccess" | "otherHardback" }
|
|
|
|
db.phrase.role.attribute = attribute role { "resp" | "stageDirection" | "source" | "term" | "articleTitle" | "bookTitle" | "periodicalTitle" | "seg" | "synonym" | "pronunciation" | "origin" | "continuation" | "taxonRank" | "taxonName" | "taxonEnglish" | "caseName" | "philosopherName"}
|
|
|
|
db.foreignphrase.role.attribute = attribute role { "taxonForeign" }
|
|
|
|
db.itemizedlist.role.attribute = attribute role { "toc" }
|
|
|
|
db.abstract.role.attribute = attribute role { "blurb" | "authorAbstract" | "extract" }
|
|
db.abstract.attlist =
|
|
db.abstract.role.attribute
|
|
& db.common.attributes
|
|
& db.common.linking.attributes
|
|
|
|
db.firstname.role.attribute = attribute role { "initials" }
|
|
|
|
db.othername.role.attribute = attribute role { "middle" | "middle-initials" }
|
|
|
|
db.othercredit.role.attribute = attribute role { "etal" }
|
|
|
|
db.lineage.role.attribute = attribute role { "comma-before" }
|
|
|
|
db.imageobject.role.attribute = attribute role { "suppressPDF" }
|
|
|
|
db.legalnotice.role.attribute = attribute role { "CIP" | "CC" | "Open" }
|
|
|
|
db.note.role.attribute = attribute role { "disposition" | "facts" | "history" | "holding" | "judgment" | "annotations" }
|
|
|
|
db.para.role.attribute = attribute role { "right" | "left" | "center" | "fullOut" | "spaceBefore" | "see" | "impressions" | "source" | "taxonAuthority" | "oao" | "gender" | "period" | "info" | "caseNumber" | "court" | "panel" | "hearingDate" | "catchwords" | "legalRepresentation" | "judgmentDate" | "judgmentBy"}
|
|
|
|
db.address.role.attribute = attribute role { "right" | "left" | "center" }
|
|
|
|
db.attribution.role.attribute = attribute role { "right" | "left" | "center" }
|
|
|
|
db.footnote.role.attribute = attribute role { "end-ch-note" | "end-bk-note" | "end-para-note" | "margin1" | "margin2" }
|
|
|
|
db.line.role.attribute = attribute role { "right" | "left" | "center" | "stageDirection" | "partInitial" | "partMedial" | "partFinal"}
|
|
|
|
db.dialogue.role.attribute = attribute role { "line-follows-speaker" | "line-below-speaker" }
|
|
|
|
db.dialogue.attlist =
|
|
db.dialogue.role.attribute
|
|
& db.common.attributes
|
|
& db.common.linking.attributes
|
|
|
|
db.title.role.attribute = attribute role { "series" | "keepWithNext" | "translation" }
|
|
|
|
db.volumenum.role.attribute = attribute role { "series" }
|
|
|
|
db.sidebar.role.attribute = attribute role { "overview-objectives" | "terms" | "exercises-activities" | "sidebar1" | "sidebar2" | "sidebar3" | "sidebar4" | "sidebar5" | "sidebar6" | "sidebar7" | "sidebar8" | "sidebar9" | "plateSection" | "embeddedArticle" }
|
|
|
|
# enforce info/title at chunks
|
|
|
|
db.book.info = db._info.title.req
|
|
db.preface.info = db._info.title.req
|
|
db.chapter.info = db._info.title.req
|
|
db.part.info = db._info.title.req
|
|
db.acknowledgements.info = db._info.title.req
|
|
db.appendix.info = db._info.title.req
|
|
db.glossary.info = db._info.title.req
|
|
db.bibliography.info = db._info.title.req
|
|
db.index.info = db._info.title.req
|
|
|
|
|
|
db.condition.attribute = attribute condition { "hidden" | "display" | "mathml" | "non-mathml" }
|
|
|
|
db.outputformat.attribute =
|
|
|
|
## Indicates the output format (for example, print or epub) to which the element applies
|
|
attribute outputformat { "print"| "web" | "epub" | "e-Only" }
|
|
|
|
db.emphasis.role.attribute = attribute role { "italic" | "bold" | "underline" | "line-through" | "roman" | "monospace" | "smallcaps" | "larger" | "smaller" | "sans-serif" | "serif"}
|
|
db.emphasis.attlist =
|
|
db.emphasis.role.attribute
|
|
& db.common.attributes
|
|
& db.common.linking.attributes
|
|
|
|
|
|
db.bibliolist.role.attribute = attribute role { "inline" }
|
|
|
|
db.relation.attribute =
|
|
|
|
## Identifies the relationship between the bibliographic elements
|
|
attribute relation { "book" | "journal" | "article" | "part" | "originalLang" | "translation" | "otherEdition"}
|
|
|
|
db.bibliomset.relation.attribute = db.relation.attribute
|
|
db.bibliomset.role.attribute = attribute role { text }
|
|
db.bibliomset.attlist =
|
|
db.bibliomset.role.attribute?
|
|
& db.common.attributes
|
|
& db.common.linking.attributes
|
|
& db.bibliomset.relation.attribute
|
|
|
|
db.biblioset.role.attribute = attribute role { "publisher" | "isbns" | "series" | "companionWebsite"}
|
|
|
|
db.cover.role.attribute = attribute role { "halfTitleVerso" | "series" | "titlePage"}
|
|
db.cover.attlist =
|
|
db.cover.role.attribute
|
|
& db.common.attributes
|
|
& db.common.linking.attributes
|
|
|
|
|
|
}
|
|
|
|
# extensions to DocBook
|
|
# new @role on table
|
|
db.table.role.attribute = attribute role { "labelOverRide" }
|
|
|
|
# new @label on informalexample
|
|
db.informalexample.label.attribute = db.label.attribute
|
|
|
|
# trailing citations in bibliodiv now optional
|
|
db.bibliodiv |=
|
|
|
|
## A section of a bibliography
|
|
element bibliodiv {
|
|
db.bibliodiv.attlist,
|
|
db.bibliodiv.info,
|
|
db.all.blocks*,
|
|
(db.biblioentry | db.bibliomixed)*
|
|
} |