Sourcecode Listing of

http://purl.oclc.org/NEUMES/ref/NeumesXML_main.xsd





Color Key :   [•] XML code      [•] XML code annotation      [•] XML comment   

Line
0001 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
0002 <!--
0003 *   NeumesXML Schema file generated on 28 May 2006 [draft].
0004 *   Filename: http://www.scribeserver.com/NEUMES/xml/NeumesXML_main.xsd
0005 *   Version: 2.3.b
0006 *   Owner: The NEUMES Project
0007 *   (Neumed and Ecphonetic Universal Manuscript Encoding Standard).
0008 *   For details see, http://purl.oclc.org/SCRIBE/NEUMES/
0009 *   Authors: Louis W. G. Barton, with Tillman Weyde, Clare McInerney, Jens Wissmann,
0010 *   and Jeni Tennison.
0011 *   Type: XML Schema
0012 -->
0013 
0014 <!--   NeumesXML Schema version 2
0015    This is the 'main' part of the XML Schema for NeumesXML version 2, an XML
0016    (Extensible Markup Language) application for describing medieval chant
0017    manuscripts and transcribing their content in the NEUMES data representation
0018    (Neumed and Ekphonetic Universal Manuscript Encoding Standard).
0019 
0020    Protected by law under one or more of the following copyrights:
0021    Copyright 2005, The University of Oxford.
0022    Copyright 2003-2005, Louis W. G. Barton.
0023    Copyright 2002-2003, The President and Fellows of Harvard College; contains
0024    software or other intellectual property licensed from Louis W. G. Barton,
0025    copyright 1995-2001 by Louis W. G. Barton.
0026 
0027    The copyright holders grant royalty-free license to transmit, display,
0028    perform and/or distribute without modification the NeumeXML version 2
0029    Schema and its accompanying documentation for non-commercial educational,
0030    cultural, and charitable uses, provided that the above copyright notice
0031    and this paragraph appear in all copies. The copyright holders make no
0032    representation about the suitability of the Schema and its accompanying
0033    documentation for any purpose. It is provided "as is" without expressed
0034    or implied warranty.
0035 -->
0036 
0037 <!--  NOTES FOR END-USERS:
0038 *IMPORTANT* In order to avoid fragmentation of digital libraries, it is
0039 crucial that creators or end-users of NeumesXML transcription files shall
0040 NOT insert any new markup tags of their own design into a transcription
0041 file, nor modify this XML Schema. Doing so would defeat the purpose of
0042 transcription-interoperability between users, and affect the long-term
0043 usefullness of chant transcription files. Suggestions for modifying this
0044 XML Schema should be addressed to the e-mail contact, above.
0045 
0046 Note that any transcription markup not covered by this Schema (such as
0047 for purposes of visual-presentation styling, or for documenting the results
0048 of musicological analysis) must be done in a secondary XML file that is
0049 separate from the NeumesXML transcription itself.
0050 
0051 STRUCTURE OF THIS XML SCHEMA:
0052 Under the root element there are three branches. Each of these branches must
0053 appear exactly once in an instance document, and they must appear in this
0054 order: "encoding_declaration", "description_part", and "transcription_part".
0055 Tags pertaining to one of these parts cannot appear in a different branch.
0056 
0057 * The "encoding_declaration" states the version number of NeumesXML language
0058 that is being used, and simplifies computer-processing by declaring whether
0059 the content is an Eastern or Western chant.
0060 
0061 * In the description_part, all content is recorded as Attributes within tags.
0062 There is no 'character data' (i.e., inter-tag data) in this part.
0063 
0064 * In the transcription_part, _semantic content_ on the face of the source
0065 manuscript is transcribed as 'character data' (i.e., it appears between tags).
0066 The data representation for neumatic symbols is as Unicode[tm] Private Use Area
0067 characters, where sequences of such characters conform to a regular grammar.
0068 [End, USER NOTES.] -->
0069 
0070 
0071 <!-- ****** Pro-forma DTD declaration (principally for JDOM): ****** -->
0072 <!DOCTYPE xsd:schema SYSTEM "http://www.scribeserver.com/NEUMES/xml/NeumesXML_schema.dtd">
0073 
0074 <!-- *************** ROOT ELEMENT: *************** -->
0075 <xsd:schema
0076    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
0077    targetNamespace="http://www.scribeserver.com/NEUMES/xml/NeumesXML"
0078    xmlns:nxm="http://www.scribeserver.com/NEUMES/xml/NeumesXML"
0079    xmlns="http://www.scribeserver.com/NEUMES/xml/NeumesXML"
0080    elementFormDefault="qualified"
0081    attributeFormDefault="unqualified"
0082    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
0083    xsi:schemaLocation=
0084       "http://www.scribeserver.com/NEUMES/xml/NeumesXML_obd
0085       http://www.scribeserver.com/NEUMES/xml/NeumesXML_obd.xsd"
0086    xmlns:obd="http://www.scribeserver.com/NEUMES/xml/NeumesXML_obd"
0087 >
0088 <!--   [No comments allowed within the schema tag.]
0089    namespaces must be unique and persistent, these are only *names* (not paths).
0090    Some validating parsers attempt to retrieve schema information from the
0091    namespace definition when they encounter trouble; effectively URI == URL.
0092    targetNamespace == names declared by this Schema, instance docs use this.
0093    Default namespace == namespace of unqualified names in this Schema.
0094    Schema for Schemas (its location is well known).
0095    Elements declared in this Schema must *not* be namespace-qualified in Instance docs.
0096    Attributes declared in this Schema must not be namespace-qualified in Instance docs.
0097    Note, all globally-declared Elements and Attributes must always be qualified
0098    in instance docs.
0099 [End, Root Element] -->
0100 
0101 <xsd:include schemaLocation="http://www.scribeserver.com/NEUMES/xml/NeumesXML_lang.xsd"/>
0102 
0103 
0104 <!--  PROGRAMMER'S NOTES:
0105 * Partitions of lexical space in the overall design depend on the _main Schema and refer
0106   to it.
0107   Dependencies are listed in the NeumesXML element under _appinfo_ / _partition_dependencies_.
0108   [Do not refer from this Schema to the partitions, as that would create circular references.]
0109 * Schema partions and the _main Schema share a single namespace.
0110 * Schema-validation for NeumesXML is conformant with XSV version 2.10-1
0111   [see, http://www.w3.org/2001/03/webdata/xsv].
0112 * Practices for tag names: full words should be used for the benefit of non-English-speaking
0113   users, so that they might understand the meaning of tags by consulting a dictionary.
0114   To avoid naming confusions, do not use "type", "value", or "name" as names of Attributes.
0115 * Any lexical change to Element declarations must be shown in the file "NeumesXMLSchema.dtd".
0116   Transcriptions can contain mnemonic Entities instead of Unicode codepoint numbers for
0117   NEUMES characters. For this to work, a DTD must declare all Elements and Attributes of the
0118   NeumesXML Schema, and any Instance document that uses the mnemonic Entities must declare
0119   that it is using the Entity definitions of the file "NEUMES_characters.pen".
0120   Note that the internal-subset DTD declaration in the Schema has no effect on Instance docs.
0121 * The NCName type is defined in this Schema as a string (not beginning with '_') containing
0122   no space or colon. The NCName_ext type (declared below) adds the '+' character to NCName.
0123 * The ampersand character '&' and the left angle-bracket '<' MUST NOT appear in their literal
0124   form, except when used as markup delimiters, or within a comment, a processing instruction,
0125   or a CDATA section.
0126 * XPath rule about Namespaces: Unlike in the rest of the XSD Schema, qualified names used
0127   in XPaths are interpreted using the XPath rules; if they don't have a prefix, they select
0128   Elements in *no* Namespace rather than the *default* Namespace. Therefore, we have a
0129   so-called "psychotic" namespace, viz., that both the default namespace and the 'nxm'
0130   namespaces are the same (i.e., the NeumesXML namespace). That is because we need the
0131   'nxm' prefix for the paths in the key definitions work, but we did not wish to add
0132   prefixes to all the other references in the Schema.
0133 * The xsi:schemaLocation is necessary for validation on the OBD tags in Documentation, etc.
0134   To avoid the NeumesXML Schema being validated, omit the xsi:schemaLocation attribute in
0135   the version of NeumesXML Schema that is online for production use. It should be retained
0136   in the version that is used in development, so that these tags will be constrained.
0137 * The name given after <!DOCTYPE must be the same as the name of the document Element in
0138   the root element.
0139 ** T.W.: "default namespace necessary to use types."
0140 ** L.B.: The _ref_ Attribute of an Element allows reference to *previously* declared Elements.
0141 * :: According to Schema Primer, group ref can forward-refer to a group.
0142 * :: Default value of Elements for _minOccurs_ and _maxOccurs_ = 1.
0143 * :: Abstract types:
0144   Declaring a type as abstract simply requires the use of a type derived from it
0145   (and identified by the xsi:type Attribute) in all Instance documents.
0146 * :: An XML Schema cannot specify which one is the top-level Element in the Schema.
0147 * :: Xpath expression must use '*' to see concrete Type of Abstract Type in Instance doc.
0148 * :: "A _character_ in XML is an atomic unit of communication; it is not further specified
0149   except to note that every character has a corresponding Universal Character Set code point,
0150   which is an integer" [_XML Schema Part 2: Datatypes_].
0151   "_decimal_ has a lexical representation consisting of a finite-length sequence of decimal
0152   digits (#x30-#x39) separated by a period as a decimal indicator" [NB: these are characters].
0153   (Type _integer_ is derived from _decimal_.)
0154   "_hexBinary_ has a lexical representation where each binary octet is encoded as a character
0155   tuple, consisting of two hexadecimal digits. ... The canonical representation for
0156   _hexBinary_ is defined by prohibiting certain options from the Lexical Representation.
0157   Specifically, the lower case hexadecimal digits ([a-f]) are not allowed."
0158 ** To-do:
0159 + allow barlines in NEUMES, and phrases in NeumesXML.
0160 + Allow child elements in <obd:example> for example tags?
0161 + see inline remarks: search for "xxx"
0162 + <xsd:restriction base="xsd:hexBinary">
0163    <xsd:length value="2"/>
0164    <xsd:enumeration value="002B"/>
0165   </xsd:restriction>
0166 + chg color of _annotation_ in Web display.
0167 + prohibit extensions.
0168 
0169 [End, PROGRAMMER'S NOTES.] -->
0170 
0171 
0172 <xsd:annotation>
0173    <xsd:documentation xml:lang="en"><![CDATA[
0174    NeumesXML 2.2 XML Schema<br/>
0175    This is the NEUMES Extensible Markup Language (NeumesXML) 2.2, an XML application
0176    for describing transcription of medieval chant manuscript sources and capturing both
0177    their structure and content.<br/>
0178    <br/>
0179    Copyright 2003-2005 Louis W. G. Barton (louis.barton.je.77@aya.yale.edu).<br/>
0180    Contains software or other intellectual property from the NeumesXML DTD version 1.0,
0181    copyright 2002-2003 The President and Fellows of Harvard College, contains software or
0182       other intellectual property licensed from Louis W. G. Barton, copyright 1995-2001
0183       Louis W. G. Barton. All Rights Reserved.<br/>
0184    <br/>
0185    Permission to use, copy, and distribute the NeumesXML 2.2 Schema and its accompanying
0186    documentation without fee for educational, cultural, and non-commercial purposes and
0187       is granted, provided that the above copyright notice and this paragraph appear in all
0188    copies. The copyright holders make no representation about the suitability of this XML
0189    Schema for any purpose. It is provided "as is" without expressed or implied warranty.
0190    ]]></xsd:documentation>
0191 </xsd:annotation>
0192 
0193 
0194 <!-- *************** NeumesXML: *************** -->
0195 <xsd:element name="NeumesXML">
0196    <xsd:annotation>
0197       <xsd:documentation xml:lang="en">
0198          <obd:definition>Root Element declaration for Instance documents of the
0199          NeumesXML Schema.</obd:definition>
0200          <obd:example><![CDATA[
0201          Example of use in Instance documents:<br/>
0202          &lt;NeumesXML<br/>
0203          xmlns="http://www.scribeserver.com/NEUMES/xml/NeumesXML"<br/>
0204             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br/>
0205             xsi:schemaLocation=<br/>
0206                "http://www.scribeserver.com/NEUMES/xml/NeumesXML<br/>
0207                http://www.scribeserver.com/NEUMES/xml/NeumesXML_west.xsd"><br/>
0208          <font Color="maroon"><b>...</b></font><br/>
0209          &lt;/NeumesXML>
0210          ]]></obd:example>
0211       </xsd:documentation>
0212       <xsd:appinfo>
0213          <!-- Add any new partitions here: -->
0214          <obd:partition_dependencies>
0215             <obd:partitionRef partition="Eastern"
0216              namespace="http://www.scribeserver.com/NEUMES/xml/NeumesXML_east"
0217              ns_prefix="nxe"
0218              URL="http://www.scribeserver.com/NEUMES/xml/NeumesXML_east.xsd"/>
0219             <obd:partitionRef partition="Western"
0220              namespace="http://www.scribeserver.com/NEUMES/xml/NeumesXML_west"
0221              ns_prefix="nxw"
0222              URL="http://www.scribeserver.com/NEUMES/xml/NeumesXML_west.xsd"/>
0223          </obd:partition_dependencies>
0224       </xsd:appinfo>
0225    </xsd:annotation>
0226    <xsd:complexType>
0227       <xsd:sequence>
0228          <xsd:element name="encoding_declaration" type="encoding_declaration_Type"/>
0229          <xsd:element name="description_part" type="description_part_Type"/>
0230          <xsd:element name="transcription_part" type="transcription_part_Type"/>
0231       </xsd:sequence>
0232    </xsd:complexType>
0233       <!-- See PROGRAMMER'S NOTES for XPath rule about qualified namespaces: -->
0234    <xsd:key name="discipline_Key">
0235       <xsd:annotation>
0236          <xsd:documentation xml:lang="en">
0237          This key is used for restricting use of certain discipline-specific
0238          components of NeumesXML to just those Instance documents that declare
0239          the corresponding ecclesiastical discipline (viz., Eastern or Western).
0240          </xsd:documentation>
0241       </xsd:annotation>
0242       <xsd:selector xpath="nxm:encoding_declaration"/>
0243       <xsd:field xpath="@discipline"/>
0244    </xsd:key>
0245    <xsd:keyref name="accession_constraint" refer="discipline_Key">
0246       <xsd:selector xpath="nxm:description_part/nxm:source_identity/nxm:accession_x"/>
0247       <xsd:field xpath="@discipline"/>
0248    </xsd:keyref>
0249 </xsd:element>
0250 <!-- [End, NeumesXML] -->
0251 
0252 
0253 <!-- *************** STRING TYPE DECLARATIONS: *************** -->
0254 
0255 <!-- *************** NCName_ext type: *************** -->
0256 <xsd:simpleType name="NCName_ext" id="NCName_ext">
0257    <xsd:annotation>
0258       <xsd:documentation xml:lang="en">
0259       Like the NCName type (a string not beginning with '_' and containing no space
0260       or colon), with the addition of the '+' character.
0261       </xsd:documentation>
0262    </xsd:annotation>
0263    <xsd:restriction base="xsd:string">
0264       <xsd:pattern value="[a-zA-Z]([+\-0-9A-Z_a-z]){0,5}"/>
0265    </xsd:restriction>
0266 </xsd:simpleType>
0267 
0268 <!-- [End, String and Character Type Declarations] -->
0269 
0270 
0271 <!-- *************** ENCODING DECLARATION: *************** -->
0272 <xsd:simpleType name="discipline_Type">
0273    <xsd:annotation>
0274       <xsd:documentation xml:lang="en">
0275       This Type controls the partitioning the lexical space of NeumesXML.
0276       </xsd:documentation>
0277    </xsd:annotation>
0278    <xsd:restriction base="xsd:NCName">
0279       <xsd:enumeration value="Eastern"/>
0280       <xsd:enumeration value="Western"/>
0281    </xsd:restriction>
0282 </xsd:simpleType>
0283 
0284 <xsd:complexType name="encoding_declaration_Type" final="extension">
0285    <xsd:annotation>
0286       <xsd:documentation xml:lang="en">
0287          <obd:definition>Gives the version number of the NeumesXML Schema that this
0288 transcription was encoded under, and states whether this is a Western or Eastern source.
0289          </obd:definition>
0290          <obd:example>&lt;encoding_declaration description="NeumesXML" version="2.2" discipline="Western"/>
0291          </obd:example>
0292       </xsd:documentation>
0293    </xsd:annotation>
0294    <xsd:attribute name="description" type="xsd:string" fixed="NeumesXML Schema"/>
0295    <xsd:attribute name="version" type="xsd:string" default="2.3"/>
0296    <xsd:attribute name="discipline" type="discipline_Type" use="required"/>
0297 </xsd:complexType>
0298 <!-- [End, Encoding Declaration] -->
0299 
0300 
0301 <!-- *************************************************** -->
0302 <!-- ***************  DESCRIPTION_PART:  *************** -->
0303 <!-- *************************************************** -->
0304 
0305 <!-- Note: "language_x_Type" is declared in the included Schema (NeumesXML_lang.xsd) -->
0306 <xsd:complexType name="description_part_Type" final="extension">
0307    <xsd:sequence>
0308       <xsd:element name="source_identity" type="source_identity_Type"/>
0309       <xsd:element name="language_x" type="language_x_Type"/>
0310 <!-- XXX TO DO: add an optional description of the script of the chant text?
0311    if so, then provide a schema for the choices? -->
0312       <xsd:element name="notation_x" type="notation_x_Type"/>
0313 <!--XXX TO DO: add 'pitch_letters' as an attribute particular to the Source. -->
0314       <xsd:element name="physical_description" type="physical_description_Type"
0315        minOccurs="0"/>
0316       <xsd:element name="attribution" type="attribution_Type" minOccurs="0"/>
0317       <xsd:element name="content_link" type="content_link_Type" minOccurs="0"
0318        maxOccurs="unbounded"/>
0319       <xsd:element name="bibliographic_reference" type="bibliographic_reference_Type"
0320        minOccurs="0" maxOccurs="unbounded"/>
0321    </xsd:sequence>
0322 </xsd:complexType>
0323 
0324 <!-- *************** Source Identity: *************** -->
0325 <xsd:complexType name="source_identity_Type" final="extension">
0326    <xsd:sequence>
0327       <xsd:element name="accession_x" type="accession_base_Type" minOccurs="0"/>
0328    </xsd:sequence>
0329 </xsd:complexType>
0330 
0331 <xsd:complexType name="accession_base_Type" abstract="true">
0332    <xsd:annotation>
0333       <xsd:documentation xml:lang="en">
0334       This abstract Type simply allows a single type of Element to be declared in
0335       the parent while providing for branching among various discipline types.
0336       The "discipline" Attribute is a keyref that is constrained to match the key
0337       "discipline_Key" (i.e., Attribute "discipline" in Element encoding_declaration).
0338       The "discipline" Attribute is automatically added.
0339       </xsd:documentation>
0340    </xsd:annotation>
0341 </xsd:complexType>
0342 <!-- *************** Of Eastern Sources: *************** -->
0343 <xsd:complexType name="accession_east_Type" abstract="true">
0344    <xsd:annotation>
0345       <xsd:documentation xml:lang="en">
0346       The _discipline_ Attribute is automatically added here.
0347       The concrete Type is defined in the partition.
0348       </xsd:documentation>
0349    </xsd:annotation>
0350    <xsd:complexContent>
0351       <xsd:extension base="accession_base_Type">
0352          <xsd:attribute name="discipline" type="discipline_Type" fixed="Eastern"/>
0353       </xsd:extension>
0354    </xsd:complexContent>
0355 </xsd:complexType>
0356 <!-- *************** Of Western Sources: *************** -->
0357 <xsd:complexType name="accession_west_Type" abstract="true">
0358    <xsd:annotation>
0359       <xsd:documentation xml:lang="en">
0360       The _discipline_ Attribute is automatically added here.
0361       The concrete Type is defined in the partition.
0362       </xsd:documentation>
0363    </xsd:annotation>
0364    <xsd:complexContent>
0365       <xsd:extension base="accession_base_Type">
0366          <xsd:attribute name="discipline" type="discipline_Type" fixed="Western"/>
0367       </xsd:extension>
0368    </xsd:complexContent>
0369 </xsd:complexType>
0370 <!-- [End, Accession] -->
0371 <!-- [End, Source Identity] -->
0372 
0373 <!-- *************** Notation, Extensible: ***************
0374  Notation family/species is a 'forked relationship' [in relational database terms]:
0375  a notation can be of some family and not be of any particular species; or,
0376  the notation can be of a family and a species. The allowable species are,
0377  however, dependent upon the notation family. Remark that [May 2006] the classification
0378  of notation families and species is under review by the NEUMES Advisory Board; currently,
0379  there is conflict between the use of species for geographical differentiation, and the
0380  use of species for historical time period differentiation (viz., unheighted, heighted,
0381  or cleffed).
0382 -->
0383 <xsd:complexType name="notation_x_Type" abstract="true">
0384    <xsd:annotation>
0385       <xsd:documentation xml:lang="en">
0386          <obd:definition>
0387          The type of musical notation on the source document.
0388          </obd:definition>
0389          <obd:example>&lt;notation_x family="Aquitanian" species="unpitched"
0390           xsi:type="aquitanian_Type"/>
0391          </obd:example>
0392       </xsd:documentation>
0393    </xsd:annotation>
0394    <xsd:attribute name="family" type="xsd:NCName" use="required"/>
0395    <xsd:attribute name="species" type="xsd:NCName" use="optional"/>
0396 <!--XXX TO DO: change 'heighted' to 'required': -->
0397    <xsd:attribute name="heighted" type="xsd:boolean" use="optional">
0398       <xsd:annotation>
0399          <xsd:documentation xml:lang="en">
0400             <obd:definition>Declares whether the neumatic symbols have semantic 'height' (i.e., vertical offset above the chant text) in relation to one another = 'true'; or else the symbols can be represented in a straight line without loss of meaning = 'false'.</obd:definition>
0401          </xsd:documentation>
0402       </xsd:annotation>
0403    </xsd:attribute>
0404 <!--XXX TO DO: change 'pitched' to 'cleffed', and change 'optional' to 'required': -->
0405    <xsd:attribute name="pitched" type="xsd:boolean" use="optional">
0406       <xsd:annotation>
0407          <xsd:documentation xml:lang="en">
0408             <obd:definition>Declares whether the notation specifies pitches of neumatic symbols (either modal or tonal pitch, specified either by symbol height or by auxiliary notation) = 'true'; or else pitches are not explicit in the notation = 'false'.
0409             </obd:definition>
0410          </xsd:documentation>
0411       </xsd:annotation>
0412    </xsd:attribute>
0413 </xsd:complexType>
0414 <!-- [End, Notation_X] -->
0415 
0416 <!-- *************** Physical Description: *************** -->
0417 <xsd:complexType name="physical_description_Type" final="extension">
0418    <xsd:sequence>
0419 <!-- XXX add the 'medium' of the ms? -->
0420       <xsd:element name="dimensions" type="dimensions_Type" minOccurs="0"/>
0421       <xsd:element name="layout" type="layout_Type" minOccurs="0"/>
0422    </xsd:sequence>
0423 </xsd:complexType>
0424 
0425 <xsd:complexType name="dimensions_Type" final="extension">
0426    <xsd:annotation>
0427       <xsd:documentation xml:lang="en">
0428          <obd:definition>
0429          Physical dimensions of the Source, in the specified unit of measure.
0430          </obd:definition>
0431          <obd:example>&lt;dimensions height="295" width="220" unit_of_measure="mm"/>
0432          </obd:example>
0433       </xsd:documentation>
0434    </xsd:annotation>
0435    <xsd:attribute name="height" type="xsd:string" use="required"/>
0436    <xsd:attribute name="width" type="xsd:string" use="required"/>
0437    <xsd:attribute name="unit_of_measure" type="xsd:string" use="required"/>
0438 </xsd:complexType>
0439 
0440 <xsd:complexType name="layout_Type" final="extension">
0441    <xsd:annotation>
0442       <xsd:documentation xml:lang="en">
0443          <obd:definition>
0444          Physical layout of the Source on the page (e.g., in two columns).
0445          </obd:definition>
0446       </xsd:documentation>
0447    </xsd:annotation>
0448    <xsd:attribute name="description" type="xsd:string" use="required"/>
0449 </xsd:complexType>
0450 <!-- [End, Physical Description] -->
0451 
0452 <!-- *************** Attribution: *************** -->
0453 <xsd:complexType name="attribution_Type" final="extension">
0454    <xsd:sequence>
0455       <xsd:element name="date_range" type="date_range_Type" minOccurs="0"/>
0456       <xsd:element name="cultural_context" type="cultural_context_Type" minOccurs="0"/>
0457       <xsd:element name="provenance" type="provenance_Type" minOccurs="0" maxOccurs="unbounded"/>
0458    </xsd:sequence>
0459 </xsd:complexType>
0460 
0461 <xsd:complexType name="date_range_Type" final="extension">
0462    <xsd:annotation>
0463       <xsd:documentation xml:lang="en">
0464          <obd:definition>
0465          The known or estimated year in which the Source was written.
0466          </obd:definition>
0467          <obd:example>&lt;date_range content="A.D. 1177"/>
0468          </obd:example>
0469       </xsd:documentation>
0470    </xsd:annotation>
0471    <xsd:attribute name="content" type="xsd:string" use="required"/>
0472 </xsd:complexType>
0473 
0474 <!-- XXX cultural_context and provenance reversed 28 Aug 2005; clarify what these are. -->
0475 <xsd:complexType name="cultural_context_Type" final="extension">
0476    <xsd:attribute name="content" type="xsd:string" use="required"/>
0477 </xsd:complexType>
0478 
0479 <xsd:complexType name="provenance_Type" final="extension">
0480    <xsd:annotation>
0481       <xsd:documentation xml:lang="en">
0482          <obd:definition>
0483          Place of origin and history of transmission of this Source.
0484          </obd:definition>
0485       </xsd:documentation>
0486    </xsd:annotation>
0487    <xsd:attribute name="content" type="xsd:string" use="required"/>
0488 </xsd:complexType>
0489 <!-- [End, Attribution] -->
0490 
0491 <!-- *************** Content Link: *************** -->
0492 <xsd:complexType name="content_link_Type" final="extension">
0493    <xsd:annotation>
0494       <xsd:documentation xml:lang="en">
0495          <obd:definition>
0496          URL link to a resource (eg, CAO, AMS, CANTUS) for image of source, online index record, texts, etc. Note that an ampersand '&amp;' cannot appear in the URL; it must be replaced by "&amp;amp;".
0497          </obd:definition>
0498          <obd:example><![CDATA[
0499          &lt;content_link type="CANTUS record"
0500 link="http://bach.music.uwo.ca/cantus/search.asp?submitType=details&amp;cantusID=105430"/>
0501          ]]></obd:example>
0502       </xsd:documentation>
0503    </xsd:annotation>
0504    <xsd:attribute name="content" type="xsd:string" use="required"/>
0505    <xsd:attribute name="link" type="xsd:anyURI" use="required"/>
0506 </xsd:complexType>
0507 <!-- [End, Content Link] -->
0508 
0509 <!-- *************** Bibliographic Reference: *************** -->
0510 <xsd:complexType name="bibliographic_reference_Type" final="extension">
0511    <xsd:attribute name="description" type="xsd:string" use="required"/>
0512 </xsd:complexType>
0513 <!-- [End, Bibliographic Reference -->
0514 <!-- [End, Description Part] -->
0515 
0516 
0517 <!-- ***************************************************** -->
0518 <!-- ***************  TRANSCRIPTION_PART:  *************** -->
0519 <!-- ***************************************************** -->
0520 
0521 <xsd:complexType name="transcription_part_Type" final="extension">
0522    <xsd:sequence>
0523       <xsd:element name="transcription_title" type="transcription_title_Type"
0524        minOccurs="0"/>
0525       <xsd:element name="transcription_chronicle" type="transcription_chronicle_Type"
0526        minOccurs="0"/>
0527       <xsd:element name="edited_text" type="edited_text_Type" minOccurs="0"/>
0528       <xsd:element name="glyphs_resource" type="glyphs_resource_Type" minOccurs="0"/>
0529       <xsd:element name="transcription" type="transcription_Type"/>
0530    </xsd:sequence>
0531 </xsd:complexType>
0532 
0533 <!-- *************** TRANSCRIPTION TITLE: *************** -->
0534 <xsd:complexType name="transcription_title_Type" final="extension">
0535    <xsd:annotation>
0536       <xsd:documentation xml:lang="en">
0537          <obd:definition>Title given to this transcription.</obd:definition>
0538          <obd:example>&lt;transcription_title content='Verse of the Gradual "Haec dies" when sung on Wednesday of Easter week'/>
0539          </obd:example>
0540       </xsd:documentation>
0541    </xsd:annotation>
0542    <xsd:attribute name="content" type="xsd:string" use="required"/>
0543 </xsd:complexType>
0544 
0545 <!-- *************** TRANSCRIPTION CHRONICLE: *************** -->
0546 <xsd:complexType name="transcription_chronicle_Type" final="extension">
0547    <xsd:sequence>
0548       <xsd:element name="transcription_log" type="transcription_log_Type" minOccurs="0" maxOccurs="unbounded"/>
0549    </xsd:sequence>
0550 </xsd:complexType>
0551 
0552 <!-- *************** Transcription Log: *************** -->
0553 <xsd:complexType name="transcription_log_Type" final="extension">
0554    <xsd:sequence>
0555       <xsd:element name="project" type="project_Type"/>
0556       <xsd:element name="editorial_procedures" type="editorial_procedures_Type"
0557        minOccurs="0"/>
0558       <xsd:element name="transcription_statement" type="transcription_statement_Type"
0559        maxOccurs="unbounded"/>
0560    </xsd:sequence>
0561 </xsd:complexType>
0562 
0563 <!-- Level 1 Branching: -->
0564 
0565 <xsd:complexType name="project_Type" final="extension">
0566    <xsd:attribute name="project_name" type="xsd:string" use="required"/>
0567    <xsd:attribute name="project_description" type="xsd:string" use="optional"/>
0568 </xsd:complexType>
0569 
0570 <xsd:complexType name="editorial_procedures_Type" final="extension">
0571    <xsd:annotation>
0572       <xsd:documentation xml:lang="en">
0573          <obd:definition>
0574          Editorial principles and practices applied during the encoding of the source.
0575          </obd:definition>
0576       </xsd:documentation>
0577    </xsd:annotation>
0578    <xsd:attribute name="description" type="xsd:string" use="required"/>
0579 </xsd:complexType>
0580 
0581 <xsd:complexType name="transcription_statement_Type" final="extension">
0582    <xsd:sequence>
0583       <xsd:element name="transcriber" type="transcriber_Type"/>
0584       <xsd:element name="transcription_date" type="transcription_date_Type"/>
0585       <xsd:element name="version_identifier" type="version_identifier_Type"
0586        minOccurs="0"/>
0587       <xsd:element name="edition_comments" type="edition_comments_Type" minOccurs="0"/>
0588       <xsd:element name="copyright_statement" type="copyright_statement_Type"
0589        minOccurs="0"/>
0590    </xsd:sequence>
0591 </xsd:complexType>
0592 
0593 <!-- Level 2 Branching: -->
0594 
0595 <xsd:complexType name="transcriber_Type" final="extension">
0596    <xsd:attribute name="content" type="xsd:string" use="required"/>
0597 </xsd:complexType>
0598 
0599 <xsd:complexType name="transcription_date_Type" final="extension">
0600    <xsd:attribute name="content" type="xsd:string" use="required"/>
0601 </xsd:complexType>
0602 
0603 <xsd:complexType name="version_identifier_Type" final="extension">
0604    <xsd:attribute name="nr" type="xsd:string" use="optional"/>
0605    <xsd:attribute name="description" type="xsd:string" use="required"/>
0606 </xsd:complexType>
0607 
0608 <xsd:complexType name="edition_comments_Type" final="extension">
0609    <xsd:annotation>
0610       <xsd:documentation xml:lang="en">
0611          <obd:definition>Particuliarities of one edition of a text.</obd:definition>
0612       </xsd:documentation>
0613    </xsd:annotation>
0614    <xsd:attribute name="content" type="xsd:string" use="required"/>
0615 </xsd:complexType>
0616 
0617 <xsd:complexType name="copyright_statement_Type" final="extension">
0618    <xsd:annotation>
0619       <xsd:documentation xml:lang="en">
0620       Separate copyrights allowed for different versions of transcription.
0621       </xsd:documentation>
0622    </xsd:annotation>
0623    <xsd:attribute name="content" type="xsd:string" use="required"/>
0624 </xsd:complexType>
0625 
0626 <!-- [End, Transcription Log] -->
0627 
0628 <!-- [End, TRANSCRIPTION CHRONICLE] -->
0629 
0630 
0631 <!-- *************** Edited Text: *************** -->
0632 <xsd:complexType name="edited_text_Type" final="extension">
0633    <xsd:annotation>
0634       <xsd:documentation xml:lang="en">
0635          <obd:definition>
0636          The chant text edited to expand abbreviations, add punctuation, and so on.
0637          </obd:definition>
0638       </xsd:documentation>
0639    </xsd:annotation>
0640    <xsd:attribute name="content" type="xsd:string" use="required"/>
0641 </xsd:complexType>
0642 
0643 
0644 <!-- *************** Glyphs Resource: *************** -->
0645 <xsd:complexType name="glyphs_resource_Type" final="extension">
0646    <xsd:annotation>
0647       <xsd:documentation xml:lang="en">
0648          <obd:definition>URL path of the /images/ directory containing the glyph
0649          image set to be used instead of the standard visualization glyph set.
0650          </obd:definition>
0651          <obd:example>
0652          &lt;glyphs_resource description="Aquitanian glyph set for F-Pn lat. 903;
0653          'StYrieix'"
0654          glyph_path="http://www.scribeserver.com/NEUMES/xml/images/aquitanian/"/>
0655          </obd:example>
0656       </xsd:documentation>
0657    </xsd:annotation>
0658    <xsd:attribute name="description" type="xsd:string" use="optional"/>
0659    <xsd:attribute name="glyph_path" type="xsd:anyURI" use="required"/>
0660 </xsd:complexType>
0661 
0662 
0663 <!-- ***************  TRANSCRIPTION:  *************** -->
0664 
0665 <!-- *************** String and Character Type Definitions: *************** -->
0666 <!--
0667       <xsd:enumeration value="00"/>
0668       <xsd:enumeration value="2B"/>  {plus sign}
0669 
0670    <xsd:restriction base="xsd:hexBinary">
0671   <pattern value="[0-9A-F]{8}" /> 
0672    </xsd:restriction>
0673 
0674 <xsd:simpleType name="test" id="test">
0675    <xsd:restriction>
0676       <xsd:simpleType>
0677          <xsd:restriction base="xsd:hexBinary">
0678             <xsd:length value="3" />
0679          </xsd:restriction>
0680       </xsd:simpleType>
0681       <xsd:enumeration value="a1b2c3d4" />
0682    </xsd:restriction>
0683 </xsd:simpleType>
0684 
0685  -->
0686 
0687 <!-- *************** plain_text Type: *************** -->
0688 <xsd:simpleType name="plain_text_Type">
0689    <xsd:annotation>
0690       <xsd:documentation xml:lang="en">
0691       Non-Private-Use-Area characters.
0692       </xsd:documentation>
0693    </xsd:annotation>
0694    <xsd:restriction base="xsd:string">
0695       <xsd:pattern value="(\P{IsPrivateUse})+"/>
0696    </xsd:restriction>
0697 </xsd:simpleType>
0698 
0699 <!-- *************** NEUMES_character Type: *************** -->
0700 <!-- XXX not used -->
0701 <xsd:simpleType name="NEUMES_char_Type">
0702    <xsd:annotation>
0703       <xsd:documentation xml:lang="en">
0704       Unicode[tm] PUA characters in the NEUMES codespace, one or two characters.
0705       </xsd:documentation>
0706    </xsd:annotation>
0707 <!--
0708    <xsd:restriction base="xsd:integer">
0709       <xsd:pattern value="(\p{IsPrivateUse})"/>
0710    </xsd:restriction>
0711 -->
0712     <xsd:restriction base="xsd:string">
0713       <xsd:pattern value="[&NEUMES_floor;-&NEUMES_ceiling;]{1,2}" />
0714     </xsd:restriction>
0715 </xsd:simpleType>
0716 
0717 <!-- [End, String and Character Type Definitions] -->
0718 
0719 
0720 <!-- *************** Transcription_Type: *************** -->
0721 
0722 <xsd:complexType name="transcription_Type" mixed="false" final="extension">
0723    <xsd:annotation>
0724       <xsd:documentation xml:lang="en">
0725       This Type would be Mixed if liturgical text can appear in the transcription and not be part of the chant.
0726       </xsd:documentation>
0727    </xsd:annotation>
0728    <xsd:sequence>
0729       <xsd:element name="global_layout" type="global_layout_Type"/>
0730       <xsd:choice minOccurs="0" maxOccurs="unbounded">
0731          <xsd:element name="rubric" type="rubric_Type"/>
0732 
0733          <xsd:element name="physical_boundary" type="physical_boundary_Type"/>
0734          <xsd:element name="editorial_comment" type="editorial_comment_Type"/>
0735          <xsd:element name="initial" type="initial_Type"/>
0736          <xsd:element name="illumination" type="illumination_Type"/>
0737 
0738          <xsd:element name="spoken_text" type="spoken_text_Type"/>
0739          <xsd:element name="neumed_syllable" type="neumed_syllable_Type"/>
0740       </xsd:choice>
0741    </xsd:sequence>
0742 </xsd:complexType>
0743 
0744 <!-- Level 1 Branching: -->
0745 
0746 <xsd:simpleType name="global_layout_Type">
0747    <xsd:annotation>
0748       <xsd:documentation xml:lang="en">
0749          <obd:definition>
0750          Configuration of lines and clefs on the source.
0751          </obd:definition>
0752          <obd:example>&lt;global_layout>&amp;no_staff;&lt;/global_layout>
0753          </obd:example>
0754       </xsd:documentation>
0755    </xsd:annotation>
0756    <xsd:restriction base="xsd:string">
0757       <xsd:pattern value="[&glyphs_no_color;-&glyphs_color_yellow;]?[&no_staff;-&staff_lines_6;]([&doh_clef;-&f_clef;][&line1;-&line6;]?)?" />
0758    </xsd:restriction>
0759 </xsd:simpleType>
0760 
0761 <!--
0762 XXX DEL:
0763 <xsd:complexType name="boundary_Type">
0764    <xsd:choice>
0765       <xsd:element name="logical_boundary" type="logical_boundary_Type"/>
0766    </xsd:choice>
0767 </xsd:complexType>
0768 
0769 <xsd:complexType name="logical_boundary_Type">
0770    <xsd:attribute name="description" type="xsd:NCName" use="required"/>
0771 </xsd:complexType>
0772 -->
0773 
0774 <xsd:complexType name="physical_boundary_Type" final="extension">
0775    <xsd:annotation>
0776       <xsd:documentation xml:lang="en">
0777          <obd:definition>
0778          Marks the end of a physical feature. The values allowed for
0779          <b>description</b> are limited to: "column_boundary", "line_boundary",
0780          and "page_boundary".</obd:definition>
0781          <obd:example>
0782          &lt;physical_boundary description="line_boundary"/>
0783          </obd:example>
0784       </xsd:documentation>
0785    </xsd:annotation>
0786    <xsd:attribute name="description" use="required">
0787       <xsd:simpleType>
0788          <xsd:restriction base="xsd:NCName">
0789             <xsd:enumeration value="column_boundary"/>
0790             <xsd:enumeration value="line_boundary"/>
0791             <xsd:enumeration value="page_boundary"/>
0792          </xsd:restriction>
0793       </xsd:simpleType>
0794    </xsd:attribute>
0795 </xsd:complexType>
0796 
0797 <xsd:complexType name="rubric_Type" final="extension">
0798    <xsd:annotation>
0799       <xsd:documentation xml:lang="en">
0800          <obd:definition>
0801          Everything that the original scribe writes that is not part of the music
0802          and its text, such as: labels for feast days, offices and masses; types of
0803          pieces; verses; and so on.
0804          </obd:definition>
0805          <obd:example>
0806          &lt;rubric>&amp;STA;&amp;verse;&amp;END;&lt;/rubric>
0807          </obd:example>
0808       </xsd:documentation>
0809    </xsd:annotation>
0810    <xsd:simpleContent>
0811       <xsd:extension base="xsd:string">
0812          <xsd:attribute name="description" type="xsd:string" use="optional"/>
0813       </xsd:extension>
0814    </xsd:simpleContent>
0815 </xsd:complexType>
0816 
0817 <xsd:complexType name="editorial_comment_Type" final="extension">
0818    <xsd:attribute name="comment" type="xsd:string" use="required"/>
0819 </xsd:complexType>
0820 
0821 <xsd:complexType name="initial_Type" final="extension">
0822    <xsd:annotation>
0823       <xsd:documentation xml:lang="en">
0824          <obd:definition>
0825          Color/size of capitals/initials. Optional link to image of initial.
0826          </obd:definition>
0827       </xsd:documentation>
0828    </xsd:annotation>
0829    <xsd:simpleContent>
0830       <xsd:extension base="xsd:string">
0831          <xsd:attribute name="description" type="xsd:string" use="optional"/>
0832          <xsd:attribute name="img_link" type="xsd:anyURI" use="optional"/>
0833       </xsd:extension>
0834    </xsd:simpleContent>
0835 </xsd:complexType>
0836 
0837 <xsd:complexType name="illumination_Type" final="extension">
0838    <xsd:annotation>
0839       <xsd:documentation xml:lang="en">
0840          <obd:definition>
0841          Decorations on a folio that are not part of the text and chant semantics,
0842          such as pictures of saints, etc. This tag can hyperlink to a digitized
0843          image of the illumination.
0844          </obd:definition>
0845       </xsd:documentation>
0846    </xsd:annotation>
0847    <xsd:attribute name="description" type="xsd:string" use="required"/>
0848    <xsd:attribute name="img_link" type="xsd:anyURI" use="optional"/>
0849 </xsd:complexType>
0850 
0851 <!-- *************** SPOKEN and INTONED (CHANTED) TEXT: *************** -->
0852 
0853 <xsd:complexType name="spoken_text_Type" mixed="false" final="extension">
0854    <xsd:annotation>
0855       <xsd:documentation xml:lang="en">
0856       May be interspersed with editorial tags.
0857          <obd:definition>
0858          Within a NeumesXML *transcription*, marks the boundaries of any passage of
0859          liturgical text that is not notated with neumes (typically, a spoken text).
0860          </obd:definition>
0861       </xsd:documentation>
0862    </xsd:annotation>
0863    <xsd:simpleContent>
0864       <xsd:extension base="plain_text_Type">
0865          <xsd:attribute name="id" type="xsd:ID" use="optional"/>
0866       </xsd:extension>
0867    </xsd:simpleContent>
0868 </xsd:complexType>
0869 
0870 <!-- A Neumed Syllable usually contains just a sequence of Neumes, but there may
0871 also be interspersed Physical Boundaries, Editorial Comments, etc. -->
0872 <xsd:complexType name="neumed_syllable_Type" mixed="false" final="extension">
0873    <xsd:annotation>
0874       <xsd:documentation xml:lang="en"><![CDATA[
0875       The canonical form is: *syllable* followed by one or more *neume*s.
0876       The syllable may be <i>prima-facie</i> absent and only implied.
0877       ]]></xsd:documentation>
0878    </xsd:annotation>
0879    <xsd:sequence>
0880       <xsd:element name="syllable" type="syllable_Type" minOccurs="0"/>
0881       <xsd:choice minOccurs="0" maxOccurs="unbounded">
0882          <xsd:element name="neume" type="neume_Type" maxOccurs="unbounded"/>
0883          <!-- Cf., _neume_ decomposition (below) -->
0884          <xsd:element name="physical_boundary" type="physical_boundary_Type"/>
0885          <xsd:element name="editorial_comment" type="editorial_comment_Type"/>
0886          <xsd:element name="illumination" type="illumination_Type"/>
0887       </xsd:choice>
0888    </xsd:sequence>
0889    <xsd:attribute name="id" type="xsd:ID" use="optional"/>
0890 </xsd:complexType>
0891 
0892 <xsd:complexType name="syllable_Type" mixed="false" final="extension">
0893    <xsd:annotation>
0894       <xsd:documentation xml:lang="en">
0895       May be interspersed with editorial tags.
0896          <obd:definition>
0897          Marks the boundaries of a syllable of intoned (viz, chant) text.
0898          </obd:definition>
0899       </xsd:documentation>
0900    </xsd:annotation>
0901    <xsd:simpleContent>
0902       <xsd:extension base="plain_text_Type">
0903          <xsd:attribute name="id" type="xsd:ID" use="optional"/>
0904       </xsd:extension>
0905    </xsd:simpleContent>
0906 </xsd:complexType>
0907 
0908 <!-- *************** NEUME DECOMPOSITION: *************** -->
0909 <!-- See the NEUMES grammar (NEUMES_grammar.pen) for declaration of the '&NEUMES;' pattern
0910 -->
0911 
0912 <xsd:simpleType name="neume_content_Type">
0913    <xsd:restriction base="xsd:string">
0914       <xsd:pattern value="&NEUMES;"/>
0915    </xsd:restriction>
0916 </xsd:simpleType>
0917 
0918 <xsd:complexType name="neume_Type">
0919    <xsd:annotation>
0920       <xsd:documentation xml:lang="en">
0921          <obd:definition>
0922          Delimits a 'musical gesture' (or, the smallest 'chunk' of vocal expression). Contains one or more Neumatic Symbols (sometimes several). These semantic 'frames' help melodic-pattern matching software to recover from small differences in melody or notational details when comparing similar Sources.
0923          </obd:definition>
0924       </xsd:documentation>
0925    </xsd:annotation>
0926    <xsd:simpleContent>
0927       <xsd:extension base="neume_content_Type">
0928          <xsd:attribute name="id" type="xsd:ID" use="optional"/>
0929          <xsd:attribute name="comment" type="xsd:string" use="optional"/>
0930       </xsd:extension>
0931    </xsd:simpleContent>
0932 </xsd:complexType> 
0933 
0934 </xsd:schema>
0935 
0936 <!-- END, NeumesXML_main.xsd -->
= END LISTING =