teacup/rnc/product-manifest.rnc

86 lines
2.6 KiB
Plaintext
Raw Permalink Normal View History

2021-12-15 11:29:23 +00:00
# Schema to model products in the Bloomsbury XML CMS.
#
# A product is defined as one or more content items to be
# published for sale or other distribution.
#
# Each item of content is represented by an <item>, whose
# id attribute is the unique identifier used by the CMS for
# that item.
#
# Similar items are grouped using <content>.
# The source and target content types express respectively:
# - the "true" content type (i.e. as mastered and managed); and
# - the content type specific to the product.
# The latter need not be given: if it is absent, the target
# content type should be assumed to be the same as the source
# content type.
#
# product/(@name,@description) are machine- and human-readable
# labels for the product, respectively.
#
# content/@label is an optional, product-specific label for the
# group of items.
#
# content/@pipelineRef refers to the ID of a pipeline to be
# used to process the content on publication from the system.
#
# product/@pipelineRef is provided for the same purpose, but for
# all content included in the product.
#
# Author: Andrew Sales <andrew.sales@bloomsbury.com>
# Date: 20170629
# Version: 0.1
# Comments:
default namespace = "http://cms.bloomsbury.com/product-manifest"
start =
element product {
attribute id { xsd:ID },
attribute name { xsd:NCName },
attribute who { text }?, #creator/last editor
attribute when { xsd:dateTime }?, #date of this version
attribute description { text }?,
attribute pipelineRef{ xsd:NCName }?,
attribute taxonomyRef{ xsd:NCName },
element content {
source-content-type-att,
target-content-type-att?,
attribute label { text }?,
attribute pipelineRef{ xsd:NCName }?,
element item {
attribute from { xsd:date }?,
attribute id { xsd:NCName },
attribute to { xsd:date }?
}+
}+
}
source-content-type-att =
attribute sourceContentType { source-content-types }
target-content-type-att =
attribute targetContentType { target-content-types }
source-content-types =
string "archive" |
string "article" |
string "audio" |
string "building" |
string "drama" |
string "exhibition" |
string "image" |
string "looseleaf" |
string "monograph" |
string "museumCollection" |
string "museumExhibition" |
string "organisation" |
string "person" |
string "reference" |
string "timeline" |
string "video"
target-content-types =
source-content-types |
string "monographAsReference" |
string "dictionary"