102 lines
3 KiB
Text
102 lines
3 KiB
Text
|
# 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.
|
||
|
#
|
||
|
# content/@collectionId is available to capture the user-defined
|
||
|
# ID for a collection of content.
|
||
|
#
|
||
|
# content/@contentTypeFacet captures the ID of a facet in the
|
||
|
# referenced taxonomy (see product/@taxonomyRef) that applies to
|
||
|
# all items in the content set.
|
||
|
#
|
||
|
# Author: Andrew Sales <andrew.sales@bloomsbury.com>
|
||
|
# Date: 20210302
|
||
|
# Version: 1.0
|
||
|
# 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?,
|
||
|
collection-id-att?,
|
||
|
content-type-facet,
|
||
|
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 }
|
||
|
|
||
|
collection-id-att =
|
||
|
attribute collectionId { xsd:NCName }
|
||
|
|
||
|
content-type-facet =
|
||
|
attribute contentTypeFacet { xsd:NCName }
|
||
|
|
||
|
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"
|