Table of contents

Specification []

Module: MEI
Module: MEI.shared
Module: MEI.header
Module: MEI.cmn
Module: MEI.analysis
Module: MEI.cmnOrnaments
Module: MEI.critapp
Module: MEI.edittrans
Module: MEI.facsimile
Module: MEI.figtable
Module: MEI.frbr
Module: MEI.harmony
Module: MEI.linkalign
Module: MEI.lyrics
Module: MEI.namesdates
Module: MEI.performance
Module: MEI.ptrref
Module: MEI.text
Module: MEI.usersymbols
Module:
<mei>
[#Check_ID]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="mei:mei">  <sch:assert test="exists(./@xml:id)"> Every document needs to have    an xml:id. </sch:assert></sch:rule></constraint>
<surface>
[#Check_surface]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="mei:surface">  <sch:assert test="exists(./@xml:id)"> Every surface needs to have an    xml:id. </sch:assert></sch:rule></constraint>
<graphic>
[#Check_graphic]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="mei:graphic[@type eq 'facsimile']">  <sch:assert test="exists(./@xml:id)"> Every graphic needs to have an    xml:id. </sch:assert>  <sch:assert test="exists(./@target)"> Every graphic needs a    reference to an image. </sch:assert></sch:rule></constraint>
<zone>
[#Check_zone]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="mei:zone">  <sch:assert test="exists(./@xml:id)"> Every zone needs to have an    xml:id. </sch:assert>  <sch:assert test="exists(./@ulx)"> Every zone needs an upper left x    (@ulx) value. </sch:assert>  <sch:assert test="exists(./@uly)"> Every zone needs an upper left y    (@uly) value. </sch:assert>  <sch:assert test="exists(./@lrx)"> Every zone needs a lower right x    (@lrx) value. </sch:assert>  <sch:assert test="exists(./@lry)"> Every zone needs a lower right y    (@lry) value. </sch:assert>  <sch:assert test="exists(@data) and starts-with(@data,'#') and local-name(id(substring(@data,2))) eq @type"> The reference to the data element seems broken, as its    local-name() doesn't match the @type of the zone. </sch:assert></sch:rule></constraint>
<mdiv>
[#Check_mdiv]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="mei:mdiv">  <sch:assert test="exists(./@xml:id)"> Every mdiv needs an xml:id. </sch:assert>  <sch:assert test="exists(./@label) and string-length(./@label) gt 0"> Every mdiv needs a label with a length of at least one    character. </sch:assert></sch:rule></constraint>
<measure>
[#Check_measure]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="mei:measure">  <sch:assert test="exists(./@xml:id)"> A measure needs an xml:id. </sch:assert>   <!-- this rule doesn't apply to FreiDi <sch:assert test="not(exists(./@join))"> Multiple incomplete measures must not be connected using @join in Edirom. </sch:assert>-->  <sch:assert test="not(exists(@facs)) or (every $i in tokenize(@facs, ' ') satisfies starts-with($i, '#') and id(substring($i, 2))[(local-name() eq 'zone') and (@type eq 'measure')])"> Every space-separated value in @facs must point to a zone of    type measure. </sch:assert></sch:rule></constraint>
<staff>
[#Check_staffFacs]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="mei:staff[@facs]">  <sch:assert test="every $i in tokenize(@facs, ' ') satisfies starts-with($i, '#') and id(substring($i, 2))[(local-name() eq 'zone') and (@type eq 'staff')]"> Every space-separated value in @facs must point to a zone of    type staff. </sch:assert></sch:rule></constraint>
<layer>
[#Check_layer]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="mei:layer">  <sch:assert test="not(exists(./mei:mRest)) or (./mei:mRest and count(./child::*) eq 1)"> If there is a mRest child, no other elements are allowed. </sch:assert>  <sch:assert test="not(exists(./mei:multiRest)) or (./mei:multiRest and count(./child::*) eq 1)"> If there is a multiRest child, no other elements are allowed.  </sch:assert></sch:rule></constraint>
<music>
[#Check_groups]
<constraint    xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <sch:rule context="mei:music">  <sch:assert test="not(exists(./mei:group))"> In Edirom, music may    not contain groups. </sch:assert></sch:rule></constraint>
<source>
<rng:zeroOrMore> <rng:ref name="model.identifierLike"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="titleStmt"/> </rng:optional> <rng:ref name="macro.bibldescPart"/> <rng:optional> <rng:ref name="contents"/> </rng:optional> <rng:optional> <rng:ref name="history"/> </rng:optional> <rng:optional> <rng:ref name="langUsage"/> </rng:optional> <rng:optional> <rng:ref name="notesStmt"/> </rng:optional> <rng:optional> <rng:ref name="classification"/> </rng:optional> <rng:optional> <rng:ref name="itemList"/> </rng:optional> <rng:optional> <rng:ref name="componentGrp"/> </rng:optional> <rng:optional> <rng:ref name="relationList"/> </rng:optional>
<relatedItem>

Copyright © 2014; Freischütz Digital; Detmold, Erlangen, Frankfurt, Paderborn

Alle Rechte an den Abbildungen bleiben bei den bewahrenden Bibliotheken (und Institutionen)

CC-BY 3.0BSD-2

Citation Suggestion for this Object
TextGrid Repository (2015). Freischütz Digital. Release 0.8.0. schemata. odd. freidi-schema-musicSource. FreiDi. Freischütz Digital; Detmold, Erlangen, Frankfurt, Paderborn. https://hdl.handle.net/11378/0000-0000-16D6-6