diff --git a/src/vue-poc/components/vp-favorite.vue b/src/vue-poc/components/vp-favorite.vue
index 1c407f5..6b8d441 100644
--- a/src/vue-poc/components/vp-favorite.vue
+++ b/src/vue-poc/components/vp-favorite.vue
@@ -21,13 +21,13 @@ display button that invokes a save favorite form
@@ -5495,22 +5551,18 @@ created:function(){
// src: file:///C:/Users/andy/git/vue-poc/src/vue-poc/features/validate/validate.vue
const Validate=Vue.extend({template:`
-
- {{ snackbar.msg }}
- Close
-
-
+ play_circle_outlinevalidate?ms.
- Clear
- Reset
+ Clear
+ Reset
- is ok?
+ is ok?settings
@@ -5527,14 +5579,11 @@ const Validate=Vue.extend({template:`
-
-
-
-
-
-
+
+
-
+
+
@@ -5550,13 +5599,7 @@ const Validate=Vue.extend({template:`
loading: false,
elapsed: null,
height: null,
- result: null,
- fields:[],
- rules: {
- required: value => !!value || 'Required.'
- },
- params:null,
- snackbar:{show:false,msg:"",context:"success"}
+ result: null
}
},
methods:{
@@ -5568,33 +5611,22 @@ const Validate=Vue.extend({template:`
//console.log("resize h",h,el.style)
el.style.height=h +"px";
},
- submit () {
- if (this.$refs.form.validate()) {
+ submit () {
+ if (this.$refs.params.valid()) {
// Native form submission is not yet supported
this.validate()
}
},
clear () {
- this.$refs.form.reset()
- },
- rules(field){
- return [field.required?this.rules.required:[]];
- },
- source(field){
- console.log("field: ",field);
- router.push({ path: 'tabs', query: { url:this.params[field.model]}})
- },
- valid2(){
- alert("State:"+ this.$refs.form.validate());
+ this.$refs.params.clear();
},
validate(){
this.loading=true
this.start = performance.now();
- HTTP.post("validate",Qs.stringify(this.params))
+ var params=this.$refs.params.submit();
+ HTTP.post("validate",Qs.stringify(params))
.then(r=>{
console.log(r);
- this.snackbar={show:true,msg:r.data.msg,context:"success"};
- this.elapsed=Math.floor(performance.now() - this.start);
this.loading=false
if(r.data.rc==0){
this.result=r.data
@@ -5604,32 +5636,12 @@ const Validate=Vue.extend({template:`
})
.catch(r=> {
console.log("error",r.response.data)
- this.snackbar={show: true, msg: r.response.data, context: "error"}
+
this.result=r.message + ": "+ r.config.url + "\n"+ r.response.data
this.loading=false
});
- },
- settings(){
- HTTP.get("validate")
- .then(r=>{
- this.fields=r.data.fields;
- this.params = Object.assign({}, this.params, r.data.values)
- console.log("settings",this.params);
- })
- },
- isvalid(){
- return this.$refs && this.$refs.form && this.$refs.form.validate()
}
- },
- computed:{
- valid(){
- console.log("valid------------")
- return this.$refs && this.$refs.form && this.$refs.form.validate()
- }},
- created: function(){
- this.settings();
}
-
}
);
@@ -5862,7 +5874,7 @@ const router = new VueRouter({
{ path: '/select', component: Select, meta:{title:"Select"} },
{ path: '/search', component: Search, meta:{title:"Search"} },
- { path: '/tabs', component: Tabs,meta:{title:"tab test",requiresAuth: true} },
+ { path: '/tabs', component: Tabs,meta:{title:"tab test"} },
{ path: '/login', component: Login,meta:{title:"login"} },
{ path: '/edit', component: Edit,meta:{title:"Ace editor"} },
{ path: '/server/users', component: Users,meta:{title:"Users"} },
@@ -5874,7 +5886,7 @@ const router = new VueRouter({
,children: [
{
path: '',
- component: Settings, meta:{title:"Settings"}
+ component: Settings, meta:{title:"Settings", requiresAuth:true}
},
{
path: 'keys',
@@ -5893,7 +5905,7 @@ const router = new VueRouter({
,children: [
{
path: '',
- component: Settings, meta:{title:"Settings"}
+ component: Settings, meta:{title:"Settings ***", requiresAuth:true }
},
{
path: 'logs', name:"logs",
@@ -5905,6 +5917,7 @@ const router = new VueRouter({
component: Logadd,
meta:{title:"add Server logs"}
},
+
{ path: 'jobs', name:"jobs", component: Jobs, meta:{title:"Jobs running"} },
{ path: 'jobs/:job', name:"jobShow", component: Job, props: true, meta:{title:"Job Status"} },
{ path: 'ping', component: Ping,meta:{title:"Ping"} }
@@ -5948,10 +5961,12 @@ router.afterEach(function(route) {
});
router.beforeEach((to, from, next) => {
+ console.log("before: ",to)
if (to.matched.some(record => record.meta.requiresAuth)) {
// this route requires auth, check if logged in
// if not, redirect to login page.
- if ("admin"==Auth.permission) {
+ console.log("matched: ",Auth)
+ if ("admin"!=Auth.permission) {
next({
path: '/login',
query: { redirect: to.fullPath }
diff --git a/src/vue-poc/static/app.html b/src/vue-poc/static/app.html
index e9b9c92..e2edff2 100644
--- a/src/vue-poc/static/app.html
+++ b/src/vue-poc/static/app.html
@@ -11,7 +11,7 @@
-
+
@@ -38,7 +38,7 @@
-
+
diff --git a/src/vue-poc/static/resources/schematron/docbook-mods.sch b/src/vue-poc/static/resources/schematron/docbook-mods.sch
new file mode 100644
index 0000000..60dfdf0
--- /dev/null
+++ b/src/vue-poc/static/resources/schematron/docbook-mods.sch
@@ -0,0 +1,4275 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+" element with id ""'>
+"">
+
+" element with id ""'>
+]'>
+
+'>
+
+, on p. ]'>
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A @role attribute is only allowed on the defined list of elements, where they must take the values defined in the schema. If a @role is included on any other element it is an error
+
+
+The element has a @role attribute (value = ), but it is not an element that is allowed @role. &check_id;
+
+
+
+
+DocBook attributes
+
+
+The element has a @ attribute (value = ), which is not permitted in this instance of DocBook, &check_ancestor;
+
+
+
+
+A @linkend is only allowed on a defined list of elements. If @linkend is on any other element it is an error
+
+
+The element has a @linkend attribute, but iit is not an element that is allowed @linkend. &check_id;
+
+
+
+
+
+Some elements are unlikely ever to be needed in this DocBook instance, so this warns if they occur
+
+
+The element is not permitted to be used in this instance of DocBook. If you think it is required in this context, please contact the publisher. &check_ancestor;
+
+
+
+
+Locates anything in another namespace
+
+
+ Element present with @xmlns = , &check_ancestor;
+
+
+
+
+We need to know if anything has been commented out
+
+&precedingPageNoVariable;
+A comment is present with content "", &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+
+ We need IDs on content elements, not least so we can report locations within this Schematron. Here we check for an @xml:id attribute on all elements that require it. Additional rules added to ensure that the element is not within a bibliographic entry, so that (for instance) "title" does not need an ID in that context
+
+ All "" elements must have an "xml:id" attribute; please check the "" element contained in the &ancestor_string;.
+
+
+
+
+
+
+ Duplicated id in element "" - "".
+
+
+
+
+ DocBook permits many elements to have a child "title" OR for the "title" to be within an "info". This enforces consistency so that the "title" MUST always be in an "info"
+
+ The &named_element_with_id; must have an "info" element to contain the title
+
+
+
+
+ Some elements MUST always have a title. The schema enforces most of them, but we also want these
+
+ The &named_element_with_id; must have a title within an info
+
+
+
+
+
+The chunk title should not normally contain the words "Chapter" etc, unless there is no chunk title
+
+&precedingPageNoVariable;
+
+Chunk title starts with 'chapter', it should normally not be present, and have the number stored as @label, unless it is un-numbered or has no other title, &check_id; &pageNoAndChunkPDF;
+Chunk title starts with 'appendix', it should normally not be present, and have the number stored as @label, unless it is un-numbered or has no other title, &check_id; &pageNoAndChunkPDF;
+Chunk title starts with 'part', it should normally not be present, and have the number stored as @label, unless it is un-numbered or has no other title, &check_id; &pageNoAndChunkPDF;
+Chunk title starts with 'example', it should normally not be present, and have the number stored as @label, unless it is un-numbered or has no other title, &check_id; &pageNoAndChunkPDF;
+Chunk title starts with 'figure', it should normally not be present, and have the number stored as @label, unless it is un-numbered or has no other title, &check_id; &pageNoAndChunkPDF;
+Chunk title starts with 'table', it should normally not be present, and have the number stored as @label, unless it is un-numbered or has no other title, &check_id; &pageNoAndChunkPDF;
+Chunk title starts with 'equation', it should normally not be present, and have the number stored as @label, unless it is un-numbered or has no other title, &check_id; &pageNoAndChunkPDF;
+Chunk title starts with 'section', it should normally not be present, and have the number stored as @label, unless it is un-numbered or has no other title, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+
+The ID MUST start with the string "b-", &check_id;
+ DOI must use XML ISBN as its root &check_id;
+
+
+
+Chunk IDs must be preceded with the book ID
+
+
+
+Element ID must be prefixed by the book ID, currently is [Book ID = ].
+Element ID must have a hyphen separating book ID prefix from the rest of the ID, &check_id;
+
+
+
+
+Chunk IDs must be predictable in some contexts
+
+
+
+
+
+
+
+Start component of chunk ID must match element name () (ID: )
+End component of chunk ID must match @label value (ID: )
+
+
+
+
+
+
+
+
+Start component of chunk ID must match element name () (ID: )
+End component of chunk ID must match @label value (ID: )
+
+
+
+
+
+
+
+
+Start component of chunk ID must match element name () (ID: )
+End component of chunk ID must match @label value (ID: )
+
+
+
+
+
+
+
+
+Start component of formalpara ID must be 'fp' () (ID: )
+End component of formalpara ID must match info/title value (title=; ID=)
+A formalpara title must only contain letters, numbers and full stops, &check_id;
+
+
+If a book contains formalparas with ALL titles containing only numbers and full stops, it should have book/info/biblioid[@otherclass='formalparaNumeric']='1' &check_id;
+
+
+
+
+ All IDs
+
+
+ An @xml:id must start with the book id (). Currently =
+
+
+
+
+A large collection of tests to check that the book-level metadata is correct
+
+
+ Book information must contain a "title" element.
+ Book title = ""
+ Book information should usually contain at least one "author", "editor" or "authorgroup" element. &check_id;
+ Books must contain an edition element. &check_id;
+ Books must contain an edition/@role with a number equal to the edition number. &check_id;
+ The publisher element in the book information must be within the biblioset[@role=publisher]. &check_id;
+ Book information must contain at least one "publisher" element. &check_id;
+ Book information must contain a "pubdate" element with @role=published to record its original (print) pub date. &check_id;
+ Year in Book "pubdate" with @role=published [original (print) pub date] must be four digits. &check_id;
+ One and only one bibliomisc[@role=imprint] is usually required in book/info, &check_ancestor;
+ Book information must contain copyright data, &check_id;
+ Book information must contain at least one "biblioid" element with a "class" attribute set to "isbn".
+ The "biblioid"s in the Book information must be within a "biblioset" element with a "role" attribute set to "isbns". &check_id;
+ If more than one "biblioid" with class "isbn" is present, all of them must have role attributes. &check_id;
+ Book information must contain a "biblioset" element with a "role" attribute set to "isbns". &check_id;
+ A book MUST have a XML ISBN, ie the ISBN of the current file format &check_ancestor;
+ Book information must contain a "biblioid" element with a "otherclass" attribute set to "schemaVersion". &check_id;
+ Book information must contain a "biblioid" element with a "otherclass" attribute set to "schematronVersion". &check_id;
+ schematronVersion =
+ Book information must contain an "abstract" element with a @role=blurb. &check_id;
+
+ Book has a previous title (), &check_id;
+ address is not permitted as a direct child of book/info. If it is a publisher address, it needs to be within biblioset[@role=publisher]; otherwise contact Bloomsbury
+
+
+allBiblioItemsUnlinked = 1
+
+
+There must be at least one ISBN other than the XML ISBN for a print book. You may need to check p. iv of the prelims in the pdf, &check_id;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ISBN is invalid - checksum incorrect [], &check_ancestor;
+ Duplicate ISBNs are not permitted; are all the correct ISBNs present? &check_ancestor;
+ A with @class=isbn MUST have a @role, &check_ancestor;
+
+
+ A previousTitle must not contain a title element. If it is a previous series title, bibliomisc must be in series block, &check_ancestor;
+
+
+ Person blurb not present in element in book/info, &check_ancestor;
+ There is more than one para in personblurb. Is that correct? &check_ancestor;
+ There is more than one personblurb in this , which is not correct. &check_ancestor;
+ Book must contain a xlink:href with person ID, &check_ancestor;
+ Book must contain a xlink:role=biblioAuID, &check_ancestor;
+
+
+ Person blurb is identical to the preceding one, OK? It should contain details about only one person, &check_ancestor;
+
+
+ Book should usually contain a xlink:href with person ID, &check_ancestor;
+ Book should usually contain a xlink:role=biblioAuID, &check_ancestor;
+
+
+
+ The publisher block must contain the name of the publisher. &check_id;
+ The publisher block should usually contain imprint details. &check_id;
+ The biblioset[@role=publisher] does not contain an address. It needs to include the publisher address details, &check_id;
+ The first address in a biblioset[@role=publisher] must contain a city, &check_id;
+
+
+ An in biblioset[@role=publisher] must be an immediate child of publisher, &check_id;
+ Addresses in the publisher block must have their components marked up, &check_id;
+ Address in publisher block contains un-marked up text, &check_id;
+
+
+ The in biblioset[@role=publisher]/address[1] must only contain letters (no numbers), &check_ancestor;
+
+
+ A companionWebsite block MUST be within the biblioset[@role=publisher], &check_id;
+ If there is a companionWebsite block, there must be a biblioid[@otherclass=hasOnlineResources] = 'Y', &check_id;
+
+
+
+ The parent element of the imprint must be a biblioset. &check_ancestor;
+ If an imprint is defined it must be a sibling of a publisher element. &check_ancestor;
+ Imprint contains "Continuum International Publishing Group"; probably should just be "Continuum", &check_ancestor;
+ Imprint contains "Bloomsbury Publishing Plc", which should probably be the publishername &check_ancestor;
+ The imprint only contains lower case letters, which is incorrect. Does it need an initial capital? &check_ancestor;
+ The imprint only contains upper case letters, which is incorrect. It should have initial capitals &check_ancestor;
+ Imprint contains emphasis element, which is almost certainly incorrect, &check_ancestor;
+ Imprint contains the word "Published"; additional text other than the imprint name must be in a phrase, &check_ancestor;
+
+
+ The book/info publisher name must just contain the name of the publisher. Preamble text must be in a phrase, &check_ancestor;
+ The only contains upper case letters, which is incorrect. It should have initial capitals &check_ancestor;
+
+
+
+ A url in the book/info may be the publisher URL; if so it must be included within the biblioset[@role=publisher] block and should probably be in an address as well, &check_ancestor;
+
+
+
+ "copyright" element must be a direct child of the book/info, &check_ancestor;
+
+
+ Element in copyright line must not start with the (c) symbol, &check_ancestor;
+ The contains a reference to the Copyright Act 1988; this text MUST not be in the copyright statement. Move it to info/legalnotice, &check_ancestor;
+ Element in copyright line contains a four digit number; years MUST NOT be in the holder element, &check_ancestor;
+
+
+ Element in copyright line must not start with the (c) symbol, &check_ancestor;
+
+
+
+ Fiction biblioid value () is not one of the permitted values. &check_ancestor;
+ Book is a work of Fiction (biblioid[@otherclass=fiction])
+
+
+ suppressChapterNumeration value is not one of the permitted values. &check_ancestor;
+ Book has its chapter numeration switched off (biblioid[@otherclass=suppressChapterNumeration])
+
+
+ Schema version number is not one of the permitted values. &check_ancestor;
+
+
+ Schematron version number is not one of the permitted values. &check_ancestor;
+
+
+ @hasOnlineResources content is not one of the permitted values. &check_ancestor;
+ @hasOnlineResources = Y
+
+
+ @otherclass=biblioType content is not one of the permitted values. &check_ancestor;
+ @biblioType = initials-without-stops
+
+
+ @otherclass=taxonRank content is not one of the permitted values (=). &check_ancestor;
+
+
+ @otherclass=legalContentType content is not one of the permitted values (=). &check_ancestor;
+ Book has a legalContentType value, but no book/info/date[@role='lawStatedAt'], &check_ancestor;
+
+
+ @otherclass=DOInotRequired content is not one of the permitted values (=). &check_ancestor;
+
+
+ @otherclass=specialBookType content is not one of the permitted values (=). &check_ancestor;
+
+
+ @otherclass=bedArticleType content is not one of the permitted values (=). &check_ancestor;
+
+
+
+
+ Specific ISBN tests
+
+ A with @role=otherVolume must have @xlink:type=resource, &check_ancestor;
+ A with @role=otherVolume must have @xlink:label, &check_ancestor;
+
+
+
+
+Specific tests for taxa, taxon names etc
+
+A chunk with a title containing a taxonName must have a biblioid[@otherclass=taxonRank], &check_id;
+
+
+ A taxonName must either be entirely in italic or only contain text(); A name after an italic taxonName must not be within the taxonName [], &check_ancestor;
+ A taxonName must not end with punctuation; it must only contain the taxon name, &check_ancestor;
+
+
+A chunk with a biblioid[@otherclass=taxonRank] must have a title containing a taxonName, &check_ancestor;
+A chunk with biblioid taxonRank must be either a part or a chapter, &check_ancestor;
+
+
+
+For chunks with taxonRank, its preceding and following siblings [total=] should usually also have taxonRank, &check_id;
+
+
+
+
+More tests for taxa and biological data
+
+If there is a taxonRank in the title (= ), it must match that in the biblioid (= ), &check_id;
+
+
+
+
+More tests for taxa
+
+For chunks with taxonRank, its parent should usually have a taxonRank, &check_id;
+
+
+
+
+Tests to ensure that taxa are nested correctly
+
+For chunks with taxonRank which are chapters, it is very unusual for the taxonRank not to be 'species', &check_id;
+The parent node of a species chunk should usually be a genus, but it is ''. See chunk with ID =
+
+
+The parent node of a subgenus chunk should usually be a genus, but it is ''. See chunk with ID =
+
+
+The parent node of a genus chunk should usually be a family, subfamily or tribe, but it is ''. See chunk with ID =
+
+
+The parent node of a tribe chunk should usually be a family or subfamily, but it is ''. See chunk with ID =
+
+
+The parent node of a subfamily chunk should usually be a family, but it is ''. See chunk with ID =
+
+
+The parent node of a family chunk should usually be a 'order', 'suborder', 'hyporder', 'infraorder', 'parvorder', or 'superfamily', but it is ''. See chunk with ID =
+
+
+The parent node of a superfamily chunk should usually be a 'order', 'suborder', 'hyporder', 'infraorder', or 'parvorder', but it is ''. See chunk with ID =
+
+
+The parent node of a parvorder chunk should usually be a 'order', 'suborder', 'hyporder', or 'infraorder', but it is ''. See chunk with ID =
+
+
+The parent node of a infraorder chunk should usually be a 'order', 'suborder', or 'hyporder', but it is ''. See chunk with ID =
+
+
+The parent node of a hyporder chunk should usually be a 'order', or 'suborder', but it is ''. See chunk with ID =
+
+
+The parent node of a suborder chunk should usually be a 'order', but it is ''. See chunk with ID =
+
+
+The parent node of a order chunk should usually be a 'class', 'subclass', 'supercohort', 'cohort', or 'superorder', but it is ''. See chunk with ID =
+
+
+The parent node of a superorder chunk should usually be a 'class', 'subclass', 'supercohort', or 'cohort', but it is ''. See chunk with ID =
+
+
+The parent node of a cohort chunk should usually be a 'class', 'subclass', or 'supercohort', but it is ''. See chunk with ID =
+
+
+The parent node of a supercohort chunk should usually be a 'class', or 'subclass', but it is ''. See chunk with ID =
+
+
+The parent node of a subclass chunk should usually be a 'class', but it is ''. See chunk with ID =
+
+
+The parent node of a class chunk should usually be a 'kingdom', but it is ''. See chunk with ID =
+
+
+
+
+Tests to ensure that taxa siblings are the same
+
+
+
+The taxonRank of a chunk () is often the same as its preceding-sibling (), &check_id;
+
+
+
+
+The taxonRank of a chunk () is often the same as its preceding-sibling (), &check_id;
+
+
+
+ Legal Case Reports (and some Legislation) tests
+
+ A can only occur within a Case Report or Legislation volume (db:biblioid[@otherclass='legalContentType'] = ('cases', 'legislation')), &ancestor_id;
+ A must have @role, &ancestor_id;
+
+
+ A book that is not a Case Report must not contain a biblioid with @otherclass = courtCode, decisionDate, caseCitation, shortCaseName, shortCourtName, &check_id;
+
+
+ A book that is not a Case Report must not contain a para with @role = 'caseNumber', 'catchwords', 'court', 'hearingDate', 'judgmentBy', 'judgmentDate', 'legalRepresentation', 'panel', &check_id;
+
+
+ A biblioid with @otherclass = courtCode, decisionDate, caseCitation, shortCaseName, shortCourtName can only occur within a chapter/info, &check_ancestor;
+
+
+ A decisionDate must be an ISO date yyyy-mm-dd, &check_ancestor;
+
+
+ A [@role=caseName] can only occur in a book with biblioid[@otherclass=legalContentType]='cases','legislation', &check_ancestor;
+ A [@role=caseName] must not contain a processing instruction (a PI should be outside the phrase element), &check_ancestor;
+
+
+ A chapter title in a case report must have the case name marked in a phrase, &check_id;
+
+
+
+
+ Additional Case Report and Legislation tests
+
+ If biblioid[@otherclass='legalContentType'] = ('legislation') then a note/@role can only be 'annotations', &check_id;
+
+
+ If biblioid[@otherclass='legalContentType'] = ('cases') then a note/@role can only be ('disposition', 'facts', 'history', 'holding', 'judgment'), &check_id;
+
+
+
+
+ Tests for Annotated Legislation
+
+ A jurisdiction is required for a legislation volume, &check_ancestor;
+
+
+ A volume with a jurisdiction must have a legislation in book/info, &check_ancestor;
+
+
+ A biblioid[@otherclass='legalJurisdiction'] can only have one of the values ('ie', 'uk'), &check_ancestor;
+
+ A jurisdiction can only occur within a book/info, &check_ancestor;
+
+
+ A biblioid[@otherclass='legalDivType'] can only have one of the values ('statute', 'si', 'part', 'chapter', 'section', 'schedule'), &check_ancestor;
+
+ A biblioid[@otherclass='legalDivType'] can only occur within a chapter/info or section/info, &check_ancestor;
+
+
+
+
+ More legislation tests
+
+ A biblioid[@otherclass='legalDivType'] = ('statute', 'si') must be in a chapter, &check_ancestor;
+
+
+ A biblioid[@otherclass='legalDivType'] = ('part', 'chapter', 'section', 'schedule') must be in a section, &check_ancestor;
+
+
+
+
+ Additional legislation tests
+
+ A biblioid[@otherclass='legalDivType'] = ('section') must be in a section with @label, containing the section number, &check_ancestor;
+
+
+
+
+ Specific Legislation IDs
+
+ A legislation chapter with title 'Provisional Collection of Taxes Act 1927' must have id 'PCTA1927', &check_id;
+
+
+
+
+ General Legislation IDs
+
+
+
+ A legislation section ID with biblioid[@otherclass='legalDivType'] must start with the chapter ID, &check_id;
+
+
+
+
+ Section Legislation IDs
+
+
+
+
+ A legislation section ID with biblioid[@otherclass='legalDivType'] = section must have an 's' after the chapter ID, &check_id;
+ A legislation section ID with biblioid[@otherclass='legalDivType'] = section must end with the @label value after the 's', &check_id;
+
+
+
+
+Contributor grouping
+
+There is more than one editor as a direct child of info. Wrap them all in an authorgroup, &check_id;
+There is more than one author as a direct child of info. Wrap them all in an authorgroup, &check_id;
+There is more than one othercredit[@role=translator] as a direct child of info. Wrap them all in an authorgroup, &check_id;
+
+
+
+
+High-level content checks
+
+
+
+
+
+Book contains only front and back matter; is something missing or wrongly structured? &check_id;
+There is only one part division (other than front/back), which is unusual. Is that correct? &check_id;
+
+
+There is a numbered chapter in the front matter; is that correct? &check_id;
+
+
+
+
+Specific test(s) for publisher block
+
+publishername contains emphasis element, which is incorrect, &check_ancestor;
+
+
+
+
+ Legal-related tests
+
+ Books with a containing 'Hart' or 'Bloomsbury Professional' must have a book/info/biblioid[@otherclass=legalContentType] &check_ancestor;
+
+
+ An is not permitted in a legal book (ie one with biblioid[@otherclass='legalContentType']); variablelist must be used and all list labels captured in the data, &check_id;
+
+
+
+
+Revisions
+
+A revhistory should only be within a book/info
+
+
+
+A revision must contain an author; &check_id;
+A revision must contain a revremark; &check_id;
+A date in a revision must be in YYYY-MM-DD format; &check_id;
+Revisions must be in date order, most recent first; &check_id;
+
+
+
+
+Rights
+
+ The element does not have digital rights; &check_id;
+ The element has no digital rights, but contains a pdf; is that correct? &check_id;
+
+
+
+
+
+The @label must only contain real content. If no label is required to be displayed there shouldn't be a @label and the downstream processor should handle that. @label must usually only contain a number
+
+
+&precedingPageNoVariable;
+@label MUST NOT be empty &check_id; &pageNoAndChunkPDF;
+@label MUST NOT contain only space characters; if there is no label, don't add the @label attribute &check_id; &pageNoAndChunkPDF;
+
+Chunk @label starts with 'chapter', it should normally just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label starts with 'appendix', it should normally just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label starts with 'part', it should normally just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label starts with 'example', it should normally just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label starts with 'figure', it should normally just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label starts with 'table', it should normally just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label starts with 'equation', it should normally just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label starts with 'introduction', it should normally just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label starts with 'section', it should normally just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+Chunk @label contains a number in words (), it should just be a number (Roman or Arabic), &check_id; &pageNoAndChunkPDF;
+
+
+Value of @label = , &check_ancestor;
+The @label ends with a stop, which is almost certainly not right, since these should be autogenerated, &check_ancestor;
+
+
+&precedingPageNoVariable;
+A @label must not start with the string 'part', &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+A @label must not start with the string 'chapter', &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+A @label must not start with the string 'appendix', &check_id; &pageNoAndChunkPDF;
+
+
+
+
+ Label over-ride
+
+ A @label is required when there is a @labelOverRide, &check_id;
+
+
+
+Appendix tests
+
+&precedingPageNoVariable;
+Appendix title starts with A, should it be the @label? &check_id; &pageNoAndChunkPDF;
+Appendix title starts with 1, should it be the @label? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Appendix title starts with B, should it be the @label? &check_id; &pageNoAndChunkPDF;
+Appendix title starts with 2, should it be the @label? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Appendix title starts with C, should it be the @label? &check_id; &pageNoAndChunkPDF;
+Appendix title starts with 3, should it be the @label? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Appendix title starts with D, should it be the @label? &check_id; &pageNoAndChunkPDF;
+Appendix title starts with 4, should it be the @label? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Appendix title starts with E, should it be the @label? &check_id; &pageNoAndChunkPDF;
+Appendix title starts with 5, should it be the @label? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Appendix title starts with F, should it be the @label? &check_id; &pageNoAndChunkPDF;
+Appendix title starts with 6, should it be the @label? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Appendix title starts with G, should it be the @label? &check_id; &pageNoAndChunkPDF;
+Appendix title starts with 7, should it be the @label? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Appendix title starts with H, should it be the @label? &check_id; &pageNoAndChunkPDF;
+Appendix title starts with 8, should it be the @label? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Appendix title starts with I, should it be the @label? &check_id; &pageNoAndChunkPDF;
+Appendix title starts with 9, should it be the @label? &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Test for values of @otherclass on biblioid
+
+ biblioid/@otherclass does not have one of the permitted values (value = ), &check_ancestor;
+
+
+
+
+Book-level series metadata tests
+
+Book does not contain a series name, OK? A high proportion of academic titles should have one, so please check the text in the pdf prelims
+
+
+A biblioset[@role=series] must be a child of either the book/info or a cover[@role=series], &check_id;
+A series group MUST contain a series title. &check_id;
+Series name contains "BCP Egyptology", this should be the previousTitle, and the current title is "Bloomsbury Egyptology", &check_id;
+Series name contains "Berg New Media Series", this should be the previousTitle, and the current title is "Bloomsbury New Media Series", &check_id;
+Series name contains "Continuum Advances in Religious Studies", this should be the previousTitle, and the current title is "Bloomsbury Advances in Religious Studies", &check_id;
+Series name contains "Continuum Advances in Semiotics", this should be the previousTitle, and the current title is "Bloomsbury Advances in Semiotics", &check_id;
+Series name contains "Continuum Advances in Translation", this should be the previousTitle, and the current title is "Bloomsbury Advances in Translation", &check_id;
+Series name contains "Continuum Aesthetics", this should be the previousTitle, and the current title is "Bloomsbury Aesthetics", &check_id;
+Series name contains "Continuum Companions", this should be the previousTitle, and the current title is "Bloomsbury Companions", &check_id;
+Series name contains "Continuum Contemporary American Thinkers", this should be the previousTitle, and the current title is "Bloomsbury Contemporary American Thinkers", &check_id;
+Series name contains "Continuum Critical Introductions to Linguistics", this should be the previousTitle, and the current title is "Bloomsbury Critical Introductions to Linguistics", &check_id;
+Series name contains "Continuum Discourse", this should be the previousTitle, and the current title is "Bloomsbury Discourse", &check_id;
+Series name contains "Continuum Education Handbooks", this should be the previousTitle, and the current title is "Bloomsbury Education Handbooks", &check_id;
+Series name contains "Continuum Ethics", this should be the previousTitle, and the current title is "Bloomsbury Ethics", &check_id;
+Series name contains "Continuum History of Philosophy", this should be the previousTitle, and the current title is "Bloomsbury History of Philosophy", &check_id;
+Series name contains "Continuum Impacts", this should be the previousTitle, and the current title is "Impacts", &check_id;
+Series name contains "Continuum Intelligence Studies", this should be the previousTitle, and the current title is "Bloomsbury Intelligence Studies", &check_id;
+Series name contains "Continuum One Hundreds", this should be the previousTitle, and the current title is "100 Ideas", &check_id;
+Series name contains "Continuum Philosophy Dictionaries", this should be the previousTitle, and the current title is "Bloomsbury Philosophy Dictionaries", &check_id;
+Series name contains "Continuum Political Philosophy", this should be the previousTitle, and the current title is "Bloomsbury Political Philosophy", &check_id;
+Series name contains "Continuum Renaissance Drama", this should be the previousTitle, and the current title is "Arden Early Modern Drama Guides", &check_id;
+Series name contains "Continuum Research Methods", this should be the previousTitle, and the current title is "Bloomsbury Research Methods", &check_id;
+Series name contains "Continuum Shakespeare Dictionaries", this should be the previousTitle, and the current title is "Arden Shakespeare Dictionaries", &check_id;
+Series name contains "Continuum Sources in Ancient History", this should be the previousTitle, and the current title is "Bloomsbury Sources in Ancient History", &check_id;
+Series name contains "Continuum Studies in American Philosophy", this should be the previousTitle, and the current title is "Bloomsbury Studies in American Philosophy", &check_id;
+Series name contains "Continuum Studies in Ancient Philosophy", this should be the previousTitle, and the current title is "Bloomsbury Studies in Ancient Philosophy", &check_id;
+Series name contains "Continuum Studies in Classical Reception", this should be the previousTitle, and the current title is "Bloomsbury Studies in Classical Reception", &check_id;
+Series name contains "Continuum Studies in Contemporary North American Fiction", this should be the previousTitle, and the current title is "Bloomsbury Studies in Contemporary North American Fiction", &check_id;
+Series name contains "Continuum Studies in Continental Philosophy", this should be the previousTitle, and the current title is "Bloomsbury Studies in Continental Philosophy", &check_id;
+Series name contains "Continuum Studies in Jewish Thought", this should be the previousTitle, and the current title is "Bloomsbury Studies in Jewish Thought", &check_id;
+
+Series name contains "Continuum Studies in Military History", this should be the previousTitle, and the current title is "Bloomsbury Studies in Military History", &check_id;
+Series name contains "Continuum Studies in Philosophy", this should be the previousTitle, and the current title is "Bloomsbury Studies in Philosophy", &check_id;
+Series name contains "Continuum Studies in Philosophy of Religion", this should be the previousTitle, and the current title is "Bloomsbury Studies in Philosophy of Religion", &check_id;
+Series name contains "Continuum Studies in Political Philosophy", this should be the previousTitle, and the current title is "Bloomsbury Studies in Political Philosophy", &check_id;
+Series name contains "Continuum Studies in the City", this should be the previousTitle, and the current title is "Bloomsbury Studies in the City", &check_id;
+Series name contains "Continuum Studies in Theoretical Linguistics", this should be the previousTitle, and the current title is "Bloomsbury Studies in Theoretical Linguistics", &check_id;
+Series name contains "Continuum Studies in Translation", this should be the previousTitle, and the current title is "Bloomsbury Studies in Translation", &check_id;
+Series name contains "The Continuum Decades Series", this should be the previousTitle, and the current title is "The Decades Series", &check_id;
+
+Series name contains "Bloomsbury Egyptology" and pubdate before 2013 but does not have a previousTitle, which should be "BCP Egyptology", &check_id;
+Series name contains "Bloomsbury New Media Series" and pubdate before 2013 but does not have a previousTitle, which should be "Berg New Media Series", &check_id;
+Series name contains "Bloomsbury Advances in Religious Studies" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Advances in Religious Studies", &check_id;
+Series name contains "Bloomsbury Advances in Semiotics" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Advances in Semiotics", &check_id;
+Series name contains "Bloomsbury Advances in Translation" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Advances in Translation", &check_id;
+Series name contains "Bloomsbury Aesthetics" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Aesthetics", &check_id;
+Series name contains "Bloomsbury Companions" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Companions", &check_id;
+Series name contains "Bloomsbury Contemporary American Thinkers" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Contemporary American Thinkers", &check_id;
+Series name contains "Bloomsbury Critical Introductions to Linguistics" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Critical Introductions to Linguistics", &check_id;
+Series name contains "Bloomsbury Discourse" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Discourse", &check_id;
+Series name contains "Bloomsbury Education Handbooks" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Education Handbooks", &check_id;
+Series name contains "Bloomsbury Ethics" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Ethics", &check_id;
+Series name contains "Bloomsbury History of Philosophy" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum History of Philosophy", &check_id;
+Series name contains "Impacts" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Impacts", &check_id;
+Series name contains "Bloomsbury Intelligence Studies" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Intelligence Studies", &check_id;
+Series name contains "100 Ideas" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum One Hundreds", &check_id;
+Series name contains "Bloomsbury Philosophy Dictionaries" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Philosophy Dictionaries", &check_id;
+Series name contains "Bloomsbury Political Philosophy" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Political Philosophy", &check_id;
+Series name contains "Arden Early Modern Drama Guides" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Renaissance Drama", &check_id;
+Series name contains "Bloomsbury Research Methods" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Research Methods", &check_id;
+Series name contains "Arden Shakespeare Dictionaries" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Shakespeare Dictionaries", &check_id;
+Series name contains "Bloomsbury Sources in Ancient History" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Sources in Ancient History", &check_id;
+Series name contains "Bloomsbury Studies in American Philosophy" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in American Philosophy", &check_id;
+Series name contains "Bloomsbury Studies in Ancient Philosophy" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Ancient Philosophy", &check_id;
+Series name contains "Bloomsbury Studies in Classical Reception" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Classical Reception", &check_id;
+Series name contains "Bloomsbury Studies in Contemporary North American Fiction" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Contemporary North American Fiction", &check_id;
+Series name contains "Bloomsbury Studies in Continental Philosophy" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Continental Philosophy", &check_id;
+Series name contains "Bloomsbury Studies in Jewish Thought" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Jewish Thought", &check_id;
+Series name contains "Bloomsbury Studies in Military History" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Military History", &check_id;
+Series name contains "Bloomsbury Studies in Philosophy" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Philosophy", &check_id;
+Series name contains "Bloomsbury Studies in Philosophy of Religion" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Philosophy of Religion", &check_id;
+Series name contains "Bloomsbury Studies in Political Philosophy" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Political Philosophy", &check_id;
+Series name contains "Bloomsbury Studies in the City" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in the City", &check_id;
+Series name contains "Bloomsbury Studies in Theoretical Linguistics" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Theoretical Linguistics", &check_id;
+Series name contains "Bloomsbury Studies in Translation" and pubdate before 2013 but does not have a previousTitle, which should be "Continuum Studies in Translation", &check_id;
+Series name contains "The Decades Series" and pubdate before 2013 but does not have a previousTitle, which should be "The Continuum Decades Series", &check_id;
+
+ The series name does not match one of the known Bloomsbury series. Check the spelling and punctuation. If you have a new series which needs to be added to the list, please contact Bloomsbury immediately.
+
+
+
+Element must have @role=series. &check_ancestor;
+
+
+Element must have @role=previousTitle. &check_ancestor;
+Series has a previous title (), &check_ancestor;
+
+
+
+
+Specific tests for the Geographers series
+
+If a series title starts with 'Geographers' it must be 'Geographers: Biobibliographical Studies' &check_id;
+
+
+Books with 'Geographers' and 'Biobibliographical' in the title must have the correct series, &check_id;
+
+
+
+Additional specific tests for the Geographers series
+
+
+Books in the 'Geographers' series must have a volumenum in the series data &check_id;
+Books in the 'Geographers' series must have cross references to other books in the series using olink
+
+
+The volumenum in the series data must match that in book/info &check_id;
+
+
+
+A book must have its main language declared, and where @xml:lang is used it must be a valid value
+
+
+
+The must include an xml:lang attribute, &check_id;
+
+
+The @xml:lang must be a valid value. Currently = , &check_id;
+Language (@xml:lang) = but @dir is not rtl, &check_ancestor;
+Language (@xml:lang) = but @dir should not be rtl, &check_ancestor;
+
+The @xml:lang is not English. Value = , &check_ancestor;
+
+
+&precedingPageNoVariable;
+A foreignphrase element must have an @xml:lang attribute, &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Specific language tests
+
+&precedingPageNoVariable;
+Hebrew text must be in a foreignphrase, &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Arabic text must be in a foreignphrase, &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Hebrew text in a foreignphrase element must have an @xml:lang='he', &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Arabic text in a foreignphrase element must have an @xml:lang='ar', &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+
+Should there be an editor?
+
+There is more than one authored chapter, but the book/info does not contain an editor, OK? &check_id;
+
+
+
+
+
+Detect possible Open Access titles
+
+Legal notice contains text "Creative Commons, but does not have @role=CC &named_element_with_id;
+
+
+
+Other tests around Open Access titles and CIP data
+
+Book "" is Open Access (type = )
+Book has @role=CC legalnotice but text does not contain "Creative Commons". Is it really a Creative Commons title?, &check_ancestor;
+Book has @role=Open legalnotice but text does not contain "free to share". Is it really an Open Access title?, &check_ancestor;
+The legalnotice contains "British Library" but does not have @role=CIP, &check_ancestor;
+The legalnotice contains "Library of Congress" but does not have @role=CIP, &check_ancestor;
+
+
+
+
+
+The legalnotice contains "Library of Congress" and "British Library"; there needs to be a separate CIP legalnotice for each, &check_ancestor;
+
+
+
+
+ISBN format and length
+
+ ISBN should normally be 13 digits long. &check_ancestor;
+ ISBNs must contain space or hyphen characters in its correct format. &check_ancestor;
+
+
+
+Ensure there is only one of any type of ISBN
+
+ Multiple ISBNs with @role = &check_ancestor;
+
+
+
+
+
+ DOIs must be unique within a book
+
+ Duplicated doi - "", &check_ancestor;
+
+
+
+
+Digital Object Identifiers
+
+ Book must have a DOI &check_ancestor;
+ Book DOI must be a direct child of info &check_ancestor;
+
+
+
+
+ DOIs 2
+
+
+ Book DOI must use XML ISBN as its root &check_ancestor;
+
+
+
+
+Global DOI integrity tests
+
+ DOIs must have the prefix 10.5040 or (for old Berg content) 10.2752 &check_ancestor;
+
+
+
+
+Another global DOI test
+
+
+ DOIs must use XML ISBN as its root &check_ancestor;
+
+
+
+
+Keywords and keywordsets
+
+
+A keywordset with @role=BergGlossary is not required in an FPA article, &check_id;
+
+A keywordset with @role=BergKeywords in an FPA article should be @role=fashionKeywords, &check_id;
+
+
+
+
+
+A mixed bag of tests for suspicious-looking patterns that probably need marking up, or which may have too much markup
+
+A contributor statement is present but is not within a chunk "info", &check_ancestor;
+
+
+&precedingPageNoVariable;
+Text string of the form "10.dddd/" looks like a DOI but is not in a "link", &check_id; &pageNoAndChunkPDF;
+
+
+Content of title is entirely in "emphasis" which is probably unnecessary, &check_id;
+
+
+ must not have @xreflabel. Links use link and do not autogenerate their link text, &check_id;
+
+
+
+
+More general tests
+
+&precedingPageNoVariable;
+Title of element contains the word "Dedication"; does it appear in print? if not, title should probably have @outputformat=e-Only, &check_id; &pageNoAndChunkPDF;
+Title of element contains the word "Epigraph"; does it appear in print? if not, title should probably have @outputformat=e-Only, &check_id; &pageNoAndChunkPDF;
+An author, editor or othercredit is not permitted in a element, &check_id;
+
+
+
+
+
+
+Some key elements must not have their contents in all caps other than in very specific circumstances, and so we also need to have some case regularisation tests as well
+
+&precedingPageNoVariable;
+
+info// should not normally contain only upper case letters and/or numbers (), unless it is an acronym or a heading comprising only numbers, so may need a specific @role or to be regularised according to editorial rules &check_id; &pageNoAndChunkPDF;
+
+
+
+
+
+
+
+
+ Chunk blocks must contain the standard empty "remark" in pdf-only XML &check_ancestor;
+ remark elements in pdfOnly books must have @condition=hidden &check_ancestor;
+ pdfOnly books should not have content other than remark &check_ancestor;
+
+
+
+
+Remarks
+
+A remark element is not permitted within a , &check_ancestor;
+
+
+
+
+A group of tests relating to all content chunks
+
+&precedingPageNoVariable;
+Chunks with content must not have a suppress PDF flag on the imageobject &named_element_with_id;
+Chunk text only contains a blockquote, which is almost certainly wrong, &check_id; &pageNoAndChunkPDF;
+A contributor statement is present (), &check_id;
+Full text XML books must not contain an extract. Any abstract in them must be authorAbstract, &check_id;
+Content chunk has an editor. Is that correct? &check_id; &pageNoAndChunkPDF;
+Chunk title contains "acknowledgements", but is not in an acknowledgements element, &check_id; &pageNoAndChunkPDF;
+There is a date in a chunk info, which is not usual, &check_id; &pageNoAndChunkPDF;
+First element in chunk after info is . Should it be an epigraph? &check_id; &pageNoAndChunkPDF;
+ A chunk element must have some content, &check_id;
+ A chunk title ends with a colon, which is wrong. Please remove it, &check_id;
+
+
+&precedingPageNoVariable;
+Article text only contains a blockquote, which is almost certainly wrong, &check_id; &pageNoAndChunkPDF;
+A contributor statement is present (), &check_id;
+Full text XML books must not contain an extract. Any abstract in them must be authorAbstract, &check_id;
+Article has an editor. Is that correct? &check_id; &pageNoAndChunkPDF;
+There is a date in an article info, which is not usual, &check_id; &pageNoAndChunkPDF;
+First element in chunk after info is . Should it be an epigraph? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+An epigraph usually sits at the beginning of a chunk or section; this has preceding paragraphs, probably should be a blockquote, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Rules for content chunks where there is a print edition
+
+&precedingPageNoVariable;
+Chunk blocks must contain a page range. See &named_element_with_id; &pageNoAndChunkPDF;
+Chunk blocks must contain only one page range. See &named_element_with_id; &pageNoAndChunkPDF;
+Chunk blocks must contain PDF fileref, see &named_element_with_id;
+
+
+
+
+Content that should be abstracts or not included
+
+&precedingPageNoVariable;
+//title = "Abstract". Should this be an title-less "abstract" element in info? &check_id; &pageNoAndChunkPDF;
+//title = "Chapter Outline". If this is only a table of contents it should not be in the XML at all. &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Tests for e-Only outputformat situations
+
+The only permissible value of @outputformat on a book is 'e-Only', &check_id;
+
+
+There must not be pagenums in an e-Only book, &check_ancestor;
+
+
+
+
+Issues to note about Tables of Contents
+
+&precedingPageNoVariable;
+"toc" element is not within a front container. If book structure requires a toc in this location, please contact the publisher &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ () looks like a table of cases or statutes, so must be in a preface element, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Legal contents
+
+A preface containing a table of cases or statutes etc must have @ role=legalContents, &check_id;
+
+
+&precedingPageNoVariable;
+A with @role=legalContents must have its content within a variablelist, &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+A in a preface[@role=legalContents] should usually contain one or more links, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Poetry and drama tests
+
+&precedingPageNoVariable;
+A element is present with parent , &check_id; &pageNoAndChunkPDF;
+A element should usually be in a blockquote, &check_id; &pageNoAndChunkPDF;
+
+
+
+&precedingPageNoVariable;
+A line[@role=partInitial] must be followed by a partMedial or partFinal, &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+A line[@role=partFinal] must be preceded by a partMedial or partInitial, &check_id;&pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+A line[@role=partMedial] must have a partInitial before and a partFinal after, &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ contains more than three short paragraphs; should it be a poem with lines? or a list? &check_id; &pageNoAndChunkPDF;
+The last para in the '' element has @role=right. Should it be an attribution element instead? &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Additional tests for poetry and drama etc
+
+&precedingPageNoVariable;
+Bracketed content at the end of a line element. Should it be an attribution in a parent blockquote or epigraph? &check_ancestor; &pageNoAndChunkPDF;
+ starts or ends with a number. Should it be a line number using footnote[@role=margin1 | margin2]? &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Titles in chunks, sections, figures etc that start with a number should almost certainly have that value in @label
+
+&precedingPageNoVariable;
+Title of "" starts with a number. Is it the label number? If so, it should probably be @label, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Tests for notes section
+
+&precedingPageNoVariable;
+Title contains the string "Notes", but chunk ancestor does not have @role=notes. Is it a notes section? &check_ancestor; &pageNoAndChunkPDF;
+ Title contains 'Notes', but there is also a PI containing 'Notes'; remove the title="Notes" from the PI, &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ has @role=notes but does not contain an end-bk-notes PI, &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ has @role=notes but does not contain an end-ch-notes PI, &check_id; &pageNoAndChunkPDF;
+ has @role=notes and end-ch-notes PI, but the latter also contains 'title=...' which is not correct, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+
+
+Tests specific to PDF-only titles
+
+The chunk abstract in the pdf-only title must be an @role=extract, &check_id;
+
+
+Text content is not required in pdf-only books; the only content should be the standard remark, &check_id;
+
+
+
+
+Tests to ensure that chunks that require DOIs have them, and that those that don't need them don't, and that where they are present their format is correct
+
+
+Block must contain a DOI &named_element_with_id;
+
+
+
+ Block must not contain a DOI. See &named_element_with_id;
+
+
+A part with content (ie with no suppress PDF flag) must have a DOI, &check_id;
+A part with suppress PDF must not have a DOI, &check_id;
+
+
+
+
+ Other DOI tests
+
+ If book is flagged 'DOInotRequired', book must not contain a DOI &named_element_with_id;
+
+
+
+
+The info block should only contain key metadata in a small number of contexts
+
+ A DOI is not required in this location, &check_ancestor;
+
+
+pagenums is not required in this location, &check_ancestor;
+
+
+mediaobject is not required in this location, &check_ancestor;
+
+
+ A biblioType is not permitted in this location, &check_ancestor;
+
+
+
+
+Rules relating to chunk DOIs and @label
+
+
+
+There is a chapter-like DOI, but no @label on the chapter. &check_id;
+
+
+A 'part' contains numbered chapters, but the part does not have a @label, OK? &check_id;
+
+
+
+
+Another test for parts with missing @labels
+
+
+
+There is a part-like filename, but no @label on the chapter. &check_id;
+
+
+
+
+Rules relating to chunk DOIs that are dependent on whether a book is e-only or if there is a print edition
+
+
+
+
+DOI and pdf filename do not match (, . &check_id;
+
+
+
+
+Front and back matter containers and Part containers with no chapter content have some special rules for their metadata
+
+Front matter container must not contain page numbers &named_element_with_id;
+Front matter container must not contain DOI &named_element_with_id;
+
+Front matter container must not contain PDF file ref &named_element_with_id;
+
+
+Back matter container must not contain page numbers &named_element_with_id;
+Back matter container must not contain DOI &named_element_with_id;
+
+Back matter container must not contain PDF file ref &named_element_with_id;
+
+
+A part with no content other than chapters/articles, partintro must not have an abstract. &check_id;
+A part with no content other than chapters/articles/partintro must have @role=suppressPDF on imageobject. &check_id;
+Part divisions with no content other than chunks must have a suppress PDF flag on the imageobject &named_element_with_id;
+Part divisions with an abstract must not have a suppress PDF flag on the imageobject, &named_element_with_id;
+A Part does not have any chapters or articles within it, OK? &check_id;
+
+
+Part divisions with a partintro must not have a suppress PDF flag on the imageobject &named_element_with_id;
+
+
+Part divisions with child articles must not have a suppress PDF flag on the imageobject &named_element_with_id;
+Part divisions with child articles must have a DOI, &check_id;
+
+
+
+
+Tests for articles, ie A-Z content
+
+&precedingPageNoVariable;
+An article must have a DOI, &check_id;
+ An article contains bold/smallcaps that is not linked. Should it be a cross reference to another article? &check_id; &pageNoAndChunkPDF;
+A snapshot article is present, &check_id;
+
+
+&precedingPageNoVariable;
+The title[@role=keepWithNext] should only be used for parent titles in some contexts in some A-Z reference works OR where the Part heading is on the same page as the first child chapter, &check_id; &pageNoAndChunkPDF;
+If a title has @role=keepWithNext, it MUST NOT have a sibling pagenums, &check_id;
+If a title has @role=keepWithNext, it MUST NOT have a sibling mediaobject, &check_id;
+
+
+&precedingPageNoVariable;
+A para in an article is comprised mostly of internal links, should the para have @role=see? &check_id; &pageNoAndChunkPDF;
+
+
+A containing a bibliolist in an article must have @role=bibliography; &check_id;
+
+
+A with @role= should only occur within an article, &check_ancestor;
+
+
+&precedingPageNoVariable;
+A section with @role=subArticle should usually be in an article. Is this correct? &check_id; &pageNoAndChunkPDF;
+A sub article is present, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+More tests for articles and A-Z content
+
+&precedingPageNoVariable;
+An article is comprised mostly of internal links, should it have @role=xref? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+An article has @role=xref (ie is marked as a cross-reference article), but contains multiple paragraphs, so probably shouldn't have @role=xref? &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Page numbers in articles
+
+An article must have pagenums, &check_id;
+
+
+
+
+FPA articles
+
+An FPA article must have an FPA article type, &check_id;
+
+
+An FPA article type must match one of the permitted values (= ), &check_ancestor;
+
+
+
+
+
+An FPA article type can only occur within an FPA article, &check_ancestor;
+
+
+
+
+The first elements in the book after info must be colophon (optional) and part[@role=front]
+
+First element after book/info must be colophon or front matter container
+
+
+First element after colophon must be front matter container
+
+
+
+
+Content and structure of the front matter container
+
+The title of the front matter must be "Front matter" &check_id;
+The first element in front matter after info must be the prelims. &check_id;
+The front matter should usually contain a contents chunk (toc). &check_id;
+
+
+The title of the prelims must be "Title Pages" &check_id;
+A subtitle is present in the prelims, which is not allowed, &check_id;
+
+
+
+
+Some chunks really should be in the front matter
+
+The chunk "" must be in the front matter container &check_id;
+
+
+ The chunk "" should normally be in the front matter container &check_id;
+
+
+The chunk "" must be in either the front or back matter container &check_id;
+
+
+
+
+Occasionally there might be a dedication just before back matter.
+
+The chunk "" must be in last position before the back matter container, when it occurs directly within the book &check_id;
+
+
+
+
+Some chunks really should be in the back matter
+
+The chunk "" should normally be in the back matter container &check_id;
+
+
+
+
+Content and structure of the back matter
+
+The title of the back matter must be "Back matter" &check_id;
+
+
+
+
+Lists of illustrations etc need to be in toc elements
+
+Chunk in the front matter includes the word 'List' in its title but is not a toc element, OK? &check_id;
+
+
+
+
+Chapter and Part numbers etc in the ToC must not be captured in the data
+
+List item in a toc starts with a number. Is it the target label number? If so, it should be deleted, &check_id;
+
+
+
+
+
+Some significant elements should never be empty (eg empty para and empty title are not allowed)
+
+
+&precedingPageNoVariable;
+ The &named_element_with_id; should have some content or be deleted [if vertical white space is required, it must be controlled by methods specified], &check_id; &pageNoAndChunkPDF;
+ Element () only contains space elements, which is not allowed; if vertical white space is required, it must be controlled by attributes on the element, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+
+Tests relating to various paragraph components
+
+&precedingPageNoVariable;
+Bibliolist within para should have @role=inline, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+ Bibliolists not in paras
+
+ &precedingPageNoVariable;
+ An inline bibliolist that is not within para is not permitted. Is it really inline?, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+
+ Tests relating to bridgehead elements
+
+ &precedingPageNoVariable;
+ A should not normally be a child of an element that can take sections. Use section/info/title for the heading and properly next the content in a section instead, &check_id; &pageNoAndChunkPDF;
+ A must have a @renderas attribute, the value of which (sect1, sect2 etc) must be equivalent to the nesting level of the corresponding heading style, &check_id; &pageNoAndChunkPDF;
+ A must not have @role; use the DocBook standard @renderas for determining how the bridgehead needs to be styled, &check_id; &pageNoAndChunkPDF;
+ A bridgehead in a note[@role=annotations] must have @renderas=sect3, &check_id;
+
+
+
+
+
+List tests
+
+&precedingPageNoVariable;
+ The &named_element_with_id; has only one list item. Is this correct? &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ The &named_element_with_id; has only one list item and a title. Should this be a formal paragraph? &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ has @continuation, &check_id; &pageNoAndChunkPDF;
+ has @numeration = , &check_id; &pageNoAndChunkPDF;
+ has @startingnumber = , &check_id; &pageNoAndChunkPDF;
+ has @inheritnum = , &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ Multiple terms in varlistentry. Is that correct? &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Itemized or bulleted lists can control the bullet style to some extent
+
+&precedingPageNoVariable;
+@mark MUST usually be one of disc, square, circle. If no mark is required, use simplelist unless the list has a title &check_id; &pageNoAndChunkPDF;
+
+
+
+
+General list tests
+
+&precedingPageNoVariable;
+Element '' is within a paragraph, which is almost certainly not correct, &check_id; &pageNoAndChunkPDF;
+Element '' is nested within a listitem, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+
+Image components
+
+
+ elements must contain at least one "imageobject" element.
+ Image has only a version in a non-web image format, which is not correct, &ancestor_id;
+ "imagedata" elements must have a "format" attribute.
+
+
+
+
+
+ Inline media objects
+
+ A contains an inlinemediaobject, which is unlikely to be right, &check_id;
+
+
+ An inlinemediaobject is present, &check_ancestor;
+
+
+
+
+MIME type of image (and other) objects
+
+ image objects must have a @format which is a valid MIME type. &check_ancestor;
+ image has @format= AND @outputformat=web, which is not correct. &check_ancestor;
+
+
+
+
+Relative locations of associated files (pdfs, images etc)
+
+ PDF files must be located within a pdfs/ directory. &check_ancestor;
+
+
+ Images files must be located within an images/ directory. &check_ancestor;
+
+
+
+
+Tests for image file extensions
+
+PDF files must have a .pdf file extension, &check_ancestor;
+
+
+Image files with MIME type must have file extension .png, &check_ancestor;
+
+
+Image files with MIME type must have file extension .tiff or .tif, &check_ancestor;
+
+
+Image files with MIME type must have file extension .gif, &check_ancestor;
+
+
+Image files with MIME type must have file extension .jpg or .jpeg, &check_ancestor;
+
+
+
+
+If multiple versions of the same image are present, then @outputformat must be specified for each
+
+ mediaobject elements with more than one "imageobject" element must have @outputformat specified on imagedata.
+
+
+ The only permissible values of @outputformat on imagedata are 'web' or 'print', &check_ancestor;
+
+
+
+
+A @outputformat attribute is only allowed on specific elements, where they must take the values defined in the schema. If a @outputformat is included on any other element it is an error
+
+The element has a @outputformat attribute, but it is not an element on which it is allowed. &check_id;
+The element has @outputformat=, &check_ancestor;
+
+
+
+
+General figure tests
+
+&precedingPageNoVariable;
+A is present, &check_id; &pageNoAndChunkPDF;
+The title is characters long, should some of it be in a caption? &check_id; &pageNoAndChunkPDF;
+A mediaobject is required within a , &check_id;
+
+
+&precedingPageNoVariable;
+A element with @role=source can only be within a caption; &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Tests specifically relating to FPA article images
+
+A in an FPA article must have @role=fpa, &check_id;
+
+
+
+
+imageobject in mediaobject
+
+A must have only one imageobject child with imagedata/@outputformat='web'.
+
+
+
+
+
+Inline bibliolists in footnotes
+
+&precedingPageNoVariable;
+A as the only child of footnote must not have @role=inline, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Paragraphs shouldn't normally *directly* contain just one block element. And, if they only contain a single inline element, it may make more sense to replace both and use the block equivalent
+
+&precedingPageNoVariable;
+ The block &named_element_with_id; is the only direct child of a paragraph. &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ The "" element contained in para with id "" should be replaced with the block equivalent. &pageNoAndChunkPDF;
+
+
+
+
+
+Checking of link targets
+
+
+&precedingPageNoVariable;
+ has @role, yet book/info/biblioid[@otherclass=schematronVersion] = 1; if @role is used, schematronVersion must be 2 or more, &check_ancestor;
+ "link" elements must have either a "linkend" or a "xlink:href" attribute but not zero or both; &check_ancestor;
+ "xlink:href" attributes should not contain whitespace - check the URI and escape as specified in RFC 2396 (ie spaces should be replaced with '%20'); &check_ancestor; &pageNoAndChunkPDF;
+ "link" element contains only one bracket, which suggests that the span isn't correct, &check_ancestor; &pageNoAndChunkPDF;
+ "link" element contains only one bracket, which suggests that the span isn't correct, &check_ancestor; &pageNoAndChunkPDF;
+ "link" element contains quotes and brackets, which suggests that its content may be too long, &check_ancestor; &pageNoAndChunkPDF;
+ "link" element is longer than 150 characters, which suggests that its content may be too long, &check_ancestor; &pageNoAndChunkPDF;
+ The link element MUST have some content, &check_ancestor;
+ @endterm on link is not permitted in this instance of DocBook, &check_ancestor;
+ Link text in title is only one character long. Does it need to be in a superscript? &ancestor_id; &pageNoAndChunkPDF;
+
+
+
+
+
+Link target must exist (though this is ensured by the schema anyway)
+
+ "link" elements must refer to an existing target, link referencing "" does not.
+ link elements must not point to "title" elements; they should point to parent bibliomixed &ancestor_id;.
+
+
+
+
+Tests when links are not to other files within the data package
+
+"link" elements must have either a "role" or a "xlink:href" attribute but not both; &check_ancestor;
+
+
+
+
+Tests when links are to other files within the data package
+
+relative "link" elements must have a "xlink:href" attribute; &check_ancestor;
+Relative links require @conformance to indicate MIME type of target file, &check_ancestor;
+Link target ends with '.doc' but @conformance isn't 'application/msword', &check_ancestor;
+Link target ends with '.docx' but @conformance isn't 'application/msword', &check_ancestor;
+Link target ends with '.dot' but @conformance isn't 'application/msword', &check_ancestor;
+Link target ends with '.xls' but @conformance isn't 'application/excel', &check_ancestor;
+Link target ends with '.xslx' but @conformance isn't 'application/excel', &check_ancestor;
+Link target ends with '.ps' but @conformance isn't 'application/postscript', &check_ancestor;
+Link target ends with '.pdf' but @conformance isn't 'application/pdf', &check_ancestor;
+Link target ends with '.ppt' but @conformance isn't 'application/mspowerpoint', &check_ancestor;
+Link target ends with '.pptx' but @conformance isn't 'application/mspowerpoint', &check_ancestor;
+Link target ends with '.txt' but @conformance isn't 'text/plain', &check_ancestor;
+Link target ends with '.xml' but @conformance isn't 'text/xml', &check_ancestor;
+Link target ends with '.html' but @conformance isn't 'text/html', &check_ancestor;
+Link target ends with '.htm' but @conformance isn't 'text/html', &check_ancestor;
+Link target ends with '.css' but @conformance isn't 'text/css', &check_ancestor;
+Link target ends with '.png' but @conformance isn't 'image/png', &check_ancestor;
+Link target ends with '.gif' but @conformance isn't 'image/gif', &check_ancestor;
+Link target ends with '.jpg' but @conformance isn't 'image/jpeg', &check_ancestor;
+Link target ends with '.jpeg' but @conformance isn't 'image/jpeg', &check_ancestor;
+Link target ends with '.bmp' but @conformance isn't 'image/bmp', &check_ancestor;
+Link target ends with '.tiff' but @conformance isn't 'image/tiff', &check_ancestor;
+Link target ends with '.tif' but @conformance isn't 'image/tiff', &check_ancestor;
+Link target ends with '.mpeg' but @conformance isn't 'video/mpeg', &check_ancestor;
+Link target ends with '.mpg' but @conformance isn't 'video/mpeg', &check_ancestor;
+Link target ends with '.mp3' but @conformance isn't 'video/mpeg', &check_ancestor;
+
+
+ must have a valid MIME type, &check_ancestor;
+
+
+
+
+Extended link tests
+
+link elements with @role=figure must point to "figure" or "informalfigure" elements; this points to . See &ancestor_id;.
+
+
+link elements with @role=table must point to "table" elements; this points to . See &ancestor_id;.
+
+
+link elements with @role=bib must point to "bibliomixed" elements; this points to . See &ancestor_id;.
+
+
+link elements with @role=xref must not point to "table", "figure" or "bibliomixed" elements; this points to . See &ancestor_id;.
+
+
+
+More extended link tests
+
+If schematronVersion is greater than or equal to 2, then internal links must have @role, &ancestor_id;
+
+
+
+
+olinks (linking to other books)
+
+
+
+An element must have @targetdoc, &check_ancestor;
+An element must have @targetptr, &check_ancestor;
+An element must have @type, &check_ancestor;
+An @targetdoc must start with 'b-', &check_ancestor;
+An @targetdoc must consist of 13 digits after the prefix [not , as in the current case] (ie the target book XML ISBN (book/@xml:id)), &check_ancestor;
+The number after the prefix in the olink/@targetdoc must be a 13 digit number (ie the target book XML ISBN (book/@xml:id)), &check_ancestor;
+An @targetptr must be a valid xml ID (ie start with a letter), &check_ancestor;
+ The has @targetptr that starts with the Book ID (@xml:id) so this is an internal link, for which link must be used, &check_ancestor;
+ The has @targetdoc that starts with the Book ID (@xml:id) so this is an internal link, for which link must be used, &check_ancestor;
+
+
+
+
+More constrained olink rules
+
+
+
+
+The @targetdoc () must be in the same book as the @targetptr (), &check_ancestor;
+
+
+
+
+
+Volume and issue number are normally numeric and should not contain "vol" etc
+
+&precedingPageNoVariable;
+ Volume and issue numbers are usually numeric; check "" element with content ="" within the &ancestor_string;. &pageNoAndChunkPDF;
+
+
+
+
+
+General name tests
+
+&precedingPageNoVariable;
+ The text "et al" is not part of a name; it should be PCDATA within the bibliographic item; &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ Names with an othername and no firstname are wrong. Probably need firstname[@role=initials] &check_ancestor; &pageNoAndChunkPDF;
+
+ Person name is in info element, but has @role=last-first, which is very unusual. OK? &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Content that should be in lineage
+
+&precedingPageNoVariable;
+ The text "Jr" is not part of a name; it may need to be within a lineage element (check if it needs a @role=comma-before); &check_ancestor; &pageNoAndChunkPDF;
+ The text " Sr" is not part of a name; it may need to be within a lineage element (check if it needs a @role=comma-before); &check_ancestor; &pageNoAndChunkPDF;
+ The text "II" is not part of a name; it may need to be within a lineage element (check if it needs a @role=comma-before); &check_ancestor; &pageNoAndChunkPDF;
+ The text "III" is not part of a name; it may need to be within a lineage element (check if it needs a @role=comma-before); &check_ancestor; &pageNoAndChunkPDF;
+ The text "IV" is not part of a name; it may need to be within a lineage element (check if it needs a @role=comma-before); &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Components of names
+
+&precedingPageNoVariable;
+A surname probably shouldn't contain a full stop (), &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+Element firstname contains a space; is there more than one name in the element? Middle names/initials should use othername+attribute, &check_ancestor; &pageNoAndChunkPDF;
+Element firstname contains a full stop; the full stop should be outside the firstname element, or should this have @role=initials, &check_ancestor; &pageNoAndChunkPDF;
+Element firstname contains a comma; the comma should be outside the firstname element, &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+The honorific element contains 'Dirs.' (= director(s)?). Should this be in honorific, or better in bibliomisc[@role=description]? &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Name components depending on preferred style
+
+
+
+&precedingPageNoVariable;
+[my biblioType=] Element [@role=] should end with a stop (but there should not be a stop outside the element as the next character either) [OR, should the book or chunk have biblioType=initials-without-stops?], &check_ancestor; &pageNoAndChunkPDF;
+ [my biblioType=] The is only 1 character long. If an initial, it needs to have correct @role, and a full stop within the element, &check_ancestor; &pageNoAndChunkPDF;
+ [my biblioType=] The contains a full stop, but does not have appropriate @role, is that correct? &check_ancestor; &pageNoAndChunkPDF;
+ [my biblioType=] The ends with a full stop, but following text node starts with one too, which isn't right, &check_ancestor; &pageNoAndChunkPDF;
+ [my biblioType=] Element [@role=] should not end with a stop (but there should not be a stop outside the element as the next character either) [OR, should the book or chunk have biblioType=initials-with-stops?], &check_ancestor; &pageNoAndChunkPDF;
+ [my biblioType=] The is only 1 character long. If an initial, it needs to have correct @role &check_ancestor; &pageNoAndChunkPDF;
+ [my biblioType=] The contains a full stop, but this is a book or chunk for which initials in biblio references don't have stops &check_ancestor; &pageNoAndChunkPDF;
+ [my biblioType=] The has following text node that starts with a stop, but this is a book or chunk for which initials in biblio references don't have stops, so this isn't right, &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+
+Things that should be in honorific
+
+&precedingPageNoVariable;
+Element starts with a component that may need to be in 'honorific', &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+More things that should be in honorific
+
+
+&precedingPageNoVariable;
+Element ends with a component that should be in 'honorific', &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+Firstnames that are marked as surnames
+
+
+&precedingPageNoVariable;
+Should the element be a firstname? Its content = , + also check sibling firstname element and that parent personname[@role] is correct &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+
+General tests for page number spans, whether they occur in chunk info, or in biblio items
+
+ Page number spans should have no leading or trailing space; &check_ancestor;
+ Page number spans should be indicated with en-dash (–) rather than hyphens; &check_ancestor;
+ Page number spans should be indicated with en-dash (–) rather than m-dashes; &check_ancestor;
+
+
+
+
+
+Various tests to warn if footnote content might include something that should be linked or be a bibliographic reference
+
+&precedingPageNoVariable;
+Footnote contains italic text and single quote, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+Footnote para contains no child elements and the string ", ‘" (rsquo), should it be a link to a biblio item? &check_id; &pageNoAndChunkPDF;
+Footnote contains "v", "v." or "vs", should it be a biblio item @role=case? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+ Footnote contains italic text and a date, should it be a biblio item or a link to one? &check_id; &pageNoAndChunkPDF;
+
+
+
+
+&precedingPageNoVariable;
+A para contains only a footnote; is there missing text or should the footnote be attached to something (eg title, author name)? &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+A para contains only a footnote; is there missing text or should the footnote be attached to something (eg title, author name)? &check_id; &pageNoAndChunkPDF;
+
+
+
+
+
+Bibliographies (not 'Further Reading') should usually be referenced in the text
+
+&precedingPageNoVariable;
+
+
+
+There are unlinked bibliomixed items, of a total of [= %]. See details in following warnings
+
+
+&precedingPageNoVariable;
+ "bibliomixed" elements are usually referenced in the text; &check_id;. &pageNoAndChunkPDF;
+
+
+
+
+Tests in text for features that might need to be links, or which are wrongly encoded
+
+&precedingPageNoVariable;
+ A text node contains the ligatured character ff; replace with "ff", &check_ancestor; &pageNoAndChunkPDF;
+ A text node contains the ligatured character fi; replace with "fi", &check_ancestor; &pageNoAndChunkPDF;
+ A text node contains the ligatured character fl; replace with "fl", &check_ancestor; &pageNoAndChunkPDF;
+ A text node contains the ligatured character ffi; replace with "ffi", &check_ancestor; &pageNoAndChunkPDF;
+ A text node contains the ligatured character ffl; replace with "ffl", &check_ancestor; &pageNoAndChunkPDF;
+ A text node contains the ligatured character st; replace with "st", &check_ancestor; &pageNoAndChunkPDF;
+ A text node contains the ligatured character ſt (long st ligature); please notify the publisher, &check_ancestor; &pageNoAndChunkPDF;
+ A text node contains the character <. is that correct? &check_ancestor; &pageNoAndChunkPDF;
+ A text node contains the character >. is that correct? &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ An emphasis element is followed by text node with no space between, &check_ancestor; &pageNoAndChunkPDF;
+ An emphasis element is preceded by text node with no space between, &check_ancestor; &pageNoAndChunkPDF;
+ contains only a comma, is that correct? &check_ancestor; &pageNoAndChunkPDF;
+ contains only a stop, is that correct? &check_ancestor; &pageNoAndChunkPDF;
+ contains only a colon, is that correct? &check_ancestor; &pageNoAndChunkPDF;
+ contains only a semicolon, is that correct? &check_ancestor; &pageNoAndChunkPDF;
+ contains only a ‘, is that correct? &check_ancestor; &pageNoAndChunkPDF;
+ contains only a ’, is that correct? &check_ancestor; &pageNoAndChunkPDF;
+ contains only a “, is that correct? &check_ancestor; &pageNoAndChunkPDF;
+ contains only a ”, is that correct? &check_ancestor; &pageNoAndChunkPDF;
+ is empty &check_ancestor;
+
+
+&precedingPageNoVariable;
+
+ A link element is followed by text node with no space between, &check_ancestor; &pageNoAndChunkPDF;
+ A footnote is not permitted inside a link, &check_ancestor;
+
+
+
+
+
+ Small caps
+
+ Small caps contains only upper case, which is wrong. It should either contain initial caps or all lower case, &check_ancestor;
+
+
+
+
+Further tests within text()
+
+&precedingPageNoVariable;
+Text contains asterisk, but is not in a link, or para[@role=center], OK? &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Abstract tests
+
+&precedingPageNoVariable;
+An abstract must not contain a title "Abstract". &check_id;
+
+
+
+
+ Additional abstract tests
+
+ A book blurb abstract must not contain a title. &check_id;
+
+
+ &precedingPageNoVariable;
+ An abstract should not usually contain a title. Is this correct? &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Textual tests specifically for pdf extracts and content derived from Biblio
+
+ Text string contains letter followed by number; is it a footnote marker that needs to be deleted? &check_ancestor;
+ A text node contains the character &. is that correct? &check_ancestor;
+ A text node contains what looks like the ghost of an em element. Delete or add correct markup? &check_ancestor;
+ A text node contains what looks like the ghost of a b element. Delete or add correct markup? &check_ancestor;
+ A text node contains what looks like the ghost of a i element. Delete or add correct markup? &check_ancestor;
+ A text node contains what looks like the ghost of a div element. Delete or add correct markup? &check_ancestor;
+ A text node contains what looks like the ghost of a strong element. Delete or add correct markup? &check_ancestor;
+ A text node contains what looks like the ghost of a br element. Delete or add correct markup? &check_ancestor;
+ A text node contains what looks like the ghost of an entity (nbsp, quot, amp...). Delete or add correct markup? &check_ancestor;
+ A text node contains what looks like the ghost of a font name. Delete. &check_ancestor;
+
+
+
+
+Textual tests for full text only
+
+&precedingPageNoVariable;
+ A text node containing "Chapter" may need to be a cross reference of some sort, though check that it is not referring to another book entirely, &check_ancestor; &pageNoAndChunkPDF;
+
+ A text node containing "Appendix" may need to be a cross reference of some sort, though check that it is not referring to another book entirely, &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+General tests for issues in paragraphs
+
+&precedingPageNoVariable;
+ A text node containing "See" that is not followed by a link may need to be a cross reference of some sort, &check_ancestor; &pageNoAndChunkPDF;
+ A para with @role=impressions must be in the colophon, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+More general tests for issues in paragraphs
+
+&precedingPageNoVariable;
+ A para should not normally start with a lower case letter, &ancestor_id; &pageNoAndChunkPDF;
+
+
+
+
+Warnings for possible cases and irregularly-punctuated items
+
+&precedingPageNoVariable;
+ Collabname contains "vs." - usually indicates this is a case; &check_id;. &pageNoAndChunkPDF;
+ Collabname contains "v." - usually indicates this is a case; &check_id;. &pageNoAndChunkPDF;
+ Collabname contains " v " - usually indicates this is a case; &check_id;. &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ bibliomixed ends with punctuation and the parent bibliolist is followed by punctuation too. &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Rules for bibliolist contexts
+
+&precedingPageNoVariable;
+A bibliolist element is preceded by text node with no space between, &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Title formatting in biblio items
+
+&precedingPageNoVariable;
+Not all the book/journal title is within an emphasis element, is that correct? &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+More bibliomixed title issues
+
+&precedingPageNoVariable;
+Bibliomixed ends with a stop. It needs to be outside the unless it is the end of an abbreviation, &check_ancestor; &pageNoAndChunkPDF;
+Bibliomixed ends with a comma. It needs to be outside the , &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Missing spaces in bibliomixed
+
+&precedingPageNoVariable;
+There is no space between the and the following title, &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Basic tests for bibliomixed[@role=monograph]
+
+&precedingPageNoVariable;
+ Monograph "" elements must have a title; &check_id;. &pageNoAndChunkPDF;
+ Monograph "" elements should usually have at least one author or editor; &check_id; &pageNoAndChunkPDF;
+ Monographs must not contain an 'article'; should be a 'part' and the needs a @role=contribution &check_id; &pageNoAndChunkPDF;
+ Monographs must not contain a 'journal'; should probably be a 'book' and change bibliomixed[@role] accordingly &check_id; &pageNoAndChunkPDF;
+ A monograph biblio item must not contain a bibliomset 'book'; that is only permitted in a 'contribution', &check_id; &pageNoAndChunkPDF;
+ This work marked as a monograph has a web address. Is @role=monograph correct? &check_id; &pageNoAndChunkPDF;
+ Bibliomixed does not have a publishername or address; is this some other sort of bibliomixed, or a short-form reference that should be a link rather than a bibliomixed? &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Basic tests for bibliomixed[@role=contribution]
+
+ Contributions in books must not contain an 'article'; should be a 'part' &check_id;
+ Chapters in books must not contain a 'journal'; should probably be a 'book' &check_id;
+ An item in a edited book needs to contain a part bibliomset/biblioset &check_id;
+ An item in a book/monograph needs to contain a book bibliomset/biblioset &check_id;
+ This work marked as a contribution has a web address. Is @role=contribution correct? &check_id;
+
+
+
+
+Basic tests for bibliomixed[@role=article]
+
+ Items in journals/serial/magazines must not contain a 'part'; should be a 'article' &check_id;
+ Journals/serials/magazines must not contain a 'book'; should probably be a 'journal' &check_id;
+ A journal article needs to contain a journal bibliomset/biblioset &check_id;
+ A journal article needs to contain a article bibliomset/biblioset &check_id;
+ A bibliomixed[@role=article] should not normally contain a publishername. Does it contain an editor? Is this really a contribution? &check_id;
+
+
+
+
+Tests for other bibliomset-related issues
+
+Biblio item contains element that is not in a bibliomset, which is very unusual. Is that correct? &check_id;
+
+
+
+
+Basic tests for bibliomixed[@role=serial]
+
+ Serial "" elements must not have an author; &check_id;.
+
+
+
+
+Dates in bibliomixed
+
+ A bibliomixed should usually have a pubdate; the "date" element (if used) is for other dates in the record. Or, is this a short form reference that should just be a link to the primary ref; or maybe it is an unpublished or legal item? &check_id;.
+
+
+ A unpublished bibliomixed should not have a pubdate; use the "date" element (or confdates if it is a conference) &check_id;.
+ A unpublished bibliomixed should not have a publishername; use the "orgname" element (or confsponsor if it is a conference) &check_id;.
+
+
+
+
+General content checks for bibliomixed and its components
+
+ Bibliographic references probably should not contain more than one pubdate. One of them may need to be a "date" &check_id;
+ authorgroup must not be in a bibliomixed; remove it and ensure punctuation, words and spacing between child elements is as in the print edition &check_id;
+ bibliomixed should not contain a biblioid; if it is a uri, encode as a link &check_id;
+ bibliomixed should not contain publisher (since it can't contain punctuation between components). &check_id;
+ bibliomixed contains more than one publishername, which may not be right. &check_id;
+ bibliomixed contains multiple, successive authors with no punctuation or text between them. &check_id;
+ bibliomixed contains multiple, successive editors with no punctuation or text between them. &check_id;
+ Biblio item contains bibliomset @relation=, &check_id;
+
+
+ It is very unusual to have an editor in a bibliomset "part". Is this correct? &check_ancestor;
+ It is very unusual not to have an author in a bibliomset "part". Is this correct? Is there an implied or anonymous author? &check_ancestor;
+
+
+ It is very unusual to have an editor in a bibliomset "article". Is this correct? &check_ancestor;
+
+
+ Addresses in bibliographies must have their components marked up, &check_ancestor;
+
+
+ in biblio item starts with single or double quote; should it be outside the title? &check_ancestor;
+ in biblio item ends with single or double quote; should it be outside the title? &check_ancestor;
+ The bibliomixed/ contains elements that are not allowed. A normally just contains formatting markup. &check_ancestor;
+
+
+
+
+Wrongly marked up editors or translators etc
+
+ An author is preceded by the text 'translated by' or 'translator', so should author be othercredit[@class=translator]?, &check_id;
+ An author is preceded by the text 'edited by' or 'editor', so should author be editor?, &check_id;
+
+
+ An editor is preceded by the text 'translated by' or 'translator', so should editor be othercredit[@class=translator]?, &check_id;
+
+
+
+
+Further tests for bibliomixed content
+
+&precedingPageNoVariable;
+ bibliomixed contains a with no punctuation or text between it and the following . &check_ancestor; &pageNoAndChunkPDF;
+ A element is followed by an opening bracket and no space between, &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ bibliomixed contains a with no punctuation or text between it and the preceding . &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ A element is followed by an opening bracket and no space between, &check_ancestor; &pageNoAndChunkPDF;
+ A element does not have a space before it, &check_ancestor; &pageNoAndChunkPDF;
+ bibliomixed contains a with no punctuation or text between it and the preceding . &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+ A element does not have a space before it, &check_ancestor; &pageNoAndChunkPDF;
+
+
+ An contains emphasis. Is that correct? &check_ancestor;
+
+
+
+
+ Unbalanced brackets in biblio items
+
+ in biblio item starts with a bracket, but does not end with one; are brackets in correct place? There should not be one in a ? &check_ancestor;
+ in biblio item ends with a bracket, but does not starts with one; are brackets in correct place? There should not be one in a ? &check_ancestor;
+ in biblio item starts with a square bracket, but does not end with one; are brackets in correct place? There should not be one in a ? &check_ancestor;
+ in biblio item ends with a square bracket, but does not starts with one; are brackets in correct place? There should not be one in a ? &check_ancestor;
+ in biblio item starts with a quote, but does not end with one; are brackets in correct place? There should not be one in a ? &check_ancestor;
+ in biblio item ends with a quote, but does not starts with one; are brackets in correct place? There should not be one in a ? &check_ancestor;
+
+
+
+
+Various texts strings that may require special handling or testing in bibliomixed or links
+
+&precedingPageNoVariable;
+The string "Anon" or "anon" is in a biblio item, but not marked as bibliomisc[@role=anon]. Is it an anonymous author? &check_ancestor; &pageNoAndChunkPDF;
+
+
+Where there is an ibid/op cit/loc cit in a link, there must also be an alt, &check_ancestor;
+
+
+&precedingPageNoVariable;
+There is no space between the word "in" or "to" and the following bibliomset, &check_ancestor; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+There is no space between the word "accessed" or "retrieved" and the following date, &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+&precedingPageNoVariable;
+There is an "op cit" in text that is not in a bibliomixed or link, &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+"Ibid" or "ibid" in text that is not in a bibliomixed or link, &check_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+There is a "loc cit" in text that is not in a bibliomixed or link, &check_id; &pageNoAndChunkPDF;
+
+
+
+ Biblio item sub/title contains the word "Meeting", "Conference", "Convention" or "Presented"; should this be an @role=unpublished conference? &check_id;
+ Biblio item contains the word "unpublished"; should this be an @role=unpublished item? &check_id;
+ Biblio item contains the text "PhD", "thesis", "dissertation" or a related word; should this be an @role=unpublished item? &check_id;
+ Biblio item contains the text "personal communication"; should this be an @role=unpublished item? &check_id;
+ Biblio item contains the text "interview"; should this be an @role=unpublished item? &check_id;
+A bibliomixed with @role= contains a confgroup which is very unusual. Is that correct? &check_id;
+
+
+
+
+ More tests for strings in bibliomixed
+
+ The text "Dissertation" is in a element, &check_ancestor;
+
+
+
+
+Untagged dates
+
+Bibliomixed contains a month but it is not within a date, pubdate, or confdates element, &check_ancestor;
+
+
+
+
+How much of a bibliographic item is untagged?
+
+&precedingPageNoVariable;
+
+
+
+
+
+Possible untagged content in biblio item. percent = % [untagged content = ] untaggedLength = ; total = ; &check_id;
+Biblio item is very short (= characters); is it a full biblio reference or should it be a link to the expanded form elsewhere? &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Person name style in bibliographic references
+
+
+
+Not all of the biblio items have the same personname @role style [first-last= / last-first=], &check_id;
+
+
+
+Additional person name checks
+
+&precedingPageNoVariable;
+It is very unusual for a name only to contain a surname (). Is this correct? &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+More general biblio item tests
+
+&precedingPageNoVariable;
+Biblio item title contains the string 'trans.' which is almost certainly incorrect, &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+bibliomset tests
+
+ A bibliomset must not contain a bibliomset, &check_ancestor;
+
+
+A single bibliomset element in a reference suggests that part of the markup might be missing, or that it isn't required, &check_id;.
+A single journal bibliomset element in a reference suggests it might need to be a bibliomixed{@role=serial], &check_id;.
+"In" or "in" present in biblio item but no bibliomset. Is this a contribution or similar item?, &check_id;
+
+
+
+Ensure bibliomsets are in their correct bibliomised type
+
+A 'book' bibliomset must be in a 'contribution' bibliomixed. Is the bibliomset wrong, or the bibliomixed[@role]? &check_ancestor;
+A bibliomset[@relation=book] should contain a title, &check_ancestor;
+
+
+A 'part' bibliomset must be in a 'contribution' bibliomixed. Is the bibliomset wrong, or the bibliomixed[@role]? &check_ancestor;
+A bibliomset[@relation=part] should normally contain a title, &check_ancestor;
+
+
+A 'article' bibliomset must be in a 'article' bibliomixed. Is the bibliomset wrong, or the bibliomixed[@role]? &check_ancestor;
+A bibliomset[@relation=article] should normally contain a title, &check_ancestor;
+
+
+A 'journal' bibliomset must be in a 'article' bibliomixed. Is the bibliomset wrong, or the bibliomixed[@role]? &check_ancestor;
+A bibliomset[@relation=journal] should contain a title, &check_ancestor;
+A journal should not normally contain a publishername or address. Is this really a bibliomixed[@role=contribution]?, &check_ancestor;
+
+
+
+
+Biblio items that may or may not be legal ones
+
+ This bibliomixed has a legalRef, but isn't a case or legislation &check_id;
+ A bibliomixed should usually have a title &check_id;.
+ Biblio item contains "v", "v." or "vs", but is not a legal case; &check_id;
+ Biblio item sub/title contains the word "Agreement", "Treaty", "Convention", "Directive" or "Declaration"; should this be an @role=legislation item? &check_id;
+
+
+
+
+Web sites in bibliographic items
+
+ A bibliomixed that is a website MUST contain a link/uri &check_id;.
+
+
+
+
+General tests for bibliographic content
+
+&precedingPageNoVariable;
+ It is very unusual not to have an author or editor in a biblio item. Is this correct? Is there an implied author? &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Tests for bibliomixed other and unpublished items
+
+Bibliomixed with @role=other contains untagged string ‘.*’. Is it an article or other bibliomixed @role type? &check_id;
+The bibliomixed with @role=other contains a publishername or pubdate, so should almost certainly be a monograph or contribution, &check_id;
+The bibliomixed with @role=other contains a volumenum or issuenum, so should almost certainly be a journal article, &check_id;
+
+
+
+
+
+
+
+Proportion of unpublished + other bibliomixed = %. countMixed = ; countUnpub = ; countOther = ;
+
+Proportion of unpublished + other bibliomixed = %. It is likely that some of those items may be tagged incorrectly
+
+
+
+
+Tests for bibliographical items that are (email) messages
+
+The 'message' bibliomixed contains one or more elements that are not relevant for a message. Is the markup correct, or should the bibliomixed have a different @role? &check_id;
+
+
+A bibliomixed contains the word "email" but it does not have @role=message. Correct? &check_id;
+
+
+
+
+Additional legal bibliographic item tests
+
+
+
+
+
+
+Proportion of cases + legislation bibliomixed = %. countMixed = ; countCase = ; countLegislation = ;
+
+ Proportion of case + legislation bibliomixed = %. It is likely that some of those items may be tagged incorrectly
+
+
+
+
+ Recordings
+
+ is in a section called 'Recordings' or 'Discography'; should have @role=recording? &check_id;
+
+
+ [@role=recording] should probably contain the name of the artist in othercredit[@otherclass=artist] &check_id;
+ [@role=recording] should probably contain a title &check_id;
+ [@role=recording] should probably contain a date &check_id;
+
+
+
+
+ Films
+
+ is in a section called 'Films', 'Videos' or 'Filmography'; should have @role=film? &check_id;
+
+
+ [@role=film] should probably contain a title &check_id;
+ [@role=film] should probably contain a date &check_id;
+
+
+
+
+ Bibliodivs should contain at least a bibliolist
+
+ A should contain a bibliolist.
+
+
+
+
+Name tests
+
+A personname within author, editor or othercredit must contain name components, &check_ancestor;
+A personname within author, editor or othercredit must have an @role, &check_ancestor;
+Use firstname instead of givenname, &check_ancestor;
+personname contains more than one surname, &check_ancestor;
+
+
+&precedingPageNoVariable;
+A surname ends with an apostrophe + s, which should probably be outside the surname element, though check against the source, &check_ancestor; &pageNoAndChunkPDF;
+A surname ends with an apostrophe + s, which should probably be outside the surname element, &check_ancestor; &pageNoAndChunkPDF;
+
+
+Element contrib must not be present in , use othercredit instead, &check_ancestor;
+
+
+Element othercredit in this position must contain contrib (see data spec), &check_ancestor;
+Element othercredit in info must have @class, &check_ancestor;
+
+
+When othercredit occurs within authorgroup, only the first occurrence should have contrib. If a different contrib is required for one or more othercredits, group them separately, &check_ancestor;
+When multiple othercredits are in an authorgroup they must all have the same @class, &check_ancestor;
+
+
+
+
+
+Order of name components in personname
+
+
+A personname with @role=last-first needs to have a surname first &check_ancestor;
+
+
+A personname with @role=first-last should have a surname last &check_ancestor;
+
+
+There is a personname with @role=first-last and lineage; check that surname and lineage are in the correct sequence &check_ancestor;
+
+
+
+
+Name components tests in bibliomixed
+
+&precedingPageNoVariable;
+A in a bibliomixed must be within a personname, &check_ancestor;
+A contains an asterisk/dagger or double dagger; This must be moved outside the element, and does it need to be a link? &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Other tests around names and contributors
+
+Othercredit has @role=. Should this be a @class attribute instead? &ancestor_id;
+
+
+
+
+Accessed date
+
+The @role=accessed must be on a date element not a pubdate &check_ancestor;.
+
+
+&precedingPageNoVariable;
+Biblio item contains the word "accessed" or "retrieved" but it is not followed by a date, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Incorrectly marked up URIs and DOIs
+
+External links must contain a uri element or be a DOI string &check_ancestor;
+
+
+
+ contains a URL but is not properly marked up; should be in link/uri elements &check_ancestor;
+
+
+
+&precedingPageNoVariable;
+A uri element must not contain spaces, &check_ancestor; &pageNoAndChunkPDF;
+A must be in a link element, &check_ancestor;
+
+
+
+
+Untagged DOIs
+
+&precedingPageNoVariable;
+There is an untagged DOI in &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+URI tests
+
+
+@xlink:href may not be a valid URI. Does it start with http:// or https://? [if it is a relative path, it may need @role], &check_ancestor;
+
+Broken URI in @xlink:href, &check_ancestor;
+
+
+A relative link target must start with one of the local directories (media, images, pdfs), &check_ancestor;
+
+
+ element with an @href must have @xlink:role=biblioAuID, &check_ancestor;
+The biblioAuID in /@xlink:href is not valid, &check_ancestor;
+
+
+
+
+Empty href test
+
+@xlink:href is given with no value, &check_ancestor;
+
+
+
+
+
+The @href of a 'raw' DOI must include the http://dx.doi.org/ prefix, &check_ancestor;
+
+
+
+
+ Anchors
+
+ An must have @xlink:role=objectPointer, &check_id;
+ An must have an @xml:id, &check_ancestor;
+ A must point to an element[@xlink:role=objectPointer], &check_id;
+
+
+
+
+hrefs only allowed on link, author, editor, othercredit, keyword etc
+
+@xlink:href is on a element, which is not allowed, &check_ancestor;
+
+
+ A with @xlink:href must have "@xlink:role='objectPointer', &check_id;
+ A with @xlink:href must point to an anchor[@role=objectPointer], &check_id;
+
+
+ A occurs within a para, which is not allowed; check if it should be an inlinemediaobject, or most likely should be moved after the para and add an anchor to show original location, &check_id;
+
+
+
+
+ Additional tests for object location
+
+ A occurs within a , which also contains an attribution or para[@role=right], so this object should probably be moved after the , &check_id;
+
+
+
+
+xlink:role only available on author, keyword or title elements etc
+
+@xlink:role is on a element, which is not allowed, &check_ancestor;
+
+
+ A with @xlink:role must have "@xlink:href, &check_id;
+
+
+
+
+xlink:label only available on specific elements
+
+@xlink:label is is on a element, which is not allowed, &check_ancestor;
+
+
+The value of @xlink:label on must be 'otherBook', &check_id;
+
+
+
+
+Other xlink attributes not allowed anywhere
+
+@xlink:arcrole is is on a element, which is not allowed, &check_ancestor;
+@xlink:title is is on a element, which is not allowed, &check_ancestor;
+@xlink:show is is on a element, which is not allowed, &check_ancestor;
+@xlink:actuate is is on a element, which is not allowed, &check_ancestor;
+@xlink:from is is on a element, which is not allowed, &check_ancestor;
+@xlink:to is is on a element, which is not allowed, &check_ancestor;
+
+
+
+
+Email addresses
+
+Email addresses must have their content in an email element &check_ancestor;
+The @xlink:href contains an @ symbol, suggesting it miht be an email address if so it should start with 'mailto:' and be followed by a correctly-construccted email address, &check_ancestor;
+
+
+ contains an @ symbol; is it an email address that is not properly marked up? &check_id;
+
+
+email element is not within a link &check_ancestor;
+
+
+
+
+
+Address components
+
+Address component contains a country name but it is not in a "country" element; &check_ancestor;
+
+
+
+
+
+
+Tables
+
+
+There is a , &check_id;
+
+
+The number of columns in a table row must equal the number declared on the "tgroup" element; &check_id;.
+
+
+Table entry has row/col spans, &check_id;
+
+
+
+
+Tables 2
+
+
+The &named_element_with_id; must refer to a "colspec" element by name.
+
+
+
+
+Tables, including column counting
+
+
+
+
+
+
+
+
+
+
+The &named_element_with_id; must refer to a "colspec" element by name.
+The &named_element_with_id; has a "nameend" attribute. It must also have a "namest" attribute.
+The &named_element_with_id; must occupy at least one column.
+
+
+
+
+Table attributes
+
+
+The &named_element_with_id; must refer to a "colspec" element by name.
+The &named_element_with_id; has a "nameend" attribute. It must also have a "namest" attribute.
+
+
+
+
+
+Tests for equations
+
+An is present containing , &check_id;
+ contains: , but does not have @condition, &check_id;
+
+
+
+
+Tests for equations
+
+
+An is present with @condition= but does not have a non-mathml sibling, &check_id;
+An is present with @condition= but does not have a mathml sibling, &check_id;
+
+
+An is present with @condition= but does not have a non-mathml sibling, &check_id;
+An is present with @condition= but does not have a mathml sibling, &check_id;
+
+
+An is present with @condition= but does not have a non-mathml sibling, &check_id;
+An is present with @condition= but does not have a mathml sibling, &check_id;
+
+
+
+
+Additional equation tests
+
+Equations as images need both web and print versions, &check_ancestor;
+
+
+MathML within an inlineequation must have @display=inline, &check_ancestor;
+
+
+
+
+A @condition attribute is only allowed on specific elements, where they must take the values defined in the schema. If a @condition is included on any other element it is an error
+
+The element has a @condition attribute, but it is not a defined value in the schema. &check_id;
+
+
+
+
+
+
+Sidebars
+
+&precedingPageNoVariable;
+A sidebar is present (@role=), &check_id; &pageNoAndChunkPDF;
+Element with role '' should only be used in exceptional cases
+
+
+
+
+
+Indexes and index terms
+
+ Book contains indexterms but no "index" element, &check_id;
+ Book contains an "index" but no indexterms, &check_id;
+
+
+ If a book has more than one index, all MUST have @type, &check_id;
+
+
+ The title attribute with id "" contains indexterm elements. These should be contained in a separate itermset element.
+
+
+ The indexterm with id "" starts a range inside an itermset. This cannot be correct.
+
+
+
+
+Index term tests
+
+
+ The indexterm with id "" starts a range, the end of range occurs before it.
+ The indexterm with id "" starts a range but there is no end of range marker.
+ The indexterm with id "" starts a range but is a child of a footnote. This cannot occur.
+
+
+
+ The indexterm with startref "" ends a range but is a child of a footnote. This cannot occur.
+ The with id= has a @type attribute, which is not required when @class=endofrange
+
+
+
+
+Index term tests
+
+Index term @type (= ) does not match an index, &check_id;
+
+
+
+
+Further index term tests
+
+
+The element is within a , which is not allowed. &check_id;
+The @zone attribute is not to be used; use the @class attribute instead. &check_id;
+The @class on indexterm is required. &check_id;
+An indexterm is not permitted in an , &check_id;
+
+
+The index is captured as back-of-book content not as inline terms and contains indexterms. &check_id;
+An must be within part[@role=back], &check_id;
+
+
+
+
+'See' index tests
+
+Index term matches a 'see' primary term, which is incorrect (""), &check_id;
+
+
+Index term matches a 'see' secondary term, which is incorrect (""), &check_id;
+
+
+Index term matches a 'see' tertiary term, which is incorrect (""), &check_id;
+
+
+Index terms containing 'see' must be within an itermset in the chunk info, &check_id;
+
+
+The '' element doesn't have a completely matching primary index term (""), &check_ancestor;
+
+
+
+
+Tests for elements within indexterm
+
+A must not end with a colon, &check_ancestor;
+
+
+
+
+
+
+
+Use of the emphasis element
+
+&precedingPageNoVariable;
+ Use the "superscript" element instead of an emphasis role; &check_ancestor;
+ Use the "subscript" element instead of an emphasis role; &check_ancestor;
+ An emphasis element has the @role value "", &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+A @condition attribute is only allowed on the defined list of elements, where they must take the values defined in the schema. If a @condition is included on any other element it is an error
+
+
+
+The element has a @condition attribute, but it is not one of the elements which is allowed to have it. &check_id;
+A @condition attribute with value = '' is present, &check_ancestor;
+
+
+
+
+
+The element has @condition=display but has no sibling hidden element, &check_ancestor;
+
+
+
+
+
+
+
+Invalid processing instruction (only page | insert | break | dbhtml | dbfo | oxygen are permitted) []
+ Markup is not permitted in a processing instruction, see &ancestor_id;
+ Found possible character reference in processing instruction
+
+
+
+
+
+Insert Processing Instructions for notes sections etc
+
+An insert processing instruction is present:
+The end-ch-notes PI is not in the correct format. Does not contain 'item=', &check_ancestor;
+The end-bk-notes PI is not in the correct format. Does not contain 'item=', &check_ancestor;
+ The end-para-notes PI is not in the correct format. Does not contain 'item=', &check_ancestor;
+
+Book contains 'end-bk-note' footnotes but there is no 'insert' PI present, &check_id;
+
+
+Chunk contains 'end-ch-note' footnotes but there is no 'insert' PI present, &check_id;
+
+
+ Chunk contains 'end-para-note' footnotes but there is no 'insert' PI present, &check_id;
+
+
+
+
+Checking that the insert statements have targets and titles
+
+&precedingPageNoVariable;
+
+
+
+
+
+
+The end bk notes PI does not point to a chunk ID, &check_ancestor;
+An end bk note PI does not have a chunk ID, &check_ancestor;
+There is a duplicated end-bk-note PI (target=), &check_ancestor;
+The insert PI title does not contain a space (= ""). Is it correct? It should match the title &pageNoAndChunkPDF; &check_ancestor;
+The insert PI title does not start with a capital letter (= ). Is it correct? It should match the title &pageNoAndChunkPDF; &check_ancestor;
+
+
+
+
+Ensure that notes have correct @role when necessary
+
+There is an end-bk-notes processing instruction in this book, but footnote does not have @role=end-bk-note, OK? &check_id;
+There is an end-ch-notes processing instruction in this chunk, but footnote does not have @role=end-ch-note, OK? &check_id;
+ There is an end-para-notes processing instruction in this formalpara, but footnote does not have @role=end-para-note, OK? &check_id;
+
+
+The with id= contains end-bk-note footnotes, but there is no processing instruction for this chunk in the book
+The with id= contains end-ch-note footnotes, but there is no processing instruction for the notes in this chunk
+The with id= contains an end-ch-note processing instruction, but there are no footnotes in this chunk
+
+
+
+
+
+Integrity tests for the chunk info/pagenums
+
+
+&precedingPageNoVariable;
+
+
+
+
+
+Start page must normally be 1 more than previous end page [$startPage=; $endPage=; $prevEndPage=], see &ancestor_id; &pageNoAndChunkPDF;
+
+
+&precedingPageNoVariable;
+
+Page number 1 is in the front matter; is that correct? &check_ancestor; &pageNoAndChunkPDF;
+
+
+
+
+Integrity tests for all info/pagenums (chunks and articles)
+
+
+&precedingPageNoVariable;
+
+
+If start page is the same as end page, remove the ndash and only contain a single value [$startPage=; $endPage=], see &ancestor_id; &pageNoAndChunkPDF;
+
+Start page must be before end page [$startPage=; $endPage=], see &ancestor_id; &pageNoAndChunkPDF;
+Page number range contains a Roman number; should this chunk be in the Front matter? &check_id; &pageNoAndChunkPDF;
+
+
+
+
+
+Page number format
+
+Page break markers are not present in the correct format
+
+
+A page break processing instruction does not have a "value" [], &ancestor_id;
+
+
+
+
+Page numbers absent
+
+There are no page break markers in this book
+
+
+
+ Page numbers present
+
+ Page break markers must not be in a book that is @outputformat=e-Only
+
+
+
+
+Page number sequence
+
+
+
+
+
+
+
+Problem with numbering of page break markers &chunk_pdf;: at page ; preceding page no = ; following page no =
+
+
+
+
+Page number consistency
+
+
+
+
+
+
+
+The start page in pagenums () must match the first page number value in this chunk in the page PI (), &check_id;
+
+
+
+
+Page number consistency
+
+
+
+
+
+
+
+The end page in pagenums () must match the last page number value in this chunk in the page PI (), &check_id;
+
+
+
+
+Page break placement
+
+Page break processing instructions should not normally follow each other; should one be in previous chunk?. &chunk_pdf; &check_ancestor;
+A page break PI should not usually be the first node after an info. Does it need to go before the containing block, or in the info/title (if it's a chunk)? &chunk_pdf; &check_ancestor;
+A page break PI should not be the first node before an info. Does it need to go before the containing block, or in the info/title (if it's a chunk)? &chunk_pdf; &check_ancestor;
+Page break processing instructions are not permitted in footnotes &chunk_pdf;, &check_ancestor;
+
+
+Page break processing instructions should not normally be the first node in a ; should it be between s or in previous chunk?. &chunk_pdf; &check_id;
+Page break processing instructions should not normally be the last node in a ; should it be between s or in previous chunk?. &chunk_pdf; &check_id;
+
+
+A page break processing instruction should not be in a title; move it so it is immediately before the element, &chunk_pdf; &ancestor_id;
+
+
+
+
+More PI rules
+
+Processing instructions must not be immediate children of . &chunk_pdf; &check_id;
+
+
+
+
+Column PIs
+
+&precedingPageNoVariable;
+Column processing instructions are present, &check_id; &pageNoAndChunkPDF;
+
+
+
+
+Line break processing instructions
+
+&precedingPageNoVariable;
+A line break marker is present; is that correct?, &check_ancestor; &pageNoAndChunkPDF;
+ A break processing instruction must contain a 'type', &check_ancestor;
+ A break processing instruction must have type="line | column | column-start | column-end"
+
+
+
+
+
+
+
+Glossary 'firstterm' type constraint
+
+ @linkend on firstterm must point to a glossentry.
+
+
+
+Footnote reference type constraint
+
+ @linkend on footnoteref must point to a footnote.
+ @label on footnoteref is almost certainly not correct &check_ancestor;
+
+
+
+Glossary 'glossterm' type constraint
+
+ @linkend on glossterm must point to a glossentry.
+
+
+
+Synopsis fragment type constraint
+
+ @linkend on synopfragmentref must point to a synopfragment.
+
+
+
+Glossary 'see' type constraint
+
+ @otherterm on glosssee must point to a glossentry.
+
+
+
+Glossary 'seealso' type constraint
+
+ @otherterm on glossseealso must point to a glossentry.
+
+
+
+Glossary term definition constraint
+
+ A termdef must contain exactly one firstterm
+
+
+
+Cardinality of segments and titles
+
+ The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist
+
+
+
+Root must have version
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+ The root element must have a version attribute.
+
+
+
+Element exclusion
+
+ annotation must not occur in the descendants of annotation
+
+
+ caution must not occur in the descendants of caution
+ important must not occur in the descendants of caution
+ note must not occur in the descendants of caution
+ tip must not occur in the descendants of caution
+ warning must not occur in the descendants of caution
+
+
+ caution must not occur in the descendants of important
+ important must not occur in the descendants of important
+ note must not occur in the descendants of important
+ tip must not occur in the descendants of important
+ warning must not occur in the descendants of important
+
+
+ caution must not occur in the descendants of note
+ important must not occur in the descendants of note
+
+ tip must not occur in the descendants of note
+ warning must not occur in the descendants of note
+
+
+ caution must not occur in the descendants of tip
+ important must not occur in the descendants of tip
+ note must not occur in the descendants of tip
+ tip must not occur in the descendants of tip
+ warning must not occur in the descendants of tip
+
+
+ caution must not occur in the descendants of warning
+ important must not occur in the descendants of warning
+ note must not occur in the descendants of warning
+ tip must not occur in the descendants of warning
+ warning must not occur in the descendants of warning
+
+
+ caution must not occur in the descendants of caption
+ equation must not occur in the descendants of caption
+ example must not occur in the descendants of caption
+ figure must not occur in the descendants of caption
+ important must not occur in the descendants of caption
+ note must not occur in the descendants of caption
+ sidebar must not occur in the descendants of caption
+ table must not occur in the descendants of caption
+ task must not occur in the descendants of caption
+ tip must not occur in the descendants of caption
+ warning must not occur in the descendants of caption
+
+
+ caution must not occur in the descendants of equation
+ equation must not occur in the descendants of equation
+ example must not occur in the descendants of equation
+ figure must not occur in the descendants of equation
+ important must not occur in the descendants of equation
+ note must not occur in the descendants of equation
+ table must not occur in the descendants of equation
+ tip must not occur in the descendants of equation
+ warning must not occur in the descendants of equation
+
+
+ caution must not occur in the descendants of example
+ equation must not occur in the descendants of example
+ example must not occur in the descendants of example
+ figure must not occur in the descendants of example
+ important must not occur in the descendants of example
+ note must not occur in the descendants of example
+ table must not occur in the descendants of example
+ tip must not occur in the descendants of example
+ warning must not occur in the descendants of example
+
+
+ caution must not occur in the descendants of figure
+ equation must not occur in the descendants of figure
+ example must not occur in the descendants of figure
+ figure must not occur in the descendants of figure
+ important must not occur in the descendants of figure
+ note must not occur in the descendants of figure
+ table must not occur in the descendants of figure
+ tip must not occur in the descendants of figure
+ warning must not occur in the descendants of figure
+
+
+ caution must not occur in the descendants of table
+ equation must not occur in the descendants of table
+ example must not occur in the descendants of table
+ figure must not usually occur in the descendants of table
+ important must not occur in the descendants of table
+
+ note must not occur in the descendants of table
+ tip must not occur in the descendants of table
+ warning must not occur in the descendants of table
+
+
+ caution must not occur in the descendants of footnote
+ epigraph must not occur in the descendants of footnote
+
+ example must not occur in the descendants of footnote
+
+ footnote must not occur in the descendants of footnote
+ important must not occur in the descendants of footnote
+
+ note must not occur in the descendants of footnote
+ sidebar must not occur in the descendants of footnote
+
+
+ task must not occur in the descendants of footnote
+ tip must not occur in the descendants of footnote
+ warning must not occur in the descendants of footnote
+
+
+
+ sidebar must not occur in the descendants of sidebar
+
+
+
+
\ No newline at end of file
diff --git a/src/vue-poc/static/resources/schematron/test.xml b/src/vue-poc/static/resources/schematron/test.xml
new file mode 100644
index 0000000..0441ea8
--- /dev/null
+++ b/src/vue-poc/static/resources/schematron/test.xml
@@ -0,0 +1 @@
+In this Issue – Issue 66, May 2017The text has been revised to cover events and forthcoming changes as known at the end of April 2017.Disclosure of ‘avoidance’ (VADR)The Finance Bill included provisions about new notification rules, based on DOTAS, and two draft statutory instruments were also published in March. The changes are currently on hold because of the General Election, but are expected to proceed later in the year, probably with effect from 1 September as originally planned.I have covered the proposed regime in Chapter D3, based on the draft legislation and in places on discussions with HMRC. Some points still need to be clarified, but the inclusion of ‘supply splitting’ of retail supplies (D3.5) may be a particular concern. The current, largely neglected, rules are now dealt with in Chapter D4. I have also made consequential amendments throughout.Notice 742AHMRC have revised Notice 742A, about the option to tax. The substantive change was that it now covers the 2% disregard under the anti-avoidance rules (H17.9), introduced in 2011, but there were other changes to wording, which I have reflected throughout Part H. For their own reasons, HMRC have also decided to remove bullet points and indentation in lists etc, which makes them hard to follow – I have kept the old formatting in these cases, so you may sometimes find my version more intelligible.Dwellings, residential and charity buildingsNew material here includes:The decisions in Redman and Quitie, about prohibitions on the separate use or disposal of dwellings (Box N4.8C).Additional commentary in N2.2.3 on the time at which the ‘designed as a dwelling’ tests need to be met. This was the chief point of interest in Quitie, where the Tribunal took a different view from that in Williams, at the end of last year. The point is chiefly relevant where planning consent is granted or amended during the course of the project.New commentary on obstacles to zero-rating in the ‘build to rent’ sector, including guidance published by the Greater London Authority, apparently with HMRC’s assistance. This is in N4.6.Updates on HMRC’s position on the treatment of sports pavilions as ‘village halls’ (P12.3), following Caithness, and of student cluster flats as ‘single household dwellings’, for the purposes of the reduced rate (N11.7). Both are ongoing issues.The somewhat unsatisfactory outcome of TGH, about a workshop built at the same time as residential accommodation (Box P4.8A).Other case lawI have covered the AG’s Opinion in Iberdrola in Box C6.3A. There will be more to be said if the ECJ itself agrees, but the immediate point of concern in the UK is with the treatment of section 106 (in Scotland, section 75) planning gain agreements. I have discussed this in greater detail in K1.14, and taken the opportunity to expand commentary generally, both on this subject and on the Community Infrastructure Levy (K1.15.3). The Supreme Court judgment in Investment Trust Companies helped to clarify the circumstances in which customers can make a direct claim against the tax authorities for overpaid VAT, and is included with other case law on this issue in Box A2.3A. This was also an aspect of the ECJ judgment in Farkas, about a Hungarian reverse charge, which I have summarised in B4.10.4.Finally here, I have updated the account of Volkswagen Financial Services (Box C6.3A) following the release of the Supreme Court judgment.Other mattersIn particular:I have updated the section on the implications of Brexit (A1.5) following the Government White Paper published in March, and reproduced the section about the future status of ECJ case law in Box A1.5A.I have noted the proposal for a reverse charge for building work, primarily in T10.1.1. For the moment, I have not said a great deal, but there will of course be major implications if this goes ahead. The section on Making Tax Digital (A6.5) has been updated following the latest damning report and the optimism, almost certainly misplaced, that accompanied the relevant clauses being dropped from the Finance Bill when the General Election was called.I have added some new points to the chapter on barter transactions (K16) in the light of my and other people’s recent experience, and for the first time included a draft clause for a sale agreement, kindly contributed by Marc Selby of Laytons LLP. This is in Box K16.4B.AcknowledgmentsAs always, I am grateful to a number of people for sharing news, views and experience. On this occasion, I would particularly like to thank Amanda Darley, Andy Jamieson, Brian New, Charlotte Brown, Chris Nyland, Clive Baxter, Etienne Wong, Marc Selby, Mark Peters, Pete Woodham, Simon Swann and Stewart Henry.I am also greatly indebted to, again, Chris Nyland, for kindly agreeing to proof-read this issue in my absence. Any surviving errors will, of course, be mine.Martin Scammellmartinscammell1@gmail.com May 2017
\ No newline at end of file
diff --git a/src/vue-poc/tasks/docbook-schematron.xq b/src/vue-poc/tasks/docbook-schematron.xq
new file mode 100644
index 0000000..93f34f0
--- /dev/null
+++ b/src/vue-poc/tasks/docbook-schematron.xq
@@ -0,0 +1,7 @@
+import module namespace schematron = "http://github.com/Schematron/schematron-basex";
+let $sch := schematron:compile(doc('C:\Users\andy\git\vue-poc\src\vue-poc\static\resources\schematron\docbook-mods.sch'))
+let $xml := fn:doc('C:\Users\andy\git\vue-poc\src\vue-poc\static\resources\schematron\test.xml')
+let $validation := schematron:validate($xml, $sch)
+
+return $validation
+