<?xml version="1.0" encoding="UTF-8"?> <grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:teix="http://www.tei-c.org/ns/Examples" xmlns:xlink="http://www.w3.org/1999/xlink" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://www.music-encoding.org/ns/mei"><!-- Schema generated from ODD source 2025-03-28T14:30:42Z. . TEI Edition: MEI 6.0-dev TEI Edition Location: https://www.tei-c.org/Vault/P5// --><!--[https://opensource.org/license/ECL-2.0/] Licensed under the Educational Community License version 2.0--> <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron" prefix="tei" uri="http://www.tei-c.org/ns/1.0"/> <div ns="http://www.w3.org/2000/svg" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <define name="svg_Boolean.datatype"> <choice> <value>false</value> <value>true</value> </choice> </define> <define name="svg_ClipFillRule.datatype"> <choice> <value>nonzero</value> <value>evenodd</value> <value>inherit</value> </choice> </define> <define name="svg_ContentType.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_Coordinate.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_Coordinates.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_Color.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_Integer.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_LanguageCode.datatype"> <data type="NMTOKEN"/> </define> <define name="svg_LanguageCodes.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_Length.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_Lengths.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_Number.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_Numbers.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_OpacityValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_PathData.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_PreserveAspectRatioSpec.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_Script.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVGColor.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_Text.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_TransformList.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_URI.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_ViewBoxSpec.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_XLINK.xmlns.attrib"> <empty/> </define> <define name="svg_SVG.xmlns.attrib"> <ref name="svg_XLINK.xmlns.attrib"/> </define> <define name="svg_SVG.Description.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Description.class"> <choice> <ref name="svg_desc"/> <ref name="svg_title"/> <ref name="svg_metadata"/> <ref name="svg_SVG.Description.extra.class"/> </choice> </define> <define name="svg_SVG.Use.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Use.class"> <choice> <ref name="svg_use"/> <ref name="svg_SVG.Use.extra.class"/> </choice> </define> <define name="svg_SVG.Structure.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Structure.class"> <choice> <ref name="svg_svg"/> <ref name="svg_g"/> <ref name="svg_defs"/> <ref name="svg_symbol"/> <ref name="svg_SVG.Use.class"/> <ref name="svg_SVG.Structure.extra.class"/> </choice> </define> <define name="svg_SVG.Conditional.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Conditional.class"> <choice> <ref name="svg_switch"/> <ref name="svg_SVG.Conditional.extra.class"/> </choice> </define> <define name="svg_SVG.Image.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Image.class"> <choice> <ref name="svg_image"/> <ref name="svg_SVG.Image.extra.class"/> </choice> </define> <define name="svg_SVG.Style.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Style.class"> <choice> <ref name="svg_style"/> <ref name="svg_SVG.Style.extra.class"/> </choice> </define> <define name="svg_SVG.Shape.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Shape.class"> <choice> <ref name="svg_path"/> <ref name="svg_rect"/> <ref name="svg_circle"/> <ref name="svg_line"/> <ref name="svg_ellipse"/> <ref name="svg_polyline"/> <ref name="svg_polygon"/> <ref name="svg_SVG.Shape.extra.class"/> </choice> </define> <define name="svg_SVG.Text.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Text.class"> <choice> <ref name="svg_text"/> <ref name="svg_altGlyphDef"/> <ref name="svg_SVG.Text.extra.class"/> </choice> </define> <define name="svg_SVG.TextContent.extra.class"> <notAllowed/> </define> <define name="svg_SVG.TextContent.class"> <choice> <ref name="svg_tspan"/> <ref name="svg_tref"/> <ref name="svg_textPath"/> <ref name="svg_altGlyph"/> <ref name="svg_SVG.TextContent.extra.class"/> </choice> </define> <define name="svg_SVG.Marker.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Marker.class"> <choice> <ref name="svg_marker"/> <ref name="svg_SVG.Marker.extra.class"/> </choice> </define> <define name="svg_SVG.ColorProfile.extra.class"> <notAllowed/> </define> <define name="svg_SVG.ColorProfile.class"> <choice> <ref name="svg_color-profile"/> <ref name="svg_SVG.ColorProfile.extra.class"/> </choice> </define> <define name="svg_SVG.Gradient.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Gradient.class"> <choice> <ref name="svg_linearGradient"/> <ref name="svg_radialGradient"/> <ref name="svg_SVG.Gradient.extra.class"/> </choice> </define> <define name="svg_SVG.Pattern.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Pattern.class"> <choice> <ref name="svg_svgpattern"/> <ref name="svg_SVG.Pattern.extra.class"/> </choice> </define> <define name="svg_SVG.Clip.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Clip.class"> <choice> <ref name="svg_clipPath"/> <ref name="svg_SVG.Clip.extra.class"/> </choice> </define> <define name="svg_SVG.Mask.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Mask.class"> <choice> <ref name="svg_mask"/> <ref name="svg_SVG.Mask.extra.class"/> </choice> </define> <define name="svg_SVG.Filter.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Filter.class"> <choice> <ref name="svg_filter"/> <ref name="svg_SVG.Filter.extra.class"/> </choice> </define> <define name="svg_SVG.FilterPrimitive.extra.class"> <notAllowed/> </define> <define name="svg_SVG.FilterPrimitive.class"> <choice> <ref name="svg_feBlend"/> <ref name="svg_feColorMatrix"/> <ref name="svg_feComponentTransfer"/> <ref name="svg_feComposite"/> <ref name="svg_feConvolveMatrix"/> <ref name="svg_feDiffuseLighting"/> <ref name="svg_feDisplacementMap"/> <ref name="svg_feFlood"/> <ref name="svg_feGaussianBlur"/> <ref name="svg_feImage"/> <ref name="svg_feMerge"/> <ref name="svg_feMorphology"/> <ref name="svg_feOffset"/> <ref name="svg_feSpecularLighting"/> <ref name="svg_feTile"/> <ref name="svg_feTurbulence"/> <ref name="svg_SVG.FilterPrimitive.extra.class"/> </choice> </define> <define name="svg_SVG.Cursor.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Cursor.class"> <choice> <ref name="svg_cursor"/> <ref name="svg_SVG.Cursor.extra.class"/> </choice> </define> <define name="svg_SVG.Hyperlink.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Hyperlink.class"> <choice> <ref name="svg_a"/> <ref name="svg_SVG.Hyperlink.extra.class"/> </choice> </define> <define name="svg_SVG.View.extra.class"> <notAllowed/> </define> <define name="svg_SVG.View.class"> <choice> <ref name="svg_view"/> <ref name="svg_SVG.View.extra.class"/> </choice> </define> <define name="svg_SVG.Script.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Script.class"> <choice> <ref name="svg_script"/> <ref name="svg_SVG.Script.extra.class"/> </choice> </define> <define name="svg_SVG.Animation.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Animation.class"> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateMotion"/> <ref name="svg_animateColor"/> <ref name="svg_animateTransform"/> <ref name="svg_SVG.Animation.extra.class"/> </choice> </define> <define name="svg_SVG.Font.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Font.class"> <choice> <ref name="svg_font"/> <ref name="svg_font-face"/> <ref name="svg_SVG.Font.extra.class"/> </choice> </define> <define name="svg_SVG.Extensibility.extra.class"> <notAllowed/> </define> <define name="svg_SVG.Extensibility.class"> <choice> <ref name="svg_foreignObject"/> <ref name="svg_SVG.Extensibility.extra.class"/> </choice> </define> <define name="svg_ExtensionList.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_FeatureList.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.Conditional.extra.attrib"> <empty/> </define> <define name="svg_SVG.Conditional.attrib"> <optional> <attribute name="requiredFeatures"> <ref name="svg_FeatureList.datatype"/> </attribute> </optional> <optional> <attribute name="requiredExtensions"> <ref name="svg_ExtensionList.datatype"/> </attribute> </optional> <optional> <attribute name="systemLanguage"> <ref name="svg_LanguageCodes.datatype"/> </attribute> </optional> <ref name="svg_SVG.Conditional.extra.attrib"/> </define> <define name="svg_ClassList.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_StyleSheet.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.Style.extra.attrib"> <empty/> </define> <define name="svg_SVG.Style.attrib"> <optional> <attribute name="style"> <ref name="svg_StyleSheet.datatype"/> </attribute> </optional> <optional> <attribute name="class"> <ref name="svg_ClassList.datatype"/> </attribute> </optional> <ref name="svg_SVG.Style.extra.attrib"/> </define> <define name="svg_BaselineShiftValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_FontFamilyValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_FontSizeValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_FontSizeAdjustValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_GlyphOrientationHorizontalValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_GlyphOrientationVerticalValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_KerningValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SpacingValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_TextDecorationValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.Text.extra.attrib"> <empty/> </define> <define name="svg_SVG.Text.attrib"> <optional> <attribute name="writing-mode"> <choice> <value>lr-tb</value> <value>rl-tb</value> <value>tb-rl</value> <value>lr</value> <value>rl</value> <value>tb</value> <value>inherit</value> </choice> </attribute> </optional> <ref name="svg_SVG.Text.extra.attrib"/> </define> <define name="svg_SVG.TextContent.extra.attrib"> <empty/> </define> <define name="svg_SVG.TextContent.attrib"> <optional> <attribute name="alignment-baseline"> <choice> <value>auto</value> <value>baseline</value> <value>before-edge</value> <value>text-before-edge</value> <value>middle</value> <value>central</value> <value>after-edge</value> <value>text-after-edge</value> <value>ideographic</value> <value>alphabetic</value> <value>hanging</value> <value>mathematical</value> <value>inherit</value> </choice> </attribute> </optional> <optional> <attribute name="baseline-shift"> <ref name="svg_BaselineShiftValue.datatype"/> </attribute> </optional> <optional> <attribute name="direction"> <choice> <value>ltr</value> <value>rtl</value> <value>inherit</value> </choice> </attribute> </optional> <optional> <attribute name="dominant-baseline"> <choice> <value>auto</value> <value>use-script</value> <value>no-change</value> <value>reset-size</value> <value>ideographic</value> <value>alphabetic</value> <value>hanging</value> <value>mathematical</value> <value>central</value> <value>middle</value> <value>text-after-edge</value> <value>text-before-edge</value> <value>inherit</value> </choice> </attribute> </optional> <optional> <attribute name="glyph-orientation-horizontal"> <ref name="svg_GlyphOrientationHorizontalValue.datatype"/> </attribute> </optional> <optional> <attribute name="glyph-orientation-vertical"> <ref name="svg_GlyphOrientationVerticalValue.datatype"/> </attribute> </optional> <optional> <attribute name="kerning"> <ref name="svg_KerningValue.datatype"/> </attribute> </optional> <optional> <attribute name="letter-spacing"> <ref name="svg_SpacingValue.datatype"/> </attribute> </optional> <optional> <attribute name="text-anchor"> <choice> <value>start</value> <value>middle</value> <value>end</value> <value>inherit</value> </choice> </attribute> </optional> <optional> <attribute name="text-decoration"> <ref name="svg_TextDecorationValue.datatype"/> </attribute> </optional> <optional> <attribute name="unicode-bidi"> <choice> <value>normal</value> <value>embed</value> <value>bidi-override</value> <value>inherit</value> </choice> </attribute> </optional> <optional> <attribute name="word-spacing"> <ref name="svg_SpacingValue.datatype"/> </attribute> </optional> <ref name="svg_SVG.TextContent.extra.attrib"/> </define> <define name="svg_SVG.Font.extra.attrib"> <empty/> </define> <define name="svg_SVG.Font.attrib"> <optional> <attribute name="font-family"> <ref name="svg_FontFamilyValue.datatype"/> </attribute> </optional> <optional> <attribute name="font-size"> <ref name="svg_FontSizeValue.datatype"/> </attribute> </optional> <optional> <attribute name="font-size-adjust"> <ref name="svg_FontSizeAdjustValue.datatype"/> </attribute> </optional> <optional> <attribute name="font-stretch"> <choice> <value>normal</value> <value>wider</value> <value>narrower</value> <value>ultra-condensed</value> <value>extra-condensed</value> <value>condensed</value> <value>semi-condensed</value> <value>semi-expanded</value> <value>expanded</value> <value>extra-expanded</value> <value>ultra-expanded</value> <value>inherit</value> </choice> </attribute> </optional> <optional> <attribute name="font-style"> <choice> <value>normal</value> <value>italic</value> <value>oblique</value> <value>inherit</value> </choice> </attribute> </optional> <optional> <attribute name="font-variant"> <choice> <value>normal</value> <value>small-caps</value> <value>inherit</value> </choice> </attribute> </optional> <optional> <attribute name="font-weight"> <choice> <value>normal</value> <value>bold</value> <value>bolder</value> <value>lighter</value> <value>100</value> <value>200</value> <value>300</value> <value>400</value> <value>500</value> <value>600</value> <value>700</value> <value>800</value> <value>900</value> <value>inherit</value> </choice> </attribute> </optional> <ref name="svg_SVG.Font.extra.attrib"/> </define> <define name="svg_MarkerValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.Marker.extra.attrib"> <empty/> </define> <define name="svg_SVG.Marker.attrib"> <optional> <attribute name="marker-start"> <ref name="svg_MarkerValue.datatype"/> </attribute> </optional> <optional> <attribute name="marker-mid"> <ref name="svg_MarkerValue.datatype"/> </attribute> </optional> <optional> <attribute name="marker-end"> <ref name="svg_MarkerValue.datatype"/> </attribute> </optional> <ref name="svg_SVG.Marker.extra.attrib"/> </define> <define name="svg_SVG.ColorProfile.extra.attrib"> <empty/> </define> <define name="svg_SVG.ColorProfile.attrib"> <optional> <attribute name="color-profile"/> </optional> <ref name="svg_SVG.ColorProfile.extra.attrib"/> </define> <define name="svg_NumberOrPercentage.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.Gradient.extra.attrib"> <empty/> </define> <define name="svg_SVG.Gradient.attrib"> <optional> <attribute name="stop-color"> <ref name="svg_SVGColor.datatype"/> </attribute> </optional> <optional> <attribute name="stop-opacity"> <ref name="svg_OpacityValue.datatype"/> </attribute> </optional> <ref name="svg_SVG.Gradient.extra.attrib"/> </define> <define name="svg_ClipPathValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.Clip.extra.attrib"> <empty/> </define> <define name="svg_SVG.Clip.attrib"> <optional> <attribute name="clip-path"> <ref name="svg_ClipPathValue.datatype"/> </attribute> </optional> <optional> <attribute name="clip-rule"> <ref name="svg_ClipFillRule.datatype"/> </attribute> </optional> <ref name="svg_SVG.Clip.extra.attrib"/> </define> <define name="svg_MaskValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.Mask.extra.attrib"> <empty/> </define> <define name="svg_SVG.Mask.attrib"> <optional> <attribute name="mask"> <ref name="svg_MaskValue.datatype"/> </attribute> </optional> <ref name="svg_SVG.Mask.extra.attrib"/> </define> <define name="svg_FilterValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_NumberOptionalNumber.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.Filter.extra.attrib"> <empty/> </define> <define name="svg_SVG.Filter.attrib"> <optional> <attribute name="filter"> <ref name="svg_FilterValue.datatype"/> </attribute> </optional> <ref name="svg_SVG.Filter.extra.attrib"/> </define> <define name="svg_SVG.FilterColor.extra.attrib"> <empty/> </define> <define name="svg_SVG.FilterColor.attrib"> <optional> <attribute name="color-interpolation-filters"> <choice> <value>auto</value> <value>sRGB</value> <value>linearRGB</value> <value>inherit</value> </choice> </attribute> </optional> <ref name="svg_SVG.FilterColor.extra.attrib"/> </define> <define name="svg_CursorValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.Cursor.extra.attrib"> <empty/> </define> <define name="svg_SVG.Cursor.attrib"> <optional> <attribute name="cursor"> <ref name="svg_CursorValue.datatype"/> </attribute> </optional> <ref name="svg_SVG.Cursor.extra.attrib"/> </define> <define name="svg_SVG.id.attrib"> <optional> <attribute name="id"> <data type="ID"/> </attribute> </optional> </define> <define name="svg_SVG.base.attrib"> <optional> <attribute name="xml:base"> <ref name="svg_URI.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.lang.attrib"> <optional> <attribute name="xml:lang"> <ref name="svg_LanguageCode.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.space.attrib"> <optional> <attribute name="xml:space"> <choice> <value>default</value> <value>preserve</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.Core.extra.attrib"> <empty/> </define> <define name="svg_SVG.Core.attrib"> <ref name="svg_SVG.id.attrib"/> <ref name="svg_SVG.base.attrib"/> <ref name="svg_SVG.lang.attrib"/> <ref name="svg_SVG.space.attrib"/> <ref name="svg_SVG.Core.extra.attrib"/> </define> <define name="svg_EnableBackgroundValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.enable-background.attrib"> <optional> <attribute name="enable-background"> <ref name="svg_EnableBackgroundValue.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.Container.extra.attrib"> <empty/> </define> <define name="svg_SVG.Container.attrib"> <ref name="svg_SVG.enable-background.attrib"/> <ref name="svg_SVG.Container.extra.attrib"/> </define> <define name="svg_ClipValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.clip.attrib"> <optional> <attribute name="clip"> <ref name="svg_ClipValue.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.overflow.attrib"> <optional> <attribute name="overflow"> <choice> <value>visible</value> <value>hidden</value> <value>scroll</value> <value>auto</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.Viewport.extra.attrib"> <empty/> </define> <define name="svg_SVG.Viewport.attrib"> <ref name="svg_SVG.clip.attrib"/> <ref name="svg_SVG.overflow.attrib"/> <ref name="svg_SVG.Viewport.extra.attrib"/> </define> <define name="svg_Paint.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_StrokeDashArrayValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_StrokeDashOffsetValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_StrokeMiterLimitValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_StrokeWidthValue.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.fill.attrib"> <optional> <attribute name="fill"> <ref name="svg_Paint.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.fill-rule.attrib"> <optional> <attribute name="fill-rule"> <ref name="svg_ClipFillRule.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.stroke.attrib"> <optional> <attribute name="stroke"> <ref name="svg_Paint.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.stroke-dasharray.attrib"> <optional> <attribute name="stroke-dasharray"> <ref name="svg_StrokeDashArrayValue.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.stroke-dashoffset.attrib"> <optional> <attribute name="stroke-dashoffset"> <ref name="svg_StrokeDashOffsetValue.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.stroke-linecap.attrib"> <optional> <attribute name="stroke-linecap"> <choice> <value>butt</value> <value>round</value> <value>square</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.stroke-linejoin.attrib"> <optional> <attribute name="stroke-linejoin"> <choice> <value>miter</value> <value>round</value> <value>bevel</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.stroke-miterlimit.attrib"> <optional> <attribute name="stroke-miterlimit"> <ref name="svg_StrokeMiterLimitValue.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.stroke-width.attrib"> <optional> <attribute name="stroke-width"> <ref name="svg_StrokeWidthValue.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.Paint.extra.attrib"> <empty/> </define> <define name="svg_SVG.Paint.attrib"> <ref name="svg_SVG.fill.attrib"/> <ref name="svg_SVG.fill-rule.attrib"/> <ref name="svg_SVG.stroke.attrib"/> <ref name="svg_SVG.stroke-dasharray.attrib"/> <ref name="svg_SVG.stroke-dashoffset.attrib"/> <ref name="svg_SVG.stroke-linecap.attrib"/> <ref name="svg_SVG.stroke-linejoin.attrib"/> <ref name="svg_SVG.stroke-miterlimit.attrib"/> <ref name="svg_SVG.stroke-width.attrib"/> <ref name="svg_SVG.Paint.extra.attrib"/> </define> <define name="svg_SVG.color.attrib"> <optional> <attribute name="color"> <ref name="svg_Color.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.color-interpolation.attrib"> <optional> <attribute name="color-interpolation"> <choice> <value>auto</value> <value>sRGB</value> <value>linearRGB</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.color-rendering.attrib"> <optional> <attribute name="color-rendering"> <choice> <value>auto</value> <value>optimizeSpeed</value> <value>optimizeQuality</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.Color.extra.attrib"> <empty/> </define> <define name="svg_SVG.Color.attrib"> <ref name="svg_SVG.color.attrib"/> <ref name="svg_SVG.color-interpolation.attrib"/> <ref name="svg_SVG.color-rendering.attrib"/> <ref name="svg_SVG.Color.extra.attrib"/> </define> <define name="svg_SVG.opacity.attrib"> <optional> <attribute name="opacity"> <ref name="svg_OpacityValue.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.fill-opacity.attrib"> <optional> <attribute name="fill-opacity"> <ref name="svg_OpacityValue.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.stroke-opacity.attrib"> <optional> <attribute name="stroke-opacity"> <ref name="svg_OpacityValue.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.Opacity.extra.attrib"> <empty/> </define> <define name="svg_SVG.Opacity.attrib"> <ref name="svg_SVG.opacity.attrib"/> <ref name="svg_SVG.fill-opacity.attrib"/> <ref name="svg_SVG.stroke-opacity.attrib"/> <ref name="svg_SVG.Opacity.extra.attrib"/> </define> <define name="svg_SVG.display.attrib"> <optional> <attribute name="display"> <choice> <value>inline</value> <value>block</value> <value>list-item</value> <value>run-in</value> <value>compact</value> <value>marker</value> <value>table</value> <value>inline-table</value> <value>table-row-group</value> <value>table-header-group</value> <value>table-footer-group</value> <value>table-row</value> <value>table-column-group</value> <value>table-column</value> <value>table-cell</value> <value>table-caption</value> <value>none</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.image-rendering.attrib"> <optional> <attribute name="image-rendering"> <choice> <value>auto</value> <value>optimizeSpeed</value> <value>optimizeQuality</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.pointer-events.attrib"> <optional> <attribute name="pointer-events"> <choice> <value>visiblePainted</value> <value>visibleFill</value> <value>visibleStroke</value> <value>visible</value> <value>painted</value> <value>fill</value> <value>stroke</value> <value>all</value> <value>none</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.shape-rendering.attrib"> <optional> <attribute name="shape-rendering"> <choice> <value>auto</value> <value>optimizeSpeed</value> <value>crispEdges</value> <value>geometricPrecision</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.text-rendering.attrib"> <optional> <attribute name="text-rendering"> <choice> <value>auto</value> <value>optimizeSpeed</value> <value>optimizeLegibility</value> <value>geometricPrecision</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.visibility.attrib"> <optional> <attribute name="visibility"> <choice> <value>visible</value> <value>hidden</value> <value>inherit</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.Graphics.extra.attrib"> <empty/> </define> <define name="svg_SVG.Graphics.attrib"> <ref name="svg_SVG.display.attrib"/> <ref name="svg_SVG.image-rendering.attrib"/> <ref name="svg_SVG.pointer-events.attrib"/> <ref name="svg_SVG.shape-rendering.attrib"/> <ref name="svg_SVG.text-rendering.attrib"/> <ref name="svg_SVG.visibility.attrib"/> <ref name="svg_SVG.Graphics.extra.attrib"/> </define> <define name="svg_SVG.onunload.attrib"> <optional> <attribute name="onunload"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onabort.attrib"> <optional> <attribute name="onabort"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onerror.attrib"> <optional> <attribute name="onerror"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onresize.attrib"> <optional> <attribute name="onresize"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onscroll.attrib"> <optional> <attribute name="onscroll"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onzoom.attrib"> <optional> <attribute name="onzoom"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.DocumentEvents.extra.attrib"> <empty/> </define> <define name="svg_SVG.DocumentEvents.attrib"> <ref name="svg_SVG.onunload.attrib"/> <ref name="svg_SVG.onabort.attrib"/> <ref name="svg_SVG.onerror.attrib"/> <ref name="svg_SVG.onresize.attrib"/> <ref name="svg_SVG.onscroll.attrib"/> <ref name="svg_SVG.onzoom.attrib"/> <ref name="svg_SVG.DocumentEvents.extra.attrib"/> </define> <define name="svg_SVG.onfocusin.attrib"> <optional> <attribute name="onfocusin"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onfocusout.attrib"> <optional> <attribute name="onfocusout"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onactivate.attrib"> <optional> <attribute name="onactivate"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onclick.attrib"> <optional> <attribute name="onclick"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onmousedown.attrib"> <optional> <attribute name="onmousedown"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onmouseup.attrib"> <optional> <attribute name="onmouseup"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onmouseover.attrib"> <optional> <attribute name="onmouseover"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onmousemove.attrib"> <optional> <attribute name="onmousemove"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onmouseout.attrib"> <optional> <attribute name="onmouseout"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onload.attrib"> <optional> <attribute name="onload"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.GraphicalEvents.extra.attrib"> <empty/> </define> <define name="svg_SVG.GraphicalEvents.attrib"> <ref name="svg_SVG.onfocusin.attrib"/> <ref name="svg_SVG.onfocusout.attrib"/> <ref name="svg_SVG.onactivate.attrib"/> <ref name="svg_SVG.onclick.attrib"/> <ref name="svg_SVG.onmousedown.attrib"/> <ref name="svg_SVG.onmouseup.attrib"/> <ref name="svg_SVG.onmouseover.attrib"/> <ref name="svg_SVG.onmousemove.attrib"/> <ref name="svg_SVG.onmouseout.attrib"/> <ref name="svg_SVG.onload.attrib"/> <ref name="svg_SVG.GraphicalEvents.extra.attrib"/> </define> <define name="svg_SVG.onbegin.attrib"> <optional> <attribute name="onbegin"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onend.attrib"> <optional> <attribute name="onend"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.onrepeat.attrib"> <optional> <attribute name="onrepeat"> <ref name="svg_Script.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.AnimationEvents.extra.attrib"> <empty/> </define> <define name="svg_SVG.AnimationEvents.attrib"> <ref name="svg_SVG.onbegin.attrib"/> <ref name="svg_SVG.onend.attrib"/> <ref name="svg_SVG.onrepeat.attrib"/> <ref name="svg_SVG.onload.attrib"/> <ref name="svg_SVG.AnimationEvents.extra.attrib"/> </define> <define name="svg_SVG.XLink.extra.attrib"> <empty/> </define> <define name="svg_SVG.XLink.attrib"> <ref name="svg_XLINK.xmlns.attrib"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:type" a:defaultValue="simple"> <value>simple</value> </attribute> </optional> <optional> <attribute name="xlink:href"> <ref name="svg_URI.datatype"/> </attribute> </optional> <optional> <attribute name="xlink:role"> <ref name="svg_URI.datatype"/> </attribute> </optional> <optional> <attribute name="xlink:arcrole"> <ref name="svg_URI.datatype"/> </attribute> </optional> <optional> <attribute name="xlink:title"/> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:show" a:defaultValue="other"> <choice> <value>other</value> </choice> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:actuate" a:defaultValue="onLoad"> <value>onLoad</value> </attribute> </optional> <ref name="svg_SVG.XLink.extra.attrib"/> </define> <define name="svg_SVG.XLinkRequired.extra.attrib"> <empty/> </define> <define name="svg_SVG.XLinkRequired.attrib"> <ref name="svg_XLINK.xmlns.attrib"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:type" a:defaultValue="simple"> <value>simple</value> </attribute> </optional> <attribute name="xlink:href"> <ref name="svg_URI.datatype"/> </attribute> <optional> <attribute name="xlink:role"> <ref name="svg_URI.datatype"/> </attribute> </optional> <optional> <attribute name="xlink:arcrole"> <ref name="svg_URI.datatype"/> </attribute> </optional> <optional> <attribute name="xlink:title"/> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:show" a:defaultValue="other"> <choice> <value>other</value> </choice> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:actuate" a:defaultValue="onLoad"> <value>onLoad</value> </attribute> </optional> <ref name="svg_SVG.XLinkRequired.extra.attrib"/> </define> <define name="svg_SVG.XLinkEmbed.extra.attrib"> <empty/> </define> <define name="svg_SVG.XLinkEmbed.attrib"> <ref name="svg_XLINK.xmlns.attrib"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:type" a:defaultValue="simple"> <value>simple</value> </attribute> </optional> <attribute name="xlink:href"> <ref name="svg_URI.datatype"/> </attribute> <optional> <attribute name="xlink:role"> <ref name="svg_URI.datatype"/> </attribute> </optional> <optional> <attribute name="xlink:arcrole"> <ref name="svg_URI.datatype"/> </attribute> </optional> <optional> <attribute name="xlink:title"/> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:show" a:defaultValue="embed"> <choice> <value>embed</value> </choice> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:actuate" a:defaultValue="onLoad"> <value>onLoad</value> </attribute> </optional> <ref name="svg_SVG.XLinkEmbed.extra.attrib"/> </define> <define name="svg_SVG.XLinkReplace.extra.attrib"> <empty/> </define> <define name="svg_SVG.XLinkReplace.attrib"> <ref name="svg_XLINK.xmlns.attrib"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:type" a:defaultValue="simple"> <value>simple</value> </attribute> </optional> <attribute name="xlink:href"> <ref name="svg_URI.datatype"/> </attribute> <optional> <attribute name="xlink:role"> <ref name="svg_URI.datatype"/> </attribute> </optional> <optional> <attribute name="xlink:arcrole"> <ref name="svg_URI.datatype"/> </attribute> </optional> <optional> <attribute name="xlink:title"/> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:show" a:defaultValue="replace"> <choice> <value>new</value> <value>replace</value> </choice> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xlink:actuate" a:defaultValue="onRequest"> <value>onRequest</value> </attribute> </optional> <ref name="svg_SVG.XLinkReplace.extra.attrib"/> </define> <define name="svg_SVG.externalResourcesRequired.attrib"> <optional> <attribute name="externalResourcesRequired"> <ref name="svg_Boolean.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.External.extra.attrib"> <empty/> </define> <define name="svg_SVG.External.attrib"> <ref name="svg_SVG.externalResourcesRequired.attrib"/> <ref name="svg_SVG.External.extra.attrib"/> </define> <define name="svg_SVG.Presentation.extra.attrib"> <empty/> </define> <define name="svg_SVG.Presentation.attrib"> <ref name="svg_SVG.Container.attrib"/> <ref name="svg_SVG.Viewport.attrib"/> <ref name="svg_SVG.Text.attrib"/> <ref name="svg_SVG.TextContent.attrib"/> <ref name="svg_SVG.Font.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Marker.attrib"/> <ref name="svg_SVG.ColorProfile.attrib"/> <ref name="svg_SVG.Gradient.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <optional> <attribute name="flood-color"> <ref name="svg_SVGColor.datatype"/> </attribute> </optional> <optional> <attribute name="flood-opacity"> <ref name="svg_OpacityValue.datatype"/> </attribute> </optional> <optional> <attribute name="lighting-color"> <ref name="svg_SVGColor.datatype"/> </attribute> </optional> <ref name="svg_SVG.Presentation.extra.attrib"/> </define> <define name="svg_SVG.svg.extra.content"> <notAllowed/> </define> <define name="svg_SVG.svg.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Structure.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Style.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.Marker.class"/> <ref name="svg_SVG.ColorProfile.class"/> <ref name="svg_SVG.Gradient.class"/> <ref name="svg_SVG.Pattern.class"/> <ref name="svg_SVG.Clip.class"/> <ref name="svg_SVG.Mask.class"/> <ref name="svg_SVG.Filter.class"/> <ref name="svg_SVG.Cursor.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.View.class"/> <ref name="svg_SVG.Script.class"/> <ref name="svg_SVG.Font.class"/> <ref name="svg_SVG.svg.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_svg"> <element name="svg"> <ref name="svg_attlist.svg"/> <ref name="svg_SVG.svg.content"/> </element> </define> <define name="svg_attlist.svg" combine="interleave"> <ref name="svg_SVG.xmlns.attrib"/> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.DocumentEvents.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="width"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="height"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="viewBox"> <ref name="svg_ViewBoxSpec.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="preserveAspectRatio" a:defaultValue="xMidYMid meet"> <ref name="svg_PreserveAspectRatioSpec.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="zoomAndPan" a:defaultValue="magnify"> <choice> <value>disable</value> <value>magnify</value> </choice> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="version" a:defaultValue="1.1"> <value type="string" datatypeLibrary="">1.1</value> </attribute> </optional> <optional> <attribute name="baseProfile"> <ref name="svg_Text.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="contentScriptType" a:defaultValue="text/ecmascript"> <ref name="svg_ContentType.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="contentStyleType" a:defaultValue="text/css"> <ref name="svg_ContentType.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.g.extra.content"> <notAllowed/> </define> <define name="svg_SVG.g.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Structure.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Style.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.Marker.class"/> <ref name="svg_SVG.ColorProfile.class"/> <ref name="svg_SVG.Gradient.class"/> <ref name="svg_SVG.Pattern.class"/> <ref name="svg_SVG.Clip.class"/> <ref name="svg_SVG.Mask.class"/> <ref name="svg_SVG.Filter.class"/> <ref name="svg_SVG.Cursor.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.View.class"/> <ref name="svg_SVG.Script.class"/> <ref name="svg_SVG.Font.class"/> <ref name="svg_SVG.g.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_g"> <element name="g"> <ref name="svg_attlist.g"/> <ref name="svg_SVG.g.content"/> </element> </define> <define name="svg_attlist.g" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.defs.extra.content"> <notAllowed/> </define> <define name="svg_SVG.defs.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Structure.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Style.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.Marker.class"/> <ref name="svg_SVG.ColorProfile.class"/> <ref name="svg_SVG.Gradient.class"/> <ref name="svg_SVG.Pattern.class"/> <ref name="svg_SVG.Clip.class"/> <ref name="svg_SVG.Mask.class"/> <ref name="svg_SVG.Filter.class"/> <ref name="svg_SVG.Cursor.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.View.class"/> <ref name="svg_SVG.Script.class"/> <ref name="svg_SVG.Font.class"/> <ref name="svg_SVG.defs.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_defs"> <element name="defs"> <ref name="svg_attlist.defs"/> <ref name="svg_SVG.defs.content"/> </element> </define> <define name="svg_attlist.defs" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.desc.extra.content"> <notAllowed/> </define> <define name="svg_SVG.desc.content"> <zeroOrMore> <choice> <text/> <ref name="svg_SVG.desc.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_desc"> <element name="desc"> <ref name="svg_attlist.desc"/> <ref name="svg_SVG.desc.content"/> </element> </define> <define name="svg_attlist.desc" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> </define> <define name="svg_SVG.title.extra.content"> <notAllowed/> </define> <define name="svg_SVG.title.content"> <zeroOrMore> <choice> <text/> <ref name="svg_SVG.title.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_title"> <element name="title"> <ref name="svg_attlist.title"/> <ref name="svg_SVG.title.content"/> </element> </define> <define name="svg_attlist.title" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> </define> <define name="svg_SVG.metadata.extra.content"> <notAllowed/> </define> <define name="svg_SVG.metadata.content"> <zeroOrMore> <choice> <text/> <ref name="svg_SVG.metadata.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_metadata"> <element name="metadata"> <ref name="svg_attlist.metadata"/> <ref name="svg_SVG.metadata.content"/> </element> </define> <define name="svg_attlist.metadata" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> </define> <define name="svg_SVG.symbol.extra.content"> <notAllowed/> </define> <define name="svg_SVG.symbol.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Structure.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Style.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.Marker.class"/> <ref name="svg_SVG.ColorProfile.class"/> <ref name="svg_SVG.Gradient.class"/> <ref name="svg_SVG.Pattern.class"/> <ref name="svg_SVG.Clip.class"/> <ref name="svg_SVG.Mask.class"/> <ref name="svg_SVG.Filter.class"/> <ref name="svg_SVG.Cursor.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.View.class"/> <ref name="svg_SVG.Script.class"/> <ref name="svg_SVG.Font.class"/> <ref name="svg_SVG.symbol.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_symbol"> <element name="symbol"> <ref name="svg_attlist.symbol"/> <ref name="svg_SVG.symbol.content"/> </element> </define> <define name="svg_attlist.symbol" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="viewBox"> <ref name="svg_ViewBoxSpec.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="preserveAspectRatio" a:defaultValue="xMidYMid meet"> <ref name="svg_PreserveAspectRatioSpec.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.use.extra.content"> <notAllowed/> </define> <define name="svg_SVG.use.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.use.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_use"> <element name="use"> <ref name="svg_attlist.use"/> <ref name="svg_SVG.use.content"/> </element> </define> <define name="svg_attlist.use" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.XLinkEmbed.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="width"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="height"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.switch.extra.content"> <notAllowed/> </define> <define name="svg_SVG.switch.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_svg"/> <ref name="svg_g"/> <ref name="svg_use"/> <ref name="svg_text"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.Extensibility.class"/> <ref name="svg_SVG.switch.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_switch"> <element name="switch"> <ref name="svg_attlist.switch"/> <ref name="svg_SVG.switch.content"/> </element> </define> <define name="svg_attlist.switch" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.image.extra.content"> <notAllowed/> </define> <define name="svg_SVG.image.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.image.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_image"> <element name="image"> <ref name="svg_attlist.image"/> <ref name="svg_SVG.image.content"/> </element> </define> <define name="svg_attlist.image" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Viewport.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.ColorProfile.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.XLinkEmbed.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <attribute name="width"> <ref name="svg_Length.datatype"/> </attribute> <attribute name="height"> <ref name="svg_Length.datatype"/> </attribute> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="preserveAspectRatio" a:defaultValue="xMidYMid meet"> <ref name="svg_PreserveAspectRatioSpec.datatype"/> </attribute> </optional> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_MediaDesc.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.style.extra.content"> <notAllowed/> </define> <define name="svg_SVG.style.content"> <zeroOrMore> <choice> <text/> <ref name="svg_SVG.style.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_style"> <element name="style"> <ref name="svg_attlist.style"/> <ref name="svg_SVG.style.content"/> </element> </define> <define name="svg_attlist.style" combine="interleave"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xml:space" a:defaultValue="preserve"> <value>preserve</value> </attribute> </optional> <ref name="svg_SVG.id.attrib"/> <ref name="svg_SVG.base.attrib"/> <ref name="svg_SVG.lang.attrib"/> <ref name="svg_SVG.Core.extra.attrib"/> <attribute name="type"> <ref name="svg_ContentType.datatype"/> </attribute> <optional> <attribute name="media"> <ref name="svg_MediaDesc.datatype"/> </attribute> </optional> <optional> <attribute name="title"> <ref name="svg_Text.datatype"/> </attribute> </optional> </define> <define name="svg_Points.datatype"> <data type="string" datatypeLibrary=""/> </define> <define name="svg_SVG.path.extra.content"> <notAllowed/> </define> <define name="svg_SVG.path.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.path.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_path"> <element name="path"> <ref name="svg_attlist.path"/> <ref name="svg_SVG.path.content"/> </element> </define> <define name="svg_attlist.path" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Marker.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.External.attrib"/> <attribute name="d"> <ref name="svg_PathData.datatype"/> </attribute> <optional> <attribute name="pathLength"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.rect.extra.content"> <notAllowed/> </define> <define name="svg_SVG.rect.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.rect.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_rect"> <element name="rect"> <ref name="svg_attlist.rect"/> <ref name="svg_SVG.rect.content"/> </element> </define> <define name="svg_attlist.rect" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <attribute name="width"> <ref name="svg_Length.datatype"/> </attribute> <attribute name="height"> <ref name="svg_Length.datatype"/> </attribute> <optional> <attribute name="rx"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="ry"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.circle.extra.content"> <notAllowed/> </define> <define name="svg_SVG.circle.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.circle.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_circle"> <element name="circle"> <ref name="svg_attlist.circle"/> <ref name="svg_SVG.circle.content"/> </element> </define> <define name="svg_attlist.circle" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="cx"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="cy"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <attribute name="r"> <ref name="svg_Length.datatype"/> </attribute> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.line.extra.content"> <notAllowed/> </define> <define name="svg_SVG.line.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.line.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_line"> <element name="line"> <ref name="svg_attlist.line"/> <ref name="svg_SVG.line.content"/> </element> </define> <define name="svg_attlist.line" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Marker.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x1"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y1"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="x2"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y2"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.ellipse.extra.content"> <notAllowed/> </define> <define name="svg_SVG.ellipse.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.ellipse.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_ellipse"> <element name="ellipse"> <ref name="svg_attlist.ellipse"/> <ref name="svg_SVG.ellipse.content"/> </element> </define> <define name="svg_attlist.ellipse" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="cx"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="cy"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <attribute name="rx"> <ref name="svg_Length.datatype"/> </attribute> <attribute name="ry"> <ref name="svg_Length.datatype"/> </attribute> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.polyline.extra.content"> <notAllowed/> </define> <define name="svg_SVG.polyline.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.polyline.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_polyline"> <element name="polyline"> <ref name="svg_attlist.polyline"/> <ref name="svg_SVG.polyline.content"/> </element> </define> <define name="svg_attlist.polyline" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Marker.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.External.attrib"/> <attribute name="points"> <ref name="svg_Points.datatype"/> </attribute> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.polygon.extra.content"> <notAllowed/> </define> <define name="svg_SVG.polygon.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.polygon.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_polygon"> <element name="polygon"> <ref name="svg_attlist.polygon"/> <ref name="svg_SVG.polygon.content"/> </element> </define> <define name="svg_attlist.polygon" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Marker.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.External.attrib"/> <attribute name="points"> <ref name="svg_Points.datatype"/> </attribute> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.text.extra.content"> <notAllowed/> </define> <define name="svg_SVG.text.content"> <zeroOrMore> <choice> <text/> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.TextContent.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.text.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_text"> <element name="text"> <ref name="svg_attlist.text"/> <ref name="svg_SVG.text.content"/> </element> </define> <define name="svg_attlist.text" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Text.attrib"/> <ref name="svg_SVG.TextContent.attrib"/> <ref name="svg_SVG.Font.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinates.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinates.datatype"/> </attribute> </optional> <optional> <attribute name="dx"> <ref name="svg_Lengths.datatype"/> </attribute> </optional> <optional> <attribute name="dy"> <ref name="svg_Lengths.datatype"/> </attribute> </optional> <optional> <attribute name="rotate"> <ref name="svg_Numbers.datatype"/> </attribute> </optional> <optional> <attribute name="textLength"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="lengthAdjust"> <choice> <value>spacing</value> <value>spacingAndGlyphs</value> </choice> </attribute> </optional> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.tspan.extra.content"> <notAllowed/> </define> <define name="svg_SVG.tspan.content"> <zeroOrMore> <choice> <text/> <ref name="svg_tspan"/> <ref name="svg_tref"/> <ref name="svg_altGlyph"/> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateColor"/> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.tspan.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_tspan"> <element name="tspan"> <ref name="svg_attlist.tspan"/> <ref name="svg_SVG.tspan.content"/> </element> </define> <define name="svg_attlist.tspan" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.TextContent.attrib"/> <ref name="svg_SVG.Font.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinates.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinates.datatype"/> </attribute> </optional> <optional> <attribute name="dx"> <ref name="svg_Lengths.datatype"/> </attribute> </optional> <optional> <attribute name="dy"> <ref name="svg_Lengths.datatype"/> </attribute> </optional> <optional> <attribute name="rotate"> <ref name="svg_Numbers.datatype"/> </attribute> </optional> <optional> <attribute name="textLength"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="lengthAdjust"> <choice> <value>spacing</value> <value>spacingAndGlyphs</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.tref.extra.content"> <notAllowed/> </define> <define name="svg_SVG.tref.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateColor"/> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.tref.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_tref"> <element name="tref"> <ref name="svg_attlist.tref"/> <ref name="svg_SVG.tref.content"/> </element> </define> <define name="svg_attlist.tref" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.TextContent.attrib"/> <ref name="svg_SVG.Font.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.XLinkRequired.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinates.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinates.datatype"/> </attribute> </optional> <optional> <attribute name="dx"> <ref name="svg_Lengths.datatype"/> </attribute> </optional> <optional> <attribute name="dy"> <ref name="svg_Lengths.datatype"/> </attribute> </optional> <optional> <attribute name="rotate"> <ref name="svg_Numbers.datatype"/> </attribute> </optional> <optional> <attribute name="textLength"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="lengthAdjust"> <choice> <value>spacing</value> <value>spacingAndGlyphs</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.textPath.extra.content"> <notAllowed/> </define> <define name="svg_SVG.textPath.content"> <zeroOrMore> <choice> <text/> <ref name="svg_tspan"/> <ref name="svg_tref"/> <ref name="svg_altGlyph"/> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateColor"/> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.textPath.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_textPath"> <element name="textPath"> <ref name="svg_attlist.textPath"/> <ref name="svg_SVG.textPath.content"/> </element> </define> <define name="svg_attlist.textPath" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.TextContent.attrib"/> <ref name="svg_SVG.Font.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.XLinkRequired.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="startOffset"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="textLength"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="lengthAdjust"> <choice> <value>spacing</value> <value>spacingAndGlyphs</value> </choice> </attribute> </optional> <optional> <attribute name="method"> <choice> <value>align</value> <value>stretch</value> </choice> </attribute> </optional> <optional> <attribute name="spacing"> <choice> <value>auto</value> <value>exact</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.altGlyph.extra.content"> <notAllowed/> </define> <define name="svg_SVG.altGlyph.content"> <zeroOrMore> <choice> <text/> <ref name="svg_SVG.altGlyph.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_altGlyph"> <element name="altGlyph"> <ref name="svg_attlist.altGlyph"/> <ref name="svg_SVG.altGlyph.content"/> </element> </define> <define name="svg_attlist.altGlyph" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.TextContent.attrib"/> <ref name="svg_SVG.Font.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.XLink.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinates.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinates.datatype"/> </attribute> </optional> <optional> <attribute name="dx"> <ref name="svg_Lengths.datatype"/> </attribute> </optional> <optional> <attribute name="dy"> <ref name="svg_Lengths.datatype"/> </attribute> </optional> <optional> <attribute name="glyphRef"/> </optional> <optional> <attribute name="format"/> </optional> <optional> <attribute name="rotate"> <ref name="svg_Numbers.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.altGlyphDef.extra.content"> <notAllowed/> </define> <define name="svg_SVG.altGlyphDef.content"> <choice> <choice> <oneOrMore> <ref name="svg_glyphRef"/> </oneOrMore> <oneOrMore> <ref name="svg_altGlyphItem"/> </oneOrMore> </choice> <ref name="svg_SVG.altGlyphDef.extra.content"/> </choice> </define> <define name="svg_altGlyphDef"> <element name="altGlyphDef"> <ref name="svg_attlist.altGlyphDef"/> <ref name="svg_SVG.altGlyphDef.content"/> </element> </define> <define name="svg_attlist.altGlyphDef" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> </define> <define name="svg_SVG.altGlyphItem.extra.content"> <notAllowed/> </define> <define name="svg_SVG.altGlyphItem.content"> <choice> <oneOrMore> <ref name="svg_glyphRef"/> </oneOrMore> <ref name="svg_SVG.altGlyphItem.extra.content"/> </choice> </define> <define name="svg_altGlyphItem"> <element name="altGlyphItem"> <ref name="svg_attlist.altGlyphItem"/> <ref name="svg_SVG.altGlyphItem.content"/> </element> </define> <define name="svg_attlist.altGlyphItem" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> </define> <define name="svg_SVG.glyphRef.content"> <empty/> </define> <define name="svg_glyphRef"> <element name="glyphRef"> <ref name="svg_attlist.glyphRef"/> <ref name="svg_SVG.glyphRef.content"/> </element> </define> <define name="svg_attlist.glyphRef" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Font.attrib"/> <ref name="svg_SVG.XLink.attrib"/> <optional> <attribute name="x"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="dx"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="dy"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="glyphRef"/> </optional> <optional> <attribute name="format"/> </optional> </define> <define name="svg_SVG.marker.extra.content"> <notAllowed/> </define> <define name="svg_SVG.marker.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Structure.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Style.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.Marker.class"/> <ref name="svg_SVG.ColorProfile.class"/> <ref name="svg_SVG.Gradient.class"/> <ref name="svg_SVG.Pattern.class"/> <ref name="svg_SVG.Clip.class"/> <ref name="svg_SVG.Mask.class"/> <ref name="svg_SVG.Filter.class"/> <ref name="svg_SVG.Cursor.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.View.class"/> <ref name="svg_SVG.Script.class"/> <ref name="svg_SVG.Font.class"/> <ref name="svg_SVG.marker.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_marker"> <element name="marker"> <ref name="svg_attlist.marker"/> <ref name="svg_SVG.marker.content"/> </element> </define> <define name="svg_attlist.marker" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="refX"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="refY"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="markerUnits"> <choice> <value>strokeWidth</value> <value>userSpaceOnUse</value> </choice> </attribute> </optional> <optional> <attribute name="markerWidth"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="markerHeight"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="orient"/> </optional> <optional> <attribute name="viewBox"> <ref name="svg_ViewBoxSpec.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="preserveAspectRatio" a:defaultValue="xMidYMid meet"> <ref name="svg_PreserveAspectRatioSpec.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.color-profile.extra.content"> <notAllowed/> </define> <define name="svg_SVG.color-profile.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.color-profile.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_color-profile"> <element name="color-profile"> <ref name="svg_attlist.color-profile"/> <ref name="svg_SVG.color-profile.content"/> </element> </define> <define name="svg_attlist.color-profile" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.XLink.attrib"/> <optional> <attribute name="local"/> </optional> <attribute name="name"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="rendering-intent" a:defaultValue="auto"> <choice> <value>auto</value> <value>perceptual</value> <value>relative-colorimetric</value> <value>saturation</value> <value>absolute-colorimetric</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.linearGradient.extra.content"> <notAllowed/> </define> <define name="svg_SVG.linearGradient.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_stop"/> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateTransform"/> <ref name="svg_SVG.linearGradient.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_linearGradient"> <element name="linearGradient"> <ref name="svg_attlist.linearGradient"/> <ref name="svg_SVG.linearGradient.content"/> </element> </define> <define name="svg_attlist.linearGradient" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Gradient.attrib"/> <ref name="svg_SVG.XLink.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x1"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y1"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="x2"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y2"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="gradientUnits"> <choice> <value>userSpaceOnUse</value> <value>objectBoundingBox</value> </choice> </attribute> </optional> <optional> <attribute name="gradientTransform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> <optional> <attribute name="spreadMethod"> <choice> <value>pad</value> <value>reflect</value> <value>repeat</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.radialGradient.extra.content"> <notAllowed/> </define> <define name="svg_SVG.radialGradient.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_stop"/> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateTransform"/> <ref name="svg_SVG.radialGradient.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_radialGradient"> <element name="radialGradient"> <ref name="svg_attlist.radialGradient"/> <ref name="svg_SVG.radialGradient.content"/> </element> </define> <define name="svg_attlist.radialGradient" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Gradient.attrib"/> <ref name="svg_SVG.XLink.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="cx"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="cy"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="r"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="fx"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="fy"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="gradientUnits"> <choice> <value>userSpaceOnUse</value> <value>objectBoundingBox</value> </choice> </attribute> </optional> <optional> <attribute name="gradientTransform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> <optional> <attribute name="spreadMethod"> <choice> <value>pad</value> <value>reflect</value> <value>repeat</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.stop.extra.content"> <notAllowed/> </define> <define name="svg_SVG.stop.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateColor"/> <ref name="svg_SVG.stop.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_stop"> <element name="stop"> <ref name="svg_attlist.stop"/> <ref name="svg_SVG.stop.content"/> </element> </define> <define name="svg_attlist.stop" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Gradient.attrib"/> <attribute name="offset"> <ref name="svg_NumberOrPercentage.datatype"/> </attribute> </define> <define name="svg_SVG.pattern.extra.content"> <notAllowed/> </define> <define name="svg_SVG.pattern.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Structure.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Style.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.Marker.class"/> <ref name="svg_SVG.ColorProfile.class"/> <ref name="svg_SVG.Gradient.class"/> <ref name="svg_SVG.Pattern.class"/> <ref name="svg_SVG.Clip.class"/> <ref name="svg_SVG.Mask.class"/> <ref name="svg_SVG.Filter.class"/> <ref name="svg_SVG.Cursor.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.View.class"/> <ref name="svg_SVG.Script.class"/> <ref name="svg_SVG.Font.class"/> <ref name="svg_SVG.pattern.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_svgpattern"> <element name="pattern"> <ref name="svg_attlist.pattern"/> <ref name="svg_SVG.pattern.content"/> </element> </define> <define name="svg_attlist.pattern" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.XLink.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="width"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="height"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="patternUnits"> <choice> <value>userSpaceOnUse</value> <value>objectBoundingBox</value> </choice> </attribute> </optional> <optional> <attribute name="patternContentUnits"> <choice> <value>userSpaceOnUse</value> <value>objectBoundingBox</value> </choice> </attribute> </optional> <optional> <attribute name="patternTransform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> <optional> <attribute name="viewBox"> <ref name="svg_ViewBoxSpec.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="preserveAspectRatio" a:defaultValue="xMidYMid meet"> <ref name="svg_PreserveAspectRatioSpec.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.clipPath.extra.content"> <notAllowed/> </define> <define name="svg_SVG.clipPath.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Use.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.clipPath.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_clipPath"> <element name="clipPath"> <ref name="svg_attlist.clipPath"/> <ref name="svg_SVG.clipPath.content"/> </element> </define> <define name="svg_attlist.clipPath" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Text.attrib"/> <ref name="svg_SVG.TextContent.attrib"/> <ref name="svg_SVG.Font.attrib"/> <ref name="svg_SVG.Paint.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.Opacity.attrib"/> <ref name="svg_SVG.Graphics.attrib"/> <ref name="svg_SVG.Clip.attrib"/> <ref name="svg_SVG.Mask.attrib"/> <ref name="svg_SVG.Filter.attrib"/> <ref name="svg_SVG.Cursor.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> <optional> <attribute name="clipPathUnits"> <choice> <value>userSpaceOnUse</value> <value>objectBoundingBox</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.mask.extra.content"> <notAllowed/> </define> <define name="svg_SVG.mask.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Structure.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Style.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.Marker.class"/> <ref name="svg_SVG.ColorProfile.class"/> <ref name="svg_SVG.Gradient.class"/> <ref name="svg_SVG.Pattern.class"/> <ref name="svg_SVG.Clip.class"/> <ref name="svg_SVG.Mask.class"/> <ref name="svg_SVG.Filter.class"/> <ref name="svg_SVG.Cursor.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.View.class"/> <ref name="svg_SVG.Script.class"/> <ref name="svg_SVG.Font.class"/> <ref name="svg_SVG.mask.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_mask"> <element name="mask"> <ref name="svg_attlist.mask"/> <ref name="svg_SVG.mask.content"/> </element> </define> <define name="svg_attlist.mask" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="width"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="height"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="maskUnits"> <choice> <value>userSpaceOnUse</value> <value>objectBoundingBox</value> </choice> </attribute> </optional> <optional> <attribute name="maskContentUnits"> <choice> <value>userSpaceOnUse</value> <value>objectBoundingBox</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.FilterPrimitive.extra.attrib"> <empty/> </define> <define name="svg_SVG.FilterPrimitive.attrib"> <optional> <attribute name="x"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="width"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="height"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="result"/> </optional> <ref name="svg_SVG.FilterPrimitive.extra.attrib"/> </define> <define name="svg_SVG.FilterPrimitiveWithIn.extra.attrib"> <empty/> </define> <define name="svg_SVG.FilterPrimitiveWithIn.attrib"> <ref name="svg_SVG.FilterPrimitive.attrib"/> <optional> <attribute name="in"/> </optional> <ref name="svg_SVG.FilterPrimitiveWithIn.extra.attrib"/> </define> <define name="svg_SVG.filter.extra.content"> <notAllowed/> </define> <define name="svg_SVG.filter.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.FilterPrimitive.class"/> <ref name="svg_SVG.filter.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_filter"> <element name="filter"> <ref name="svg_attlist.filter"/> <ref name="svg_SVG.filter.content"/> </element> </define> <define name="svg_attlist.filter" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.XLink.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="width"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="height"> <ref name="svg_Length.datatype"/> </attribute> </optional> <optional> <attribute name="filterRes"> <ref name="svg_NumberOptionalNumber.datatype"/> </attribute> </optional> <optional> <attribute name="filterUnits"> <choice> <value>userSpaceOnUse</value> <value>objectBoundingBox</value> </choice> </attribute> </optional> <optional> <attribute name="primitiveUnits"> <choice> <value>userSpaceOnUse</value> <value>objectBoundingBox</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.feBlend.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feBlend.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feBlend.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feBlend"> <element name="feBlend"> <ref name="svg_attlist.feBlend"/> <ref name="svg_SVG.feBlend.content"/> </element> </define> <define name="svg_attlist.feBlend" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <attribute name="in2"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="mode" a:defaultValue="normal"> <choice> <value>normal</value> <value>multiply</value> <value>screen</value> <value>darken</value> <value>lighten</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.feColorMatrix.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feColorMatrix.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feColorMatrix.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feColorMatrix"> <element name="feColorMatrix"> <ref name="svg_attlist.feColorMatrix"/> <ref name="svg_SVG.feColorMatrix.content"/> </element> </define> <define name="svg_attlist.feColorMatrix" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="type" a:defaultValue="matrix"> <choice> <value>matrix</value> <value>saturate</value> <value>hueRotate</value> <value>luminanceToAlpha</value> </choice> </attribute> </optional> <optional> <attribute name="values"/> </optional> </define> <define name="svg_SVG.feComponentTransfer.extra.content"> <empty/> </define> <define name="svg_SVG.feComponentTransfer.content"> <optional> <ref name="svg_feFuncR"/> </optional> <optional> <ref name="svg_feFuncG"/> </optional> <optional> <ref name="svg_feFuncB"/> </optional> <optional> <ref name="svg_feFuncA"/> </optional> <ref name="svg_SVG.feComponentTransfer.extra.content"/> </define> <define name="svg_feComponentTransfer"> <element name="feComponentTransfer"> <ref name="svg_attlist.feComponentTransfer"/> <ref name="svg_SVG.feComponentTransfer.content"/> </element> </define> <define name="svg_attlist.feComponentTransfer" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> </define> <define name="svg_SVG.feComposite.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feComposite.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feComposite.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feComposite"> <element name="feComposite"> <ref name="svg_attlist.feComposite"/> <ref name="svg_SVG.feComposite.content"/> </element> </define> <define name="svg_attlist.feComposite" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <attribute name="in2"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="operator" a:defaultValue="over"> <choice> <value>over</value> <value>in</value> <value>out</value> <value>atop</value> <value>xor</value> <value>arithmetic</value> </choice> </attribute> </optional> <optional> <attribute name="k1"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="k2"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="k3"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="k4"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feConvolveMatrix.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feConvolveMatrix.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feConvolveMatrix.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feConvolveMatrix"> <element name="feConvolveMatrix"> <ref name="svg_attlist.feConvolveMatrix"/> <ref name="svg_SVG.feConvolveMatrix.content"/> </element> </define> <define name="svg_attlist.feConvolveMatrix" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <attribute name="order"> <ref name="svg_NumberOptionalNumber.datatype"/> </attribute> <attribute name="kernelMatrix"/> <optional> <attribute name="divisor"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="bias"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="targetX"> <ref name="svg_Integer.datatype"/> </attribute> </optional> <optional> <attribute name="targetY"> <ref name="svg_Integer.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="edgeMode" a:defaultValue="duplicate"> <choice> <value>duplicate</value> <value>wrap</value> <value>none</value> </choice> </attribute> </optional> <optional> <attribute name="kernelUnitLength"> <ref name="svg_NumberOptionalNumber.datatype"/> </attribute> </optional> <optional> <attribute name="preserveAlpha"> <ref name="svg_Boolean.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feDiffuseLighting.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feDiffuseLighting.content"> <choice> <ref name="svg_feDistantLight"/> <ref name="svg_fePointLight"/> <ref name="svg_feSpotLight"/> </choice> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateColor"/> <ref name="svg_SVG.feDiffuseLighting.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feDiffuseLighting"> <element name="feDiffuseLighting"> <ref name="svg_attlist.feDiffuseLighting"/> <ref name="svg_SVG.feDiffuseLighting.content"/> </element> </define> <define name="svg_attlist.feDiffuseLighting" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <optional> <attribute name="lighting-color"> <ref name="svg_SVGColor.datatype"/> </attribute> </optional> <optional> <attribute name="surfaceScale"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="diffuseConstant"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="kernelUnitLength"> <ref name="svg_NumberOptionalNumber.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feDisplacementMap.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feDisplacementMap.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feDisplacementMap.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feDisplacementMap"> <element name="feDisplacementMap"> <ref name="svg_attlist.feDisplacementMap"/> <ref name="svg_SVG.feDisplacementMap.content"/> </element> </define> <define name="svg_attlist.feDisplacementMap" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <attribute name="in2"/> <optional> <attribute name="scale"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="xChannelSelector" a:defaultValue="A"> <choice> <value>R</value> <value>G</value> <value>B</value> <value>A</value> </choice> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="yChannelSelector" a:defaultValue="A"> <choice> <value>R</value> <value>G</value> <value>B</value> <value>A</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.feFlood.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feFlood.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateColor"/> <ref name="svg_SVG.feFlood.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feFlood"> <element name="feFlood"> <ref name="svg_attlist.feFlood"/> <ref name="svg_SVG.feFlood.content"/> </element> </define> <define name="svg_attlist.feFlood" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <optional> <attribute name="flood-color"> <ref name="svg_SVGColor.datatype"/> </attribute> </optional> <optional> <attribute name="flood-opacity"> <ref name="svg_OpacityValue.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feGaussianBlur.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feGaussianBlur.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feGaussianBlur.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feGaussianBlur"> <element name="feGaussianBlur"> <ref name="svg_attlist.feGaussianBlur"/> <ref name="svg_SVG.feGaussianBlur.content"/> </element> </define> <define name="svg_attlist.feGaussianBlur" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <optional> <attribute name="stdDeviation"> <ref name="svg_NumberOptionalNumber.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feImage.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feImage.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateTransform"/> <ref name="svg_SVG.feImage.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feImage"> <element name="feImage"> <ref name="svg_attlist.feImage"/> <ref name="svg_SVG.feImage.content"/> </element> </define> <define name="svg_attlist.feImage" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.FilterPrimitive.attrib"/> <ref name="svg_SVG.XLinkEmbed.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="preserveAspectRatio" a:defaultValue="xMidYMid meet"> <ref name="svg_PreserveAspectRatioSpec.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feMerge.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feMerge.content"> <zeroOrMore> <choice> <ref name="svg_feMergeNode"/> <ref name="svg_SVG.feMerge.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feMerge"> <element name="feMerge"> <ref name="svg_attlist.feMerge"/> <ref name="svg_SVG.feMerge.content"/> </element> </define> <define name="svg_attlist.feMerge" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitive.attrib"/> </define> <define name="svg_SVG.feMergeNode.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feMergeNode.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feMergeNode.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feMergeNode"> <element name="feMergeNode"> <ref name="svg_attlist.feMergeNode"/> <ref name="svg_SVG.feMergeNode.content"/> </element> </define> <define name="svg_attlist.feMergeNode" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <optional> <attribute name="in"/> </optional> </define> <define name="svg_SVG.feMorphology.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feMorphology.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feMorphology.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feMorphology"> <element name="feMorphology"> <ref name="svg_attlist.feMorphology"/> <ref name="svg_SVG.feMorphology.content"/> </element> </define> <define name="svg_attlist.feMorphology" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="operator" a:defaultValue="erode"> <choice> <value>erode</value> <value>dilate</value> </choice> </attribute> </optional> <optional> <attribute name="radius"> <ref name="svg_NumberOptionalNumber.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feOffset.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feOffset.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feOffset.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feOffset"> <element name="feOffset"> <ref name="svg_attlist.feOffset"/> <ref name="svg_SVG.feOffset.content"/> </element> </define> <define name="svg_attlist.feOffset" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <optional> <attribute name="dx"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="dy"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feSpecularLighting.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feSpecularLighting.content"> <choice> <ref name="svg_feDistantLight"/> <ref name="svg_fePointLight"/> <ref name="svg_feSpotLight"/> </choice> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_animateColor"/> <ref name="svg_SVG.feSpecularLighting.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feSpecularLighting"> <element name="feSpecularLighting"> <ref name="svg_attlist.feSpecularLighting"/> <ref name="svg_SVG.feSpecularLighting.content"/> </element> </define> <define name="svg_attlist.feSpecularLighting" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Color.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> <optional> <attribute name="lighting-color"> <ref name="svg_SVGColor.datatype"/> </attribute> </optional> <optional> <attribute name="surfaceScale"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="specularConstant"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="specularExponent"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="kernelUnitLength"> <ref name="svg_NumberOptionalNumber.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feTile.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feTile.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feTile.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feTile"> <element name="feTile"> <ref name="svg_attlist.feTile"/> <ref name="svg_SVG.feTile.content"/> </element> </define> <define name="svg_attlist.feTile" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitiveWithIn.attrib"/> </define> <define name="svg_SVG.feTurbulence.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feTurbulence.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feTurbulence.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feTurbulence"> <element name="feTurbulence"> <ref name="svg_attlist.feTurbulence"/> <ref name="svg_SVG.feTurbulence.content"/> </element> </define> <define name="svg_attlist.feTurbulence" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.FilterColor.attrib"/> <ref name="svg_SVG.FilterPrimitive.attrib"/> <optional> <attribute name="baseFrequency"> <ref name="svg_NumberOptionalNumber.datatype"/> </attribute> </optional> <optional> <attribute name="numOctaves"> <ref name="svg_Integer.datatype"/> </attribute> </optional> <optional> <attribute name="seed"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="stitchTiles" a:defaultValue="noStitch"> <choice> <value>stitch</value> <value>noStitch</value> </choice> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="type" a:defaultValue="turbulence"> <choice> <value>fractalNoise</value> <value>turbulence</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.feDistantLight.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feDistantLight.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feDistantLight.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feDistantLight"> <element name="feDistantLight"> <ref name="svg_attlist.feDistantLight"/> <ref name="svg_SVG.feDistantLight.content"/> </element> </define> <define name="svg_attlist.feDistantLight" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <optional> <attribute name="azimuth"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="elevation"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.fePointLight.extra.content"> <notAllowed/> </define> <define name="svg_SVG.fePointLight.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.fePointLight.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_fePointLight"> <element name="fePointLight"> <ref name="svg_attlist.fePointLight"/> <ref name="svg_SVG.fePointLight.content"/> </element> </define> <define name="svg_attlist.fePointLight" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <optional> <attribute name="x"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="z"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feSpotLight.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feSpotLight.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feSpotLight.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feSpotLight"> <element name="feSpotLight"> <ref name="svg_attlist.feSpotLight"/> <ref name="svg_SVG.feSpotLight.content"/> </element> </define> <define name="svg_attlist.feSpotLight" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <optional> <attribute name="x"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="z"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="pointsAtX"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="pointsAtY"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="pointsAtZ"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="specularExponent"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="limitingConeAngle"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feFuncR.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feFuncR.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feFuncR.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feFuncR"> <element name="feFuncR"> <ref name="svg_attlist.feFuncR"/> <ref name="svg_SVG.feFuncR.content"/> </element> </define> <define name="svg_attlist.feFuncR" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <attribute name="type"> <choice> <value>identity</value> <value>table</value> <value>discrete</value> <value>linear</value> <value>gamma</value> </choice> </attribute> <optional> <attribute name="tableValues"/> </optional> <optional> <attribute name="slope"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="intercept"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="amplitude"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="exponent"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="offset"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feFuncG.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feFuncG.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feFuncG.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feFuncG"> <element name="feFuncG"> <ref name="svg_attlist.feFuncG"/> <ref name="svg_SVG.feFuncG.content"/> </element> </define> <define name="svg_attlist.feFuncG" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <attribute name="type"> <choice> <value>identity</value> <value>table</value> <value>discrete</value> <value>linear</value> <value>gamma</value> </choice> </attribute> <optional> <attribute name="tableValues"/> </optional> <optional> <attribute name="slope"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="intercept"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="amplitude"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="exponent"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="offset"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feFuncB.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feFuncB.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feFuncB.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feFuncB"> <element name="feFuncB"> <ref name="svg_attlist.feFuncB"/> <ref name="svg_SVG.feFuncB.content"/> </element> </define> <define name="svg_attlist.feFuncB" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <attribute name="type"> <choice> <value>identity</value> <value>table</value> <value>discrete</value> <value>linear</value> <value>gamma</value> </choice> </attribute> <optional> <attribute name="tableValues"/> </optional> <optional> <attribute name="slope"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="intercept"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="amplitude"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="exponent"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="offset"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.feFuncA.extra.content"> <notAllowed/> </define> <define name="svg_SVG.feFuncA.content"> <zeroOrMore> <choice> <ref name="svg_animate"/> <ref name="svg_set"/> <ref name="svg_SVG.feFuncA.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_feFuncA"> <element name="feFuncA"> <ref name="svg_attlist.feFuncA"/> <ref name="svg_SVG.feFuncA.content"/> </element> </define> <define name="svg_attlist.feFuncA" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <attribute name="type"> <choice> <value>identity</value> <value>table</value> <value>discrete</value> <value>linear</value> <value>gamma</value> </choice> </attribute> <optional> <attribute name="tableValues"/> </optional> <optional> <attribute name="slope"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="intercept"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="amplitude"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="exponent"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="offset"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.cursor.extra.content"> <notAllowed/> </define> <define name="svg_SVG.cursor.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.cursor.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_cursor"> <element name="cursor"> <ref name="svg_attlist.cursor"/> <ref name="svg_SVG.cursor.content"/> </element> </define> <define name="svg_attlist.cursor" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.XLinkRequired.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> </define> <define name="svg_LinkTarget.datatype"> <data type="NMTOKEN"/> </define> <define name="svg_SVG.a.extra.content"> <notAllowed/> </define> <define name="svg_SVG.a.content"> <zeroOrMore> <choice> <text/> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Structure.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Style.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.Marker.class"/> <ref name="svg_SVG.ColorProfile.class"/> <ref name="svg_SVG.Gradient.class"/> <ref name="svg_SVG.Pattern.class"/> <ref name="svg_SVG.Clip.class"/> <ref name="svg_SVG.Mask.class"/> <ref name="svg_SVG.Filter.class"/> <ref name="svg_SVG.Cursor.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.View.class"/> <ref name="svg_SVG.Script.class"/> <ref name="svg_SVG.Font.class"/> <ref name="svg_SVG.a.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_a"> <element name="a"> <ref name="svg_attlist.a"/> <ref name="svg_SVG.a.content"/> </element> </define> <define name="svg_attlist.a" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.XLinkReplace.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> <optional> <attribute name="target"> <ref name="svg_LinkTarget.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.view.extra.content"> <notAllowed/> </define> <define name="svg_SVG.view.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.view.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_view"> <element name="view"> <ref name="svg_attlist.view"/> <ref name="svg_SVG.view.content"/> </element> </define> <define name="svg_attlist.view" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="viewBox"> <ref name="svg_ViewBoxSpec.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="preserveAspectRatio" a:defaultValue="xMidYMid meet"> <ref name="svg_PreserveAspectRatioSpec.datatype"/> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="zoomAndPan" a:defaultValue="magnify"> <choice> <value>disable</value> <value>magnify</value> </choice> </attribute> </optional> <optional> <attribute name="viewTarget"/> </optional> </define> <define name="svg_SVG.script.extra.content"> <notAllowed/> </define> <define name="svg_SVG.script.content"> <zeroOrMore> <choice> <text/> <ref name="svg_SVG.script.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_script"> <element name="script"> <ref name="svg_attlist.script"/> <ref name="svg_SVG.script.content"/> </element> </define> <define name="svg_attlist.script" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.XLink.attrib"/> <ref name="svg_SVG.External.attrib"/> <attribute name="type"> <ref name="svg_ContentType.datatype"/> </attribute> </define> <define name="svg_SVG.Animation.extra.attrib"> <empty/> </define> <define name="svg_SVG.Animation.attrib"> <ref name="svg_SVG.XLink.attrib"/> <ref name="svg_SVG.Animation.extra.attrib"/> </define> <define name="svg_SVG.AnimationAttribute.extra.attrib"> <empty/> </define> <define name="svg_SVG.AnimationAttribute.attrib"> <attribute name="attributeName"/> <optional> <attribute name="attributeType"/> </optional> <ref name="svg_SVG.AnimationAttribute.extra.attrib"/> </define> <define name="svg_SVG.AnimationTiming.extra.attrib"> <empty/> </define> <define name="svg_SVG.AnimationTiming.attrib"> <optional> <attribute name="begin"/> </optional> <optional> <attribute name="dur"/> </optional> <optional> <attribute name="end"/> </optional> <optional> <attribute name="min"/> </optional> <optional> <attribute name="max"/> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="restart" a:defaultValue="always"> <choice> <value>always</value> <value>never</value> <value>whenNotActive</value> </choice> </attribute> </optional> <optional> <attribute name="repeatCount"/> </optional> <optional> <attribute name="repeatDur"/> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="fill" a:defaultValue="remove"> <choice> <value>remove</value> <value>freeze</value> </choice> </attribute> </optional> <ref name="svg_SVG.AnimationTiming.extra.attrib"/> </define> <define name="svg_SVG.AnimationValue.extra.attrib"> <empty/> </define> <define name="svg_SVG.AnimationValue.attrib"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="calcMode" a:defaultValue="linear"> <choice> <value>discrete</value> <value>linear</value> <value>paced</value> <value>spline</value> </choice> </attribute> </optional> <optional> <attribute name="values"/> </optional> <optional> <attribute name="keyTimes"/> </optional> <optional> <attribute name="keySplines"/> </optional> <optional> <attribute name="from"/> </optional> <optional> <attribute name="to"/> </optional> <optional> <attribute name="by"/> </optional> <ref name="svg_SVG.AnimationValue.extra.attrib"/> </define> <define name="svg_SVG.AnimationAddtion.extra.attrib"> <empty/> </define> <define name="svg_SVG.AnimationAddtion.attrib"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="additive" a:defaultValue="replace"> <choice> <value>replace</value> <value>sum</value> </choice> </attribute> </optional> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="accumulate" a:defaultValue="none"> <choice> <value>none</value> <value>sum</value> </choice> </attribute> </optional> <ref name="svg_SVG.AnimationAddtion.extra.attrib"/> </define> <define name="svg_SVG.animate.extra.content"> <notAllowed/> </define> <define name="svg_SVG.animate.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.animate.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_animate"> <element name="animate"> <ref name="svg_attlist.animate"/> <ref name="svg_SVG.animate.content"/> </element> </define> <define name="svg_attlist.animate" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.AnimationEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <ref name="svg_SVG.Animation.attrib"/> <ref name="svg_SVG.AnimationAttribute.attrib"/> <ref name="svg_SVG.AnimationTiming.attrib"/> <ref name="svg_SVG.AnimationValue.attrib"/> <ref name="svg_SVG.AnimationAddtion.attrib"/> </define> <define name="svg_SVG.set.extra.content"> <notAllowed/> </define> <define name="svg_SVG.set.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.set.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_set"> <element name="set"> <ref name="svg_attlist.set"/> <ref name="svg_SVG.set.content"/> </element> </define> <define name="svg_attlist.set" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.AnimationEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <ref name="svg_SVG.Animation.attrib"/> <ref name="svg_SVG.AnimationAttribute.attrib"/> <ref name="svg_SVG.AnimationTiming.attrib"/> <optional> <attribute name="to"/> </optional> </define> <define name="svg_SVG.animateMotion.extra.content"> <empty/> </define> <define name="svg_SVG.animateMotion.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <optional> <ref name="svg_mpath"/> </optional> <ref name="svg_SVG.animateMotion.extra.content"/> </define> <define name="svg_animateMotion"> <element name="animateMotion"> <ref name="svg_attlist.animateMotion"/> <ref name="svg_SVG.animateMotion.content"/> </element> </define> <define name="svg_attlist.animateMotion" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.AnimationEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <ref name="svg_SVG.Animation.attrib"/> <ref name="svg_SVG.AnimationTiming.attrib"/> <ref name="svg_SVG.AnimationAddtion.attrib"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="calcMode" a:defaultValue="paced"> <choice> <value>discrete</value> <value>linear</value> <value>paced</value> <value>spline</value> </choice> </attribute> </optional> <optional> <attribute name="values"/> </optional> <optional> <attribute name="keyTimes"/> </optional> <optional> <attribute name="keySplines"/> </optional> <optional> <attribute name="from"/> </optional> <optional> <attribute name="to"/> </optional> <optional> <attribute name="by"/> </optional> <optional> <attribute name="path"/> </optional> <optional> <attribute name="keyPoints"/> </optional> <optional> <attribute name="rotate"/> </optional> <optional> <attribute name="origin"/> </optional> </define> <define name="svg_SVG.animateColor.extra.content"> <notAllowed/> </define> <define name="svg_SVG.animateColor.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.animateColor.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_animateColor"> <element name="animateColor"> <ref name="svg_attlist.animateColor"/> <ref name="svg_SVG.animateColor.content"/> </element> </define> <define name="svg_attlist.animateColor" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.AnimationEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <ref name="svg_SVG.Animation.attrib"/> <ref name="svg_SVG.AnimationAttribute.attrib"/> <ref name="svg_SVG.AnimationTiming.attrib"/> <ref name="svg_SVG.AnimationValue.attrib"/> <ref name="svg_SVG.AnimationAddtion.attrib"/> </define> <define name="svg_SVG.animateTransform.extra.content"> <notAllowed/> </define> <define name="svg_SVG.animateTransform.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.animateTransform.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_animateTransform"> <element name="animateTransform"> <ref name="svg_attlist.animateTransform"/> <ref name="svg_SVG.animateTransform.content"/> </element> </define> <define name="svg_attlist.animateTransform" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.AnimationEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <ref name="svg_SVG.Animation.attrib"/> <ref name="svg_SVG.AnimationAttribute.attrib"/> <ref name="svg_SVG.AnimationTiming.attrib"/> <ref name="svg_SVG.AnimationValue.attrib"/> <ref name="svg_SVG.AnimationAddtion.attrib"/> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="type" a:defaultValue="translate"> <choice> <value>translate</value> <value>scale</value> <value>rotate</value> <value>skewX</value> <value>skewY</value> </choice> </attribute> </optional> </define> <define name="svg_SVG.mpath.extra.content"> <notAllowed/> </define> <define name="svg_SVG.mpath.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.mpath.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_mpath"> <element name="mpath"> <ref name="svg_attlist.mpath"/> <ref name="svg_SVG.mpath.content"/> </element> </define> <define name="svg_attlist.mpath" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.XLinkRequired.attrib"/> <ref name="svg_SVG.External.attrib"/> </define> <define name="svg_SVG.font.extra.content"> <notAllowed/> </define> <define name="svg_SVG.font.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <ref name="svg_font-face"/> <ref name="svg_missing-glyph"/> <zeroOrMore> <choice> <ref name="svg_glyph"/> <ref name="svg_hkern"/> <ref name="svg_vkern"/> <ref name="svg_SVG.font.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_font"> <element name="font"> <ref name="svg_attlist.font"/> <ref name="svg_SVG.font.content"/> </element> </define> <define name="svg_attlist.font" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="horiz-origin-x"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="horiz-origin-y"> <ref name="svg_Number.datatype"/> </attribute> </optional> <attribute name="horiz-adv-x"> <ref name="svg_Number.datatype"/> </attribute> <optional> <attribute name="vert-origin-x"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="vert-origin-y"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="vert-adv-y"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.font-face.extra.content"> <empty/> </define> <define name="svg_SVG.font-face.content"> <zeroOrMore> <ref name="svg_SVG.Description.class"/> </zeroOrMore> <optional> <ref name="svg_font-face-src"/> </optional> <optional> <ref name="svg_definition-src"/> </optional> <ref name="svg_SVG.font-face.extra.content"/> </define> <define name="svg_font-face"> <element name="font-face"> <ref name="svg_attlist.font-face"/> <ref name="svg_SVG.font-face.content"/> </element> </define> <define name="svg_attlist.font-face" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <optional> <attribute name="font-family"/> </optional> <optional> <attribute name="font-style"/> </optional> <optional> <attribute name="font-variant"/> </optional> <optional> <attribute name="font-weight"/> </optional> <optional> <attribute name="font-stretch"/> </optional> <optional> <attribute name="font-size"/> </optional> <optional> <attribute name="unicode-range"/> </optional> <optional> <attribute name="units-per-em"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="panose-1"/> </optional> <optional> <attribute name="stemv"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="stemh"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="slope"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="cap-height"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="x-height"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="accent-height"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="ascent"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="descent"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="widths"/> </optional> <optional> <attribute name="bbox"/> </optional> <optional> <attribute name="ideographic"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="alphabetic"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="mathematical"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="hanging"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="v-ideographic"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="v-alphabetic"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="v-mathematical"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="v-hanging"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="underline-position"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="underline-thickness"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="strikethrough-position"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="strikethrough-thickness"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="overline-position"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="overline-thickness"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.glyph.extra.content"> <notAllowed/> </define> <define name="svg_SVG.glyph.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Structure.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Style.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.Marker.class"/> <ref name="svg_SVG.ColorProfile.class"/> <ref name="svg_SVG.Gradient.class"/> <ref name="svg_SVG.Pattern.class"/> <ref name="svg_SVG.Clip.class"/> <ref name="svg_SVG.Mask.class"/> <ref name="svg_SVG.Filter.class"/> <ref name="svg_SVG.Cursor.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.View.class"/> <ref name="svg_SVG.Script.class"/> <ref name="svg_SVG.Font.class"/> <ref name="svg_SVG.glyph.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_glyph"> <element name="glyph"> <ref name="svg_attlist.glyph"/> <ref name="svg_SVG.glyph.content"/> </element> </define> <define name="svg_attlist.glyph" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <optional> <attribute name="unicode"/> </optional> <optional> <attribute name="glyph-name"/> </optional> <optional> <attribute name="d"> <ref name="svg_PathData.datatype"/> </attribute> </optional> <optional> <attribute name="orientation"/> </optional> <optional> <attribute name="arabic-form"/> </optional> <optional> <attribute name="lang"> <ref name="svg_LanguageCodes.datatype"/> </attribute> </optional> <optional> <attribute name="horiz-adv-x"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="vert-origin-x"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="vert-origin-y"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="vert-adv-y"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.missing-glyph.extra.content"> <notAllowed/> </define> <define name="svg_SVG.missing-glyph.content"> <zeroOrMore> <choice> <ref name="svg_SVG.Description.class"/> <ref name="svg_SVG.Animation.class"/> <ref name="svg_SVG.Structure.class"/> <ref name="svg_SVG.Conditional.class"/> <ref name="svg_SVG.Image.class"/> <ref name="svg_SVG.Style.class"/> <ref name="svg_SVG.Shape.class"/> <ref name="svg_SVG.Text.class"/> <ref name="svg_SVG.Marker.class"/> <ref name="svg_SVG.ColorProfile.class"/> <ref name="svg_SVG.Gradient.class"/> <ref name="svg_SVG.Pattern.class"/> <ref name="svg_SVG.Clip.class"/> <ref name="svg_SVG.Mask.class"/> <ref name="svg_SVG.Filter.class"/> <ref name="svg_SVG.Cursor.class"/> <ref name="svg_SVG.Hyperlink.class"/> <ref name="svg_SVG.View.class"/> <ref name="svg_SVG.Script.class"/> <ref name="svg_SVG.Font.class"/> <ref name="svg_SVG.missing-glyph.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_missing-glyph"> <element name="missing-glyph"> <ref name="svg_attlist.missing-glyph"/> <ref name="svg_SVG.missing-glyph.content"/> </element> </define> <define name="svg_attlist.missing-glyph" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <optional> <attribute name="d"> <ref name="svg_PathData.datatype"/> </attribute> </optional> <optional> <attribute name="horiz-adv-x"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="vert-origin-x"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="vert-origin-y"> <ref name="svg_Number.datatype"/> </attribute> </optional> <optional> <attribute name="vert-adv-y"> <ref name="svg_Number.datatype"/> </attribute> </optional> </define> <define name="svg_SVG.hkern.content"> <empty/> </define> <define name="svg_hkern"> <element name="hkern"> <ref name="svg_attlist.hkern"/> <ref name="svg_SVG.hkern.content"/> </element> </define> <define name="svg_attlist.hkern" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <optional> <attribute name="u1"/> </optional> <optional> <attribute name="g1"/> </optional> <optional> <attribute name="u2"/> </optional> <optional> <attribute name="g2"/> </optional> <attribute name="k"> <ref name="svg_Number.datatype"/> </attribute> </define> <define name="svg_SVG.vkern.content"> <empty/> </define> <define name="svg_vkern"> <element name="vkern"> <ref name="svg_attlist.vkern"/> <ref name="svg_SVG.vkern.content"/> </element> </define> <define name="svg_attlist.vkern" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <optional> <attribute name="u1"/> </optional> <optional> <attribute name="g1"/> </optional> <optional> <attribute name="u2"/> </optional> <optional> <attribute name="g2"/> </optional> <attribute name="k"> <ref name="svg_Number.datatype"/> </attribute> </define> <define name="svg_SVG.font-face-src.extra.content"> <notAllowed/> </define> <define name="svg_SVG.font-face-src.content"> <oneOrMore> <choice> <ref name="svg_font-face-uri"/> <ref name="svg_font-face-name"/> <ref name="svg_SVG.font-face-src.extra.content"/> </choice> </oneOrMore> </define> <define name="svg_font-face-src"> <element name="font-face-src"> <ref name="svg_attlist.font-face-src"/> <ref name="svg_SVG.font-face-src.content"/> </element> </define> <define name="svg_attlist.font-face-src" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> </define> <define name="svg_SVG.font-face-uri.extra.content"> <notAllowed/> </define> <define name="svg_SVG.font-face-uri.content"> <zeroOrMore> <choice> <ref name="svg_font-face-format"/> <ref name="svg_SVG.font-face-uri.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_font-face-uri"> <element name="font-face-uri"> <ref name="svg_attlist.font-face-uri"/> <ref name="svg_SVG.font-face-uri.content"/> </element> </define> <define name="svg_attlist.font-face-uri" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.XLinkRequired.attrib"/> </define> <define name="svg_SVG.font-face-format.content"> <empty/> </define> <define name="svg_font-face-format"> <element name="font-face-format"> <ref name="svg_attlist.font-face-format"/> <ref name="svg_SVG.font-face-format.content"/> </element> </define> <define name="svg_attlist.font-face-format" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <optional> <attribute name="string"/> </optional> </define> <define name="svg_SVG.font-face-name.content"> <empty/> </define> <define name="svg_font-face-name"> <element name="font-face-name"> <ref name="svg_attlist.font-face-name"/> <ref name="svg_SVG.font-face-name.content"/> </element> </define> <define name="svg_attlist.font-face-name" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <optional> <attribute name="name"/> </optional> </define> <define name="svg_SVG.definition-src.content"> <empty/> </define> <define name="svg_definition-src"> <element name="definition-src"> <ref name="svg_attlist.definition-src"/> <ref name="svg_SVG.definition-src.content"/> </element> </define> <define name="svg_attlist.definition-src" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.XLinkRequired.attrib"/> </define> <define name="svg_SVG.foreignObject.extra.content"> <notAllowed/> </define> <define name="svg_SVG.foreignObject.content"> <zeroOrMore> <choice> <text/> <ref name="svg_SVG.foreignObject.extra.content"/> </choice> </zeroOrMore> </define> <define name="svg_foreignObject"> <element name="foreignObject"> <ref name="svg_attlist.foreignObject"/> <ref name="svg_SVG.foreignObject.content"/> </element> </define> <define name="svg_attlist.foreignObject" combine="interleave"> <ref name="svg_SVG.Core.attrib"/> <ref name="svg_SVG.Conditional.attrib"/> <ref name="svg_SVG.Style.attrib"/> <ref name="svg_SVG.Presentation.attrib"/> <ref name="svg_SVG.GraphicalEvents.attrib"/> <ref name="svg_SVG.External.attrib"/> <optional> <attribute name="x"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <optional> <attribute name="y"> <ref name="svg_Coordinate.datatype"/> </attribute> </optional> <attribute name="width"> <ref name="svg_Length.datatype"/> </attribute> <attribute name="height"> <ref name="svg_Length.datatype"/> </attribute> <optional> <attribute name="transform"> <ref name="svg_TransformList.datatype"/> </attribute> </optional> </define> <define name="mei_model.graphicLike" combine="choice"> <ref name="svg_svg"/> </define> </div> <define name="mei_data.ACCIDENTAL.WRITTEN"> <choice> <ref name="mei_data.ACCIDENTAL.WRITTEN.basic"/> <ref name="mei_data.ACCIDENTAL.WRITTEN.extended"/> <ref name="mei_data.ACCIDENTAL.aeu"/> <ref name="mei_data.ACCIDENTAL.persian"/> </choice> </define> <define name="mei_data.ACCIDENTAL.WRITTEN.basic"> <choice> <value>s</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sharp.</a:documentation> <value>f</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flat.</a:documentation> <value>ss</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double sharp (written as 2 sharps).</a:documentation> <value>x</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double sharp (written using croix).</a:documentation> <value>ff</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double flat.</a:documentation> <value>xs</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Triple sharp (written as a croix followed by a sharp).</a:documentation> <value>sx</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Triple sharp (written as a sharp followed by a croix).</a:documentation> <value>ts</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Triple sharp (written as 3 sharps).</a:documentation> <value>tf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Triple flat.</a:documentation> <value>n</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Natural.</a:documentation> <value>nf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Natural + flat; used to cancel preceding double flat.</a:documentation> <value>ns</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Natural + sharp; used to cancel preceding double sharp.</a:documentation> </choice> </define> <define name="mei_data.ACCIDENTAL.WRITTEN.extended"> <choice> <value>su</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sharp note raised by quarter tone (sharp modified by arrow).</a:documentation> <value>sd</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sharp note lowered by quarter tone (sharp modified by arrow).</a:documentation> <value>fu</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flat note raised by quarter tone (flat modified by arrow).</a:documentation> <value>fd</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flat note lowered by quarter tone (flat modified by arrow).</a:documentation> <value>nu</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Natural note raised by quarter tone (natural modified by arrow).</a:documentation> <value>nd</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Natural note lowered by quarter tone (natural modified by arrow).</a:documentation> <value>xu</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double sharp note raised by quarter tone (double sharp modified by arrow).</a:documentation> <value>xd</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double sharp note lowered by quarter tone (double sharp modified by arrow).</a:documentation> <value>ffu</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double flat note raised by quarter tone (double flat modified by arrow).</a:documentation> <value>ffd</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double flat note lowered by quarter tone (double flat modified by arrow).</a:documentation> <value>1qf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">1/4-tone flat accidental.</a:documentation> <value>3qf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">3/4-tone flat accidental.</a:documentation> <value>1qs</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">1/4-tone sharp accidental.</a:documentation> <value>3qs</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">3/4-tone sharp accidental.</a:documentation> </choice> </define> <define name="mei_data.ACCIDENTAL.aeu"> <choice> <value>bms</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Büyük mücenneb (sharp).</a:documentation> <value>kms</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Küçük mücenneb (sharp).</a:documentation> <value>bs</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bakiye (sharp).</a:documentation> <value>ks</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Koma (sharp).</a:documentation> <value>kf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Koma (flat).</a:documentation> <value>bf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bakiye (flat).</a:documentation> <value>kmf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Küçük mücenneb (flat).</a:documentation> <value>bmf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Büyük mücenneb (flat).</a:documentation> </choice> </define> <define name="mei_data.ACCIDENTAL.persian"> <choice> <value>koron</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Koron (quarter tone flat).</a:documentation> <value>sori</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sori (quarter tone sharp).</a:documentation> </choice> </define> <define name="mei_data.ACCIDENTAL.GESTURAL"> <choice> <ref name="mei_data.ACCIDENTAL.GESTURAL.basic"/> <ref name="mei_data.ACCIDENTAL.GESTURAL.extended"/> <ref name="mei_data.ACCIDENTAL.aeu"/> <ref name="mei_data.ACCIDENTAL.persian"/> </choice> </define> <define name="mei_data.ACCIDENTAL.GESTURAL.basic"> <choice> <value>s</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sharp.</a:documentation> <value>f</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flat.</a:documentation> <value>ss</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double sharp.</a:documentation> <value>ff</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double flat.</a:documentation> <value>ts</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Triple sharp.</a:documentation> <value>tf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Triple flat.</a:documentation> <value>n</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Natural.</a:documentation> </choice> </define> <define name="mei_data.ACCIDENTAL.GESTURAL.extended"> <choice> <value>su</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Three quarter-tones sharp.</a:documentation> <value>sd</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Quarter-tone sharp.</a:documentation> <value>fu</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Quarter-tone flat.</a:documentation> <value>fd</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Three quarter-tones flat.</a:documentation> <value>xu</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Five quarter-tones sharp.</a:documentation> <value>ffd</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Five quarter-tones flat.</a:documentation> </choice> </define> <define name="mei_data.ARTICULATION"> <choice> <value>acc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Accent (Unicode 1D17B).</a:documentation> <value>acc-inv</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Inverted accent.</a:documentation> <value>acc-long</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Long accent, used to indicate an elongated accent mark. It is the responsibility of the encoder to distinguish between accents and hairpins.</a:documentation> <value>acc-soft</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Soft accent, see SMuFL Articulation supplement (U+ED40–U+ED4F).</a:documentation> <value>stacc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Staccato (Unicode 1D17C).</a:documentation> <value>ten</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tenuto (Unicode 1D17D).</a:documentation> <value>stacciss</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Staccatissimo (Unicode 1D17E).</a:documentation> <value>marc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marcato (Unicode 1D17F).</a:documentation> <value>spicc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Spiccato.</a:documentation> <value>stress</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stress (Unicode 00B4).</a:documentation> <value>unstress</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unstress (Unicode 02D8).</a:documentation> <value>doit</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Main note followed by short slide to higher, indeterminate pitch (Unicode 1D185).</a:documentation> <value>scoop</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Main note preceded by short slide from lower, indeterminate pitch (Unicode 1D186).</a:documentation> <value>rip</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Main note preceded by long slide from lower, often indeterminate pitch; also known as "squeeze".</a:documentation> <value>plop</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Main note preceded by "slide" from higher, indeterminate pitch.</a:documentation> <value>fall</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Main note followed by short "slide" to lower, indeterminate pitch.</a:documentation> <value>longfall</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Main note followed by long "slide" to lower, indeterminate pitch.</a:documentation> <value>bend</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">"lip slur" to lower pitch, then return to written pitch.</a:documentation> <value>flip</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Main note followed by quick upward rise, then descent in pitch (Unicode 1D187).</a:documentation> <value>smear</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Unicode 1D188).</a:documentation> <value>shake</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Alternation between written pitch and next highest overtone (brass instruments) or note minor third higher (woodwinds).</a:documentation> <value>dnbow</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Down bow (Unicode 1D1AA).</a:documentation> <value>upbow</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Up bow (Unicode 1D1AB).</a:documentation> <value>harm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Harmonic (Unicode 1D1AC).</a:documentation> <value>snap</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Snap pizzicato (Unicode 1D1AD).</a:documentation> <value>fingernail</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Fingernail (Unicode 1D1B3).</a:documentation> <value>damp</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stop harp string from sounding (Unicode 1D1B4).</a:documentation> <value>dampall</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stop all harp strings from sounding (Unicode 1D1B5).</a:documentation> <value>open</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Full (as opposed to stopped) tone.</a:documentation> <value>stop</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">"muffled" tone.</a:documentation> <value>dbltongue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double tongue (Unicode 1D18A).</a:documentation> <value>trpltongue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Triple tongue (Unicode 1D18B).</a:documentation> <value>heel</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Use heel (organ pedal).</a:documentation> <value>toe</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Use toe (organ pedal).</a:documentation> <value>tap</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Percussive effect on guitar string(s).</a:documentation> <value>lhpizz</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Left-hand pizzicato.</a:documentation> <value>dot</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Uninterpreted dot.</a:documentation> <value>stroke</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Uninterpreted stroke.</a:documentation> </choice> </define> <define name="mei_data.AUGMENTDOT"> <data type="nonNegativeInteger"> <param name="maxInclusive">4</param> </data> </define> <define name="mei_data.BARMETHOD"> <choice> <value>mensur</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Between staves only.</a:documentation> <value>staff</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Between and across staves as necessary.</a:documentation> <value>takt</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Short bar line through a subset of staff lines.</a:documentation> </choice> </define> <define name="mei_data.BARRENDITION"> <choice> <value>dashed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dashed line (SMuFL E036 and Unicode 1D104).</a:documentation> <value>dotted</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dotted line (SMuFL E037).</a:documentation> <value>dbl</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double bar line (SMuFL E031 and Unicode 1D101).</a:documentation> <value>dbldashed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double dashed line.</a:documentation> <value>dbldotted</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double dotted line.</a:documentation> <value>dblheavy</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Heavy double bar line (SMuFL E035).</a:documentation> <value>dblsegno</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Segno serpent with vertical lines (SMuFL E04B).</a:documentation> <value>end</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">End bar line (SMuFL E032 and Unicode 1D102).</a:documentation> <value>heavy</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Heavy bar line (SMuFL E034).</a:documentation> <value>invis</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bar line not rendered.</a:documentation> <value>rptstart</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Repeat start (SMuFL E040 and Unicode 1D106).</a:documentation> <value>rptboth</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Repeat start and end (SMuFL E042).</a:documentation> <value>rptend</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Repeat end (SMuFL E041 and Unicode 1D107).</a:documentation> <value>segno</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Segno serpent.</a:documentation> <value>single</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Single bar line (SMuFL E030 and Unicode 1D100).</a:documentation> </choice> </define> <define name="mei_data.BEAM"> <data type="token"> <param name="pattern">[i|m|t][1-6]</param> </data> </define> <define name="mei_data.BEAMPLACE"> <choice> <value>above</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The beam is above the events it affects.</a:documentation> <value>below</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The beam is below the events it affects.</a:documentation> <value>mixed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The beam is above and below the events it affects.</a:documentation> </choice> </define> <define name="mei_data.BEAT"> <data type="decimal"> <param name="minInclusive">0</param> </data> </define> <define name="mei_data.BEATRPT.REND"> <choice> <data type="positiveInteger"> <param name="pattern">1|2|3|4|5</param> </data> <data type="token"> <param name="pattern">mixed</param> </data> </choice> </define> <define name="mei_data.BEND.AMOUNT"> <choice> <data type="decimal"> <param name="pattern">\.25|\.5|\.75</param> </data> <data type="decimal"> <param name="pattern">[0-9](\.25|\.5|\.75)?</param> </data> <data type="token"> <param name="pattern">full</param> </data> </choice> </define> <define name="mei_data.BOOLEAN"> <choice> <value>true</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">True.</a:documentation> <value>false</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">False.</a:documentation> </choice> </define> <define name="mei_data.CANCELACCID"> <choice> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Do not show cancellation accidentals.</a:documentation> <value>before</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Show cancellation accidentals before the new key accidentals.</a:documentation> <value>after</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Show cancellation accidentals after the new key accidentals ("Old style" or "French")</a:documentation> <value>before-bar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Show cancellation accidentals before the barline (also known as "Russian").</a:documentation> </choice> </define> <define name="mei_data.CERTAINTY"> <choice> <value>high</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">High certainty.</a:documentation> <value>medium</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Medium certainty.</a:documentation> <value>low</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Low certainty.</a:documentation> <value>unknown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An unknown level of certainty.</a:documentation> </choice> </define> <define name="mei_data.CLEFLINE"> <data type="positiveInteger"/> </define> <define name="mei_data.CLEFSHAPE"> <choice> <value>G</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">G clef (Unicode 1D11E).</a:documentation> <value>GG</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double G clef. Sounds one octave lower than G clef. (See remarks on usage below.)</a:documentation> <value>F</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">F clef (Unicode 1D122).</a:documentation> <value>C</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">C clef (Unicode 1D121).</a:documentation> <value>perc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Drum clef (Unicode 1D125 or Unicode 1D126).</a:documentation> <value>TAB</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tablature "clef"; i.e., usually "TAB" rendered vertically.</a:documentation> </choice> </define> <define name="mei_data.CLUSTER"> <choice> <value>white</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">White keys.</a:documentation> <value>black</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Black keys.</a:documentation> <value>chromatic</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Mixed black and white keys.</a:documentation> </choice> </define> <define name="mei_data.CONFIDENCE"> <data type="decimal"> <param name="minInclusive">0</param> <param name="maxInclusive">1</param> </data> </define> <define name="mei_data.COLORNAMES"> <choice> <value>aliceblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f0f8ff / RGB: 240,248,255</a:documentation> <value>antiquewhite</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #faebd7 / RGB: 250,235,215</a:documentation> <value>aqua</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #00ffff / RGB: 0,255,255</a:documentation> <value>aquamarine</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #7fffd4 / RGB: 127,255,212</a:documentation> <value>azure</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f0ffff / RGB: 240,255,255</a:documentation> <value>beige</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f5f5dc / RGB: 245,245,220</a:documentation> <value>bisque</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffe4c4 / RGB: 255,228,196</a:documentation> <value>black</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #000000 / RGB: 0,0,0</a:documentation> <value>blanchedalmond</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffebcd / RGB: 255,235,205</a:documentation> <value>blue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #0000ff / RGB: 0,0,255</a:documentation> <value>blueviolet</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #8a2be2 / RGB: 138,43,226</a:documentation> <value>brown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #a52a2a / RGB: 165,42,42</a:documentation> <value>burlywood</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #deb887 / RGB: 222,184,135</a:documentation> <value>cadetblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #5f9ea0 / RGB: 95,158,160</a:documentation> <value>chartreuse</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #7fff00 / RGB: 127,255,0</a:documentation> <value>chocolate</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #d2691e / RGB: 210,105,30</a:documentation> <value>coral</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ff7f50 / RGB: 255,127,80</a:documentation> <value>cornflowerblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #6495ed / RGB: 100,149,237</a:documentation> <value>cornsilk</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #fff8dc / RGB: 255,248,220</a:documentation> <value>crimson</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #dc143c / RGB: 220,20,60</a:documentation> <value>cyan</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #00ffff / RGB: 0,255,255</a:documentation> <value>darkblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #00008b / RGB: 0,0,139</a:documentation> <value>darkcyan</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #008b8b / RGB: 0,139,139</a:documentation> <value>darkgoldenrod</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #b8860b / RGB: 184,134,11</a:documentation> <value>darkgray</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #a9a9a9 / RGB: 169,169,169</a:documentation> <value>darkgreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #006400 / RGB: 0,100,0</a:documentation> <value>darkgrey</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #a9a9a9 / RGB: 169,169,169</a:documentation> <value>darkkhaki</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #bdb76b / RGB: 189,183,107</a:documentation> <value>darkmagenta</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #8b008b / RGB: 139,0,139</a:documentation> <value>darkolivegreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #556b2f / RGB: 85,107,47</a:documentation> <value>darkorange</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ff8c00 / RGB: 255,140,0</a:documentation> <value>darkorchid</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #9932cc / RGB: 153,50,204</a:documentation> <value>darkred</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #8b0000 / RGB: 139,0,0</a:documentation> <value>darksalmon</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #e9967a / RGB: 233,150,122</a:documentation> <value>darkseagreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #8fbc8f / RGB: 143,188,143</a:documentation> <value>darkslateblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #483d8b / RGB: 72,61,139</a:documentation> <value>darkslategray</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #2f4f4f / RGB: 47,79,79</a:documentation> <value>darkslategrey</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #2f4f4f / RGB: 47,79,79</a:documentation> <value>darkturquoise</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #00ced1 / RGB: 0,206,209</a:documentation> <value>darkviolet</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #9400d3 / RGB: 148,0,211</a:documentation> <value>deeppink</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ff1493 / RGB: 255,20,147</a:documentation> <value>deepskyblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #00bfff / RGB: 0,191,255</a:documentation> <value>dimgray</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #696969 / RGB: 105,105,105</a:documentation> <value>dimgrey</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #696969 / RGB: 105,105,105</a:documentation> <value>dodgerblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #1e90ff / RGB: 30,144,255</a:documentation> <value>firebrick</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #b22222 / RGB: 178,34,34</a:documentation> <value>floralwhite</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #fffaf0 / RGB: 255,250,240</a:documentation> <value>forestgreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #228b22 / RGB: 34,139,34</a:documentation> <value>fuchsia</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ff00ff / RGB: 255,0,255</a:documentation> <value>gainsboro</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #dcdcdc / RGB: 220,220,220</a:documentation> <value>ghostwhite</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f8f8ff / RGB: 248,248,255</a:documentation> <value>gold</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffd700 / RGB: 255,215,0</a:documentation> <value>goldenrod</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #daa520 / RGB: 218,165,32</a:documentation> <value>gray</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #808080 / RGB: 128,128,128</a:documentation> <value>green</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #008000 / RGB: 0,128,0</a:documentation> <value>greenyellow</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #adff2f / RGB: 173,255,47</a:documentation> <value>grey</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #808080 / RGB: 128,128,128</a:documentation> <value>honeydew</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f0fff0 / RGB: 240,255,240</a:documentation> <value>hotpink</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ff69b4 / RGB: 255,105,180</a:documentation> <value>indianred</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #cd5c5c / RGB: 205,92,92</a:documentation> <value>indigo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #4b0082 / RGB: 75,0,130</a:documentation> <value>ivory</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #fffff0 / RGB: 255,255,240</a:documentation> <value>khaki</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f0e68c / RGB: 240,230,140</a:documentation> <value>lavender</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #e6e6fa / RGB: 230,230,250</a:documentation> <value>lavenderblush</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #fff0f5 / RGB: 255,240,245</a:documentation> <value>lawngreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #7cfc00 / RGB: 124,252,0</a:documentation> <value>lemonchiffon</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #fffacd / RGB: 255,250,205</a:documentation> <value>lightblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #add8e6 / RGB: 173,216,230</a:documentation> <value>lightcoral</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f08080 / RGB: 240,128,128</a:documentation> <value>lightcyan</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #e0ffff / RGB: 224,255,255</a:documentation> <value>lightgoldenrodyellow</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #fafad2 / RGB: 250,250,210</a:documentation> <value>lightgray</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #d3d3d3 / RGB: 211,211,211</a:documentation> <value>lightgreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #90ee90 / RGB: 144,238,144</a:documentation> <value>lightgrey</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #d3d3d3 / RGB: 211,211,211</a:documentation> <value>lightpink</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffb6c1 / RGB: 255,182,193</a:documentation> <value>lightsalmon</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffa07a / RGB: 255,160,122</a:documentation> <value>lightseagreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #20b2aa / RGB: 32,178,170</a:documentation> <value>lightskyblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #87cefa / RGB: 135,206,250</a:documentation> <value>lightslategray</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #778899 / RGB: 119,136,153</a:documentation> <value>lightslategrey</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #778899 / RGB: 119,136,153</a:documentation> <value>lightsteelblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #b0c4de / RGB: 176,196,222</a:documentation> <value>lightyellow</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffffe0 / RGB: 255,255,224</a:documentation> <value>lime</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #00ff00 / RGB: 0,255,0</a:documentation> <value>limegreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #32cd32 / RGB: 50,205,50</a:documentation> <value>linen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #faf0e6 / RGB: 250,240,230</a:documentation> <value>magenta</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ff00ff / RGB: 255,0,255</a:documentation> <value>maroon</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #800000 / RGB: 128,0,0</a:documentation> <value>mediumaquamarine</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #66cdaa / RGB: 102,205,170</a:documentation> <value>mediumblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #0000cd / RGB: 0,0,205</a:documentation> <value>mediumorchid</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ba55d3 / RGB: 186,85,211</a:documentation> <value>mediumpurple</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #9370db / RGB: 147,112,219</a:documentation> <value>mediumseagreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #3cb371 / RGB: 60,179,113</a:documentation> <value>mediumslateblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #7b68ee / RGB: 123,104,238</a:documentation> <value>mediumspringgreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #00fa9a / RGB: 0,250,154</a:documentation> <value>mediumturquoise</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #48d1cc / RGB: 72,209,204</a:documentation> <value>mediumvioletred</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #c71585 / RGB: 199,21,133</a:documentation> <value>midnightblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #191970 / RGB: 25,25,112</a:documentation> <value>mintcream</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f5fffa / RGB: 245,255,250</a:documentation> <value>mistyrose</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffe4e1 / RGB: 255,228,225</a:documentation> <value>moccasin</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffe4b5 / RGB: 255,228,181</a:documentation> <value>navajowhite</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffdead / RGB: 255,222,173</a:documentation> <value>navy</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #000080 / RGB: 0,0,128</a:documentation> <value>oldlace</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #fdf5e6 / RGB: 253,245,230</a:documentation> <value>olive</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #808000 / RGB: 128,128,0</a:documentation> <value>olivedrab</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #6b8e23 / RGB: 107,142,35</a:documentation> <value>orange</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffa500 / RGB: 255,165,0</a:documentation> <value>orangered</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ff4500 / RGB: 255,69,0</a:documentation> <value>orchid</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #da70d6 / RGB: 218,112,214</a:documentation> <value>palegoldenrod</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #eee8aa / RGB: 238,232,170</a:documentation> <value>palegreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #98fb98 / RGB: 152,251,152</a:documentation> <value>paleturquoise</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #afeeee / RGB: 175,238,238</a:documentation> <value>palevioletred</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #db7093 / RGB: 219,112,147</a:documentation> <value>papayawhip</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffefd5 / RGB: 255,239,213</a:documentation> <value>peachpuff</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffdab9 / RGB: 255,218,185</a:documentation> <value>peru</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #cd853f / RGB: 205,133,63</a:documentation> <value>pink</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffc0cb / RGB: 255,192,203</a:documentation> <value>plum</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #dda0dd / RGB: 221,160,221</a:documentation> <value>powderblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #b0e0e6 / RGB: 176,224,230</a:documentation> <value>purple</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #800080 / RGB: 128,0,128</a:documentation> <value>rebeccapurple</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #663399 / RGB: 102,51,153</a:documentation> <value>red</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ff0000 / RGB: 255,0,0</a:documentation> <value>rosybrown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #bc8f8f / RGB: 188,143,143</a:documentation> <value>royalblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #4169e1 / RGB: 65,105,225</a:documentation> <value>saddlebrown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #8b4513 / RGB: 139,69,19</a:documentation> <value>salmon</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #fa8072 / RGB: 250,128,114</a:documentation> <value>sandybrown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f4a460 / RGB: 244,164,96</a:documentation> <value>seagreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #2e8b57 / RGB: 46,139,87</a:documentation> <value>seashell</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #fff5ee / RGB: 255,245,238</a:documentation> <value>sienna</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #a0522d / RGB: 160,82,45</a:documentation> <value>silver</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #c0c0c0 / RGB: 192,192,192</a:documentation> <value>skyblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #87ceeb / RGB: 135,206,235</a:documentation> <value>slateblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #6a5acd / RGB: 106,90,205</a:documentation> <value>slategray</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #708090 / RGB: 112,128,144</a:documentation> <value>slategrey</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #708090 / RGB: 112,128,144</a:documentation> <value>snow</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #fffafa / RGB: 255,250,250</a:documentation> <value>springgreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #00ff7f / RGB: 0,255,127</a:documentation> <value>steelblue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #4682b4 / RGB: 70,130,180</a:documentation> <value>tan</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #d2b48c / RGB: 210,180,140</a:documentation> <value>teal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #008080 / RGB: 0,128,128</a:documentation> <value>thistle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #d8bfd8 / RGB: 216,191,216</a:documentation> <value>tomato</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ff6347 / RGB: 255,99,71</a:documentation> <value>turquoise</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #40e0d0 / RGB: 64,224,208</a:documentation> <value>violet</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ee82ee / RGB: 238,130,238</a:documentation> <value>wheat</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f5deb3 / RGB: 245,222,179</a:documentation> <value>white</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffffff / RGB: 255,255,255</a:documentation> <value>whitesmoke</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #f5f5f5 / RGB: 245,245,245</a:documentation> <value>yellow</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #ffff00 / RGB: 255,255,0</a:documentation> <value>yellowgreen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hex: #9acd32 / RGB: 154,205,50</a:documentation> </choice> </define> <define name="mei_data.COLORVALUES"> <choice> <data type="token"> <param name="pattern">#[0-9A-Fa-f]{6,6}</param> </data> <data type="token"> <param name="pattern">#[0-9A-Fa-f]{8,8}</param> </data> <data type="token"> <param name="pattern">rgb\((\s*(([01]?[0-9]?[0-9])|2[0-4][0-9]|25[0-5])\s*,\s*){2}([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\s*\)</param> </data> <data type="token"> <param name="pattern">rgba\(\s*(([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\s*,\s*){3}(0(\.\d+)?|1(\.0+)?)\s*\)|rgba\(\s*(((\d{1,2})?%|100%)\s*,\s*){2}(\d{1,2}%|100%)\s*,\s*(0(\.\d+)?|1(\.0+)?)\s*\)</param> </data> <data type="token"> <param name="pattern">hsl\(\s*((\d{1,2})|[12]\d{2}|3[0-5]\d|360)\s*,\s*(\d{1,2}%|100%)\s*,\s*(\d{1,2}%|100%)\s*\)</param> </data> <data type="token"> <param name="pattern">hsla\(\s*(\d{1,2}|[12]\d{2}|3[0-5]\d|360)\s*,\s*(\d{1,2}%|100%)\s*,\s*(\d{1,2}%|100%)\s*,\s*(0(\.\d+)?|1(\.0+)?)\s*\)</param> </data> </choice> </define> <define name="mei_data.COLOR"> <choice> <ref name="mei_data.COLORNAMES"/> <ref name="mei_data.COLORVALUES"/> </choice> </define> <define name="mei_data.COMPASSDIRECTION"> <choice> <ref name="mei_data.COMPASSDIRECTION.basic"/> <ref name="mei_data.COMPASSDIRECTION.extended"/> </choice> </define> <define name="mei_data.COMPASSDIRECTION.basic"> <choice> <value>n</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">In a northern direction.</a:documentation> <value>e</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">In an eastern direction.</a:documentation> <value>s</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">In a southern direction.</a:documentation> <value>w</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">In a western direction.</a:documentation> </choice> </define> <define name="mei_data.COMPASSDIRECTION.extended"> <choice> <value>ne</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">In a north-eastern direction.</a:documentation> <value>nw</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">In a north-western direction.</a:documentation> <value>se</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">In a south-eastern direction.</a:documentation> <value>sw</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">In a south-western direction.</a:documentation> </choice> </define> <define name="mei_data.DEGREES"> <data type="decimal"> <param name="maxInclusive">360.0</param> <param name="minInclusive">-360.0</param> </data> </define> <define name="mei_data.DIVISIO"> <choice> <value>ternaria</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Divisio ternaria. Three semibreves in a breve.</a:documentation> <value>quaternaria</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Divisio quaternaria. Foursemibreves in a breve.</a:documentation> <value>senariaimperf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Divisio senaria imperfecta. Six semibreves in a breve (breve is divided into two, then into three). Aka senaria gallica.</a:documentation> <value>senariaperf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Divisio senaria perfecta. Six semibreves in a breve (breve is divided into three, then into two). Aka senaria italica.</a:documentation> <value>octonaria</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Divisio octonaria. Eight semibreves in a breve.</a:documentation> <value>novenaria</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Divisio novenaria. Nine semibreves in a breve.</a:documentation> <value>duodenaria</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Divisio duodenaria. Twelve semibreves in a breve.</a:documentation> </choice> </define> <define name="mei_data.DURATION"> <choice> <ref name="mei_data.DURATION.cmn"/> <ref name="mei_data.DURATION.mensural"/> </choice> </define> <define name="mei_data.DURATIONRESTS"> <choice> <ref name="mei_data.DURATION.cmn"/> <ref name="mei_data.DURATIONRESTS.mensural"/> </choice> </define> <define name="mei_data.DURATION.GESTURAL"> <choice> <ref name="mei_data.DURATION.cmn"/> <ref name="mei_data.DURATION.mensural"/> </choice> </define> <define name="mei_data.ENCLOSURE"> <choice> <value>paren</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Parentheses: ( and ).</a:documentation> <value>brack</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Square brackets: [ and ].</a:documentation> <value>box</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Box.</a:documentation> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">None.</a:documentation> </choice> </define> <define name="mei_data.EVENTREL"> <choice> <ref name="mei_data.EVENTREL.basic"/> <ref name="mei_data.EVENTREL.extended"/> </choice> </define> <define name="mei_data.EVENTREL.basic"> <choice> <value>above</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Above.</a:documentation> <value>below</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Below.</a:documentation> <value>left</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Left.</a:documentation> <value>right</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Right.</a:documentation> </choice> </define> <define name="mei_data.EVENTREL.extended"> <choice> <value>above-left</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Above and left; north-west.</a:documentation> <value>above-right</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Above and right; north-east.</a:documentation> <value>below-left</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Below and left; south-west.</a:documentation> <value>below-right</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Below and right; south-east.</a:documentation> </choice> </define> <define name="mei_data.FILL"> <choice> <value>void</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled</a:documentation> <value>solid</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Filled</a:documentation> <value>top</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Top half filled</a:documentation> <value>bottom</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bottom half filled</a:documentation> <value>left</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Left half filled</a:documentation> <value>right</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Right half filled</a:documentation> </choice> </define> <define name="mei_data.FINGER.FRET"> <choice> <data type="positiveInteger"> <param name="minInclusive">1</param> <param name="maxInclusive">4</param> </data> <data type="token"> <param name="pattern">x|o|t</param> </data> </choice> </define> <define name="mei_data.FONTFAMILY"> <data type="token"/> </define> <define name="mei_data.FONTNAME"> <data type="token"/> </define> <define name="mei_data.FONTSIZE"> <choice> <ref name="mei_data.FONTSIZENUMERIC"/> <ref name="mei_data.FONTSIZETERM"/> <ref name="mei_data.PERCENT"/> </choice> </define> <define name="mei_data.FONTSIZENUMERIC"> <data type="token"> <param name="pattern">\d*(\.\d+)?(pt|vu)</param> <except> <choice> <data type="token"> <param name="pattern">(pt|vu)</param> </data> <data type="token"> <param name="pattern">0+(pt|vu)</param> </data> <data type="token"> <param name="pattern">0+(\.0+)?(pt|vu)</param> </data> <data type="token"> <param name="pattern">\.0+(pt|vu)</param> </data> </choice> </except> </data> </define> <define name="mei_data.FONTSIZESCALE"> <data type="integer"> <param name="minInclusive">1</param> <param name="maxInclusive">9</param> </data> </define> <define name="mei_data.FONTSIZETERM"> <choice> <value>xx-small</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Smaller than x-small.</a:documentation> <value>x-small</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Smaller than small, larger than xx-small.</a:documentation> <value>small</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Smaller than normal, larger than x-small.</a:documentation> <value>normal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Smaller than large, larger than small.</a:documentation> <value>large</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Smaller than x-large, larger than normal.</a:documentation> <value>x-large</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Smaller than xx-large, larger than large.</a:documentation> <value>xx-large</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Larger than x-large.</a:documentation> <value>smaller</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">One size smaller than the current size.</a:documentation> <value>larger</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">One size larger than the current size.</a:documentation> </choice> </define> <define name="mei_data.FONTSTYLE"> <choice> <value>italic</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Text slants to right.</a:documentation> <value>normal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unadorned.</a:documentation> <value>oblique</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Text slants to the left.</a:documentation> </choice> </define> <define name="mei_data.FONTWEIGHT"> <choice> <value>bold</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bold or heavy.</a:documentation> <value>normal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Not bold.</a:documentation> </choice> </define> <define name="mei_data.FRETNUMBER"> <data type="nonNegativeInteger"/> </define> <define name="mei_data.GLISSANDO"> <choice> <value>i</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">First note/chord in glissando.</a:documentation> <value>m</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Note/chord that’s neither first nor last in glissando.</a:documentation> <value>t</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Last note in glissando.</a:documentation> </choice> </define> <define name="mei_data.GRACE"> <choice> <value>acc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Time "stolen" from following note.</a:documentation> <value>unacc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Time "stolen" from previous note.</a:documentation> <value>unknown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">No interpretation regarding performed value of grace note.</a:documentation> </choice> </define> <define name="mei_data.HEADSHAPE"> <choice> <ref name="mei_data.HEADSHAPE.list"/> <ref name="mei_data.HEXNUM"/> <ref name="mei_data.NMTOKEN"/> </choice> </define> <define name="mei_data.HEADSHAPE.list"> <choice> <value>quarter</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Filled, rotated oval (Unicode 1D158).</a:documentation> <value>half</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled, rotated oval (Unicode 1D157).</a:documentation> <value>whole</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled, rotated oval (Unicode 1D15D).</a:documentation> <value>backslash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled backslash (~ reflection of Unicode 1D10D).</a:documentation> <value>circle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled circle (Unicode 25CB).</a:documentation> <value>+</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Plus sign (Unicode 1D144).</a:documentation> <value>diamond</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled diamond (Unicode 1D1B9).</a:documentation> <value>isotriangle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled isosceles triangle (Unicode 1D148).</a:documentation> <value>oval</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled, unrotated oval (Unicode 2B2D).</a:documentation> <value>piewedge</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled downward-pointing wedge (Unicode 1D154).</a:documentation> <value>rectangle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled rectangle (Unicode 25AD).</a:documentation> <value>rtriangle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled right triangle (Unicode 1D14A).</a:documentation> <value>semicircle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled semi-circle (Unicode 1D152).</a:documentation> <value>slash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled slash (~ Unicode 1D10D).</a:documentation> <value>square</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled square (Unicode 1D146).</a:documentation> <value>x</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">X (Unicode 1D143).</a:documentation> </choice> </define> <define name="mei_data.HEXNUM"> <data type="string"> <param name="pattern">(#x|U\+)[A-F0-9]+</param> </data> </define> <define name="mei_data.HORIZONTALALIGNMENT"> <choice> <value>left</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Left aligned.</a:documentation> <value>right</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Right aligned.</a:documentation> <value>center</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Centered.</a:documentation> <value>justify</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Left and right aligned.</a:documentation> </choice> </define> <define name="mei_data.INTERVAL.HARMONIC"> <data type="token"> <param name="pattern">[AdMmP][1-9][0-9]*</param> </data> </define> <define name="mei_data.INTERVAL.MELODIC"> <choice> <data type="token"> <param name="pattern">u|d|s|n|sd|su</param> </data> <data type="token"> <param name="pattern">(\+|\-)?([AdMmP])?[0-9]+</param> </data> <data type="token"> <param name="pattern">(\+|\-)?\d+(\.\d+)?hs</param> </data> </choice> </define> <define name="mei_data.ISODATE"> <choice> <data type="date"/> <data type="gYear"/> <data type="gMonth"/> <data type="gDay"/> <data type="gYearMonth"/> <data type="gMonthDay"/> <data type="time"/> <data type="dateTime"/> <data type="token"> <param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param> </data> </choice> </define> <define name="mei_data.ISOTIME"> <data type="time"/> </define> <define name="mei_data.KEYFIFTHS"> <data type="token"> <param name="pattern">mixed|0|([1-9]|1[0-2])[f|s]</param> </data> </define> <define name="mei_data.LAYERSCHEME"> <choice> <value>1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Single layer.</a:documentation> <value>2o</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Two layers with opposing stems.</a:documentation> <value>2f</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Two layers with 'floating' stems.</a:documentation> <value>3o</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Three layers with opposing stems.</a:documentation> <value>3f</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Three layers with 'floating' stems.</a:documentation> </choice> </define> <define name="mei_data.LIGATUREFORM"> <choice> <value>recta</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Notes are "squeezed" together.</a:documentation> <value>obliqua</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Individual notes are replaced by an oblique figure.</a:documentation> </choice> </define> <define name="mei_data.LINEFORM"> <choice> <value>dashed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dashed line.</a:documentation> <value>dotted</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dotted line.</a:documentation> <value>solid</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Straight, uninterrupted line.</a:documentation> <value>wavy</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Undulating line.</a:documentation> </choice> </define> <define name="mei_data.LINESTARTENDSYMBOL"> <choice> <value>angledown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">90 degree turn down (similar to Unicode 231D at end of line, 231C at start).</a:documentation> <value>angleup</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">90 degree turn up (similar to Unicode 231F at end of line, 231E at start).</a:documentation> <value>angleright</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">90 degree turn right (syntactic sugar for "angledown" for vertical or angled lines).</a:documentation> <value>angleleft</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">90 degree turn left (syntactic sugar for "angleup" for vertical or angled lines).</a:documentation> <value>arrow</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Filled, triangular arrowhead (similar to Unicode U+25C0 or SMuFL U+EB78).</a:documentation> <value>arrowopen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Open triangular arrowhead (similar to Unicode U+02C3 or SMuFL U+EB8A).</a:documentation> <value>arrowwhite</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unfilled, triangular arrowhead (similar to Unicode U+25C1 or SMuFL U+EB82).</a:documentation> <value>harpoonleft</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Harpoon-shaped arrowhead left of line (similar to arrowhead of Unicode U+21BD).</a:documentation> <value>harpoonright</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Harpoon-shaped arrowhead right of line (similar to arrowhead of Unicode U+21BC).</a:documentation> <value>H</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hauptstimme (Unicode U+1D1A6 or SMuFL U+E860).</a:documentation> <value>N</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Nebenstimme (Unicode U+1D1A7 or SMuFL U+E861).</a:documentation> <value>Th</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Theme (SMuFL U+E864).</a:documentation> <value>ThRetro</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Theme, retrograde (SMuFL U+E865).</a:documentation> <value>ThRetroInv</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Theme, retrograde inversion (SMuFL U+E866).</a:documentation> <value>ThInv</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Theme, inverted (SMuFL U+E867).</a:documentation> <value>T</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Theme (SMuFL U+E868).</a:documentation> <value>TInv</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Theme, inverted (SMuFL U+E869).</a:documentation> <value>CH</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Choralemelodie (SMuFL U+E86A).</a:documentation> <value>RH</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hauptrhythmus (SMuFL U+E86B).</a:documentation> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">No start/end symbol.</a:documentation> </choice> </define> <define name="mei_data.LINEWIDTH"> <choice> <ref name="mei_data.LINEWIDTHTERM"/> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </choice> </define> <define name="mei_data.LINEWIDTHTERM"> <choice> <value>narrow</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Default line width.</a:documentation> <value>medium</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Twice as wide as narrow.</a:documentation> <value>wide</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Twice as wide as medium.</a:documentation> </choice> </define> <define name="mei_data.MEASUREBEAT"> <data type="token"> <param name="pattern">([0-9]+m\s*\+\s*)?[0-9]+(\.?[0-9]*)?</param> </data> </define> <define name="mei_data.MEASUREBEATOFFSET"> <data type="token"> <param name="pattern">(\+|-)?[0-9]+m\+[0-9]+(\.[0-9]*)?</param> </data> </define> <define name="mei_data.MEASUREMENTUNSIGNED"> <data type="token"> <param name="pattern">(\+)?\d+(\.\d+)?(cm|mm|in|pt|pc|px|vu)?</param> </data> </define> <define name="mei_data.MEASUREMENTSIGNED"> <data type="token"> <param name="pattern">(\+|-)?\d+(\.\d+)?(cm|mm|in|pt|pc|px|vu)?</param> </data> </define> <define name="mei_data.MEASUREMENTFONTUNSIGNED"> <data type="token"> <param name="pattern">\d+(\.\d+)?(ch|em|ex)?</param> </data> </define> <define name="mei_data.MEASUREMENTFONTSIGNED"> <data type="token"> <param name="pattern">(\+|-)?\d+(\.\d+)?(ch|em|ex)?</param> </data> </define> <define name="mei_data.MEASUREMENTTYPOGRAPHYUNSIGNED"> <choice> <ref name="mei_data.MEASUREMENTFONTUNSIGNED"/> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </choice> </define> <define name="mei_data.MEASUREMENTTYPOGRAPHYSIGNED"> <choice> <ref name="mei_data.MEASUREMENTFONTSIGNED"/> <ref name="mei_data.MEASUREMENTSIGNED"/> </choice> </define> <define name="mei_data.MELODICFUNCTION"> <choice> <value>aln</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Accented lower neighbor.</a:documentation> <value>ant</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Anticipation.</a:documentation> <value>app</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Appogiatura.</a:documentation> <value>apt</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Accented passing tone.</a:documentation> <value>arp</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Arpeggio tone (chordal tone).</a:documentation> <value>arp7</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Arpeggio tone (7th added to the chord).</a:documentation> <value>aun</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Accented upper neighbor.</a:documentation> <value>chg</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Changing tone.</a:documentation> <value>cln</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Chromatic lower neighbor.</a:documentation> <value>ct</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Chord tone (i.e., not an embellishment).</a:documentation> <value>ct7</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Chord tone (7th added to the chord).</a:documentation> <value>cun</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Chromatic upper neighbor.</a:documentation> <value>cup</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Chromatic unaccented passing tone.</a:documentation> <value>et</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Escape tone.</a:documentation> <value>ln</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lower neighbor.</a:documentation> <value>ped</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pedal tone.</a:documentation> <value>rep</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Repeated tone.</a:documentation> <value>ret</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Retardation.</a:documentation> <value>23ret</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">2-3 retardation.</a:documentation> <value>78ret</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">7-8 retardation.</a:documentation> <value>sus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Suspension.</a:documentation> <value>43sus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">4-3 suspension.</a:documentation> <value>98sus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">9-8 suspension.</a:documentation> <value>76sus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">7-6 suspension.</a:documentation> <value>un</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Upper neighbor.</a:documentation> <value>un7</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Upper neighbor (7th added to the chord).</a:documentation> <value>upt</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unaccented passing tone.</a:documentation> <value>upt7</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unaccented passing tone (7th added to the chord).</a:documentation> </choice> </define> <define name="mei_data.MENSURATIONSIGN"> <choice> <value>C</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for tempus imperfectum.</a:documentation> <value>O</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for tempus perfectum.</a:documentation> <value>t</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio ternaria.</a:documentation> <value>q</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio quaternaria.</a:documentation> <value>si</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio senaria imperfecta.</a:documentation> <value>i</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio senaria imperfecta.</a:documentation> <value>sg</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio senaria gallica.</a:documentation> <value>g</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio senaria gallica.</a:documentation> <value>sp</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio senaria perfecta.</a:documentation> <value>p</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio senaria perfecta.</a:documentation> <value>sy</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio senaria ytalica.</a:documentation> <value>y</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio senaria ytalica.</a:documentation> <value>n</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio novenaria.</a:documentation> <value>oc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio octonaria.</a:documentation> <value>d</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign for divisio duodenaria.</a:documentation> </choice> </define> <define name="mei_data.METERFORM"> <choice> <value>num</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Show only the number of beats.</a:documentation> <value>denomsym</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The lower number in the meter signature is replaced by a note symbol.</a:documentation> <value>norm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Meter signature rendered using traditional numeric values.</a:documentation> <value>sym+norm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Meter signature rendered using both the symbol and the traditional numeric values.</a:documentation> </choice> </define> <define name="mei_data.METERSIGN"> <choice> <value>common</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Common time; i.e., 4/4.</a:documentation> <value>cut</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Cut time; i.e., 2/2.</a:documentation> <value>open</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Open time signature, i.e., Senza misura. See Gould pp. 611–615.</a:documentation> </choice> </define> <define name="mei_data.MIDICHANNEL"> <data type="token"> <param name="pattern">0|([1-9]|1[0-5])o?|16o</param> </data> </define> <define name="mei_data.MIDIBPM"> <data type="decimal"> <param name="minExclusive">0</param> </data> </define> <define name="mei_data.MIDIMSPB"> <data type="positiveInteger"/> </define> <define name="mei_data.MIDINAMES"> <choice> <value>Acoustic_Grand_Piano</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Acoustic Grand Piano, Program #0.</a:documentation> <value>Bright_Acoustic_Piano</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bright Acoustic Piano, Program #1.</a:documentation> <value>Electric_Grand_Piano</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Electric Grand Piano, Program #2.</a:documentation> <value>Honky-tonk_Piano</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Honky-tonk Piano, Program #3.</a:documentation> <value>Electric_Piano_1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Electric Piano 1, Program #4.</a:documentation> <value>Electric_Piano_2</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Electric Piano 2, Program #5.</a:documentation> <value>Harpsichord</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Harpsichord, Program #6.</a:documentation> <value>Clavi</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Clavi, Program #7.</a:documentation> <value>Celesta</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Celesta, Program #8.</a:documentation> <value>Glockenspiel</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Glockenspiel, Program #9.</a:documentation> <value>Music_Box</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Music Box, Program #10.</a:documentation> <value>Vibraphone</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Vibraphone, Program #11.</a:documentation> <value>Marimba</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marimba, Program #12.</a:documentation> <value>Xylophone</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Xylophone, Program #13.</a:documentation> <value>Tubular_Bells</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tubular Bells, Program #14.</a:documentation> <value>Dulcimer</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dulcimer, Program #15.</a:documentation> <value>Drawbar_Organ</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Drawbar Organ, Program #16.</a:documentation> <value>Percussive_Organ</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Percussive Organ, Program #17.</a:documentation> <value>Rock_Organ</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Rock Organ, Program #18.</a:documentation> <value>Church_Organ</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Church Organ, Program #19.</a:documentation> <value>Reed_Organ</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reed Organ, Program #20.</a:documentation> <value>Accordion</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Accordion, Program #21.</a:documentation> <value>Harmonica</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Harmonica, Program #22.</a:documentation> <value>Tango_Accordion</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tango Accordion, Program #23.</a:documentation> <value>Acoustic_Guitar_nylon</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Acoustic Guitar (nylon), Program #24.</a:documentation> <value>Acoustic_Guitar_steel</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Acoustic Guitar (steel), Program #25.</a:documentation> <value>Electric_Guitar_jazz</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Electric Guitar (jazz), Program #26.</a:documentation> <value>Electric_Guitar_clean</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Electric Guitar (clean), Program #27.</a:documentation> <value>Electric_Guitar_muted</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Electric Guitar (muted), Program #28.</a:documentation> <value>Overdriven_Guitar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Overdriven Guitar, Program #29.</a:documentation> <value>Distortion_Guitar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Distortion Guitar, Program #30.</a:documentation> <value>Guitar_harmonics</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Guitar harmonics, Program #31.</a:documentation> <value>Acoustic_Bass</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Acoustic Bass, Program #32.</a:documentation> <value>Electric_Bass_finger</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Electric Bass (finger), Program #33.</a:documentation> <value>Electric_Bass_pick</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Electric Bass (pick), Program #34.</a:documentation> <value>Fretless_Bass</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Fretless Bass, Program #35.</a:documentation> <value>Slap_Bass_1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Slap Bass 1, Program #36.</a:documentation> <value>Slap_Bass_2</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Slap Bass 2, Program #37.</a:documentation> <value>Synth_Bass_1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Synth Bass 1, Program #38.</a:documentation> <value>Synth_Bass_2</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Synth Bass 2, Program #39.</a:documentation> <value>Violin</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Violin, Program #40.</a:documentation> <value>Viola</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Viola, Program #41.</a:documentation> <value>Cello</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Cello, Program #42.</a:documentation> <value>Contrabass</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contrabass, Program #43.</a:documentation> <value>Tremolo_Strings</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tremolo Strings, Program #44.</a:documentation> <value>Pizzicato_Strings</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pizzicato Strings, Program #45.</a:documentation> <value>Orchestral_Harp</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Orchestral Harp, Program #46.</a:documentation> <value>Timpani</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Timpani, Program #47.</a:documentation> <value>String_Ensemble_1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">String Ensemble 1, Program #48.</a:documentation> <value>String_Ensemble_2</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">String Ensemble 2, Program #49.</a:documentation> <value>SynthStrings_1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">SynthStrings 1, Program #50.</a:documentation> <value>SynthStrings_2</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">SynthStrings 2, Program #51.</a:documentation> <value>Choir_Aahs</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Choir Aahs, Program #52.</a:documentation> <value>Voice_Oohs</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Voice Oohs, Program #53.</a:documentation> <value>Synth_Voice</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Synth Voice, Program #54.</a:documentation> <value>Orchestra_Hit</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Orchestra Hit, Program #55.</a:documentation> <value>Trumpet</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Trumpet, Program #56.</a:documentation> <value>Trombone</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Trombone, Program #57.</a:documentation> <value>Tuba</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tuba, Program #58.</a:documentation> <value>Muted_Trumpet</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Muted Trumpet, Program #59.</a:documentation> <value>French_Horn</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">French Horn, Program #60.</a:documentation> <value>Brass_Section</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Brass Section, Program #61.</a:documentation> <value>SynthBrass_1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">SynthBrass 1, Program #62.</a:documentation> <value>SynthBrass_2</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">SynthBrass 2, Program #63.</a:documentation> <value>Soprano_Sax</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Soprano Sax, Program #64.</a:documentation> <value>Alto_Sax</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Alto Sax, Program #65.</a:documentation> <value>Tenor_Sax</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tenor Sax, Program #66.</a:documentation> <value>Baritone_Sax</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Baritone Sax, Program #67.</a:documentation> <value>Oboe</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Oboe, Program #68.</a:documentation> <value>English_Horn</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">English Horn, Program #69.</a:documentation> <value>Bassoon</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bassoon, Program #70.</a:documentation> <value>Clarinet</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Clarinet, Program #71.</a:documentation> <value>Piccolo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Piccolo, Program #72.</a:documentation> <value>Flute</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flute, Program #73.</a:documentation> <value>Recorder</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Recorder, Program #74.</a:documentation> <value>Pan_Flute</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pan Flute, Program #75.</a:documentation> <value>Blown_Bottle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Blown Bottle, Program #76.</a:documentation> <value>Shakuhachi</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Shakuhachi, Program #77.</a:documentation> <value>Whistle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Whistle, Program #78.</a:documentation> <value>Ocarina</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Ocarina, Program #79.</a:documentation> <value>Lead_1_square</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lead 1 (square), Program #80.</a:documentation> <value>Lead_2_sawtooth</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lead 2 (sawtooth), Program #81.</a:documentation> <value>Lead_3_calliope</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lead 3 (calliope), Program #82.</a:documentation> <value>Lead_4_chiff</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lead 4 (chiff), Program #83.</a:documentation> <value>Lead_5_charang</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lead 5 (charang), Program #84.</a:documentation> <value>Lead_6_voice</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lead 6 (voice), Program #85.</a:documentation> <value>Lead_7_fifths</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lead 7 (fifths), Program #86.</a:documentation> <value>Lead_8_bass_and_lead</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lead 8 (bass + lead), Program #87.</a:documentation> <value>Pad_1_new_age</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pad 1 (new age), Program #88.</a:documentation> <value>Pad_2_warm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pad 2 (warm), Program #89.</a:documentation> <value>Pad_3_polysynth</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pad 3 (polysynth), Program #90.</a:documentation> <value>Pad_4_choir</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pad 4 (choir), Program #91.</a:documentation> <value>Pad_5_bowed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pad 5 (bowed), Program #92.</a:documentation> <value>Pad_6_metallic</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pad 6 (metallic), Program #93.</a:documentation> <value>Pad_7_halo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pad 7 (halo), Program #94.</a:documentation> <value>Pad_8_sweep</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pad 8 (sweep), Program #95.</a:documentation> <value>FX_1_rain</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">FX 1 (rain), Program #96.</a:documentation> <value>FX_2_soundtrack</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">FX 2 (soundtrack), Program #97.</a:documentation> <value>FX_3_crystal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">FX 3 (crystal), Program #98.</a:documentation> <value>FX_4_atmosphere</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">FX 4 (atmosphere), Program #99.</a:documentation> <value>FX_5_brightness</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">FX 5 (brightness), Program #100.</a:documentation> <value>FX_6_goblins</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">FX 6 (goblins), Program #101.</a:documentation> <value>FX_7_echoes</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">FX 7 (echoes), Program #102.</a:documentation> <value>FX_8_sci-fi</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">FX 8 (sci-fi), Program #103.</a:documentation> <value>Sitar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sitar, Program #104.</a:documentation> <value>Banjo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Banjo, Program #105.</a:documentation> <value>Shamisen</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Shamisen, Program #106.</a:documentation> <value>Koto</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Koto, Program #107.</a:documentation> <value>Kalimba</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Kalimba, Program #108.</a:documentation> <value>Bag_pipe</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bag pipe, Program #109.</a:documentation> <value>Fiddle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Fiddle, Program #110.</a:documentation> <value>Shanai</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Shanai, Program #111.</a:documentation> <value>Tinkle_Bell</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tinkle Bell, Program #112.</a:documentation> <value>Agogo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Agogo, Program #113.</a:documentation> <value>Steel_Drums</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Steel Drums, Program #114.</a:documentation> <value>Woodblock</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Woodblock, Program #115.</a:documentation> <value>Taiko_Drum</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Taiko Drum, Program #116.</a:documentation> <value>Melodic_Tom</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Melodic Tom, Program #117.</a:documentation> <value>Synth_Drum</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Synth Drum, Program #118.</a:documentation> <value>Reverse_Cymbal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reverse Cymbal, Program #119.</a:documentation> <value>Guitar_Fret_Noise</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Guitar Fret Noise, Program #120.</a:documentation> <value>Breath_Noise</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Breath Noise, Program #121.</a:documentation> <value>Seashore</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Seashore, Program #122.</a:documentation> <value>Bird_Tweet</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bird Tweet, Program #123.</a:documentation> <value>Telephone_Ring</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Telephone Ring, Program #124.</a:documentation> <value>Helicopter</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Helicopter, Program #125.</a:documentation> <value>Applause</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Applause, Program #126.</a:documentation> <value>Gunshot</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Gunshot, Program #127.</a:documentation> <value>Acoustic_Bass_Drum</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Acoustic Bass Drum, Key #35.</a:documentation> <value>Bass_Drum_1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bass Drum 1, Key #36.</a:documentation> <value>Side_Stick</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Side Stick, Key #37.</a:documentation> <value>Acoustic_Snare</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Acoustic Snare, Key #38.</a:documentation> <value>Hand_Clap</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hand Clap, Key #39.</a:documentation> <value>Electric_Snare</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Electric Snare, Key #40.</a:documentation> <value>Low_Floor_Tom</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Low Floor Tom, Key #41.</a:documentation> <value>Closed_Hi_Hat</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Closed Hi Hat, Key #42.</a:documentation> <value>High_Floor_Tom</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">High Floor Tom, Key #43.</a:documentation> <value>Pedal_Hi-Hat</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pedal Hi-Hat, Key #44.</a:documentation> <value>Low_Tom</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Low Tom, Key #45.</a:documentation> <value>Open_Hi-Hat</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Open Hi-Hat, Key #46.</a:documentation> <value>Low-Mid_Tom</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Low-Mid Tom, Key #47.</a:documentation> <value>Hi-Mid_Tom</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hi-Mid Tom, Key #48.</a:documentation> <value>Crash_Cymbal_1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Crash Cymbal 1, Key #49.</a:documentation> <value>High_Tom</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">High Tom, Key #50.</a:documentation> <value>Ride_Cymbal_1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Ride Cymbal 1, Key #51.</a:documentation> <value>Chinese_Cymbal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Chinese Cymbal, Key #52.</a:documentation> <value>Ride_Bell</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Ride Bell, Key #53.</a:documentation> <value>Tambourine</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tambourine, Key #54.</a:documentation> <value>Splash_Cymbal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Splash Cymbal, Key #55.</a:documentation> <value>Cowbell</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Cowbell, Key #56.</a:documentation> <value>Crash_Cymbal_2</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Crash Cymbal 2, Key #57.</a:documentation> <value>Vibraslap</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Vibraslap, Key #58.</a:documentation> <value>Ride_Cymbal_2</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Ride Cymbal 2, Key #59.</a:documentation> <value>Hi_Bongo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hi Bongo, Key #60.</a:documentation> <value>Low_Bongo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Low Bongo, Key #61.</a:documentation> <value>Mute_Hi_Conga</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Mute Hi Conga, Key #62.</a:documentation> <value>Open_Hi_Conga</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Open Hi Conga, Key #63.</a:documentation> <value>Low_Conga</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Low Conga, Key #64.</a:documentation> <value>High_Timbale</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">High Timbale, Key #65.</a:documentation> <value>Low_Timbale</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Low Timbale, Key #66.</a:documentation> <value>High_Agogo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">High Agogo, Key #67.</a:documentation> <value>Low_Agogo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Low Agogo, Key #68.</a:documentation> <value>Cabasa</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Cabasa, Key #69.</a:documentation> <value>Maracas</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Maracas, Key #70.</a:documentation> <value>Short_Whistle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Short Whistle, Key #71.</a:documentation> <value>Long_Whistle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Long Whistle, Key #72.</a:documentation> <value>Short_Guiro</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Short Guiro, Key #73.</a:documentation> <value>Long_Guiro</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Long Guiro, Key #74.</a:documentation> <value>Claves</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Claves, Key #75.</a:documentation> <value>Hi_Wood_Block</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hi Wood Block, Key #76.</a:documentation> <value>Low_Wood_Block</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Low Wood Block, Key #77.</a:documentation> <value>Mute_Cuica</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Mute Cuica, Key #78.</a:documentation> <value>Open_Cuica</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Open Cuica, Key #79.</a:documentation> <value>Mute_Triangle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Mute Triangle, Key #80.</a:documentation> <value>Open_Triangle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Open Triangle, Key #81.</a:documentation> </choice> </define> <define name="mei_data.MIDIVALUE"> <data type="token"> <param name="pattern">0|([1-9]|[1-9][0-9]|1([0-1][0-9]|2[0-7]))o?|128o</param> </data> </define> <define name="mei_data.MIDIVALUE_NAME"> <choice> <ref name="mei_data.MIDIVALUE"/> <ref name="mei_data.NCNAME"/> </choice> </define> <define name="mei_data.MIDIVALUE_PAN"> <choice> <ref name="mei_data.MIDIVALUE"/> <ref name="mei_data.PERCENT.LIMITED.SIGNED"/> </choice> </define> <define name="mei_data.MIDIVALUE_PERCENT"> <choice> <ref name="mei_data.MIDIVALUE"/> <ref name="mei_data.PERCENT.LIMITED"/> </choice> </define> <define name="mei_data.MODE"> <choice> <ref name="mei_data.MODE.cmn"/> <ref name="mei_data.MODE.gregorian"/> <ref name="mei_data.MODE.extended"/> </choice> </define> <define name="mei_data.MODE.cmn"> <choice> <value>major</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Major mode.</a:documentation> <value>minor</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Minor mode.</a:documentation> </choice> </define> <define name="mei_data.MODE.gregorian"> <choice> <value>dorian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dorian mode (the first mode).</a:documentation> <value>hypodorian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hypodorian mode (the second mode).</a:documentation> <value>phrygian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Phrygian mode (the third mode).</a:documentation> <value>hypophrygian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hypophrygian mode (the fourth mode).</a:documentation> <value>lydian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hypolydian mode (the fifth mode).</a:documentation> <value>hypolydian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lydian mode (the sixth mode).</a:documentation> <value>mixolydian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Mixolydian mode (the seventh mode).</a:documentation> <value>hypomixolydian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hypomixolydian mode (the eighth mode).</a:documentation> <value>peregrinus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tonus peregrinus (the ninth mode).</a:documentation> </choice> </define> <define name="mei_data.MODE.extended"> <choice> <value>ionian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Ionian mode.</a:documentation> <value>hypoionian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hypoionian mode.</a:documentation> <value>aeolian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Aeolian mode.</a:documentation> <value>hypoaeolian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hypoaeolian mode.</a:documentation> <value>locrian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Locrian mode.</a:documentation> <value>hypolocrian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hypolocrian mode.</a:documentation> </choice> </define> <define name="mei_data.MODSRELATIONSHIP"> <choice> <value>preceding</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Temporal predecessor of the resource.</a:documentation> <value>succeeding</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Temporal successor to the resource.</a:documentation> <value>original</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Original form of the resource.</a:documentation> <value>host</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Parent containing the resource.</a:documentation> <value>constituent</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Intellectual or physical component of the resource.</a:documentation> <value>otherVersion</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Version of the resource’s intellectual content not changed enough to be a different work.</a:documentation> <value>otherFormat</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Version of the resource in a different physical format.</a:documentation> <value>isReferencedBy</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Published bibliographic description, review, abstract, or index of the resource's content.</a:documentation> <value>references</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Cited or referred to in the resource.</a:documentation> </choice> </define> <define name="mei_data.MODUSMAIOR"> <data type="positiveInteger"> <param name="minInclusive">2</param> <param name="maxInclusive">3</param> </data> </define> <define name="mei_data.MODUSMINOR"> <data type="positiveInteger"> <param name="minInclusive">2</param> <param name="maxInclusive">3</param> </data> </define> <define name="mei_data.MUSICFONT"> <data type="token"/> </define> <define name="mei_data.NCNAME"> <data type="NCName"/> </define> <define name="mei_data.NMTOKEN"> <data type="NMTOKEN"/> </define> <define name="mei_data.NONSTAFFPLACE"> <choice> <value>botmar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">At the foot of the page.</a:documentation> <value>topmar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">At the top of the page.</a:documentation> <value>leftmar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">At the left of the page.</a:documentation> <value>rightmar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">At the right of the page.</a:documentation> <value>facing</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">On the opposite, i.e., facing, page.</a:documentation> <value>overleaf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">On the other side of the leaf.</a:documentation> <value>end</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">At the end of this division; e.g., chapter, volume, etc.</a:documentation> <value>inter</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Within a line text; i.e., an insertion.</a:documentation> <value>intra</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Between the lines of text, less exact than "sub" or "super".</a:documentation> <value>super</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Above a line of text, more exact than "intra(linear)". Do not confuse with superscript rendition.</a:documentation> <value>sub</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Below a line of text, more exact than "intra(linear)". Do not confuse with subscript rendition.</a:documentation> <value>inspace</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">In a predefined space; i.e., that left by an earlier scribe.</a:documentation> <value>superimposed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Obscures original text; e.g., via overstrike, addition of new writing surface material, etc.</a:documentation> </choice> </define> <define name="mei_data.NOTATIONTYPE"> <choice> <value>cmn</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Common Music Notation.</a:documentation> <value>mensural</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Mensural notation.</a:documentation> <value>mensural.black</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Black mensural notation.</a:documentation> <value>mensural.white</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">White mensural notation.</a:documentation> <value>neume</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Neumatic notation.</a:documentation> <value>tab</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tablature notation.</a:documentation> <value>tab.guitar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tablature notation for guitars (includes "spanish" lute tablature). Frets are indicated using numbers. Courses closest to the player's feet are at the top of the staff.</a:documentation> <value>tab.lute.french</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">"French" tablature notation for lutes. Frets are indicated using letters. Courses closest to the player's feet are at the top of the staff.</a:documentation> <value>tab.lute.italian</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">"Italian" tablature notation for lutes. Frets are indicated using numbers. Courses closest to the player's feet are at the bottom of the staff.</a:documentation> <value>tab.lute.german</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">"German" tablature notation for lutes. Fret and course information is conveyed solely by choice of symbol (vertical position is not used for this).</a:documentation> </choice> </define> <define name="mei_data.NOTEHEADMODIFIER"> <choice> <ref name="mei_data.NOTEHEADMODIFIER.list"/> <ref name="mei_data.NOTEHEADMODIFIER.pat"/> </choice> </define> <define name="mei_data.NOTEHEADMODIFIER.list"> <choice> <value>slash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Slash (upper right to lower left).</a:documentation> <value>backslash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Backslash (upper left to lower right).</a:documentation> <value>vline</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Vertical line.</a:documentation> <value>hline</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Horizontal line.</a:documentation> <value>centerdot</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Center dot.</a:documentation> <value>paren</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosing parentheses.</a:documentation> <value>brack</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosing square brackets.</a:documentation> <value>box</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosing box.</a:documentation> <value>circle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosing circle.</a:documentation> <value>fences</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosing "fences".</a:documentation> </choice> </define> <define name="mei_data.NOTEHEADMODIFIER.pat"> <choice> <data type="string"> <param name="pattern">centertext\((A|B|C|D|E|F|G)(f|♭|n|♮|s|♯)?\)</param> </data> <data type="string"> <param name="pattern">centertext\(H(s|♯)?\)</param> </data> </choice> </define> <define name="mei_data.OCTAVE"> <data type="nonNegativeInteger"> <param name="maxInclusive">9</param> </data> </define> <define name="mei_data.OCTAVE.DIS"> <data type="positiveInteger"> <param name="pattern">8|15|22</param> </data> </define> <define name="mei_data.ORIENTATION"> <data type="token"> <param name="pattern">reversed|90CW|90CCW</param> </data> </define> <define name="mei_data.NEIGHBORINGLAYER"> <choice> <value>above</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The layer immediately above.</a:documentation> <value>below</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The layer immediately below.</a:documentation> </choice> </define> <define name="mei_data.PAGE.PANELS"> <data type="positiveInteger"> <param name="minInclusive">1</param> <param name="maxInclusive">2</param> </data> </define> <define name="mei_data.PEDALSTYLE"> <choice> <value>line</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Continuous line with start and end positions rendered by vertical bars and bounces shown by upward-pointing "blips".</a:documentation> <value>pedline</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pedal down and half pedal rendered with "Ped." followed by a line with end position rendered by vertical bars and bounces shown by upward-pointing "blips".</a:documentation> <value>pedstar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pedal down and half pedal rendered with "Ped.", pedal up rendered by "*", pedal "bounce" rendered with "* Ped.".</a:documentation> <value>altpedstar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pedal up and down indications same as with "pedstar", but bounce is rendered with "Ped." only.</a:documentation> </choice> </define> <define name="mei_data.PERCENT"> <data type="token"> <param name="pattern">[0-9]+(\.[0-9]*)?%</param> </data> </define> <define name="mei_data.PERCENT.LIMITED"> <data type="token"> <param name="pattern">(([0-9]|[1-9][0-9])(\.[0-9]*)?|100(\.0*)?)%</param> </data> </define> <define name="mei_data.PERCENT.LIMITED.SIGNED"> <data type="token"> <param name="pattern">(\+|-)?(([0-9]|[1-9][0-9])(\.[0-9]*)?|100(\.0*)?)%</param> </data> </define> <define name="mei_data.PGFUNC"> <choice> <value>all</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Header or footer for all pages, including the first and the last page, unless a page header or footer for the first or the last page is provided.</a:documentation> <value>first</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Header or footer for the first page only.</a:documentation> <value>last</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Header or footer for the last page only.</a:documentation> <value>alt1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The first of an alternating pattern of headers or footers.</a:documentation> <value>alt2</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The second of an alternating pattern of headers or footers.</a:documentation> </choice> </define> <define name="mei_data.PGSCALE"> <ref name="mei_data.PERCENT"/> </define> <define name="mei_data.PITCHCLASS"> <data type="nonNegativeInteger"> <param name="maxInclusive">11</param> </data> </define> <define name="mei_data.PITCHNAME"> <data type="token"> <param name="pattern">[a-g]</param> </data> </define> <define name="mei_data.PITCHNAME.GESTURAL"> <data type="token"> <param name="pattern">[a-g]|none</param> </data> </define> <define name="mei_data.PITCHNUMBER"> <data type="nonNegativeInteger"/> </define> <define name="mei_data.PLACEMENT"> <choice> <ref name="mei_data.STAFFREL"/> <ref name="mei_data.NONSTAFFPLACE"/> <ref name="mei_data.NMTOKEN"/> </choice> </define> <define name="mei_data.PROLATIO"> <data type="positiveInteger"> <param name="minInclusive">2</param> <param name="maxInclusive">3</param> </data> </define> <define name="mei_data.RELATIONSHIP"> <choice> <ref name="mei_data.FRBRRELATIONSHIP"/> <ref name="mei_data.MODSRELATIONSHIP"/> <ref name="mei_data.NMTOKEN"/> </choice> </define> <define name="mei_data.ROTATION"> <choice> <ref name="mei_data.DEGREES"/> <ref name="mei_data.ROTATIONDIRECTION"/> </choice> </define> <define name="mei_data.ROTATIONDIRECTION"> <choice> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">No rotation.</a:documentation> <value>down</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Rotated 180 degrees.</a:documentation> <value>left</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Rotated 270 degrees clockwise.</a:documentation> <value>ne</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Rotated 45 degrees clockwise.</a:documentation> <value>nw</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Rotated 315 degrees clockwise.</a:documentation> <value>se</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Rotated 135 degrees clockwise.</a:documentation> <value>sw</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Rotated 225 degrees clockwise.</a:documentation> </choice> </define> <define name="mei_data.SCALEDEGREE"> <data type="token"> <param name="pattern">(\^|v)?[1-7](\+|\-)?</param> </data> </define> <define name="mei_data.SLASH"> <data type="positiveInteger"> <param name="minInclusive">1</param> <param name="maxInclusive">6</param> </data> </define> <define name="mei_data.SLUR"> <data type="token"> <param name="pattern">[i|m|t][1-6]</param> </data> </define> <define name="mei_data.STAFFITEM"> <choice> <ref name="mei_data.STAFFITEM.basic"/> <ref name="mei_data.STAFFITEM.cmn"/> <ref name="mei_data.STAFFITEM.mensural"/> <ref name="mei_data.STAFFITEM.neumes"/> </choice> </define> <define name="mei_data.STAFFITEM.basic"> <choice> <value>accid</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Accidentals.</a:documentation> <value>annot</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Annotations.</a:documentation> <value>artic</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Articulations.</a:documentation> <value>dir</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Directives.</a:documentation> <value>dynam</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dynamics.</a:documentation> <value>harm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Harmony indications.</a:documentation> <value>ornam</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Ornaments.</a:documentation> <value>sp</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Spoken text.</a:documentation> <value>stageDir</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stage directions.</a:documentation> <value>tempo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tempo markings.</a:documentation> </choice> </define> <define name="mei_data.STAFFLOC"> <data type="integer"/> </define> <define name="mei_data.STAFFREL"> <choice> <ref name="mei_data.STAFFREL.basic"/> <ref name="mei_data.STAFFREL.extended"/> </choice> </define> <define name="mei_data.STAFFREL.basic"> <choice> <value>above</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Above the staff.</a:documentation> <value>below</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Below the staff.</a:documentation> </choice> </define> <define name="mei_data.STAFFREL.extended"> <choice> <value>between</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Between staves.</a:documentation> <value>within</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Within/on the staff.</a:documentation> </choice> </define> <define name="mei_data.STEMDIRECTION"> <choice> <ref name="mei_data.STEMDIRECTION.basic"/> <ref name="mei_data.STEMDIRECTION.extended"/> </choice> </define> <define name="mei_data.STEMDIRECTION.basic"> <choice> <value>up</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem points upwards.</a:documentation> <value>down</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem points downwards.</a:documentation> </choice> </define> <define name="mei_data.STEMDIRECTION.extended"> <choice> <value>left</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem points left.</a:documentation> <value>right</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem points right.</a:documentation> <value>ne</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem points up and right.</a:documentation> <value>se</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem points down and right.</a:documentation> <value>nw</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem points up and left.</a:documentation> <value>sw</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem points down and left.</a:documentation> </choice> </define> <define name="mei_data.STEMMODIFIER"> <choice> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">No modifications to stem.</a:documentation> <value>1slash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">1 slash through stem.</a:documentation> <value>2slash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">2 slashes through stem.</a:documentation> <value>3slash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">3 slashes through stem.</a:documentation> <value>4slash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">4 slashes through stem.</a:documentation> <value>5slash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">5 slashes through stem.</a:documentation> <value>6slash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">6 slashes through stem.</a:documentation> <value>sprech</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">X placed on stem.</a:documentation> <value>z</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Z placed on stem.</a:documentation> </choice> </define> <define name="mei_data.STEMPOSITION"> <choice> <value>left</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem attached to left side of note head.</a:documentation> <value>right</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem attached to right side of note head.</a:documentation> <value>center</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem is originates from center of note head.</a:documentation> </choice> </define> <define name="mei_data.STRINGNUMBER"> <data type="positiveInteger"/> </define> <define name="mei_data.TEMPERAMENT"> <choice> <value>equal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Equal or 12-tone temperament.</a:documentation> <value>just</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Just intonation.</a:documentation> <value>mean</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Meantone intonation.</a:documentation> <value>pythagorean</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pythagorean tuning.</a:documentation> </choice> </define> <define name="mei_data.TEMPOVALUE"> <data type="decimal"/> </define> <define name="mei_data.TEMPUS"> <data type="positiveInteger"> <param name="minInclusive">2</param> <param name="maxInclusive">3</param> </data> </define> <define name="mei_data.TEXTRENDITIONLIST"> <choice> <value>quote</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Surrounded by single quotes.</a:documentation> <value>quotedbl</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Surrounded by double quotes.</a:documentation> <value>italic</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Italicized (slanted to right).</a:documentation> <value>oblique</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Oblique (slanted to left).</a:documentation> <value>smcaps</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Small capitals.</a:documentation> <value>bold</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Relative font weight.</a:documentation> <value>bolder</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Relative font weight.</a:documentation> <value>lighter</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Relative font weight.</a:documentation> <value>box</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosed in box.</a:documentation> <value>circle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosed in ellipse/circle.</a:documentation> <value>dbox</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosed in diamond.</a:documentation> <value>tbox</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosed in triangle.</a:documentation> <value>bslash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Struck through by '\' (back slash).</a:documentation> <value>fslash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Struck through by '/' (forward slash).</a:documentation> <value>line-through</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Struck through by '-'; may be qualified to indicate multiple parallel lines, e.g., line-through(2).</a:documentation> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Not rendered, invisible.</a:documentation> <value>overline</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Line above the text; may be qualified to indicate multiple parallel lines, e.g., overline(3).</a:documentation> <value>overstrike</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Use for deleted text fully or partially obscured by other text (such as 'XXXXX') or musical symbols (such as notes, rests, etc.).</a:documentation> <value>strike</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Struck through by '-'; equivalent to line-through; may be qualified to indicate multiple parallel lines, e.g., strike(3).</a:documentation> <value>sub</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Subscript.</a:documentation> <value>sup</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Superscript.</a:documentation> <value>superimpose</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Use for added text or musical symbols that fully or partially obscure text from an earlier writing stage.</a:documentation> <value>underline</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Underlined; may be qualified to indicate multiple parallel lines, e.g., underline(2).</a:documentation> <value>x-through</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Crossed-out; equivalent to 'bslash' (\) plus 'fslash' (/); that is, a hand-written 'X'; may be qualified to indicate multiple parallel lines, e.g., x-through(2).</a:documentation> <value>ltr</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Left-to-right (BIDI embed).</a:documentation> <value>rtl</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Right-to-left (BIDI embed).</a:documentation> <value>lro</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Left-to-right (BIDI override).</a:documentation> <value>rlo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Right-to-left (BIDI override).</a:documentation> </choice> </define> <define name="mei_data.TEXTRENDITIONPAR"> <data type="string"> <param name="pattern">(underline|overline|line-through|strike|x-through)\(\d+\)</param> </data> </define> <define name="mei_data.TEXTRENDITION"> <choice> <ref name="mei_data.TEXTRENDITIONLIST"/> <ref name="mei_data.TEXTRENDITIONPAR"/> </choice> </define> <define name="mei_data.TIE"> <data type="token"> <param name="pattern">[i|m|t]</param> </data> </define> <define name="mei_data.TSTAMPOFFSET"> <data type="decimal"/> </define> <define name="mei_data.TUPLET"> <data type="token"> <param name="pattern">[i|m|t][1-6]</param> </data> </define> <define name="mei_data.URI"> <data type="anyURI"/> </define> <define name="mei_data.VERTICALALIGNMENT"> <choice> <value>top</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Top aligned.</a:documentation> <value>middle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Middle aligned.</a:documentation> <value>bottom</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bottom aligned.</a:documentation> <value>baseline</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Baseline aligned.</a:documentation> </choice> </define> <define name="mei_data.WORD"> <data type="token"> <param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})*</param> </data> </define> <define name="mei_data.DURATION.cmn"> <choice> <value>long</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Quadruple whole note.</a:documentation> <value>breve</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Double whole note.</a:documentation> <value>1</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Whole note.</a:documentation> <value>2</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Half note.</a:documentation> <value>4</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Quarter note.</a:documentation> <value>8</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">8th note.</a:documentation> <value>16</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">16th note.</a:documentation> <value>32</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">32nd note.</a:documentation> <value>64</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">64th note.</a:documentation> <value>128</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">128th note.</a:documentation> <value>256</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">256th note.</a:documentation> <value>512</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">512th note.</a:documentation> <value>1024</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">1024th note.</a:documentation> <value>2048</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">2048th note.</a:documentation> </choice> </define> <define name="mei_data.HARPPEDALPOSITION"> <choice> <value>f</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flat.</a:documentation> <value>n</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Natural.</a:documentation> <value>s</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sharp.</a:documentation> </choice> </define> <define name="mei_data.STAFFITEM.cmn"> <choice> <value>beam</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Beams.</a:documentation> <value>bend</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bend indications.</a:documentation> <value>bracketSpan</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Brackets, e.g., for transcribed ligatures.</a:documentation> <value>breath</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Breath marks.</a:documentation> <value>cpMark</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Copy marks.</a:documentation> <value>fermata</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Fermatas.</a:documentation> <value>fing</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Fingerings.</a:documentation> <value>hairpin</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hairpin dynamics.</a:documentation> <value>harpPedal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Harp pedals.</a:documentation> <value>lv</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Laissez vibrer indications, sometimes called "open ties".</a:documentation> <value>mordent</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Mordents.</a:documentation> <value>octave</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Octaviation marks.</a:documentation> <value>pedal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Piano pedal marks.</a:documentation> <value>reh</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Rehearsal marks.</a:documentation> <value>tie</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Ties.</a:documentation> <value>trill</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Trills.</a:documentation> <value>tuplet</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tuplets.</a:documentation> <value>turn</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Turns.</a:documentation> </choice> </define> <define name="mei_data.ORNAM.cmn"> <data type="token"> <param name="pattern">[A|a|b|I|i|K|k|M|m|N|n|S|s|T|t|O]|(A|a|S|s|K|k)?(T|t|M|m)(I|i|S|s)?</param> </data> </define> <define name="mei_data.FRBRRELATIONSHIP"> <choice> <value>hasAbridgement</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is an abridgement, condensation, or expurgation of the current entity.</a:documentation> <value>isAbridgementOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasAbridgement.</a:documentation> <value>hasAdaptation</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is an adaptation, paraphrase, free translation, variation (music), harmonization (music), or fantasy (music) of the current entity.</a:documentation> <value>isAdaptationOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasAdaptation.</a:documentation> <value>hasAlternate</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is an alternate format or simultaneously released edition of the current entity.</a:documentation> <value>isAlternateOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasAlternate.</a:documentation> <value>hasArrangement</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is an arrangement (music) of the current entity.</a:documentation> <value>isArrangementOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasArrangement.</a:documentation> <value>hasComplement</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a cadenza, libretto, choreography, ending for unfinished work, incidental music, or musical setting of a text of the current entity.</a:documentation> <value>isComplementOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasComplement.</a:documentation> <value>hasEmbodiment</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a physical embodiment of the current abstract entity; describes the expression-to-manifestation relationship.</a:documentation> <value>isEmbodimentOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasEmbodiment.</a:documentation> <value>hasExemplar</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is an exemplar of the class of things represented by the current entity; describes the manifestation-to-item relationship.</a:documentation> <value>isExemplarOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasExamplar.</a:documentation> <value>hasImitation</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a parody, imitation, or travesty of the current entity.</a:documentation> <value>isImitationOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasImitation.</a:documentation> <value>hasPart</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a chapter, section, part, etc.; volume of a multivolume manifestation; volume/issue of serial; intellectual part of a multi-part work; illustration for a text; sound aspect of a film; soundtrack for a film on separate medium; soundtrack for a film embedded in film; monograph in a series; physical component of a particular copy; the binding of a book of the current entity.</a:documentation> <value>isPartOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasPart.</a:documentation> <value>hasRealization</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a realization of the current entity; describes the work-to-expression relationship.</a:documentation> <value>isRealizationOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasRealization.</a:documentation> <value>hasReconfiguration</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target has been reconfigured: bound with, split into, extracted from the current entity.</a:documentation> <value>isReconfigurationOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasReconfiguration.</a:documentation> <value>hasReproduction</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a reproduction, microreproduction, macroreproduction, reprint, photo-offset reprint, or facsimile of the current entity.</a:documentation> <value>isReproductionOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasReproduction.</a:documentation> <value>hasRevision</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a revised edition, enlarged edition, or new state (graphic) of the current entity.</a:documentation> <value>isRevisionOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasRevision.</a:documentation> <value>hasSuccessor</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a sequel or succeeding work of the current entity.</a:documentation> <value>isSuccessorOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasSuccessor.</a:documentation> <value>hasSummarization</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a digest or abstract of the current entity.</a:documentation> <value>isSummarizationOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasSummarization.</a:documentation> <value>hasSupplement</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is an index, concordance, teacher’s guide, gloss, supplement, or appendix of the current entity.</a:documentation> <value>isSupplementOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasSupplement.</a:documentation> <value>hasTransformation</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a dramatization, novelization, versification, or screenplay of the current entity.</a:documentation> <value>isTransformationOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasTransformation.</a:documentation> <value>hasTranslation</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Target is a literal translation or transcription (music) of the current entity.</a:documentation> <value>isTranslationOf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Reciprocal relationship of hasTranslation.</a:documentation> </choice> </define> <define name="mei_macro.availabilityPart"> <choice> <group> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_accessRestrict"/> <ref name="mei_distributor"/> <ref name="mei_price"/> <ref name="mei_sysReq"/> <ref name="mei_useRestrict"/> <ref name="mei_model.addressLike"/> <ref name="mei_model.dateLike"/> <ref name="mei_model.identifierLike"/> </choice> </zeroOrMore> </group> <text/> </choice> </define> <define name="mei_macro.bibldescPart"> <optional> <ref name="mei_editionStmt"/> </optional> <optional> <ref name="mei_pubStmt"/> </optional> <optional> <ref name="mei_availability"/> </optional> <zeroOrMore> <ref name="mei_physDesc"/> </zeroOrMore> <zeroOrMore> <ref name="mei_physLoc"/> </zeroOrMore> <zeroOrMore> <ref name="mei_seriesStmt"/> </zeroOrMore> </define> <define name="mei_data.DURATION.mensural"> <choice> <value>maxima</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Two or three times as long as a longa.</a:documentation> <value>longa</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Two or three times as long as a brevis.</a:documentation> <value>brevis</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Two or three times as long as a semibreve.</a:documentation> <value>semibrevis</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Half or one-third as long as a breve/brevis.</a:documentation> <value>minima</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Half or one-third as long as a semibreve/semibrevis.</a:documentation> <value>semiminima</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Half as long as a minima.</a:documentation> <value>fusa</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Half as long as a semiminima.</a:documentation> <value>semifusa</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Half as long as a fusa.</a:documentation> </choice> </define> <define name="mei_data.MULTIBREVERESTS.mensural"> <choice> <value>2B</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A two-breve rest.</a:documentation> <value>3B</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A three-breve rest.</a:documentation> </choice> </define> <define name="mei_data.DURATIONRESTS.mensural"> <choice> <ref name="mei_data.MULTIBREVERESTS.mensural"/> <ref name="mei_data.DURATION.mensural"/> </choice> </define> <define name="mei_data.DURQUALITY.mensural"> <choice> <value>perfecta</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Three times the duration of the note in the next smaller degree.</a:documentation> <value>imperfecta</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Two times the duration of the note in the next smaller degree.</a:documentation> <value>altera</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Twice the original duration of the note (only usable in perfect mensurations).</a:documentation> <value>minor</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Category of a regular semibrevis in Ars antiqua, equivalent to a third of a brevis.</a:documentation> <value>maior</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Category of an altered semibrevis in Ars antiqua, equivalent to two minor semibrevis.</a:documentation> <value>duplex</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">One of the three categories of a longa in Ars antiqua ('duplex', 'perfecta', and 'imperfecta'). A duplex longa is twice as long as a regular longa.</a:documentation> </choice> </define> <define name="mei_data.FLAGFORM.mensural"> <choice> <value>straight</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flag is a straight horizontal line.</a:documentation> <value>angled</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flag is a straight line at an angle.</a:documentation> <value>curled</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flag is curled.</a:documentation> <value>flared</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flag is flared.</a:documentation> <value>extended</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flag looks extended.</a:documentation> <value>hooked</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flag is hooked-form.</a:documentation> </choice> </define> <define name="mei_data.FLAGPOS.mensural"> <choice> <value>left</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flag lies at the left side of the stem.</a:documentation> <value>right</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flag lies at the right side of the stem.</a:documentation> <value>center</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Flag is centered in the stem.</a:documentation> </choice> </define> <define name="mei_data.STAFFITEM.mensural"> <choice> <value>ligature</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Ligatures.</a:documentation> </choice> </define> <define name="mei_data.STEMFORM.mensural"> <choice> <value>circle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem has a circular form.</a:documentation> <value>oblique</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem has an oblique form.</a:documentation> <value>swallowtail</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem has a swallowtail form.</a:documentation> <value>virgula</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Stem has a virgula-like form.</a:documentation> </choice> </define> <define name="mei_data.STAFFITEM.neumes"> <empty/> </define> <define name="mei_macro.anyXML"> <element> <anyName> <except> <nsName ns="http://www.music-encoding.org/ns/mei"/> <nsName ns="http://www.w3.org/2000/svg"/> </except> </anyName> <zeroOrMore> <attribute> <anyName/> </attribute> </zeroOrMore> <zeroOrMore> <choice> <text/> <ref name="mei_macro.anyXML"/> </choice> </zeroOrMore> </element> </define> <define name="mei_macro.metaLike.page"> <optional> <ref name="mei_pgHead"/> </optional> <optional> <ref name="mei_pgFoot"/> </optional> <optional> <ref name="mei_pgDesc"/> </optional> </define> <define name="mei_macro.musicPart"> <optional> <ref name="mei_model.frontLike"/> </optional> <optional> <choice> <ref name="mei_body"/> <ref name="mei_group"/> </choice> </optional> <optional> <ref name="mei_model.backLike"/> </optional> </define> <define name="mei_macro.struc-unstrucContent"> <choice> <group> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.pLike"/> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> </define> <define name="mei_macro.titlePart"> <zeroOrMore> <choice> <ref name="mei_model.addressLike"/> <ref name="mei_model.addressPart"/> <ref name="mei_model.annotLike"/> <ref name="mei_model.biblLike"/> <ref name="mei_model.dateLike"/> <ref name="mei_model.editorialLike"/> <ref name="mei_model.figureLike"/> <ref name="mei_model.identifierLike"/> <ref name="mei_model.lbLike"/> <ref name="mei_model.locrefLike"/> <ref name="mei_model.measurementLike"/> <ref name="mei_model.nameLike"/> <ref name="mei_model.nameLike.label"/> <ref name="mei_model.pbLike"/> <ref name="mei_model.rendLike"/> <ref name="mei_symbol"/> </choice> </zeroOrMore> </define> <define name="mei_macro.watermark"> <optional> <ref name="mei_model.addressLike"/> </optional> <optional> <ref name="mei_model.annotLike"/> </optional> <optional> <ref name="mei_model.biblLike"/> </optional> <optional> <ref name="mei_model.dateLike"/> </optional> <optional> <ref name="mei_model.dimLike"/> </optional> <optional> <ref name="mei_model.figureLike"/> </optional> <optional> <ref name="mei_model.geogNamePart"/> </optional> <optional> <ref name="mei_model.identifierLike"/> </optional> <optional> <ref name="mei_model.locrefLike"/> </optional> <optional> <ref name="mei_model.measurementLike"/> </optional> <optional> <ref name="mei_model.nameLike.geogName"/> </optional> <optional> <ref name="mei_model.qLike"/> </optional> <optional> <ref name="mei_model.relationLike"/> </optional> <optional> <ref name="mei_model.rendLike"/> </optional> <optional> <ref name="mei_model.titleLike"/> </optional> <optional> <ref name="mei_biblList"/> </optional> <optional> <ref name="mei_dimensions"/> </optional> <optional> <ref name="mei_extent"/> </optional> <optional> <ref name="mei_heraldry"/> </optional> <optional> <ref name="mei_locus"/> </optional> <optional> <ref name="mei_locusGrp"/> </optional> <optional> <ref name="mei_term"/> </optional> </define> <define name="mei_data.BETYPE"> <choice> <value>byte</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bytes.</a:documentation> <value>smil</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Synchronized Multimedia Integration Language.</a:documentation> <value>midi</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI clicks.</a:documentation> <value>mmc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI machine code.</a:documentation> <value>mtc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI time code.</a:documentation> <value>smpte-25</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">SMPTE 25 EBU.</a:documentation> <value>smpte-24</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">SMPTE 24 Film Sync.</a:documentation> <value>smpte-df30</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">SMPTE 30 Drop.</a:documentation> <value>smpte-ndf30</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">SMPTE 30 Non-Drop.</a:documentation> <value>smpte-df29.97</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">SMPTE 29.97 Drop.</a:documentation> <value>smpte-ndf29.97</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">SMPTE 29.97 Non-Drop.</a:documentation> <value>tcf</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">AES Time-code character format.</a:documentation> <value>time</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">ISO 24-hour time format: HH:MM:SS.ss.</a:documentation> </choice> </define> <define name="mei_data.COURSENUMBER"> <data type="positiveInteger"/> </define> <define name="mei_data.COURSETUNING"> <choice> <value>guitar.standard</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Standard tuning for current guitars. The courses are tuned to E2 A2 D3 G3 B3 E4.</a:documentation> <value>guitar.drop.D</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Drop D tuning for guitars. The lowest course is tuned down to D, while all other courses are kept to their regular pitches. D2 A2 D3 G3 B3 E4.</a:documentation> <value>guitar.open.D</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Open D tuning for guitars. D2 A2 D3 F3s A3 D4.</a:documentation> <value>guitar.open.G</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Open G tuning for guitars. D2 G2 D3 G3 B3 D4.</a:documentation> <value>guitar.open.A</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Open A tuning for guitars. E2 A2 E3 A3 C4s E4.</a:documentation> <value>lute.renaissance.6</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Renaissance tuning for lutes with 6 courses. G2 C3 F3 A3 D4 G4.</a:documentation> <value>lute.baroque.d.major</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Baroque tuning for lutes with 6 stable courses, and additional bass courses tuned to the key of D Major. A2 D3 F3s A3 D4 F4s for the main six courses, and bass courses descending in pitch from G2, F2s, etc., depending on the size of the instrument.</a:documentation> <value>lute.baroque.d.minor</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Baroque tuning for lutes with 6 stable courses, and additional bass courses tuned to the key of D minor. A2 D3 F3 A3 D4 F4 for the main six courses, and bass courses descending in pitch from G2, F2, etc., depending on the size of the instrument. </a:documentation> </choice> </define> <define name="mei_att.notationType.attributes"> <ref name="mei_att.notationType.attribute.notationtype"/> <ref name="mei_att.notationType.attribute.notationsubtype"/> </define> <define name="mei_att.notationType.attribute.notationtype"> <optional> <attribute name="notationtype"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains classification of the notation contained or described by the element bearing this attribute.</a:documentation> <ref name="mei_data.NOTATIONTYPE"/> </attribute> </optional> </define> <define name="mei_att.notationType.attribute.notationsubtype"> <optional> <attribute name="notationsubtype"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides any sub-classification of the notation contained or described by the element, additional to that given by its notationtype attribute.</a:documentation> <data type="NMTOKEN"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.notationType-notationsubtype-When_notationsubtype-constraint-rule-5"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[@notationsubtype]"> <sch:assert test="@notationtype">An element with a notationsubtype attribute must have a notationtype attribute.</sch:assert> </sch:rule> </pattern> <define name="mei_att.accid.anl.attributes"> <empty/> </define> <define name="mei_att.ambitus.anl.attributes"> <ref name="mei_att.intervalHarmonic.attributes"/> </define> <define name="mei_att.ambNote.anl.attributes"> <empty/> </define> <define name="mei_att.anchoredText.anl.attributes"> <empty/> </define> <define name="mei_att.annot.anl.attributes"> <empty/> </define> <define name="mei_att.arpeg.anl.attributes"> <empty/> </define> <define name="mei_att.artic.anl.attributes"> <empty/> </define> <define name="mei_att.attacca.anl.attributes"> <empty/> </define> <define name="mei_att.barLine.anl.attributes"> <empty/> </define> <define name="mei_att.beam.anl.attributes"> <empty/> </define> <define name="mei_att.beamSpan.anl.attributes"> <empty/> </define> <define name="mei_att.beatRpt.anl.attributes"> <empty/> </define> <define name="mei_att.bend.anl.attributes"> <empty/> </define> <define name="mei_att.bracketSpan.anl.attributes"> <empty/> </define> <define name="mei_att.breath.anl.attributes"> <empty/> </define> <define name="mei_att.bTrem.anl.attributes"> <empty/> </define> <define name="mei_att.caesura.anl.attributes"> <empty/> </define> <define name="mei_att.chord.anl.attributes"> <ref name="mei_att.chord.anl.cmn.attributes"/> </define> <define name="mei_att.chordDef.anl.attributes"> <empty/> </define> <define name="mei_att.chordMember.anl.attributes"> <ref name="mei_att.intervalHarmonic.attributes"/> </define> <define name="mei_att.clef.anl.attributes"> <empty/> </define> <define name="mei_att.clefGrp.anl.attributes"> <empty/> </define> <define name="mei_att.course.anl.attributes"> <empty/> </define> <define name="mei_att.cpMark.anl.attributes"> <empty/> </define> <define name="mei_att.curve.anl.attributes"> <empty/> </define> <define name="mei_att.custos.anl.attributes"> <empty/> </define> <define name="mei_att.mdiv.anl.attributes"> <empty/> </define> <define name="mei_att.dir.anl.attributes"> <empty/> </define> <define name="mei_att.dot.anl.attributes"> <empty/> </define> <define name="mei_att.dynam.anl.attributes"> <empty/> </define> <define name="mei_att.ending.anl.attributes"> <empty/> </define> <define name="mei_att.episema.anl.attributes"> <empty/> </define> <define name="mei_att.f.anl.attributes"> <empty/> </define> <define name="mei_att.fermata.anl.attributes"> <empty/> </define> <define name="mei_att.fing.anl.attributes"> <empty/> </define> <define name="mei_att.fingGrp.anl.attributes"> <empty/> </define> <define name="mei_att.fTrem.anl.attributes"> <empty/> </define> <define name="mei_att.gliss.anl.attributes"> <empty/> </define> <define name="mei_att.grpSym.anl.attributes"> <empty/> </define> <define name="mei_att.hairpin.anl.attributes"> <empty/> </define> <define name="mei_att.halfmRpt.anl.attributes"> <empty/> </define> <define name="mei_att.harm.anl.attributes"> <ref name="mei_att.intervalHarmonic.attributes"/> <ref name="mei_att.harm.anl.attribute.form"/> </define> <define name="mei_att.harm.anl.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates to what degree the harmonic label is supported by the notation.</a:documentation> <choice> <value>explicit</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The notation contains all the notes necessary for the harmonic label, e.g., the notes "D F♯ A" for the harmonic label "D".</a:documentation> <value>implied</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The harmonic label relies on notes implied, but not actually present, in the notation, e.g., the notes "D F♯ C" for the harmonic label "D7". The note "A" is missing from the notation, but can be implied.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.graceGrp.anl.attributes"> <empty/> </define> <define name="mei_att.harmonicFunction.attributes"> <ref name="mei_att.harmonicFunction.attribute.deg"/> </define> <define name="mei_att.harmonicFunction.attribute.deg"> <optional> <attribute name="deg"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(degree) Captures scale degree information using <a xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0" href="https://www.humdrum.org/rep/deg/">Humdrum **deg syntax</a> -- an optional indicator of melodic approach (^ = ascending approach, v = descending approach), a scale degree value (1 = tonic ... 7 = leading tone), and an optional indication of chromatic alteration, 1, v7, ^1, or v5+, for example. The amount of chromatic alternation is not indicated.</a:documentation> <ref name="mei_data.SCALEDEGREE"/> </attribute> </optional> </define> <define name="mei_att.harpPedal.anl.attributes"> <empty/> </define> <define name="mei_att.hispanTick.anl.attributes"> <empty/> </define> <define name="mei_att.instrDef.anl.attributes"> <empty/> </define> <define name="mei_att.intervalHarmonic.attributes"> <ref name="mei_att.intervalHarmonic.attribute.inth"/> </define> <define name="mei_att.intervalHarmonic.attribute.inth"> <optional> <attribute name="inth"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(interval harmonic) Encodes the harmonic interval between pitches occurring at the same time.</a:documentation> <list> <oneOrMore> <ref name="mei_data.INTERVAL.HARMONIC"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.intervalMelodic.attributes"> <ref name="mei_att.intervalMelodic.attribute.intm"/> </define> <define name="mei_att.intervalMelodic.attribute.intm"> <optional> <attribute name="intm"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(interval melodic) Encodes the melodic interval from the previous pitch. The value may be a general directional indication (u, d, s, etc.), an indication of diatonic interval direction, quality, and size, or a precise numeric value in half steps.</a:documentation> <ref name="mei_data.INTERVAL.MELODIC"/> </attribute> </optional> </define> <define name="mei_att.keyAccid.anl.attributes"> <empty/> </define> <define name="mei_att.keySig.anl.attributes"> <ref name="mei_att.accidental.attributes"/> <ref name="mei_att.keyMode.attributes"/> <ref name="mei_att.pitch.attributes"/> </define> <define name="mei_att.keySigDefault.anl.attributes"> <ref name="mei_att.keySigDefault.anl.attribute.key.accid"/> <ref name="mei_att.keySigDefault.anl.attribute.key.mode"/> <ref name="mei_att.keySigDefault.anl.attribute.key.pname"/> </define> <define name="mei_att.keySigDefault.anl.attribute.key.accid"> <optional> <attribute name="key.accid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains an accidental for the tonic key, if one is required, e.g., if <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@key.pname</code> equals c and <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@key.accid</code> equals s, then a tonic of C# is indicated.</a:documentation> <ref name="mei_data.ACCIDENTAL.GESTURAL"/> </attribute> </optional> </define> <define name="mei_att.keySigDefault.anl.attribute.key.mode"> <optional> <attribute name="key.mode"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates major, minor, or other tonality.</a:documentation> <ref name="mei_data.MODE"/> </attribute> </optional> </define> <define name="mei_att.keySigDefault.anl.attribute.key.pname"> <optional> <attribute name="key.pname"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the pitch name of the tonic key, e.g., c for the key of C.</a:documentation> <ref name="mei_data.PITCHNAME"/> </attribute> </optional> </define> <define name="mei_att.layer.anl.attributes"> <empty/> </define> <define name="mei_att.layerDef.anl.attributes"> <empty/> </define> <define name="mei_att.ligature.anl.attributes"> <empty/> </define> <define name="mei_att.line.anl.attributes"> <empty/> </define> <define name="mei_att.liquescent.anl.attributes"> <empty/> </define> <define name="mei_att.lv.anl.attributes"> <empty/> </define> <define name="mei_att.lyrics.anl.attributes"> <empty/> </define> <define name="mei_att.measure.anl.attributes"> <ref name="mei_att.joined.attributes"/> </define> <define name="mei_att.melodicFunction.attributes"> <ref name="mei_att.melodicFunction.attribute.mfunc"/> </define> <define name="mei_att.melodicFunction.attribute.mfunc"> <optional> <attribute name="mfunc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes melodic function using <a xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0" href="https://www.humdrum.org/rep/embel/">Humdrum **embel syntax</a>.</a:documentation> <ref name="mei_data.MELODICFUNCTION"/> </attribute> </optional> </define> <define name="mei_att.mensur.anl.attributes"> <empty/> </define> <define name="mei_att.metaMark.anl.attributes"> <empty/> </define> <define name="mei_att.meterSig.anl.attributes"> <empty/> </define> <define name="mei_att.meterSigGrp.anl.attributes"> <empty/> </define> <define name="mei_att.midi.anl.attributes"> <empty/> </define> <define name="mei_att.mNum.anl.attributes"> <empty/> </define> <define name="mei_att.mordent.anl.attributes"> <empty/> </define> <define name="mei_att.mRest.anl.attributes"> <ref name="mei_att.fermataPresent.attributes"/> </define> <define name="mei_att.mRpt.anl.attributes"> <empty/> </define> <define name="mei_att.mRpt2.anl.attributes"> <empty/> </define> <define name="mei_att.mSpace.anl.attributes"> <ref name="mei_att.fermataPresent.attributes"/> </define> <define name="mei_att.multiRest.anl.attributes"> <empty/> </define> <define name="mei_att.multiRpt.anl.attributes"> <empty/> </define> <define name="mei_att.nc.anl.attributes"> <ref name="mei_att.harmonicFunction.attributes"/> <ref name="mei_att.intervalMelodic.attributes"/> <ref name="mei_att.melodicFunction.attributes"/> <ref name="mei_att.neumeType.attributes"/> <ref name="mei_att.pitchClass.attributes"/> <ref name="mei_att.solfa.attributes"/> </define> <define name="mei_att.ncGrp.anl.attributes"> <empty/> </define> <define name="mei_att.neume.anl.attributes"> <ref name="mei_att.neumeType.attributes"/> </define> <define name="mei_att.note.anl.attributes"> <ref name="mei_att.accidental.attributes"/> <ref name="mei_att.articulation.attributes"/> <ref name="mei_att.harmonicFunction.attributes"/> <ref name="mei_att.intervalMelodic.attributes"/> <ref name="mei_att.melodicFunction.attributes"/> <ref name="mei_att.note.anl.cmn.attributes"/> <ref name="mei_att.note.anl.mensural.attributes"/> <ref name="mei_att.fermataPresent.attributes"/> <ref name="mei_att.pitchClass.attributes"/> <ref name="mei_att.solfa.attributes"/> </define> <define name="mei_att.octave.anl.attributes"> <empty/> </define> <define name="mei_att.ornam.anl.attributes"> <empty/> </define> <define name="mei_att.oriscus.anl.attributes"> <empty/> </define> <define name="mei_att.ossia.anl.attributes"> <empty/> </define> <define name="mei_att.pad.anl.attributes"> <empty/> </define> <define name="mei_att.part.anl.attributes"> <empty/> </define> <define name="mei_att.parts.anl.attributes"> <empty/> </define> <define name="mei_att.pb.anl.attributes"> <empty/> </define> <define name="mei_att.pedal.anl.attributes"> <empty/> </define> <define name="mei_att.phrase.anl.attributes"> <ref name="mei_att.joined.attributes"/> </define> <define name="mei_att.pitchClass.attributes"> <ref name="mei_att.pitchClass.attribute.pclass"/> </define> <define name="mei_att.pitchClass.attribute.pclass"> <optional> <attribute name="pclass"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pitch class) Holds pitch class information.</a:documentation> <ref name="mei_data.PITCHCLASS"/> </attribute> </optional> </define> <define name="mei_att.plica.anl.attributes"> <empty/> </define> <define name="mei_att.proport.anl.attributes"> <empty/> </define> <define name="mei_att.quilisma.anl.attributes"> <empty/> </define> <define name="mei_att.rdg.anl.attributes"> <empty/> </define> <define name="mei_att.refrain.anl.attributes"> <empty/> </define> <define name="mei_att.reh.anl.attributes"> <empty/> </define> <define name="mei_att.repeatMark.anl.attributes"> <empty/> </define> <define name="mei_att.rest.anl.attributes"> <ref name="mei_att.rest.anl.cmn.attributes"/> </define> <define name="mei_att.sb.anl.attributes"> <empty/> </define> <define name="mei_att.score.anl.attributes"> <empty/> </define> <define name="mei_att.scoreDef.anl.attributes"> <ref name="mei_att.keySigDefault.anl.attributes"/> </define> <define name="mei_att.section.anl.attributes"> <empty/> </define> <define name="mei_att.slur.anl.attributes"> <ref name="mei_att.joined.attributes"/> </define> <define name="mei_att.signifLet.anl.attributes"> <empty/> </define> <define name="mei_att.solfa.attributes"> <ref name="mei_att.solfa.attribute.psolfa"/> </define> <define name="mei_att.solfa.attribute.psolfa"> <optional> <attribute name="psolfa"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pitch sol-fa) Contains sol-fa designation, e.g., do, re, mi, etc., in either a fixed or movable Do system.</a:documentation> <data type="NMTOKEN"/> </attribute> </optional> </define> <define name="mei_att.sp.anl.attributes"> <empty/> </define> <define name="mei_att.space.anl.attributes"> <ref name="mei_att.space.anl.cmn.attributes"/> </define> <define name="mei_att.staff.anl.attributes"> <empty/> </define> <define name="mei_att.staffDef.anl.attributes"> <ref name="mei_att.keySigDefault.anl.attributes"/> </define> <define name="mei_att.staffGrp.anl.attributes"> <empty/> </define> <define name="mei_att.stageDir.anl.attributes"> <empty/> </define> <define name="mei_att.stem.anl.attributes"> <empty/> </define> <define name="mei_att.strophicus.anl.attributes"> <empty/> </define> <define name="mei_att.syl.anl.attributes"> <empty/> </define> <define name="mei_att.syllable.anl.attributes"> <empty/> </define> <define name="mei_att.symbol.anl.attributes"> <empty/> </define> <define name="mei_att.tabDurSym.anl.attributes"> <empty/> </define> <define name="mei_att.tabGrp.anl.attributes"> <empty/> </define> <define name="mei_att.tempo.anl.attributes"> <empty/> </define> <define name="mei_att.tie.anl.attributes"> <empty/> </define> <define name="mei_att.trill.anl.attributes"> <empty/> </define> <define name="mei_att.tuning.anl.attributes"> <empty/> </define> <define name="mei_att.tuplet.anl.attributes"> <empty/> </define> <define name="mei_att.tupletSpan.anl.attributes"> <ref name="mei_att.tuplet.anl.attributes"/> </define> <define name="mei_att.turn.anl.attributes"> <empty/> </define> <define name="mei_att.verse.anl.attributes"> <empty/> </define> <define name="mei_att.volta.anl.attributes"> <empty/> </define> <define name="mei_att.arpeg.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startId.attributes"/> <ref name="mei_att.arpeg.log.attribute.order"/> </define> <define name="mei_att.arpeg.log.attribute.order"> <optional> <attribute name="order"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the direction in which an arpeggio is to be performed.</a:documentation> <choice> <value>up</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lowest to highest pitch.</a:documentation> <value>down</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Highest to lowest pitch.</a:documentation> <value>nonarp</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Non-arpeggiated style (usually rendered with a preceding bracket instead of a wavy line).</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.beam.log.attributes"> <ref name="mei_att.event.attributes"/> <ref name="mei_att.beamedWith.attributes"/> </define> <define name="mei_att.beamedWith.attributes"> <ref name="mei_att.beamedWith.attribute.beam.with"/> </define> <define name="mei_att.beamedWith.attribute.beam.with"> <optional> <attribute name="beam.with"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">In the case of cross-staff beams, the beam.with attribute is used to indicate which staff the beam is connected to; that is, the staff above or the staff below.</a:documentation> <ref name="mei_data.NEIGHBORINGLAYER"/> </attribute> </optional> </define> <define name="mei_att.beaming.log.attributes"> <ref name="mei_att.beaming.log.attribute.beam.group"/> <ref name="mei_att.beaming.log.attribute.beam.rests"/> </define> <define name="mei_att.beaming.log.attribute.beam.group"> <optional> <attribute name="beam.group"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides an example of how automated beaming (including secondary beams) is to be performed.</a:documentation> <data type="string"/> </attribute> </optional> </define> <define name="mei_att.beaming.log.attribute.beam.rests"> <optional> <attribute name="beam.rests"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether automatically-drawn beams should include rests shorter than a quarter note duration.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.beamPresent.attributes"> <ref name="mei_att.beamPresent.attribute.beam"/> </define> <define name="mei_att.beamPresent.attribute.beam"> <optional> <attribute name="beam"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates that this event is "under a beam".</a:documentation> <list> <oneOrMore> <ref name="mei_data.BEAM"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.beamRend.attributes"> <ref name="mei_att.beamRend.attribute.form"/> <ref name="mei_att.beamRend.attribute.place"/> <ref name="mei_att.beamRend.attribute.slash"/> <ref name="mei_att.beamRend.attribute.slope"/> </define> <define name="mei_att.beamRend.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures whether a beam is "feathered" and in which direction.</a:documentation> <choice> <value>acc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(accelerando) means that the secondary beams become progressively more distant toward the end of the beam.</a:documentation> <value>mixed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(mixed acc and rit) for beams that are "feathered" in both directions.</a:documentation> <value>rit</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ritardando) indicates that the secondary beams get progressively closer together toward the end of the beam.</a:documentation> <value>norm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(normal) indicates that the secondary beams are equidistant along the course of the beam.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.beamRend.attribute.place"> <optional> <attribute name="place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the placement of the beam relative to the events it affects.</a:documentation> <ref name="mei_data.BEAMPLACE"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.beamRend-place-check_beam_place-constraint-rule-6"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:beam[@place eq 'mixed' and not(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@staff != ./@staff] or descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@staff != ancestor::mei:staff/@n])]"> <sch:assert test="count(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@stem.dir]) = count(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'])" role="warning">Stem directions should be specified for all notes and chords under the beam.</sch:assert> <sch:assert test="count(distinct-values(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord']/@stem.dir)) != 1">Opposing stem directions are required for a beam with @place="mixed".</sch:assert> </sch:rule> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:beam[@place eq 'mixed' and (descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@staff != ./@staff] or descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@staff != ancestor::mei:staff/@n]) and count(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord']/@stem.dir) = count(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'])]"> <sch:assert test="count(distinct-values(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord']/@stem.dir)) != 1">Opposing stem directions are required for a beam with @place="mixed".</sch:assert> </sch:rule> </pattern> <define name="mei_att.beamRend.attribute.slash"> <optional> <attribute name="slash"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates presence of slash through the beam.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.beamRend.attribute.slope"> <optional> <attribute name="slope"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the slope of the beam.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.beamSecondary.attributes"> <ref name="mei_att.beamSecondary.attribute.breaksec"/> </define> <define name="mei_att.beamSecondary.attribute.breaksec"> <optional> <attribute name="breaksec"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Presence of this attribute indicates that the secondary beam should be broken following this note/chord. The value of the attribute records the number of beams which should remain unbroken.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.beamSpan.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.beamedWith.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.beatRpt.log.attributes"> <ref name="mei_att.event.attributes"/> <ref name="mei_att.beatRpt.log.attribute.beatdef"/> </define> <define name="mei_att.beatRpt.log.attribute.beatdef"> <optional> <attribute name="beatdef"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the performed duration represented by the beatRpt symbol; expressed in time signature denominator units.</a:documentation> <data type="decimal"> <param name="pattern">\d+(\.\d+)?</param> </data> </attribute> </optional> </define> <define name="mei_att.bend.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.bracketSpan.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.bracketSpan.log.attribute.func"/> </define> <define name="mei_att.bracketSpan.log.attribute.func"> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(function) Describes the function of the bracketed event sequence. Suggested values include: 1] coloration; 2] cross-rhythm; 3] ligature; 4] unspecified</a:documentation> <choice> <value>coloration</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Represents coloration in the mensural notation source material.</a:documentation> <value>cross-rhythm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marks a sequence which does not match the current meter.</a:documentation> <value>ligature</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Represents a ligature in the mensural notation source material.</a:documentation> <value>unspecified</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unspecified bracket.</a:documentation> <data type="NMTOKENS"/> </choice> </attribute> </define> <define name="mei_att.breath.log.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.startId.attributes"/> <ref name="mei_att.timestamp.log.attributes"/> </define> <define name="mei_att.bTrem.log.attributes"> <ref name="mei_att.event.attributes"/> <ref name="mei_att.augmentDots.attributes"/> <ref name="mei_att.duration.log.attributes"/> <ref name="mei_att.numbered.attributes"/> <ref name="mei_att.tremForm.attributes"/> </define> <define name="mei_att.chord.anl.cmn.attributes"> <ref name="mei_att.beamPresent.attributes"/> <ref name="mei_att.fermataPresent.attributes"/> <ref name="mei_att.lvPresent.attributes"/> <ref name="mei_att.ornamPresent.attributes"/> <ref name="mei_att.slurPresent.attributes"/> <ref name="mei_att.tiePresent.attributes"/> <ref name="mei_att.tupletPresent.attributes"/> </define> <define name="mei_att.chord.ges.cmn.attributes"> <empty/> </define> <define name="mei_att.chord.log.cmn.attributes"> <ref name="mei_att.graced.attributes"/> </define> <define name="mei_att.chord.vis.cmn.attributes"> <ref name="mei_att.beamSecondary.attributes"/> </define> <define name="mei_att.cutout.attributes"> <ref name="mei_att.cutout.attribute.cutout"/> </define> <define name="mei_att.cutout.attribute.cutout"> <optional> <attribute name="cutout"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">"Cut-out" style.</a:documentation> <choice> <value>cutout</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The staff lines should not be drawn.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.mNum.log.attributes"> <empty/> </define> <define name="mei_att.expandable.attributes"> <ref name="mei_att.expandable.attribute.expand"/> </define> <define name="mei_att.expandable.attribute.expand"> <optional> <attribute name="expand"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether to render a repeat symbol or the source material to which it refers. A value of 'true' renders the source material, while 'false' displays the repeat symbol.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.fermata.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startEndId.attributes"/> </define> <define name="mei_att.fTrem.log.attributes"> <ref name="mei_att.event.attributes"/> <ref name="mei_att.augmentDots.attributes"/> <ref name="mei_att.duration.log.attributes"/> <ref name="mei_att.tremForm.attributes"/> </define> <define name="mei_att.glissPresent.attributes"> <ref name="mei_att.glissPresent.attribute.gliss"/> </define> <define name="mei_att.glissPresent.attribute.gliss"> <optional> <attribute name="gliss"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(glissando) Indicates that this element participates in a glissando. If visual information about the glissando needs to be recorded, then a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><gliss></code> element should be employed instead.</a:documentation> <ref name="mei_data.GLISSANDO"/> </attribute> </optional> </define> <define name="mei_att.gliss.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.graced.attributes"> <ref name="mei_att.graced.attribute.grace"/> <ref name="mei_att.graced.attribute.grace.time"/> </define> <define name="mei_att.graced.attribute.grace"> <optional> <attribute name="grace"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marks a note or chord as a "grace" (without a definite performed duration) and records from which other note/chord it should "steal" time.</a:documentation> <ref name="mei_data.GRACE"/> </attribute> </optional> </define> <define name="mei_att.graced.attribute.grace.time"> <optional> <attribute name="grace.time"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the amount of time to be "stolen" from a non-grace note/chord.</a:documentation> <ref name="mei_data.PERCENT"/> </attribute> </optional> </define> <define name="mei_att.graceGrp.log.attributes"> <ref name="mei_att.event.attributes"/> <ref name="mei_att.graced.attributes"/> <ref name="mei_att.graceGrp.log.attribute.attach"/> </define> <define name="mei_att.graceGrp.log.attribute.attach"> <optional> <attribute name="attach"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records whether the grace note group is attached to the following event or to the preceding one. The usual name for the latter is "Nachschlag".</a:documentation> <choice> <value>pre</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Attached to the preceding event.</a:documentation> <value>post</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Attached to the following event.</a:documentation> <value>unknown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Attachment is ambiguous.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.hairpin.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.hairpin.log.attribute.form"/> <ref name="mei_att.hairpin.log.attribute.niente"/> </define> <define name="mei_att.hairpin.log.attribute.form"> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the visual rendition and function of the hairpin; that is, whether it indicates an increase or a decrease in volume.</a:documentation> <choice> <value>cres</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Crescendo; i.e., louder.</a:documentation> <value>dim</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Diminuendo; i.e., softer.</a:documentation> </choice> </attribute> </define> <define name="mei_att.hairpin.log.attribute.niente"> <optional> <attribute name="niente"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates that the hairpin starts from or ends in silence. Often rendered as a small circle attached to the closed end of the hairpin. See Gould, p. 108.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.halfmRpt.log.attributes"> <ref name="mei_att.event.attributes"/> <ref name="mei_att.duration.additive.attributes"/> </define> <define name="mei_att.harpPedal.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.harpPedal.log.attribute.c"/> <ref name="mei_att.harpPedal.log.attribute.d"/> <ref name="mei_att.harpPedal.log.attribute.e"/> <ref name="mei_att.harpPedal.log.attribute.f"/> <ref name="mei_att.harpPedal.log.attribute.g"/> <ref name="mei_att.harpPedal.log.attribute.a"/> <ref name="mei_att.harpPedal.log.attribute.b"/> </define> <define name="mei_att.harpPedal.log.attribute.c"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="c" a:defaultValue="n"> <a:documentation>Indicates the pedal setting for the harp’s C strings.</a:documentation> <ref name="mei_data.HARPPEDALPOSITION"/> </attribute> </optional> </define> <define name="mei_att.harpPedal.log.attribute.d"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="d" a:defaultValue="n"> <a:documentation>Indicates the pedal setting for the harp’s D strings.</a:documentation> <ref name="mei_data.HARPPEDALPOSITION"/> </attribute> </optional> </define> <define name="mei_att.harpPedal.log.attribute.e"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="e" a:defaultValue="n"> <a:documentation>Indicates the pedal setting for the harp’s E strings.</a:documentation> <ref name="mei_data.HARPPEDALPOSITION"/> </attribute> </optional> </define> <define name="mei_att.harpPedal.log.attribute.f"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="f" a:defaultValue="n"> <a:documentation>Indicates the pedal setting for the harp’s F strings.</a:documentation> <ref name="mei_data.HARPPEDALPOSITION"/> </attribute> </optional> </define> <define name="mei_att.harpPedal.log.attribute.g"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="g" a:defaultValue="n"> <a:documentation>Indicates the pedal setting for the harp’s G strings.</a:documentation> <ref name="mei_data.HARPPEDALPOSITION"/> </attribute> </optional> </define> <define name="mei_att.harpPedal.log.attribute.a"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="a" a:defaultValue="n"> <a:documentation>Indicates the pedal setting for the harp’s A strings.</a:documentation> <ref name="mei_data.HARPPEDALPOSITION"/> </attribute> </optional> </define> <define name="mei_att.harpPedal.log.attribute.b"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="b" a:defaultValue="n"> <a:documentation>Indicates the pedal setting for the harp’s B strings.</a:documentation> <ref name="mei_data.HARPPEDALPOSITION"/> </attribute> </optional> </define> <define name="mei_att.layerDef.log.cmn.attributes"> <ref name="mei_att.beaming.log.attributes"/> </define> <define name="mei_att.lv.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.lvPresent.attributes"> <ref name="mei_att.lvPresent.attribute.lv"/> </define> <define name="mei_att.lvPresent.attribute.lv"> <optional> <attribute name="lv"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the attachment of an l.v. (laissez vibrer) sign to this element.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.measure.log.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.meterConformance.bar.attributes"/> <ref name="mei_att.measure.log.attribute.left"/> <ref name="mei_att.measure.log.attribute.right"/> </define> <define name="mei_att.measure.log.attribute.left"> <optional> <attribute name="left"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the visual rendition of the left bar line. It is present here only for facilitation of translation from legacy encodings which use it. Usually, it can be safely ignored.</a:documentation> <ref name="mei_data.BARRENDITION"/> </attribute> </optional> </define> <define name="mei_att.measure.log.attribute.right"> <optional> <attribute name="right"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the function of the right bar line and is structurally important.</a:documentation> <ref name="mei_data.BARRENDITION"/> </attribute> </optional> </define> <define name="mei_att.meterSigGrp.log.attributes"> <ref name="mei_att.meterSigGrp.log.attribute.func"/> </define> <define name="mei_att.meterSigGrp.log.attribute.func"> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(function) Function of the meter signature group.</a:documentation> <choice> <value>alternating</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Meter signatures apply to alternating measures.</a:documentation> <value>interchanging</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Meter signatures are interchangeable, e.g., 3/4 and 6/8.</a:documentation> <value>mixed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Meter signatures with different unit values are used to express a complex metrical pattern that is not expressible using traditional means, such as 2/4+1/8.</a:documentation> <value>other</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Meter signatures in a relationship not covered by the values alternating, interchanging or mixed.</a:documentation> </choice> </attribute> </define> <define name="mei_att.mRest.log.attributes"> <ref name="mei_att.cue.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.event.attributes"/> </define> <define name="mei_att.mRpt.log.attributes"> <ref name="mei_att.event.attributes"/> <ref name="mei_att.numbered.attributes"/> </define> <define name="mei_att.mRpt2.log.attributes"> <ref name="mei_att.event.attributes"/> </define> <define name="mei_att.mSpace.log.attributes"> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.event.attributes"/> </define> <define name="mei_att.multiRest.log.attributes"> <ref name="mei_att.event.attributes"/> <ref name="mei_att.numbered.attributes"/> </define> <define name="mei_att.multiRpt.log.attributes"> <ref name="mei_att.event.attributes"/> <ref name="mei_att.numbered.attributes"/> </define> <define name="mei_att.note.anl.cmn.attributes"> <ref name="mei_att.beamPresent.attributes"/> <ref name="mei_att.glissPresent.attributes"/> <ref name="mei_att.lvPresent.attributes"/> <ref name="mei_att.ornamPresent.attributes"/> <ref name="mei_att.slurPresent.attributes"/> <ref name="mei_att.sylText.attributes"/> <ref name="mei_att.tiePresent.attributes"/> <ref name="mei_att.tupletPresent.attributes"/> </define> <define name="mei_att.note.log.cmn.attributes"> <ref name="mei_att.graced.attributes"/> </define> <define name="mei_att.note.vis.cmn.attributes"> <ref name="mei_att.beamSecondary.attributes"/> </define> <define name="mei_att.numbered.attributes"> <ref name="mei_att.numbered.attribute.num"/> </define> <define name="mei_att.numbered.attribute.num"> <optional> <attribute name="num"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number) Records a number or count accompanying a notational feature.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.numberPlacement.attributes"> <ref name="mei_att.numberPlacement.attribute.num.place"/> <ref name="mei_att.numberPlacement.attribute.num.visible"/> </define> <define name="mei_att.numberPlacement.attribute.num.place"> <optional> <attribute name="num.place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number placement) States where the number will be placed in relation to the notational feature.</a:documentation> <ref name="mei_data.STAFFREL.basic"/> </attribute> </optional> </define> <define name="mei_att.numberPlacement.attribute.num.visible"> <optional> <attribute name="num.visible"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines if the number is visible.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.octave.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.octaveDisplacement.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.octave.log.attribute.coll"/> </define> <define name="mei_att.octave.log.attribute.coll"> <optional> <attribute name="coll"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether the octave displacement should be performed simultaneously with the written notes, i.e., "coll' ottava". Unlike other octave signs which are indicated by broken lines, coll' ottava typically uses an unbroken line or a series of longer broken lines, ending with a short vertical stroke. See Read, p. 47-48.</a:documentation> <choice> <value>coll</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Coll' ottava (with the octave).</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.ossia.log.attributes"> <empty/> </define> <define name="mei_att.pedal.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.pedal.log.attribute.dir"/> <ref name="mei_att.pedal.log.attribute.func"/> </define> <define name="mei_att.pedal.log.attribute.dir"> <attribute name="dir"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(direction) Records the position of the piano damper pedal.</a:documentation> <choice> <value>down</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Depress the pedal.</a:documentation> <value>up</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Release the pedal.</a:documentation> <value>half</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Half pedal.</a:documentation> <value>bounce</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Release then immediately depress the pedal.</a:documentation> </choice> </attribute> </define> <define name="mei_att.pedal.log.attribute.func"> <optional> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(function) Indicates the function of the depressed pedal, but not necessarily the text associated with its use. Use the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><dir></code> element for such text. Suggested values include: 1] sustain; 2] soft; 3] sostenuto; 4] silent</a:documentation> <choice> <value>sustain</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The sustain pedal, also referred to as the "damper" pedal, allows the piano strings to vibrate sympathetically with the struck strings. It is the right-most and the most frequently used pedal on modern pianos.</a:documentation> <value>soft</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The soft pedal, sometimes called the "una corda", "piano", or "half-blow" pedal, reduces the volume and modifies the timbre of the piano. On the modern piano, it is the left-most pedal.</a:documentation> <value>sostenuto</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The sostenuto or tone-sustaining pedal allows notes already undamped to continue to ring while other notes are damped normally; that is, on their release by the fingers. This is usually the center pedal of the modern piano.</a:documentation> <value>silent</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The silent or practice pedal mutes the volume of the piano so that one may practice quietly. It is sometimes a replacement for the sostenuto pedal, especially on an upright or vertical instrument.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> </define> <define name="mei_att.phrase.vis.cmn.attributes"> <ref name="mei_att.curvature.attributes"/> <ref name="mei_att.lineRend.base.attributes"/> </define> <define name="mei_att.pianoPedals.attributes"> <ref name="mei_att.pianoPedals.attribute.pedal.style"/> </define> <define name="mei_att.pianoPedals.attribute.pedal.style"> <optional> <attribute name="pedal.style"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines whether piano pedal marks should be rendered as lines or as terms.</a:documentation> <ref name="mei_data.PEDALSTYLE"/> </attribute> </optional> </define> <define name="mei_att.reh.log.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.startId.attributes"/> <ref name="mei_att.timestamp.log.attributes"/> <ref name="mei_att.timestamp.ges.attributes"/> </define> <define name="mei_att.rehearsal.attributes"> <ref name="mei_att.rehearsal.attribute.reh.enclose"/> </define> <define name="mei_att.rehearsal.attribute.reh.enclose"> <optional> <attribute name="reh.enclose"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the enclosing shape for rehearsal marks.</a:documentation> <choice> <value>box</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosed by box.</a:documentation> <value>circle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Enclosed by circle.</a:documentation> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">No enclosing shape.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.rest.anl.cmn.attributes"> <ref name="mei_att.beamPresent.attributes"/> <ref name="mei_att.fermataPresent.attributes"/> <ref name="mei_att.tupletPresent.attributes"/> </define> <define name="mei_att.rest.log.cmn.attributes"> <empty/> </define> <define name="mei_att.rest.vis.cmn.attributes"> <ref name="mei_att.beamSecondary.attributes"/> </define> <define name="mei_att.scoreDef.log.cmn.attributes"> <ref name="mei_att.beaming.log.attributes"/> </define> <define name="mei_att.scoreDef.vis.cmn.attributes"> <ref name="mei_att.beaming.vis.attributes"/> <ref name="mei_att.guitarGrid.vis.attributes"/> <ref name="mei_att.pianoPedals.attributes"/> <ref name="mei_att.rehearsal.attributes"/> <ref name="mei_att.slurRend.attributes"/> <ref name="mei_att.tieRend.attributes"/> </define> <define name="mei_att.slur.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.slurRend.attributes"> <ref name="mei_att.slurRend.attribute.slur.lform"/> <ref name="mei_att.slurRend.attribute.slur.lwidth"/> </define> <define name="mei_att.slurRend.attribute.slur.lform"> <optional> <attribute name="slur.lform"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <ref name="mei_data.LINEFORM"/> </attribute> </optional> </define> <define name="mei_att.slurRend.attribute.slur.lwidth"> <optional> <attribute name="slur.lwidth"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <ref name="mei_data.LINEWIDTH"/> </attribute> </optional> </define> <define name="mei_att.space.anl.cmn.attributes"> <ref name="mei_att.beamPresent.attributes"/> <ref name="mei_att.fermataPresent.attributes"/> <ref name="mei_att.tupletPresent.attributes"/> </define> <define name="mei_att.space.log.cmn.attributes"> <empty/> </define> <define name="mei_att.staffDef.log.cmn.attributes"> <ref name="mei_att.beaming.log.attributes"/> </define> <define name="mei_att.staffDef.vis.cmn.attributes"> <ref name="mei_att.beaming.vis.attributes"/> <ref name="mei_att.pianoPedals.attributes"/> <ref name="mei_att.rehearsal.attributes"/> <ref name="mei_att.slurRend.attributes"/> <ref name="mei_att.tieRend.attributes"/> </define> <define name="mei_att.stems.cmn.attributes"> <ref name="mei_att.stems.cmn.attribute.stem.with"/> </define> <define name="mei_att.stems.cmn.attribute.stem.with"> <optional> <attribute name="stem.with"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains an indication of which staff a note or chord that logically belongs to the current staff should be visually placed on; that is, the one above or the one below.</a:documentation> <ref name="mei_data.NEIGHBORINGLAYER"/> </attribute> </optional> </define> <define name="mei_att.tie.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.tieRend.attributes"> <ref name="mei_att.tieRend.attribute.tie.lform"/> <ref name="mei_att.tieRend.attribute.tie.lwidth"/> </define> <define name="mei_att.tieRend.attribute.tie.lform"> <optional> <attribute name="tie.lform"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <ref name="mei_data.LINEFORM"/> </attribute> </optional> </define> <define name="mei_att.tieRend.attribute.tie.lwidth"> <optional> <attribute name="tie.lwidth"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <ref name="mei_data.LINEWIDTH"/> </attribute> </optional> </define> <define name="mei_att.tremForm.attributes"> <ref name="mei_att.tremForm.attribute.form"/> </define> <define name="mei_att.tremForm.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the style of the tremolo.</a:documentation> <choice> <value>meas</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Measured tremolo.</a:documentation> <value>unmeas</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unmeasured tremolo.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.tremMeasured.attributes"> <ref name="mei_att.tremMeasured.attribute.unitdur"/> </define> <define name="mei_att.tremMeasured.attribute.unitdur"> <optional> <attribute name="unitdur"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The performed duration of an individual note in a measured tremolo.</a:documentation> <ref name="mei_data.DURATION.cmn"/> </attribute> </optional> </define> <define name="mei_att.tuplet.log.attributes"> <ref name="mei_att.beamedWith.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.duration.ratio.attributes"/> <ref name="mei_att.event.attributes"/> <ref name="mei_att.startEndId.attributes"/> </define> <define name="mei_att.tupletSpan.log.attributes"> <ref name="mei_att.beamedWith.attributes"/> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.duration.ratio.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_model.controlEventLike.cmn"> <choice> <ref name="mei_arpeg"/> <ref name="mei_attacca"/> <ref name="mei_beamSpan"/> <ref name="mei_bracketSpan"/> <ref name="mei_breath"/> <ref name="mei_fermata"/> <ref name="mei_hairpin"/> <ref name="mei_harpPedal"/> <ref name="mei_lv"/> <ref name="mei_octave"/> <ref name="mei_pedal"/> <ref name="mei_reh"/> <ref name="mei_slur"/> <ref name="mei_tie"/> <ref name="mei_tupletSpan"/> <ref name="mei_model.ornamentLike.cmn"/> </choice> </define> <define name="mei_model.controlEventLike.cmn_alternation"> <choice> <ref name="mei_arpeg"/> <ref name="mei_attacca"/> <ref name="mei_beamSpan"/> <ref name="mei_bracketSpan"/> <ref name="mei_breath"/> <ref name="mei_fermata"/> <ref name="mei_hairpin"/> <ref name="mei_harpPedal"/> <ref name="mei_lv"/> <ref name="mei_octave"/> <ref name="mei_pedal"/> <ref name="mei_reh"/> <ref name="mei_slur"/> <ref name="mei_tie"/> <ref name="mei_tupletSpan"/> <ref name="mei_model.ornamentLike.cmn_alternation"/> </choice> </define> <define name="mei_model.controlEventLike.cmn_sequence"> <ref name="mei_arpeg"/> <ref name="mei_attacca"/> <ref name="mei_beamSpan"/> <ref name="mei_bracketSpan"/> <ref name="mei_breath"/> <ref name="mei_fermata"/> <ref name="mei_hairpin"/> <ref name="mei_harpPedal"/> <ref name="mei_lv"/> <ref name="mei_octave"/> <ref name="mei_pedal"/> <ref name="mei_reh"/> <ref name="mei_slur"/> <ref name="mei_tie"/> <ref name="mei_tupletSpan"/> <ref name="mei_model.ornamentLike.cmn_sequence"/> </define> <define name="mei_model.controlEventLike.cmn_sequenceOptional"> <optional> <ref name="mei_arpeg"/> </optional> <optional> <ref name="mei_attacca"/> </optional> <optional> <ref name="mei_beamSpan"/> </optional> <optional> <ref name="mei_bracketSpan"/> </optional> <optional> <ref name="mei_breath"/> </optional> <optional> <ref name="mei_fermata"/> </optional> <optional> <ref name="mei_hairpin"/> </optional> <optional> <ref name="mei_harpPedal"/> </optional> <optional> <ref name="mei_lv"/> </optional> <optional> <ref name="mei_octave"/> </optional> <optional> <ref name="mei_pedal"/> </optional> <optional> <ref name="mei_reh"/> </optional> <optional> <ref name="mei_slur"/> </optional> <optional> <ref name="mei_tie"/> </optional> <optional> <ref name="mei_tupletSpan"/> </optional> <optional> <ref name="mei_model.ornamentLike.cmn_sequenceOptional"/> </optional> </define> <define name="mei_model.controlEventLike.cmn_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_arpeg"/> </zeroOrMore> <zeroOrMore> <ref name="mei_attacca"/> </zeroOrMore> <zeroOrMore> <ref name="mei_beamSpan"/> </zeroOrMore> <zeroOrMore> <ref name="mei_bracketSpan"/> </zeroOrMore> <zeroOrMore> <ref name="mei_breath"/> </zeroOrMore> <zeroOrMore> <ref name="mei_fermata"/> </zeroOrMore> <zeroOrMore> <ref name="mei_hairpin"/> </zeroOrMore> <zeroOrMore> <ref name="mei_harpPedal"/> </zeroOrMore> <zeroOrMore> <ref name="mei_lv"/> </zeroOrMore> <zeroOrMore> <ref name="mei_octave"/> </zeroOrMore> <zeroOrMore> <ref name="mei_pedal"/> </zeroOrMore> <zeroOrMore> <ref name="mei_reh"/> </zeroOrMore> <zeroOrMore> <ref name="mei_slur"/> </zeroOrMore> <zeroOrMore> <ref name="mei_tie"/> </zeroOrMore> <zeroOrMore> <ref name="mei_tupletSpan"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.ornamentLike.cmn_sequenceOptionalRepeatable"/> </zeroOrMore> </define> <define name="mei_model.controlEventLike.cmn_sequenceRepeatable"> <oneOrMore> <ref name="mei_arpeg"/> </oneOrMore> <oneOrMore> <ref name="mei_attacca"/> </oneOrMore> <oneOrMore> <ref name="mei_beamSpan"/> </oneOrMore> <oneOrMore> <ref name="mei_bracketSpan"/> </oneOrMore> <oneOrMore> <ref name="mei_breath"/> </oneOrMore> <oneOrMore> <ref name="mei_fermata"/> </oneOrMore> <oneOrMore> <ref name="mei_hairpin"/> </oneOrMore> <oneOrMore> <ref name="mei_harpPedal"/> </oneOrMore> <oneOrMore> <ref name="mei_lv"/> </oneOrMore> <oneOrMore> <ref name="mei_octave"/> </oneOrMore> <oneOrMore> <ref name="mei_pedal"/> </oneOrMore> <oneOrMore> <ref name="mei_reh"/> </oneOrMore> <oneOrMore> <ref name="mei_slur"/> </oneOrMore> <oneOrMore> <ref name="mei_tie"/> </oneOrMore> <oneOrMore> <ref name="mei_tupletSpan"/> </oneOrMore> <oneOrMore> <ref name="mei_model.ornamentLike.cmn_sequenceRepeatable"/> </oneOrMore> </define> <define name="mei_model.eventLike.cmn"> <choice> <ref name="mei_beam"/> <ref name="mei_beatRpt"/> <ref name="mei_bTrem"/> <ref name="mei_fTrem"/> <ref name="mei_graceGrp"/> <ref name="mei_halfmRpt"/> <ref name="mei_tuplet"/> </choice> </define> <define name="mei_model.eventLike.cmn_alternation"> <choice> <ref name="mei_beam"/> <ref name="mei_beatRpt"/> <ref name="mei_bTrem"/> <ref name="mei_fTrem"/> <ref name="mei_graceGrp"/> <ref name="mei_halfmRpt"/> <ref name="mei_tuplet"/> </choice> </define> <define name="mei_model.eventLike.cmn_sequence"> <ref name="mei_beam"/> <ref name="mei_beatRpt"/> <ref name="mei_bTrem"/> <ref name="mei_fTrem"/> <ref name="mei_graceGrp"/> <ref name="mei_halfmRpt"/> <ref name="mei_tuplet"/> </define> <define name="mei_model.eventLike.cmn_sequenceOptional"> <optional> <ref name="mei_beam"/> </optional> <optional> <ref name="mei_beatRpt"/> </optional> <optional> <ref name="mei_bTrem"/> </optional> <optional> <ref name="mei_fTrem"/> </optional> <optional> <ref name="mei_graceGrp"/> </optional> <optional> <ref name="mei_halfmRpt"/> </optional> <optional> <ref name="mei_tuplet"/> </optional> </define> <define name="mei_model.eventLike.cmn_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_beam"/> </zeroOrMore> <zeroOrMore> <ref name="mei_beatRpt"/> </zeroOrMore> <zeroOrMore> <ref name="mei_bTrem"/> </zeroOrMore> <zeroOrMore> <ref name="mei_fTrem"/> </zeroOrMore> <zeroOrMore> <ref name="mei_graceGrp"/> </zeroOrMore> <zeroOrMore> <ref name="mei_halfmRpt"/> </zeroOrMore> <zeroOrMore> <ref name="mei_tuplet"/> </zeroOrMore> </define> <define name="mei_model.eventLike.cmn_sequenceRepeatable"> <oneOrMore> <ref name="mei_beam"/> </oneOrMore> <oneOrMore> <ref name="mei_beatRpt"/> </oneOrMore> <oneOrMore> <ref name="mei_bTrem"/> </oneOrMore> <oneOrMore> <ref name="mei_fTrem"/> </oneOrMore> <oneOrMore> <ref name="mei_graceGrp"/> </oneOrMore> <oneOrMore> <ref name="mei_halfmRpt"/> </oneOrMore> <oneOrMore> <ref name="mei_tuplet"/> </oneOrMore> </define> <define name="mei_model.eventLike.measureFilling"> <choice> <ref name="mei_mRest"/> <ref name="mei_mRpt"/> <ref name="mei_mRpt2"/> <ref name="mei_mSpace"/> <ref name="mei_multiRest"/> <ref name="mei_multiRpt"/> </choice> </define> <define name="mei_model.eventLike.measureFilling_alternation"> <choice> <ref name="mei_mRest"/> <ref name="mei_mRpt"/> <ref name="mei_mRpt2"/> <ref name="mei_mSpace"/> <ref name="mei_multiRest"/> <ref name="mei_multiRpt"/> </choice> </define> <define name="mei_model.eventLike.measureFilling_sequence"> <ref name="mei_mRest"/> <ref name="mei_mRpt"/> <ref name="mei_mRpt2"/> <ref name="mei_mSpace"/> <ref name="mei_multiRest"/> <ref name="mei_multiRpt"/> </define> <define name="mei_model.eventLike.measureFilling_sequenceOptional"> <optional> <ref name="mei_mRest"/> </optional> <optional> <ref name="mei_mRpt"/> </optional> <optional> <ref name="mei_mRpt2"/> </optional> <optional> <ref name="mei_mSpace"/> </optional> <optional> <ref name="mei_multiRest"/> </optional> <optional> <ref name="mei_multiRpt"/> </optional> </define> <define name="mei_model.eventLike.measureFilling_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_mRest"/> </zeroOrMore> <zeroOrMore> <ref name="mei_mRpt"/> </zeroOrMore> <zeroOrMore> <ref name="mei_mRpt2"/> </zeroOrMore> <zeroOrMore> <ref name="mei_mSpace"/> </zeroOrMore> <zeroOrMore> <ref name="mei_multiRest"/> </zeroOrMore> <zeroOrMore> <ref name="mei_multiRpt"/> </zeroOrMore> </define> <define name="mei_model.eventLike.measureFilling_sequenceRepeatable"> <oneOrMore> <ref name="mei_mRest"/> </oneOrMore> <oneOrMore> <ref name="mei_mRpt"/> </oneOrMore> <oneOrMore> <ref name="mei_mRpt2"/> </oneOrMore> <oneOrMore> <ref name="mei_mSpace"/> </oneOrMore> <oneOrMore> <ref name="mei_multiRest"/> </oneOrMore> <oneOrMore> <ref name="mei_multiRpt"/> </oneOrMore> </define> <define name="mei_model.layerPart.cmn"> <choice> <ref name="mei_model.eventLike.cmn"/> <ref name="mei_model.eventLike.measureFilling"/> </choice> </define> <define name="mei_model.measureLike"> <choice> <ref name="mei_measure"/> </choice> </define> <define name="mei_model.measureLike_alternation"> <choice> <ref name="mei_measure"/> </choice> </define> <define name="mei_model.measureLike_sequence"> <ref name="mei_measure"/> </define> <define name="mei_model.measureLike_sequenceOptional"> <optional> <ref name="mei_measure"/> </optional> </define> <define name="mei_model.measureLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_measure"/> </zeroOrMore> </define> <define name="mei_model.measureLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_measure"/> </oneOrMore> </define> <define name="mei_model.measurePart"> <choice> <ref name="mei_model.controlEventLike.cmn"/> <ref name="mei_model.ossiaLike"/> <ref name="mei_model.midiLike"/> <ref name="mei_model.controlEventLike"/> <ref name="mei_model.staffLike"/> </choice> </define> <define name="mei_model.ossiaLike"> <choice> <ref name="mei_ossia"/> </choice> </define> <define name="mei_model.sectionPart.cmn"> <choice> <ref name="mei_model.measureLike"/> </choice> </define> <define name="mei_arpeg"> <element name="arpeg"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(arpeggiation) Indicates that the notes of a chord are to be performed successively rather than simultaneously, usually from lowest to highest. Sometimes called a "roll".</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.arpeg.log.attributes"/> <ref name="mei_att.arpeg.vis.attributes"/> <ref name="mei_att.arpeg.ges.attributes"/> <ref name="mei_att.arpeg.anl.attributes"/> <empty/> </element> </define> <define name="mei_attacca"> <element name="attacca"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An instruction to begin the next section or movement of a composition without pause.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-attacca-attacca_start-type_attributes_required-constraint-rule-8"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:attacca[not(ancestor::mei:syllable)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.attacca.anl.attributes"/> <ref name="mei_att.attacca.ges.attributes"/> <ref name="mei_att.attacca.log.attributes"/> <ref name="mei_att.attacca.vis.attributes"/> <empty/> </element> </define> <define name="mei_beam"> <element name="beam"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A container for a series of explicitly beamed events that begins and ends entirely within a measure.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.eventLike"/> <ref name="mei_model.eventLike.cmn"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-beam-When_not_copyof_beam_content-constraint-rule-9"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:beam[not(@copyof or @sameas)]"> <sch:assert test="count(descendant::*[local-name()='note' or local-name()='rest' or local-name()='chord' or local-name()='space']) > 1">A beam that contains neither a copyof nor sameas attribute must have at least 2 note, rest, chord, or space descendants.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.beam.log.attributes"/> <ref name="mei_att.beam.vis.attributes"/> <ref name="mei_att.beam.ges.attributes"/> <ref name="mei_att.beam.anl.attributes"/> <empty/> </element> </define> <define name="mei_beamSpan"> <element name="beamSpan"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(beam span) Alternative element for explicitly encoding beams, particularly those which extend across bar lines.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-beamSpan-beamspan_start-_and_end-type_attributes_required-constraint-rule-10"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:beamSpan"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.beamSpan.log.attributes"/> <ref name="mei_att.beamSpan.vis.attributes"/> <ref name="mei_att.beamSpan.ges.attributes"/> <ref name="mei_att.beamSpan.anl.attributes"/> <empty/> </element> </define> <define name="mei_beatRpt"> <element name="beatRpt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(beat repeat) An indication that material on a preceding beat should be repeated.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.beatRpt.log.attributes"/> <ref name="mei_att.beatRpt.vis.attributes"/> <ref name="mei_att.beatRpt.ges.attributes"/> <ref name="mei_att.beatRpt.anl.attributes"/> <ref name="mei_att.plist.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_bend"> <element name="bend"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A variation in pitch (often micro-tonal) upwards or downwards during the course of a note.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-bend-bend_start-_and_end-type_attributes_required-constraint-rule-11"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:bend"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.bend.log.attributes"/> <ref name="mei_att.bend.vis.attributes"/> <ref name="mei_att.bend.ges.attributes"/> <ref name="mei_att.bend.anl.attributes"/> <empty/> </element> </define> <define name="mei_bracketSpan"> <element name="bracketSpan"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marks a sequence of notational events grouped by a bracket.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-bracketSpan-bracketSpan_start-_and_end-type_attributes_required-constraint-rule-12"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:bracketSpan"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bracketSpan.log.attributes"/> <ref name="mei_att.bracketSpan.vis.attributes"/> <ref name="mei_att.bracketSpan.ges.attributes"/> <ref name="mei_att.bracketSpan.anl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <empty/> </element> </define> <define name="mei_breath"> <element name="breath"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(breath mark) An indication of a point at which the performer on an instrument requiring breath (including the voice) may breathe.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-breath-breath_start-type_attributes_required-constraint-rule-13"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:breath"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.breath.log.attributes"/> <ref name="mei_att.breath.vis.attributes"/> <ref name="mei_att.breath.ges.attributes"/> <ref name="mei_att.breath.anl.attributes"/> <empty/> </element> </define> <define name="mei_bTrem"> <element name="bTrem"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(bowed tremolo) A rapid alternation on a single pitch or chord.</a:documentation> <choice> <ref name="mei_chord"/> <ref name="mei_note"/> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.bTrem.log.attributes"/> <ref name="mei_att.bTrem.vis.attributes"/> <ref name="mei_att.bTrem.ges.attributes"/> <ref name="mei_att.bTrem.anl.attributes"/> <empty/> </element> </define> <define name="mei_fermata"> <element name="fermata"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An indication placed over a note or rest to indicate that it should be held longer than its written value. May also occur over a bar line to indicate the end of a phrase or section. Sometimes called a 'hold' or 'pause'.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-fermata-fermata_start-type_attributes_required-constraint-rule-14"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:fermata"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.fermata.log.attributes"/> <ref name="mei_att.fermata.vis.attributes"/> <ref name="mei_att.fermata.ges.attributes"/> <ref name="mei_att.fermata.anl.attributes"/> <empty/> </element> </define> <define name="mei_fTrem"> <element name="fTrem"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(fingered tremolo) A rapid alternation between a pair of notes (or chords or perhaps between a note and a chord) that are (usually) farther apart than a major second.</a:documentation> <choice> <group> <ref name="mei_chord"/> <optional> <ref name="mei_clef"/> </optional> <choice> <ref name="mei_chord"/> <ref name="mei_note"/> </choice> </group> <group> <ref name="mei_note"/> <optional> <ref name="mei_clef"/> </optional> <choice> <ref name="mei_chord"/> <ref name="mei_note"/> </choice> </group> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.fTrem.log.attributes"/> <ref name="mei_att.fTrem.vis.attributes"/> <ref name="mei_att.fTrem.ges.attributes"/> <ref name="mei_att.fTrem.anl.attributes"/> <empty/> </element> </define> <define name="mei_gliss"> <element name="gliss"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(glissando) A continuous or sliding movement from one pitch to another, usually indicated by a straight or wavy line.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-gliss-gliss_start-_and_end-type_attributes_required-constraint-rule-15"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:gliss"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.gliss.log.attributes"/> <ref name="mei_att.gliss.vis.attributes"/> <ref name="mei_att.gliss.ges.attributes"/> <ref name="mei_att.gliss.anl.attributes"/> <empty/> </element> </define> <define name="mei_graceGrp"> <element name="graceGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(grace group) A container for a sequence of grace notes.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.eventLike"/> <ref name="mei_model.eventLike.cmn"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-graceGrp-When_not_copyof_graceGrp_content-constraint-rule-16"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:graceGrp[not(@copyof)]"> <sch:assert test="count(descendant::*[local-name()='note' or local-name()='rest' or local-name()='chord' or local-name()='space']) > 0">A graceGrp without a copyof attribute must have at least 1 note, rest, chord, or space descendants.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-graceGrp-When_graced-constraint-rule-17"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:graceGrp[@grace]"> <sch:assert test="not(descendant::mei:*[@grace])">The grace attribute is not allowed on descendants of a graceGrp with a grace attribute.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.graceGrp.log.attributes"/> <ref name="mei_att.graceGrp.vis.attributes"/> <ref name="mei_att.graceGrp.ges.attributes"/> <ref name="mei_att.graceGrp.anl.attributes"/> <empty/> </element> </define> <define name="mei_hairpin"> <element name="hairpin"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates continuous dynamics expressed on the score as wedge-shaped graphics, e.g., < and >.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-hairpin-hairpin_start-_and_end-type_attributes_required-constraint-rule-18"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:hairpin"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.hairpin.log.attributes"/> <ref name="mei_att.hairpin.vis.attributes"/> <ref name="mei_att.hairpin.ges.attributes"/> <ref name="mei_att.hairpin.anl.attributes"/> <empty/> </element> </define> <define name="mei_halfmRpt"> <element name="halfmRpt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(half-measure repeat) A half-measure repeat in any meter.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.halfmRpt.log.attributes"/> <ref name="mei_att.halfmRpt.vis.attributes"/> <ref name="mei_att.halfmRpt.ges.attributes"/> <ref name="mei_att.halfmRpt.anl.attributes"/> <empty/> </element> </define> <define name="mei_harpPedal"> <element name="harpPedal"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(harp pedal) Harp pedal diagram.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-harpPedal-harpPedal_start-type_attributes_required-constraint-rule-19"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:harpPedal"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.harpPedal.log.attributes"/> <ref name="mei_att.harpPedal.vis.attributes"/> <ref name="mei_att.harpPedal.ges.attributes"/> <ref name="mei_att.harpPedal.anl.attributes"/> <empty/> </element> </define> <define name="mei_lv"> <element name="lv"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(laissez vibrer) A "tie-like" indication that a note should ring beyond its written duration.</a:documentation> <zeroOrMore> <ref name="mei_curve"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-lv-lv_start-_and_end-type_attributes_required-constraint-rule-20"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:lv"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-lv-lv_containing_curve-constraint-rule-21"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:lv[mei:curve[@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2]]"> <sch:assert test="not(@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2)" role="warning">The visual attributes of the lv element (@bezier, @bulge, @curvedir, @lform, @lwidth, @ho, @startho, @endho, @to, @startto, @endto, @vo, @startvo, @endvo, @x, @y, @x2, and @y2) will be overridden by visual attributes of the contained curve elements.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lv.log.attributes"/> <ref name="mei_att.lv.vis.attributes"/> <ref name="mei_att.lv.ges.attributes"/> <ref name="mei_att.lv.anl.attributes"/> <empty/> </element> </define> <define name="mei_measure"> <element name="measure"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unit of musical time consisting of a fixed number of note values of a given type, as determined by the prevailing meter, and delimited in musical notation by bar lines.</a:documentation> <optional> <ref name="mei_mNum"/> </optional> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.measurePart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.relationLike"/> <ref name="mei_model.staffDefLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.measure.anl.attributes"/> <ref name="mei_att.measure.ges.attributes"/> <ref name="mei_att.measure.log.attributes"/> <ref name="mei_att.measure.vis.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_meterSig"> <element name="meterSig"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(meter signature) Written meter signature.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.meterSig.anl.attributes"/> <ref name="mei_att.meterSig.ges.attributes"/> <ref name="mei_att.meterSig.log.attributes"/> <ref name="mei_att.meterSig.vis.attributes"/> <empty/> </element> </define> <define name="mei_meterSigGrp"> <element name="meterSigGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(meter signature group) Used to capture alternating, interchanging, mixed or other non-standard meter signatures.</a:documentation> <ref name="mei_model.meterSigLike"/> <oneOrMore> <ref name="mei_model.meterSigLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.meterSigGrp.anl.attributes"/> <ref name="mei_att.meterSigGrp.ges.attributes"/> <ref name="mei_att.meterSigGrp.log.attributes"/> <ref name="mei_att.meterSigGrp.vis.attributes"/> <empty/> </element> </define> <define name="mei_mNum"> <element name="mNum"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(measure number) Designation, name, or label for a measure, often but not always consisting of digits. Use this element when the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@n</code> attribute on <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><measure></code> does not adequately capture the appearance or placement of the measure number/label.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.lbLike"/> <ref name="mei_model.rendLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.mNum.log.attributes"/> <ref name="mei_att.mNum.vis.attributes"/> <ref name="mei_att.mNum.ges.attributes"/> <ref name="mei_att.mNum.anl.attributes"/> <empty/> </element> </define> <define name="mei_mRest"> <element name="mRest"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(measure rest) Complete measure rest in any meter. </a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.mRest.log.attributes"/> <ref name="mei_att.mRest.vis.attributes"/> <ref name="mei_att.mRest.ges.attributes"/> <ref name="mei_att.mRest.anl.attributes"/> <empty/> </element> </define> <define name="mei_mRpt"> <element name="mRpt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(measure repeat) An indication that the previous measure should be repeated.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.mRpt.log.attributes"/> <ref name="mei_att.mRpt.vis.attributes"/> <ref name="mei_att.mRpt.ges.attributes"/> <ref name="mei_att.mRpt.anl.attributes"/> <empty/> </element> </define> <define name="mei_mRpt2"> <element name="mRpt2"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(2-measure repeat) An indication that the previous two measures should be repeated.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.mRpt2.log.attributes"/> <ref name="mei_att.mRpt2.vis.attributes"/> <ref name="mei_att.mRpt2.ges.attributes"/> <ref name="mei_att.mRpt2.anl.attributes"/> <empty/> </element> </define> <define name="mei_mSpace"> <element name="mSpace"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(measure space) A measure containing only empty space in any meter.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.mSpace.log.attributes"/> <ref name="mei_att.mSpace.vis.attributes"/> <ref name="mei_att.mSpace.ges.attributes"/> <ref name="mei_att.mSpace.anl.attributes"/> <empty/> </element> </define> <define name="mei_multiRest"> <element name="multiRest"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(multimeasure rest) Multiple full measure rests compressed into a single bar, frequently found in performer parts.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.multiRest.log.attributes"/> <ref name="mei_att.multiRest.vis.attributes"/> <ref name="mei_att.multiRest.ges.attributes"/> <ref name="mei_att.multiRest.anl.attributes"/> <empty/> </element> </define> <define name="mei_multiRpt"> <element name="multiRpt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(multiple repeat) Multiple repeated measures.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.multiRpt.log.attributes"/> <ref name="mei_att.multiRpt.vis.attributes"/> <ref name="mei_att.multiRpt.ges.attributes"/> <ref name="mei_att.multiRpt.anl.attributes"/> <empty/> </element> </define> <define name="mei_octave"> <element name="octave"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An indication that a passage should be performed one or more octaves above or below its written pitch.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-octave-octave_start-_and_end-type_attributes_required-constraint-rule-22"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:octave"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.octave.log.attributes"/> <ref name="mei_att.octave.vis.attributes"/> <ref name="mei_att.octave.ges.attributes"/> <ref name="mei_att.octave.anl.attributes"/> <empty/> </element> </define> <define name="mei_oLayer"> <element name="oLayer"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ossia layer) A layer that contains an alternative to material in another layer.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.nInteger.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.typed.attributes"/> <ref name="mei_att.layer.log.attributes"/> <ref name="mei_att.layer.vis.attributes"/> <ref name="mei_att.layer.ges.attributes"/> <ref name="mei_att.layer.anl.attributes"/> <empty/> </element> </define> <define name="mei_ossia"> <element name="ossia"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures original notation and a differently notated version *present in the source being transcribed*.</a:documentation> <choice> <interleave> <oneOrMore> <ref name="mei_oStaff"/> </oneOrMore> <oneOrMore> <ref name="mei_model.staffLike"/> </oneOrMore> </interleave> <interleave> <oneOrMore> <ref name="mei_oLayer"/> </oneOrMore> <oneOrMore> <ref name="mei_model.layerLike"/> </oneOrMore> </interleave> </choice> <sch:pattern xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude"> <sch:rule context="mei:measure/mei:ossia"> <sch:assert test="count(mei:*) = count(mei:staff)+count(mei:oStaff)">In a measure, ossia may only contain staff and oStaff elements.</sch:assert> </sch:rule> <sch:rule context="mei:staff/mei:ossia"> <sch:assert test="count(mei:*) = count(mei:layer)+count(mei:oLayer)">In a staff, ossia may only contain layer and oLayer elements.</sch:assert> </sch:rule> </sch:pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.ossia.log.attributes"/> <ref name="mei_att.ossia.vis.attributes"/> <ref name="mei_att.ossia.ges.attributes"/> <ref name="mei_att.ossia.anl.attributes"/> <empty/> </element> </define> <define name="mei_oStaff"> <element name="oStaff"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ossia staff) A staff that holds an alternative passage which may be played instead of the original material.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.relationLike"/> <ref name="mei_model.staffDefLike"/> <ref name="mei_model.staffPart"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.nInteger.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.typed.attributes"/> <ref name="mei_att.staff.log.attributes"/> <ref name="mei_att.staff.vis.attributes"/> <ref name="mei_att.staff.ges.attributes"/> <ref name="mei_att.staff.anl.attributes"/> <empty/> </element> </define> <define name="mei_pedal"> <element name="pedal"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Piano pedal mark.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-pedal-pedal_start-type_attributes_required-constraint-rule-25"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:pedal"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.pedal.log.attributes"/> <ref name="mei_att.pedal.vis.attributes"/> <ref name="mei_att.pedal.ges.attributes"/> <ref name="mei_att.pedal.anl.attributes"/> <empty/> </element> </define> <define name="mei_reh"> <element name="reh"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rehearsal mark) In an orchestral score and its corresponding parts, a mark indicating a convenient point from which to resume rehearsal after a break.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.lbLike"/> <ref name="mei_model.rendLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.reh.log.attributes"/> <ref name="mei_att.reh.vis.attributes"/> <ref name="mei_att.reh.ges.attributes"/> <ref name="mei_att.reh.anl.attributes"/> <empty/> </element> </define> <define name="mei_repeatMark"> <element name="repeatMark"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(repetition mark) An instruction expressed as a combination of text and symbols – segno and coda – typically above, below, or between staves, but not on the staff.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-repeatMark-repeatMark_start-type_attributes_required-constraint-rule-26"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:repeatMark"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-repeatMark-repeatMark_with_glyph_has_to_be_empty-constraint-rule-27"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:repeatMark[@glyph.num or @glyph.name]"> <sch:assert test="not(element()) and not(text())">When @glyph.name or @glyph.num is present, repeatMark must not have content.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.repeatMark.log.attributes"/> <ref name="mei_att.repeatMark.vis.attributes"/> <ref name="mei_att.repeatMark.ges.attributes"/> <ref name="mei_att.repeatMark.anl.attributes"/> <empty/> </element> </define> <define name="mei_slur"> <element name="slur"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indication of 1) a "unified melodic idea" or 2) performance technique.</a:documentation> <zeroOrMore> <ref name="mei_curve"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-slur-slur_start-_and_end-type_attributes_required-constraint-rule-28"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:slur"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-slur-slur_containing_curve-constraint-rule-29"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:slur[mei:curve[@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2]]"> <sch:assert test="not(@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2)" role="warning">The visual attributes of the slur (@bezier, @bulge, @curvedir, @lform, @lwidth, @ho, @startho, @endho, @to, @startto, @endto, @vo, @startvo, @endvo, @x, @y, @x2, and @y2) will be overridden by visual attributes of the contained curve elements.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.slur.log.attributes"/> <ref name="mei_att.slur.vis.attributes"/> <ref name="mei_att.slur.ges.attributes"/> <ref name="mei_att.slur.anl.attributes"/> <empty/> </element> </define> <define name="mei_tie"> <element name="tie"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An indication that two notes of the same pitch form a single note with their combined rhythmic values.</a:documentation> <zeroOrMore> <ref name="mei_curve"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-tie-tie_start-_and_end-type_attributes_required-constraint-rule-30"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:tie"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-tie-tie_containing_curve-constraint-rule-31"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:tie[mei:curve[@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2]]"> <sch:assert test="not(@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2)" role="warning">The visual attributes of the tie (@bezier, @bulge, @curvedir, @lform, @lwidth, @ho, @startho, @endho, @to, @startto, @endto, @vo, @startvo, @endvo, @x, @y, @x2, and @y2) will be overridden by visual attributes of the contained curve elements.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.tie.log.attributes"/> <ref name="mei_att.tie.vis.attributes"/> <ref name="mei_att.tie.ges.attributes"/> <ref name="mei_att.tie.anl.attributes"/> <empty/> </element> </define> <define name="mei_tuplet"> <element name="tuplet"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A group of notes with "irregular" (sometimes called "irrational") rhythmic values, for example, three notes in the time normally occupied by two or nine in the time of five.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.eventLike"/> <ref name="mei_model.eventLike.cmn"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.tuplet.log.attributes"/> <ref name="mei_att.tuplet.vis.attributes"/> <ref name="mei_att.tuplet.ges.attributes"/> <ref name="mei_att.tuplet.anl.attributes"/> <empty/> </element> </define> <define name="mei_tupletSpan"> <element name="tupletSpan"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(tuplet span) Alternative element for encoding tuplets, especially useful for tuplets that extend across bar lines.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-tupletSpan-tupletSpan_start-_and_end-type_attributes_required-constraint-rule-32"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:tupletSpan"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.tupletSpan.log.attributes"/> <ref name="mei_att.tupletSpan.vis.attributes"/> <ref name="mei_att.tupletSpan.ges.attributes"/> <ref name="mei_att.tupletSpan.anl.attributes"/> <empty/> </element> </define> <define name="mei_att.mordent.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.ornamentAccid.attributes"/> <ref name="mei_att.mordent.log.attribute.form"/> <ref name="mei_att.mordent.log.attribute.long"/> </define> <define name="mei_att.mordent.log.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records semantic meaning, i.e., intended performance, of the mordent. The <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@altsym</code>, <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@glyph.name</code>, or <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@glyph.num</code> attributes may be used to specify the appropriate symbol.</a:documentation> <choice> <value>lower</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Starts with the written note, followed by its lower neighbor, with a return to the written note. In modern practice, this is called an "inverted mordent" and indicated by a short wavy line with a vertical line through it.</a:documentation> <value>upper</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Starts with the written note, followed by its upper neighbor, with a return to the principal note. In modern practice, the symbol lacks the vertical line used for the inverted form.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.mordent.log.attribute.long"> <optional> <attribute name="long"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">When set to 'true', a double or long mordent, sometimes called a "pincé double", consisting of 5 notes, is indicated.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.ornamentAccid.attributes"> <ref name="mei_att.ornamentAccid.ges.attributes"/> <ref name="mei_att.ornamentAccid.attribute.accidupper"/> <ref name="mei_att.ornamentAccid.attribute.accidlower"/> </define> <define name="mei_att.ornamentAccid.attribute.accidupper"> <optional> <attribute name="accidupper"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the written accidental associated with an upper neighboring note.</a:documentation> <ref name="mei_data.ACCIDENTAL.WRITTEN"/> </attribute> </optional> </define> <define name="mei_att.ornamentAccid.attribute.accidlower"> <optional> <attribute name="accidlower"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the written accidental associated with a lower neighboring note.</a:documentation> <ref name="mei_data.ACCIDENTAL.WRITTEN"/> </attribute> </optional> </define> <define name="mei_att.ornamPresent.attributes"> <ref name="mei_att.ornamPresent.attribute.ornam"/> </define> <define name="mei_att.ornamPresent.attribute.ornam"> <optional> <attribute name="ornam"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(ornament) Indicates that this element has an attached ornament. If visual information about the ornament is needed, then one of the elements that represents an ornament (mordent, trill, or turn) should be employed.</a:documentation> <list> <oneOrMore> <ref name="mei_data.ORNAM.cmn"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.trill.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.ornamentAccid.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.turn.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.ornamentAccid.attributes"/> <ref name="mei_att.startId.attributes"/> <ref name="mei_att.turn.log.attribute.delayed"/> <ref name="mei_att.turn.log.attribute.form"/> </define> <define name="mei_att.turn.log.attribute.delayed"> <optional> <attribute name="delayed"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">When set to 'true', the turn begins on the second half of the beat.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.turn.log.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records meaning; i.e., intended performance, of the turn. The <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@altsym</code>, <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@glyph.name</code>, or <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@glyph.num</code> attributes may be used to specify the appropriate symbol.</a:documentation> <choice> <value>lower</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Begins on the note below the written note.</a:documentation> <value>upper</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Begins on the note above the written note.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_model.ornamentLike.cmn"> <choice> <ref name="mei_mordent"/> <ref name="mei_trill"/> <ref name="mei_turn"/> </choice> </define> <define name="mei_model.ornamentLike.cmn_alternation"> <choice> <ref name="mei_mordent"/> <ref name="mei_trill"/> <ref name="mei_turn"/> </choice> </define> <define name="mei_model.ornamentLike.cmn_sequence"> <ref name="mei_mordent"/> <ref name="mei_trill"/> <ref name="mei_turn"/> </define> <define name="mei_model.ornamentLike.cmn_sequenceOptional"> <optional> <ref name="mei_mordent"/> </optional> <optional> <ref name="mei_trill"/> </optional> <optional> <ref name="mei_turn"/> </optional> </define> <define name="mei_model.ornamentLike.cmn_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_mordent"/> </zeroOrMore> <zeroOrMore> <ref name="mei_trill"/> </zeroOrMore> <zeroOrMore> <ref name="mei_turn"/> </zeroOrMore> </define> <define name="mei_model.ornamentLike.cmn_sequenceRepeatable"> <oneOrMore> <ref name="mei_mordent"/> </oneOrMore> <oneOrMore> <ref name="mei_trill"/> </oneOrMore> <oneOrMore> <ref name="mei_turn"/> </oneOrMore> </define> <define name="mei_mordent"> <element name="mordent"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An ornament indicating rapid alternation of the main note with a secondary note, usually a step below, but sometimes a step above. </a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-mordent-mordent_start-type_attributes_required-constraint-rule-33"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:mordent"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.mordent.anl.attributes"/> <ref name="mei_att.mordent.ges.attributes"/> <ref name="mei_att.mordent.log.attributes"/> <ref name="mei_att.mordent.vis.attributes"/> <empty/> </element> </define> <define name="mei_trill"> <element name="trill"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Rapid alternation of a note with another (usually at the interval of a second above).</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-trill-trill_start-type_attributes_required-constraint-rule-34"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:trill"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.trill.anl.attributes"/> <ref name="mei_att.trill.ges.attributes"/> <ref name="mei_att.trill.log.attributes"/> <ref name="mei_att.trill.vis.attributes"/> <empty/> </element> </define> <define name="mei_turn"> <element name="turn"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An ornament consisting of four notes — the upper neighbor of the written note, the written note, the lower neighbor, and the written note.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-turn-turn_start-type_attributes_required-constraint-rule-35"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:turn"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.turn.anl.attributes"/> <ref name="mei_att.turn.ges.attributes"/> <ref name="mei_att.turn.log.attributes"/> <ref name="mei_att.turn.vis.attributes"/> <empty/> </element> </define> <define name="mei_meiCorpus"> <element name="meiCorpus"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(MEI corpus) A group of related MEI documents, consisting of a header for the group, and one or more <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><mei></code> elements, each with its own complete header.</a:documentation> <ref name="mei_meiHead"/> <zeroOrMore> <ref name="mei_mei"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.meiVersion.attributes"/> <empty/> </element> </define> <define name="mei_att.crit.attributes"> <ref name="mei_att.handIdent.attributes"/> <ref name="mei_att.sequence.attributes"/> <ref name="mei_att.source.attributes"/> <ref name="mei_att.crit.attribute.cause"/> </define> <define name="mei_att.crit.attribute.cause"> <optional> <attribute name="cause"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Classifies the cause for the variant reading, according to any appropriate typology of possible origins.</a:documentation> <data type="NMTOKEN"/> </attribute> </optional> </define> <define name="mei_att.rdg.log.attributes"> <empty/> </define> <define name="mei_model.appLike"> <choice> <ref name="mei_app"/> </choice> </define> <define name="mei_model.rdgPart"> <choice> <ref name="mei_model.rdgPart.music"/> <ref name="mei_model.rdgPart.text"/> <ref name="mei_model.sylLike"/> </choice> </define> <define name="mei_model.rdgPart.music"> <choice> <ref name="mei_model.controlEventLike.cmn"/> <ref name="mei_model.verseLike"/> <ref name="mei_volta"/> <ref name="mei_model.controlEventLike"/> <ref name="mei_model.layerLike"/> </choice> </define> <define name="mei_model.rdgPart.text"> <choice> <ref name="mei_model.textComponentLike"/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </define> <define name="mei_app"> <element name="app"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(apparatus) Contains one or more alternative encodings.</a:documentation> <optional> <ref name="mei_lem"/> </optional> <ref name="mei_rdg"/> <zeroOrMore> <ref name="mei_rdg"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_lem"> <element name="lem"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(lemma) Contains the lemma, or base text, of a textual variation.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.appLike"/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.rdgPart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_expansion"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.crit.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.rdg.anl.attributes"/> <ref name="mei_att.rdg.ges.attributes"/> <ref name="mei_att.rdg.log.attributes"/> <ref name="mei_att.rdg.vis.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_rdg"> <element name="rdg"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reading) Contains a single reading within a textual variation.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.appLike"/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.rdgPart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_expansion"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.crit.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.rdg.anl.attributes"/> <ref name="mei_att.rdg.ges.attributes"/> <ref name="mei_att.rdg.log.attributes"/> <ref name="mei_att.rdg.vis.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_att.sp.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.stageDir.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_model.stageDirLike"> <choice> <ref name="mei_stageDir"/> </choice> </define> <define name="mei_model.stageDirLike_alternation"> <choice> <ref name="mei_stageDir"/> </choice> </define> <define name="mei_model.stageDirLike_sequence"> <ref name="mei_stageDir"/> </define> <define name="mei_model.stageDirLike_sequenceOptional"> <optional> <ref name="mei_stageDir"/> </optional> </define> <define name="mei_model.stageDirLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_stageDir"/> </zeroOrMore> </define> <define name="mei_model.stageDirLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_stageDir"/> </oneOrMore> </define> <define name="mei_sp"> <element name="sp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(speech) Contains an individual speech in a performance text.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.figureLike"/> <ref name="mei_model.milestoneLike.text"/> </choice> </zeroOrMore> <zeroOrMore> <ref name="mei_speaker"/> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.figureLike"/> <ref name="mei_model.milestoneLike.text"/> </choice> </zeroOrMore> </zeroOrMore> <oneOrMore> <choice> <ref name="mei_model.lgLike"/> <ref name="mei_model.lLike"/> <ref name="mei_model.pLike"/> <ref name="mei_model.quoteLike"/> <ref name="mei_model.stageDirLike"/> <ref name="mei_list"/> </choice> </oneOrMore> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.figureLike"/> <ref name="mei_model.milestoneLike.text"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-sp-sp_start-type_attributes_required-constraint-rule-36"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:sp[ancestor::mei:layer or ancestor::mei:measure or ancestor::mei:staff][not(ancestor::mei:sp)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-sp-sp_start-type_attributes_forbidden-constraint-rule-37"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:sp[not(ancestor::mei:layer or ancestor::mei:measure or ancestor::mei:staff)]"> <sch:assert test="not(@startid or @endid or @tstamp or @tstamp2 or @tstamp.ges or @tstamp.real or @startho or @endho or @to or @startto or @endto or @staff or @layer or @place or @plist)">Must not have any of the attributes: startid, endid, tstamp, tstamp2, tstamp.ges, tstamp.real, startho, endho, to, startto, endto, staff, layer, place, or plist.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.sp.anl.attributes"/> <ref name="mei_att.sp.ges.attributes"/> <ref name="mei_att.sp.log.attributes"/> <ref name="mei_att.sp.vis.attributes"/> <empty/> </element> </define> <define name="mei_stageDir"> <element name="stageDir"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(stage direction) Contains any kind of stage direction within a dramatic text or fragment.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-stageDir-stageDir_start-type_attributes_required-constraint-rule-38"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:stageDir[ancestor::mei:layer or ancestor::mei:measure or ancestor::mei:staff][not(ancestor::mei:sp)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-stageDir-stageDir_start-type_attributes_forbidden-constraint-rule-39"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:stageDir[not(ancestor::mei:layer or ancestor::mei:measure or ancestor::mei:staff) or ancestor::mei:sp]"> <sch:assert test="not(@startid or @endid or @tstamp or @tstamp2 or @tstamp.ges or @tstamp.real or @startho or @endho or @to or @startto or @endto or @staff or @layer or @place or @plist)">Must not have any of the attributes: startid, endid, tstamp, tstamp2, tstamp.ges, tstamp.real, startho, endho, to, startto, endto, staff, layer, place, or plist.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.stageDir.anl.attributes"/> <ref name="mei_att.stageDir.ges.attributes"/> <ref name="mei_att.stageDir.log.attributes"/> <ref name="mei_att.stageDir.vis.attributes"/> <empty/> </element> </define> <define name="mei_att.agentIdent.attributes"> <ref name="mei_att.agentIdent.attribute.agent"/> </define> <define name="mei_att.agentIdent.attribute.agent"> <optional> <attribute name="agent"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Signifies the causative agent of damage, illegibility, or other loss of original text.</a:documentation> <data type="string"/> </attribute> </optional> </define> <define name="mei_att.cpMark.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.origin.timestamp.log.attributes"/> <ref name="mei_att.origin.staffIdent.attributes"/> <ref name="mei_att.origin.layerIdent.attributes"/> <ref name="mei_att.origin.startEndId.attributes"/> <ref name="mei_att.octaveDisplacement.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.edit.attributes"> <ref name="mei_att.source.attributes"/> <ref name="mei_att.evidence.attributes"/> </define> <define name="mei_att.metaMark.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.trans.attributes"/> </define> <define name="mei_att.reasonIdent.attributes"> <ref name="mei_att.reasonIdent.attribute.reason"/> </define> <define name="mei_att.reasonIdent.attribute.reason"> <optional> <attribute name="reason"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds a short phrase describing the reason for missing textual material (gap), why material is supplied (supplied), or why transcription is difficult (unclear).</a:documentation> <data type="string"/> </attribute> </optional> </define> <define name="mei_att.trans.attributes"> <ref name="mei_att.geneticState.attributes"/> <ref name="mei_att.handIdent.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.sequence.attributes"/> </define> <define name="mei_model.choicePart"> <choice> <ref name="mei_model.editLike"/> <ref name="mei_corr"/> <ref name="mei_orig"/> <ref name="mei_reg"/> <ref name="mei_sic"/> <ref name="mei_unclear"/> <ref name="mei_model.editorialLike"/> </choice> </define> <define name="mei_model.editLike"> <choice> <ref name="mei_choice"/> <ref name="mei_subst"/> </choice> </define> <define name="mei_model.editTransPart"> <choice> <ref name="mei_model.editTransPart.music"/> <ref name="mei_model.editTransPart.text"/> <ref name="mei_model.sylLike"/> </choice> </define> <define name="mei_model.editTransPart.music"> <choice> <ref name="mei_model.controlEventLike.cmn"/> <ref name="mei_model.verseLike"/> <ref name="mei_volta"/> <ref name="mei_model.controlEventLike"/> <ref name="mei_model.layerLike"/> </choice> </define> <define name="mei_model.editTransPart.text"> <choice> <ref name="mei_model.textComponentLike"/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </define> <define name="mei_model.transcriptionLike"> <choice> <ref name="mei_add"/> <ref name="mei_corr"/> <ref name="mei_damage"/> <ref name="mei_del"/> <ref name="mei_gap"/> <ref name="mei_handShift"/> <ref name="mei_orig"/> <ref name="mei_reg"/> <ref name="mei_restore"/> <ref name="mei_sic"/> <ref name="mei_supplied"/> <ref name="mei_unclear"/> </choice> </define> <define name="mei_abbr"> <element name="abbr" ns="http://www.music-encoding.org/ns/mei"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(abbreviation) A generic element for 1) a shortened form of a word, including an acronym or 2) a shorthand notation.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.trans.attributes"/> <optional> <attribute name="expan"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the expansion of a text abbreviation.</a:documentation> <data type="string"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_add"> <element name="add"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(addition) Marks an addition to the text.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.trans.attributes"/> <optional> <attribute name="place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Location of the addition.</a:documentation> <list> <oneOrMore> <ref name="mei_data.PLACEMENT"/> </oneOrMore> </list> </attribute> </optional> <empty/> </element> </define> <define name="mei_choice"> <element name="choice"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Groups a number of alternative encodings for the same point in a text.</a:documentation> <zeroOrMore> <ref name="mei_model.choicePart"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_corr"> <element name="corr"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(correction) Contains the correct form of an apparent erroneous passage.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.trans.attributes"/> <empty/> </element> </define> <define name="mei_cpMark"> <element name="cpMark"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(copy/colla parte mark) A verbal or graphical indication to copy musical material written elsewhere.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-cpMark-cpMark_start-_and_end-type_attributes_required-constraint-rule-40"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:cpMark"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.cpMark.log.attributes"/> <ref name="mei_att.cpMark.vis.attributes"/> <ref name="mei_att.cpMark.ges.attributes"/> <ref name="mei_att.cpMark.anl.attributes"/> <empty/> </element> </define> <define name="mei_damage"> <element name="damage"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains an area of damage to the physical medium.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.agentIdent.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.handIdent.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="degree"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the degree of damage.</a:documentation> <data type="string"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_del"> <element name="del"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(deletion) Contains information deleted, marked as deleted, or otherwise indicated as superfluous or spurious in the copy text by an author, scribe, annotator, or corrector.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.textRendition.attributes"/> <ref name="mei_att.trans.attributes"/> <empty/> </element> </define> <define name="mei_expan"> <element name="expan"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(expansion) Contains the expansion of an abbreviation.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.trans.attributes"/> <optional> <attribute name="abbr"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(abbreviation) Captures the abbreviated form of the text.</a:documentation> <data type="string"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_gap"> <element name="gap"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates a point where material has been omitted in a transcription, whether as part of sampling practice or for editorial reasons described in the MEI header.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.handIdent.attributes"/> <ref name="mei_att.reasonIdent.attributes"/> <empty/> </element> </define> <define name="mei_handShift"> <element name="handShift"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marks the beginning of a passage written in a new hand, or of a change in the scribe, writing style, ink or character of the document hand.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.medium.attributes"/> <optional> <attribute name="character"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the character of the new hand.</a:documentation> <text/> </attribute> </optional> <optional> <attribute name="new"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Identifies the new hand. The value must contain the ID of a hand element given elsewhere in the document.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-handShift-new-check_newTarget-constraint-rule-41"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@new"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@new attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:hand/@xml:id">The value in @new should correspond to the @xml:id attribute of a hand element.</sch:assert> </sch:rule> </pattern> <optional> <attribute name="old"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Identifies the old hand. The value must contain the ID of a hand element given elsewhere in the document.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-handShift-old-check_oldTarget-constraint-rule-42"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@old"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@old attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:hand/@xml:id">The value in @old should correspond to the @xml:id attribute of a hand element.</sch:assert> </sch:rule> </pattern> <empty/> </element> </define> <define name="mei_metaMark"> <element name="metaMark"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A graphical or textual statement with additional / explanatory information about the musical text. The textual consequences of this intervention are encoded independently via other means; that is, with elements such as <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><add></code>, <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><del></code>, etc.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.editLike"/> <ref name="mei_model.sectionLike"/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-metaMark-metaMark_start-type_attributes_required-constraint-rule-43"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:metaMark"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.metaMark.log.attributes"/> <ref name="mei_att.metaMark.vis.attributes"/> <ref name="mei_att.metaMark.ges.attributes"/> <ref name="mei_att.metaMark.anl.attributes"/> <ref name="mei_att.pointing.attributes"/> <optional> <attribute name="function"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the purpose of the metaMark. Suggested values include: 1] confirmation; 2] addition; 3] deletion; 4] substitution; 5] clarification; 6] question; 7] investigation; 8] restoration; 9] navigation</a:documentation> <choice> <value>confirmation</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">confirmation of a previous textual decision; i.e., cancellation of a deleted passage in a different writing medium.</a:documentation> <value>addition</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">denoted material is to be inserted in the musical text.</a:documentation> <value>deletion</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">denoted material is no longer part of the musical text.</a:documentation> <value>substitution</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">denoted material is replaced, either by the musical text pointed at with the @target attribute or the musical content of the metaMark element itself.</a:documentation> <value>clarification</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">attempt to clarify a potentially illegible or otherwise unclear part of the musical text.</a:documentation> <value>question</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">marks a section of the musical text which is to be considered further.</a:documentation> <value>investigation</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">marks a section of the musical text as an investigation of the consequences of certain compositional decisions or potential alternatives.</a:documentation> <value>restoration</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">declares a formerly cancelled part of the musical text as valid again.</a:documentation> <value>navigation</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">clarification of the reading order of the musical text.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_orig"> <element name="orig"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(original) Contains material which is marked as following the original, rather than being normalized or corrected.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_reg"> <element name="reg"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(regularization) Contains material which has been regularized or normalized in some sense.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_restore"> <element name="restore"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates restoration of material to an earlier state by cancellation of an editorial or authorial marking or instruction.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.trans.attributes"/> <optional> <attribute name="desc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(description) Provides a description of the means of restoration, stet or strike-down, for example.</a:documentation> <data type="string"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_sic"> <element name="sic"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains apparently incorrect or inaccurate material.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_subst"> <element name="subst"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(substitution) Groups transcriptional elements when the combination is to be regarded as a single intervention in the text.</a:documentation> <ref name="mei_model.transcriptionLike"/> <oneOrMore> <ref name="mei_model.transcriptionLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.trans.attributes"/> <empty/> </element> </define> <define name="mei_supplied"> <element name="supplied"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains material supplied by the transcriber or editor for any reason.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.agentIdent.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.reasonIdent.attributes"/> <empty/> </element> </define> <define name="mei_unclear"> <element name="unclear"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains material that cannot be transcribed with certainty because it is illegible or inaudible in the source.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.editTransPart"/> <ref name="mei_model.fLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.agentIdent.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.handIdent.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.reasonIdent.attributes"/> <empty/> </element> </define> <define name="mei_att.extSym.auth.attributes"> <ref name="mei_att.extSym.auth.attribute.glyph.auth"/> <ref name="mei_att.extSym.auth.attribute.glyph.uri"/> </define> <define name="mei_att.extSym.auth.attribute.glyph.auth"> <optional> <attribute name="glyph.auth"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A name or label associated with the controlled vocabulary from which the value of <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@glyph.name</code> or <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@glyph.num</code> is taken, or the textual content of the element. Suggested values include: 1] smufl</a:documentation> <choice> <value>smufl</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Standard Music Font Layout.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> </define> <define name="mei_att.extSym.auth.attribute.glyph.uri"> <optional> <attribute name="glyph.uri"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The web-accessible location of the controlled vocabulary from which the value of <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@glyph.name</code> or <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@glyph.num</code> is taken, or the textual content of the element.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.extSym.names.attributes"> <ref name="mei_att.extSym.names.attribute.glyph.name"/> <ref name="mei_att.extSym.names.attribute.glyph.num"/> </define> <define name="mei_att.extSym.names.attribute.glyph.name"> <optional> <attribute name="glyph.name"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Glyph name.</a:documentation> <data type="string"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.extSym.names-glyph.name-check_glyph.name-constraint-rule-44"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@glyph.name"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@glyph.name attribute should have content.</sch:assert> </sch:rule> </pattern> <define name="mei_att.extSym.names.attribute.glyph.num"> <optional> <attribute name="glyph.num"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Numeric glyph reference in hexadecimal notation, e.g., "#xE000" or "U+E000". N.B. SMuFL version 1.18 uses the range U+E000 - U+ECBF.</a:documentation> <ref name="mei_data.HEXNUM"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.extSym.names-glyph.num-check_glyph.num-constraint-rule-45"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[@glyph.num and (lower-case(@glyph.auth) eq 'smufl' or @glyph.uri eq 'http://www.smufl.org/')]"> <sch:assert role="warning" test="matches(normalize-space(@glyph.num), '^(#x|U\+)E([0-9AB][0-9A-F][0-9A-F]|C[0-9A][0-9A-F]|CB[0-9A-F])$')">SMuFL version 1.18 uses the range U+E000 - U+ECBF.</sch:assert> </sch:rule> </pattern> <define name="mei_att.extSym.attributes"> <ref name="mei_att.extSym.auth.attributes"/> <ref name="mei_att.extSym.names.attributes"/> </define> <define name="mei_att.facsimile.attributes"> <ref name="mei_att.facsimile.attribute.facs"/> </define> <define name="mei_att.facsimile.attribute.facs"> <optional> <attribute name="facs"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(facsimile) Points to one or more images, portions of an image, or surfaces which correspond to the current element.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.facsimile-facs-check_facsTarget-constraint-rule-46"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@facs"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@facs attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[local-name() eq 'surface' or local-name() eq 'zone']/@xml:id">Each value in @facs should correspond to the @xml:id attribute of a surface or zone element.</sch:assert> </sch:rule> </pattern> <define name="mei_facsimile"> <element name="facsimile"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a representation of a written source in the form of a set of images rather than as transcribed or encoded text.</a:documentation> <zeroOrMore> <ref name="mei_graphic"/> </zeroOrMore> <zeroOrMore> <ref name="mei_surface"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_surface"> <element name="surface"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Defines a writing surface in terms of a rectangular coordinate space, optionally grouping one or more graphic representations of that space, and rectangular zones of interest within it.</a:documentation> <zeroOrMore> <ref name="mei_model.figDescLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.graphicLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_zone"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.coordinated.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.startId.attributes"/> <empty/> </element> </define> <define name="mei_zone"> <element name="zone"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Defines an area of interest within a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><surface></code> or graphic file.</a:documentation> <zeroOrMore> <ref name="mei_model.figDescLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.graphicLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.coordinated.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <empty/> </element> </define> <define name="mei_att.tabular.attributes"> <ref name="mei_att.tabular.attribute.colspan"/> <ref name="mei_att.tabular.attribute.rowspan"/> </define> <define name="mei_att.tabular.attribute.colspan"> <optional> <attribute name="colspan"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The number of columns spanned by this cell.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.tabular.attribute.rowspan"> <optional> <attribute name="rowspan"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The number of rows spanned by this cell.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_model.figDescLike"> <choice> <ref name="mei_figDesc"/> </choice> </define> <define name="mei_model.figureLike"> <choice> <ref name="mei_fig"/> </choice> </define> <define name="mei_model.figureLike_alternation"> <choice> <ref name="mei_fig"/> </choice> </define> <define name="mei_model.figureLike_sequence"> <ref name="mei_fig"/> </define> <define name="mei_model.figureLike_sequenceOptional"> <optional> <ref name="mei_fig"/> </optional> </define> <define name="mei_model.figureLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_fig"/> </zeroOrMore> </define> <define name="mei_model.figureLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_fig"/> </oneOrMore> </define> <define name="mei_model.graphicLike"> <choice> <ref name="mei_graphic"/> </choice> </define> <define name="mei_model.tableLike"> <choice> <ref name="mei_table"/> </choice> </define> <define name="mei_model.tableLike_alternation"> <choice> <ref name="mei_table"/> </choice> </define> <define name="mei_model.tableLike_sequence"> <ref name="mei_table"/> </define> <define name="mei_model.tableLike_sequenceOptional"> <optional> <ref name="mei_table"/> </optional> </define> <define name="mei_model.tableLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_table"/> </zeroOrMore> </define> <define name="mei_model.tableLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_table"/> </oneOrMore> </define> <define name="mei_fig"> <element name="fig"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(figure) Groups elements representing or containing graphic information such as an illustration or figure.</a:documentation> <zeroOrMore> <choice> <ref name="mei_figDesc"/> <ref name="mei_model.captionLike"/> <ref name="mei_model.graphicLike"/> <ref name="mei_model.scoreLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.horizontalAlign.attributes"/> <ref name="mei_att.verticalAlign.attributes"/> <ref name="mei_att.xy.attributes"/> <empty/> </element> </define> <define name="mei_figDesc"> <element name="figDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(figure description) Contains a brief prose description of the appearance or content of a graphic figure, for use when documenting an image without displaying it.</a:documentation> <choice> <zeroOrMore> <ref name="mei_model.textComponentLike"/> </zeroOrMore> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_graphic"> <element name="graphic"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the location of an inline graphic.</a:documentation> <zeroOrMore> <ref name="mei_zone"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-graphic-graphic_attributes-constraint-rule-47"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:zone/mei:graphic"> <sch:assert role="warning" test="count(mei:*) = 0">Graphic child of zone should not have children.</sch:assert> </sch:rule> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:symbolDef/mei:graphic"> <sch:assert role="warning" test="@startid or (@ulx and @uly)">Graphic should have either a startid attribute or ulx and uly attributes.</sch:assert> </sch:rule> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:graphic[not(ancestor::mei:symbolDef or ancestor::mei:zone)]"> <sch:assert role="warning" test="not(@ulx or @uly)">Graphic should not have @ulx or @uly attributes.</sch:assert> <sch:assert role="warning" test="not(@ho or @vo)">Graphic should not have @ho or @vo attributes.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.coordinated.ul.attributes"/> <ref name="mei_att.dimensions.attributes"/> <ref name="mei_att.internetMedia.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.startId.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <empty/> </element> </define> <define name="mei_table"> <element name="table"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains text displayed in tabular form.</a:documentation> <optional> <ref name="mei_model.captionLike"/> </optional> <oneOrMore> <ref name="mei_tr"/> </oneOrMore> <optional> <ref name="mei_model.captionLike"/> </optional> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.xy.attributes"/> <empty/> </element> </define> <define name="mei_td"> <element name="td"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(table data) Designates a table cell that contains data as opposed to a cell that contains column or row heading information.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textComponentLike"/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.tabular.attributes"/> <empty/> </element> </define> <define name="mei_th"> <element name="th"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(table header) Designates a table cell containing column or row heading information as opposed to one containing data.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textComponentLike"/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.tabular.attributes"/> <empty/> </element> </define> <define name="mei_tr"> <element name="tr"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(table row) A formatting element that contains one or more cells (intersection of a row and a column) in a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><table></code>.</a:documentation> <zeroOrMore> <choice> <ref name="mei_th"/> <ref name="mei_td"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.xy.attributes"/> <empty/> </element> </define> <define name="mei_att.fing.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.fingGrp.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.fingGrp.log.attribute.form"/> </define> <define name="mei_att.fingGrp.log.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <choice> <value>alter</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">alternation of fingers.</a:documentation> <value>combi</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">combination of fingers.</a:documentation> <value>subst</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">substitution of fingers.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_model.fingeringLike"> <choice> <ref name="mei_fing"/> <ref name="mei_fingGrp"/> </choice> </define> <define name="mei_model.fingeringLike_alternation"> <choice> <ref name="mei_fing"/> <ref name="mei_fingGrp"/> </choice> </define> <define name="mei_model.fingeringLike_sequence"> <ref name="mei_fing"/> <ref name="mei_fingGrp"/> </define> <define name="mei_model.fingeringLike_sequenceOptional"> <optional> <ref name="mei_fing"/> </optional> <optional> <ref name="mei_fingGrp"/> </optional> </define> <define name="mei_model.fingeringLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_fing"/> </zeroOrMore> <zeroOrMore> <ref name="mei_fingGrp"/> </zeroOrMore> </define> <define name="mei_model.fingeringLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_fing"/> </oneOrMore> <oneOrMore> <ref name="mei_fingGrp"/> </oneOrMore> </define> <define name="mei_fing"> <element name="fing"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(finger) An individual finger in a fingering indication.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-fing-fing_start-type_attributes_required-constraint-rule-50"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:fing[not(ancestor::mei:fingGrp)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-fing-stack_exclusion-constraint-rule-51"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:fing"> <sch:assert test="not(descendant::mei:stack)">The stack element is not allowed as a descendant of fing.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.fing.anl.attributes"/> <ref name="mei_att.fing.ges.attributes"/> <ref name="mei_att.fing.log.attributes"/> <ref name="mei_att.fing.vis.attributes"/> <empty/> </element> </define> <define name="mei_fingGrp"> <element name="fingGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(finger group) A group of individual fingers in a fingering indication.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.fingeringLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-fingGrp-require_fingeringLike_children-constraint-rule-52"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:fingGrp"> <sch:assert test="count(mei:fing) + count(mei:fingGrp) > 1">At least 2 fing or fingGrp elements are required.</sch:assert> </sch:rule> </pattern> <sch:pattern xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude"> <sch:rule context="mei:fingGrp[not(ancestor::mei:fingGrp)][@tstamp or @startid]"> <sch:assert test="not(child::mei:*[@tstamp or @startid])">When @tstamp or @startid is present on fingGrp, its child elements cannot have a @tstamp or @startid attribute.</sch:assert> </sch:rule> <sch:rule context="mei:fingGrp[not(ancestor::mei:fingGrp)][not(@tstamp or @startid)]"> <sch:assert test="count(descendant::mei:*[@tstamp or @startid]) = count(child::mei:*[local-name()='fing' or local-name()='fingGrp'])">When @tstamp or @startid is not present on fingGrp, each of its child elements must have a @tstamp or @startid attribute.</sch:assert> </sch:rule> </sch:pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.fingGrp.anl.attributes"/> <ref name="mei_att.fingGrp.ges.attributes"/> <ref name="mei_att.fingGrp.log.attributes"/> <ref name="mei_att.fingGrp.vis.attributes"/> <empty/> </element> </define> <define name="mei_model.expressionLike"> <choice> <ref name="mei_expression"/> </choice> </define> <define name="mei_model.itemLike"> <choice> <ref name="mei_item"/> </choice> </define> <define name="mei_model.manifestationLike"> <choice> <ref name="mei_manifestation"/> </choice> </define> <define name="mei_expression"> <element name="expression"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Intellectual or artistic realization of a work.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.identifierLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.titleLike"/> </oneOrMore> <zeroOrMore> <ref name="mei_model.respLikePart"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.workIdent"/> </zeroOrMore> <zeroOrMore> <ref name="mei_otherChar"/> </zeroOrMore> <optional> <ref name="mei_creation"/> </optional> <optional> <ref name="mei_history"/> </optional> <optional> <ref name="mei_langUsage"/> </optional> <optional> <ref name="mei_perfMedium"/> </optional> <optional> <ref name="mei_perfDuration"/> </optional> <zeroOrMore> <ref name="mei_extent"/> </zeroOrMore> <optional> <ref name="mei_scoreFormat"/> </optional> <optional> <ref name="mei_contents"/> </optional> <optional> <ref name="mei_context"/> </optional> <zeroOrMore> <ref name="mei_biblList"/> </zeroOrMore> <optional> <ref name="mei_notesStmt"/> </optional> <optional> <ref name="mei_classification"/> </optional> <optional> <ref name="mei_componentList"/> </optional> <optional> <ref name="mei_relationList"/> </optional> <zeroOrMore> <ref name="mei_extMeta"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <empty/> </element> </define> <define name="mei_expressionList"> <element name="expressionList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Gathers bibliographic expression entities.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.expressionLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_item"> <element name="item"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Single instance or exemplar of a source/manifestation.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.identifierLike"/> </zeroOrMore> <optional> <ref name="mei_availability"/> </optional> <optional> <ref name="mei_physDesc"/> </optional> <optional> <ref name="mei_physLoc"/> </optional> <optional> <ref name="mei_history"/> </optional> <optional> <ref name="mei_notesStmt"/> </optional> <optional> <ref name="mei_classification"/> </optional> <optional> <ref name="mei_componentList"/> </optional> <optional> <ref name="mei_relationList"/> </optional> <zeroOrMore> <ref name="mei_extMeta"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_itemList"> <element name="itemList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Gathers bibliographic item entities.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.itemLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_manifestation"> <element name="manifestation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A bibliographic description of a physical embodiment of an expression of a work.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_locus"/> <ref name="mei_locusGrp"/> </choice> </zeroOrMore> <zeroOrMore> <ref name="mei_model.identifierLike"/> </zeroOrMore> <optional> <ref name="mei_titleStmt"/> </optional> <ref name="mei_macro.bibldescPart"/> <optional> <ref name="mei_creation"/> </optional> <optional> <ref name="mei_history"/> </optional> <optional> <ref name="mei_langUsage"/> </optional> <optional> <ref name="mei_contents"/> </optional> <zeroOrMore> <ref name="mei_biblList"/> </zeroOrMore> <optional> <ref name="mei_notesStmt"/> </optional> <optional> <ref name="mei_classification"/> </optional> <optional> <ref name="mei_itemList"/> </optional> <optional> <ref name="mei_componentList"/> </optional> <optional> <ref name="mei_relationList"/> </optional> <zeroOrMore> <ref name="mei_extMeta"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-manifestation-check_singleton-constraint-rule-55"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:manifestation[@singleton eq 'true']"> <sch:assert test="not(mei:itemList)">Item children are not permitted when @singleton equals "true".</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-manifestation-check_singleton_availability-constraint-rule-56"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:manifestation[@singleton eq 'false'] | mei:manifestation[not(@singleton)]"> <sch:assert test="not(mei:availability)">Availability is only permitted when @singleton equals "true".</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.componentType.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.recordType.attributes"/> <ref name="mei_att.targetEval.attributes"/> <optional> <attribute name="singleton"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the manifestation is a unique physical object.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_manifestationList"> <element name="manifestationList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A container for the descriptions of physical embodiments of an expression of a work.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.manifestationLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_att.geneticState.attributes"> <ref name="mei_att.geneticState.attribute.instant"/> <ref name="mei_att.geneticState.attribute.state"/> </define> <define name="mei_att.geneticState.attribute.instant"> <optional> <attribute name="instant"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The @instant attribute is syntactic sugar for classifying a scribal intervention as an ad-hoc modification; that is, one which does not interrupt the writing process.</a:documentation> <choice> <ref name="mei_data.BOOLEAN"/> <value>unknown</value> </choice> </attribute> </optional> </define> <define name="mei_att.geneticState.attribute.state"> <optional> <attribute name="state"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Points to the genetic state that results from this modification.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.geneticState-check_changeState.targets-constraint-rule-57"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@state"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@state attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:genState/@xml:id">The value in @state should correspond to the @xml:id attribute of a genState (genetic state) element.</sch:assert> </sch:rule> </pattern> <define name="mei_genDesc"> <element name="genDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(genetic description) Bundles information about the textual development of a work.</a:documentation> <zeroOrMore> <choice> <ref name="mei_genDesc"/> <ref name="mei_genState"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <optional> <attribute name="ordered"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">When set to "true" the child elements are known to be in chronological order. When set to "false" or when not provided, the order of child elements is unknown.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_genState"> <element name="genState"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes a distinctive state in the textual development of a work.</a:documentation> <zeroOrMore> <ref name="mei_desc"/> </zeroOrMore> <zeroOrMore> <ref name="mei_respStmt"/> </zeroOrMore> <optional> <ref name="mei_model.dateLike"/> </optional> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <empty/> </element> </define> <define name="mei_att.accid.ges.attributes"> <ref name="mei_att.accidental.ges.attributes"/> </define> <define name="mei_att.accidental.ges.attributes"> <ref name="mei_att.accidental.ges.attribute.accid.ges"/> </define> <define name="mei_att.accidental.ges.attribute.accid.ges"> <optional> <attribute name="accid.ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the performed pitch inflection.</a:documentation> <ref name="mei_data.ACCIDENTAL.GESTURAL"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.accidental.ges-accid.ges-check_accid_duplication-constraint-rule-58"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@accid.ges"> <sch:assert role="warning" test="not(. eq ../@accid)">The value of @accid.ges should not duplicate the value of @accid.</sch:assert> </sch:rule> </pattern> <define name="mei_att.ambitus.ges.attributes"> <empty/> </define> <define name="mei_att.ambNote.ges.attributes"> <empty/> </define> <define name="mei_att.anchoredText.ges.attributes"> <empty/> </define> <define name="mei_att.annot.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.arpeg.ges.attributes"> <empty/> </define> <define name="mei_att.artic.ges.attributes"> <ref name="mei_att.articulation.ges.attributes"/> </define> <define name="mei_att.articulation.ges.attributes"> <ref name="mei_att.articulation.ges.attribute.artic.ges"/> </define> <define name="mei_att.articulation.ges.attribute.artic.ges"> <optional> <attribute name="artic.ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records performed articulation that differs from the written value.</a:documentation> <list> <oneOrMore> <ref name="mei_data.ARTICULATION"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.attacca.ges.attributes"> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.attacking.attributes"> <ref name="mei_att.attacking.attribute.attacca"/> </define> <define name="mei_att.attacking.attribute.attacca"> <optional> <attribute name="attacca"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates that the performance of the next musical division should begin immediately following this one.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.barLine.ges.attributes"> <empty/> </define> <define name="mei_att.beam.ges.attributes"> <empty/> </define> <define name="mei_att.beamSpan.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.beatRpt.ges.attributes"> <empty/> </define> <define name="mei_att.bend.ges.attributes"> <ref name="mei_att.timestamp2.ges.attributes"/> <ref name="mei_att.bend.ges.attribute.amount"/> </define> <define name="mei_att.bend.ges.attribute.amount"> <optional> <attribute name="amount"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the amount of detuning. The decimal values should be rendered as a fraction (or an integer plus a fraction) along with the bend symbol.</a:documentation> <ref name="mei_data.BEND.AMOUNT"/> </attribute> </optional> </define> <define name="mei_att.bracketSpan.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.breath.ges.attributes"> <ref name="mei_att.timestamp.ges.attributes"/> </define> <define name="mei_att.bTrem.ges.attributes"> <ref name="mei_att.tremMeasured.attributes"/> </define> <define name="mei_att.caesura.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp.ges.attributes"/> </define> <define name="mei_att.chord.ges.attributes"> <ref name="mei_att.articulation.ges.attributes"/> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.instrumentIdent.attributes"/> <ref name="mei_att.chord.ges.cmn.attributes"/> </define> <define name="mei_att.chordDef.ges.attributes"> <empty/> </define> <define name="mei_att.chordMember.ges.attributes"> <ref name="mei_att.accidental.ges.attributes"/> </define> <define name="mei_att.clef.ges.attributes"> <empty/> </define> <define name="mei_att.clefGrp.ges.attributes"> <empty/> </define> <define name="mei_att.course.ges.attributes"> <empty/> </define> <define name="mei_att.cpMark.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.curve.ges.attributes"> <empty/> </define> <define name="mei_att.custos.ges.attributes"> <empty/> </define> <define name="mei_att.mdiv.ges.attributes"> <ref name="mei_att.attacking.attributes"/> </define> <define name="mei_att.dir.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.dot.ges.attributes"> <empty/> </define> <define name="mei_att.duration.ges.attributes"> <ref name="mei_att.duration.ges.attribute.dur.ges"/> <ref name="mei_att.duration.ges.attribute.dots.ges"/> <ref name="mei_att.duration.ges.attribute.dur.metrical"/> <ref name="mei_att.duration.ges.attribute.dur.ppq"/> <ref name="mei_att.duration.ges.attribute.dur.real"/> <ref name="mei_att.duration.ges.attribute.dur.recip"/> </define> <define name="mei_att.duration.ges.attribute.dur.ges"> <optional> <attribute name="dur.ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records performed duration information that differs from the written duration; @dur.ges allows the same datatypes as @dur. Values of @dur.ges that require dots should also use @dots.ges.</a:documentation> <ref name="mei_data.DURATION.GESTURAL"/> </attribute> </optional> </define> <define name="mei_att.duration.ges.attribute.dots.ges"> <optional> <attribute name="dots.ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Number of dots required for a gestural duration when different from that of the written duration.</a:documentation> <ref name="mei_data.AUGMENTDOT"/> </attribute> </optional> </define> <define name="mei_att.duration.ges.attribute.dur.metrical"> <optional> <attribute name="dur.metrical"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Duration as a count of units provided in the time signature denominator.</a:documentation> <data type="decimal"> <param name="pattern">\d+(\.\d+)?</param> </data> </attribute> </optional> </define> <define name="mei_att.duration.ges.attribute.dur.ppq"> <optional> <attribute name="dur.ppq"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Duration recorded as pulses-per-quarter note, e.g., MIDI clicks or MusicXML divisions.</a:documentation> <data type="nonNegativeInteger"/> </attribute> </optional> </define> <define name="mei_att.duration.ges.attribute.dur.real"> <optional> <attribute name="dur.real"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Duration in seconds, e.g., 1.732.</a:documentation> <data type="decimal"> <param name="pattern">\d+(\.\d+)?</param> </data> </attribute> </optional> </define> <define name="mei_att.duration.ges.attribute.dur.recip"> <optional> <attribute name="dur.recip"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Duration as an optionally dotted <a xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0" href="https://www.humdrum.org/rep/recip/">Humdrum **recip value</a>.</a:documentation> <data type="token"> <param name="pattern">[0-9]+(%[0-9]+)?\.*q?</param> </data> </attribute> </optional> </define> <define name="mei_att.dynam.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.midiValue.attributes"/> <ref name="mei_att.midiValue2.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.ending.ges.attributes"> <empty/> </define> <define name="mei_att.episema.ges.attributes"> <ref name="mei_att.articulation.ges.attributes"/> </define> <define name="mei_att.f.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.fermata.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> </define> <define name="mei_att.fing.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.fingGrp.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.fTrem.ges.attributes"> <ref name="mei_att.tremMeasured.attributes"/> </define> <define name="mei_att.gliss.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.graceGrp.ges.attributes"> <empty/> </define> <define name="mei_att.grpSym.ges.attributes"> <empty/> </define> <define name="mei_att.hairpin.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.midiValue.attributes"/> <ref name="mei_att.midiValue2.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.halfmRpt.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> </define> <define name="mei_att.harm.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.harpPedal.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> </define> <define name="mei_att.hispanTick.ges.attributes"> <empty/> </define> <define name="mei_att.instrDef.ges.attributes"> <ref name="mei_att.channelized.attributes"/> <ref name="mei_att.midiInstrument.attributes"/> <ref name="mei_att.soundLocation.attributes"/> </define> <define name="mei_att.keyAccid.ges.attributes"> <empty/> </define> <define name="mei_att.keySig.ges.attributes"> <empty/> </define> <define name="mei_att.layer.ges.attributes"> <empty/> </define> <define name="mei_att.layerDef.ges.attributes"> <ref name="mei_att.instrumentIdent.attributes"/> <ref name="mei_att.tuning.attributes"/> </define> <define name="mei_att.ligature.ges.attributes"> <empty/> </define> <define name="mei_att.line.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.liquescent.ges.attributes"> <empty/> </define> <define name="mei_att.lv.ges.attributes"> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.lyrics.ges.attributes"> <empty/> </define> <define name="mei_att.measure.ges.attributes"> <ref name="mei_att.timestamp.ges.attributes"/> </define> <define name="mei_att.mensur.ges.attributes"> <empty/> </define> <define name="mei_att.metaMark.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.meterSig.ges.attributes"> <empty/> </define> <define name="mei_att.meterSigGrp.ges.attributes"> <empty/> </define> <define name="mei_att.midi.ges.attributes"> <empty/> </define> <define name="mei_att.mNum.ges.attributes"> <empty/> </define> <define name="mei_att.mordent.ges.attributes"> <empty/> </define> <define name="mei_att.mRest.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> </define> <define name="mei_att.mRpt.ges.attributes"> <empty/> </define> <define name="mei_att.mRpt2.ges.attributes"> <empty/> </define> <define name="mei_att.mSpace.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> </define> <define name="mei_att.multiRest.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> </define> <define name="mei_att.multiRpt.ges.attributes"> <empty/> </define> <define name="mei_att.nc.ges.attributes"> <ref name="mei_att.accidental.ges.attributes"/> <ref name="mei_att.articulation.ges.attributes"/> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.instrumentIdent.attributes"/> <ref name="mei_att.midiVelocity.attributes"/> <ref name="mei_att.pitch.ges.attributes"/> </define> <define name="mei_att.ncGrp.ges.attributes"> <ref name="mei_att.timestamp.ges.attributes"/> </define> <define name="mei_att.neume.ges.attributes"> <ref name="mei_att.timestamp.ges.attributes"/> </define> <define name="mei_att.note.ges.attributes"> <ref name="mei_att.accidental.ges.attributes"/> <ref name="mei_att.articulation.ges.attributes"/> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.instrumentIdent.attributes"/> <ref name="mei_att.midiVelocity.attributes"/> <ref name="mei_att.note.ges.mensural.attributes"/> <ref name="mei_att.pitch.ges.attributes"/> <ref name="mei_att.stringtab.attributes"/> <ref name="mei_att.note.ges.attribute.extremis"/> </define> <define name="mei_att.note.ges.attribute.extremis"> <optional> <attribute name="extremis"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates an extreme, indefinite performed pitch.</a:documentation> <choice> <value>highest</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Highest note the performer can play.</a:documentation> <value>lowest</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Lowest note the performer can play.</a:documentation> </choice> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.note.ges-extremis_disallows_gestural_pitch-constraint-rule-59"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:note[@extremis]"> <sch:assert test="not(@pname.ges) and not(@oct.ges)">When the @extremis attribute is used, the @pname.ges and @oct.ges attributes are not allowed.</sch:assert> </sch:rule> </pattern> <define name="mei_att.octave.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.oriscus.ges.attributes"> <empty/> </define> <define name="mei_att.ornam.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.ornamentAccid.ges.attributes"> <ref name="mei_att.ornamentAccid.ges.attribute.accidupper.ges"/> <ref name="mei_att.ornamentAccid.ges.attribute.accidlower.ges"/> </define> <define name="mei_att.ornamentAccid.ges.attribute.accidupper.ges"> <optional> <attribute name="accidupper.ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the sounding accidental associated with an upper neighboring note.</a:documentation> <ref name="mei_data.ACCIDENTAL.GESTURAL"/> </attribute> </optional> </define> <define name="mei_att.ornamentAccid.ges.attribute.accidlower.ges"> <optional> <attribute name="accidlower.ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the sounding accidental associated with a lower neighboring note.</a:documentation> <ref name="mei_data.ACCIDENTAL.GESTURAL"/> </attribute> </optional> </define> <define name="mei_att.ossia.ges.attributes"> <empty/> </define> <define name="mei_att.pad.ges.attributes"> <empty/> </define> <define name="mei_att.part.ges.attributes"> <empty/> </define> <define name="mei_att.parts.ges.attributes"> <empty/> </define> <define name="mei_att.pb.ges.attributes"> <empty/> </define> <define name="mei_att.pedal.ges.attributes"> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.phrase.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.pitch.ges.attributes"> <ref name="mei_att.pitch.ges.attribute.oct.ges"/> <ref name="mei_att.pitch.ges.attribute.pname.ges"/> <ref name="mei_att.pitch.ges.attribute.pnum"/> </define> <define name="mei_att.pitch.ges.attribute.oct.ges"> <optional> <attribute name="oct.ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records performed octave information that differs from the written value.</a:documentation> <ref name="mei_data.OCTAVE"/> </attribute> </optional> </define> <define name="mei_att.pitch.ges.attribute.pname.ges"> <optional> <attribute name="pname.ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a performed pitch name that differs from the written value.</a:documentation> <ref name="mei_data.PITCHNAME.GESTURAL"/> </attribute> </optional> </define> <define name="mei_att.pitch.ges.attribute.pnum"> <optional> <attribute name="pnum"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pitch number) Holds a pitch-to-number mapping, a base-40 or MIDI note number, for example.</a:documentation> <ref name="mei_data.PITCHNUMBER"/> </attribute> </optional> </define> <define name="mei_att.plica.ges.attributes"> <empty/> </define> <define name="mei_att.proport.ges.attributes"> <empty/> </define> <define name="mei_att.quilisma.ges.attributes"> <empty/> </define> <define name="mei_att.rdg.ges.attributes"> <empty/> </define> <define name="mei_att.refrain.ges.attributes"> <empty/> </define> <define name="mei_att.reh.ges.attributes"> <empty/> </define> <define name="mei_att.repeatMark.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.rest.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.rest.ges.mensural.attributes"/> </define> <define name="mei_att.sb.ges.attributes"> <empty/> </define> <define name="mei_att.score.ges.attributes"> <empty/> </define> <define name="mei_att.scoreDef.ges.attributes"> <ref name="mei_att.channelized.attributes"/> <ref name="mei_att.timeBase.attributes"/> <ref name="mei_att.tuning.attributes"/> <ref name="mei_att.midiTempo.attributes"/> <ref name="mei_att.mmTempo.attributes"/> </define> <define name="mei_att.section.ges.attributes"> <ref name="mei_att.attacking.attributes"/> </define> <define name="mei_att.signifLet.ges.attributes"> <empty/> </define> <define name="mei_att.slur.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.soundLocation.attributes"> <ref name="mei_att.soundLocation.attribute.azimuth"/> <ref name="mei_att.soundLocation.attribute.elevation"/> </define> <define name="mei_att.soundLocation.attribute.azimuth"> <optional> <attribute name="azimuth"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The lateral or left-to-right plane.</a:documentation> <ref name="mei_data.DEGREES"/> </attribute> </optional> </define> <define name="mei_att.soundLocation.attribute.elevation"> <optional> <attribute name="elevation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The above-to-below axis.</a:documentation> <ref name="mei_data.DEGREES"/> </attribute> </optional> </define> <define name="mei_att.sp.ges.attributes"> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.space.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> </define> <define name="mei_att.staff.ges.attributes"> <empty/> </define> <define name="mei_att.staffDef.ges.attributes"> <ref name="mei_att.instrumentIdent.attributes"/> <ref name="mei_att.stringtab.tuning.attributes"/> <ref name="mei_att.timeBase.attributes"/> <ref name="mei_att.tuning.attributes"/> </define> <define name="mei_att.staffGrp.ges.attributes"> <ref name="mei_att.instrumentIdent.attributes"/> </define> <define name="mei_att.stageDir.ges.attributes"> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.stem.ges.attributes"> <empty/> </define> <define name="mei_att.strophicus.ges.attributes"> <empty/> </define> <define name="mei_att.syl.ges.attributes"> <empty/> </define> <define name="mei_att.syllable.ges.attributes"> <empty/> </define> <define name="mei_att.symbol.ges.attributes"> <empty/> </define> <define name="mei_att.tabDurSym.ges.attributes"> <empty/> </define> <define name="mei_att.tabGrp.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> </define> <define name="mei_att.tempo.ges.attributes"> <ref name="mei_att.midiTempo.attributes"/> </define> <define name="mei_att.tie.ges.attributes"> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.timestamp.ges.attributes"> <ref name="mei_att.timestamp.ges.attribute.tstamp.ges"/> <ref name="mei_att.timestamp.ges.attribute.tstamp.real"/> </define> <define name="mei_att.timestamp.ges.attribute.tstamp.ges"> <optional> <attribute name="tstamp.ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the onset time in terms of musical time, i.e., beats[.fractional beat part], as expressed in the written time signature.</a:documentation> <ref name="mei_data.BEAT"/> </attribute> </optional> </define> <define name="mei_att.timestamp.ges.attribute.tstamp.real"> <optional> <attribute name="tstamp.real"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the onset time in terms of ISO time.</a:documentation> <ref name="mei_data.ISOTIME"/> </attribute> </optional> </define> <define name="mei_att.timestamp2.ges.attributes"> <ref name="mei_att.timestamp2.ges.attribute.tstamp2.ges"/> <ref name="mei_att.timestamp2.ges.attribute.tstamp2.real"/> </define> <define name="mei_att.timestamp2.ges.attribute.tstamp2.ges"> <optional> <attribute name="tstamp2.ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the ending point of an event, i.e., a count of measures plus a beat location in the ending measure.</a:documentation> <ref name="mei_data.MEASUREBEAT"/> </attribute> </optional> </define> <define name="mei_att.timestamp2.ges.attribute.tstamp2.real"> <optional> <attribute name="tstamp2.real"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the ending point of an event in terms of ISO time.</a:documentation> <ref name="mei_data.ISOTIME"/> </attribute> </optional> </define> <define name="mei_att.trill.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> <ref name="mei_att.timestamp2.ges.attributes"/> </define> <define name="mei_att.tuning.ges.attributes"> <empty/> </define> <define name="mei_att.tuplet.ges.attributes"> <ref name="mei_att.duration.ges.attributes"/> </define> <define name="mei_att.tupletSpan.ges.attributes"> <ref name="mei_att.timestamp2.ges.attributes"/> <ref name="mei_att.tuplet.ges.attributes"/> </define> <define name="mei_att.turn.ges.attributes"> <empty/> </define> <define name="mei_att.verse.ges.attributes"> <empty/> </define> <define name="mei_att.volta.ges.attributes"> <empty/> </define> <define name="mei_att.chordDef.log.attributes"> <ref name="mei_att.stringtab.position.attributes"/> <ref name="mei_att.stringtab.tuning.attributes"/> </define> <define name="mei_att.chordMember.log.attributes"> <ref name="mei_att.pitched.attributes"/> <ref name="mei_att.stringtab.attributes"/> </define> <define name="mei_att.f.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.harm.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.harm.log.attribute.chordref"/> </define> <define name="mei_att.harm.log.attribute.chordref"> <optional> <attribute name="chordref"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(chord reference) Contains a reference to a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><chordDef></code> element elsewhere in the document.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.harm.log-chordref-check_chordrefTarget-constraint-rule-60"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@chordref"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@chordref attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:chordDef/@xml:id">The value in @chordref should correspond to the @xml:id attribute of a chordDef element.</sch:assert> </sch:rule> </pattern> <define name="mei_model.chordTableLike"> <choice> <ref name="mei_chordTable"/> </choice> </define> <define name="mei_model.controlEventLike.harmony"> <choice> <ref name="mei_model.harmLike"/> </choice> </define> <define name="mei_model.controlEventLike.harmony_alternation"> <choice> <ref name="mei_model.harmLike_alternation"/> </choice> </define> <define name="mei_model.controlEventLike.harmony_sequence"> <ref name="mei_model.harmLike_sequence"/> </define> <define name="mei_model.controlEventLike.harmony_sequenceOptional"> <optional> <ref name="mei_model.harmLike_sequenceOptional"/> </optional> </define> <define name="mei_model.controlEventLike.harmony_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_model.harmLike_sequenceOptionalRepeatable"/> </zeroOrMore> </define> <define name="mei_model.controlEventLike.harmony_sequenceRepeatable"> <oneOrMore> <ref name="mei_model.harmLike_sequenceRepeatable"/> </oneOrMore> </define> <define name="mei_model.figbassLike"> <choice> <ref name="mei_fb"/> </choice> </define> <define name="mei_model.fLike"> <choice> <ref name="mei_f"/> </choice> </define> <define name="mei_model.harmLike"> <choice> <ref name="mei_harm"/> </choice> </define> <define name="mei_model.harmLike_alternation"> <choice> <ref name="mei_harm"/> </choice> </define> <define name="mei_model.harmLike_sequence"> <ref name="mei_harm"/> </define> <define name="mei_model.harmLike_sequenceOptional"> <optional> <ref name="mei_harm"/> </optional> </define> <define name="mei_model.harmLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_harm"/> </zeroOrMore> </define> <define name="mei_model.harmLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_harm"/> </oneOrMore> </define> <define name="mei_chordDef"> <element name="chordDef"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(chord definition) Chord tablature definition.</a:documentation> <zeroOrMore> <ref name="mei_chordMember"/> </zeroOrMore> <zeroOrMore> <ref name="mei_barre"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.chordDef.anl.attributes"/> <ref name="mei_att.chordDef.ges.attributes"/> <ref name="mei_att.chordDef.log.attributes"/> <ref name="mei_att.chordDef.vis.attributes"/> <empty/> </element> </define> <define name="mei_chordMember"> <element name="chordMember"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An individual pitch in a chord defined by a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><chordDef></code> element.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.chordMember.anl.attributes"/> <ref name="mei_att.chordMember.ges.attributes"/> <ref name="mei_att.chordMember.log.attributes"/> <ref name="mei_att.chordMember.vis.attributes"/> <empty/> </element> </define> <define name="mei_chordTable"> <element name="chordTable"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Chord/tablature look-up table.</a:documentation> <oneOrMore> <ref name="mei_chordDef"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_f"> <element name="f"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(figure) Single element of a figured bass indication.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.f.anl.attributes"/> <ref name="mei_att.f.ges.attributes"/> <ref name="mei_att.f.log.attributes"/> <ref name="mei_att.f.vis.attributes"/> <empty/> </element> </define> <define name="mei_fb"> <element name="fb"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(figured bass) Symbols added to a bass line that indicate harmony. Used to improvise a chordal accompaniment. Sometimes called Generalbass, thoroughbass, or basso continuo.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.fLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <empty/> </element> </define> <define name="mei_harm"> <element name="harm"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(harmony) An indication of harmony, e.g., chord names, tablature grids, harmonic analysis, figured bass.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_model.figbassLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-harm-harm_start-type_attributes_required-constraint-rule-61"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:harm"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.harm.anl.attributes"/> <ref name="mei_att.harm.ges.attributes"/> <ref name="mei_att.harm.log.attributes"/> <ref name="mei_att.harm.vis.attributes"/> <empty/> </element> </define> <define name="mei_att.bifoliumSurfaces.attributes"> <ref name="mei_att.bifoliumSurfaces.attribute.outer.recto"/> <ref name="mei_att.bifoliumSurfaces.attribute.inner.verso"/> <ref name="mei_att.bifoliumSurfaces.attribute.inner.recto"/> <ref name="mei_att.bifoliumSurfaces.attribute.outer.verso"/> </define> <define name="mei_att.bifoliumSurfaces.attribute.outer.recto"> <optional> <attribute name="outer.recto"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A reference to a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><surface></code> element positioned on the outer recto side of a (folded) sheet.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.bifoliumSurfaces.attribute.inner.verso"> <optional> <attribute name="inner.verso"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A reference to a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><surface></code> element positioned on the inner verso side of a (folded) sheet.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.bifoliumSurfaces.attribute.inner.recto"> <optional> <attribute name="inner.recto"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A reference to a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><surface></code> element positioned on the inner recto side of a (folded) sheet.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.bifoliumSurfaces.attribute.outer.verso"> <optional> <attribute name="outer.verso"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A reference to a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><surface></code> element positioned on the outer verso side of a (folded) sheet.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.foliumSurfaces.attributes"> <ref name="mei_att.foliumSurfaces.attribute.recto"/> <ref name="mei_att.foliumSurfaces.attribute.verso"/> </define> <define name="mei_att.foliumSurfaces.attribute.recto"> <optional> <attribute name="recto"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A reference to a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><surface></code> element positioned on the recto side of the sheet.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.foliumSurfaces.attribute.verso"> <optional> <attribute name="verso"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A reference to a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><surface></code> element positioned on the verso side of the sheet.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.perfRes.attributes"> <ref name="mei_att.perfRes.basic.attributes"/> <ref name="mei_att.transposition.attributes"/> <ref name="mei_att.perfRes.attribute.solo"/> </define> <define name="mei_att.perfRes.attribute.solo"> <optional> <attribute name="solo"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Use this attribute to identify the performance resource as a soloist especially in an accompanied work, such as a concerto or vocal solo.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.perfRes.basic.attributes"> <ref name="mei_att.adlibitum.attributes"/> <ref name="mei_att.perfRes.basic.attribute.count"/> </define> <define name="mei_att.perfRes.basic.attribute.count"> <optional> <attribute name="count"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the number of performers.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.adlibitum.attributes"> <ref name="mei_att.adlibitum.attribute.adlib"/> </define> <define name="mei_att.adlibitum.attribute.adlib"> <optional> <attribute name="adlib"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marks a performance resource as ad libitum (optional).</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.recordType.attributes"> <ref name="mei_att.recordType.attribute.recordtype"/> </define> <define name="mei_att.recordType.attribute.recordtype"> <optional> <attribute name="recordtype"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <choice> <value>a</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Language material.</a:documentation> <value>c</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Notated music.</a:documentation> <value>d</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Manuscript notated music.</a:documentation> <value>e</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Non-manuscript cartographic material.</a:documentation> <value>f</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Manuscript cartographic material.</a:documentation> <value>g</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Projected medium.</a:documentation> <value>i</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Nonmusical sound recording.</a:documentation> <value>j</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Musical sound recording.</a:documentation> <value>k</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Two-dimensional nonprojectable graphic.</a:documentation> <value>m</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Computer file.</a:documentation> <value>o</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Kit.</a:documentation> <value>p</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Mixed materials.</a:documentation> <value>r</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Three-dimensional artifact or naturally occurring object.</a:documentation> <value>t</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Manuscript language material. </a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.regularMethod.attributes"> <ref name="mei_att.regularMethod.attribute.method"/> </define> <define name="mei_att.regularMethod.attribute.method"> <optional> <attribute name="method"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the method employed to mark corrections and normalizations.</a:documentation> <choice> <value>silent</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Corrections and normalizations made silently.</a:documentation> <value>markup</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Corrections and normalizations represented using markup.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_model.bifoliumLike"> <choice> <ref name="mei_bifolium"/> </choice> </define> <define name="mei_model.editorialDeclPart"> <choice> <ref name="mei_correction"/> <ref name="mei_interpretation"/> <ref name="mei_normalization"/> <ref name="mei_segmentation"/> <ref name="mei_stdVals"/> </choice> </define> <define name="mei_model.eventPart"> <choice> <ref name="mei_model.nameLike.agent"/> <ref name="mei_model.nameLike.geogName"/> <ref name="mei_model.addressLike"/> <ref name="mei_model.dateLike"/> <ref name="mei_desc"/> <ref name="mei_name"/> </choice> </define> <define name="mei_model.foliumLike"> <choice> <ref name="mei_folium"/> </choice> </define> <define name="mei_model.frontAndBackPart"> <choice> <ref name="mei_titlePage"/> </choice> </define> <define name="mei_model.paperModLike"> <choice> <ref name="mei_cutout"/> <ref name="mei_patch"/> </choice> </define> <define name="mei_model.physDescPart"> <choice> <ref name="mei_captureMode"/> <ref name="mei_carrierForm"/> <ref name="mei_condition"/> <ref name="mei_fileChar"/> <ref name="mei_foliaDesc"/> <ref name="mei_handList"/> <ref name="mei_history"/> <ref name="mei_inscription"/> <ref name="mei_perfDuration"/> <ref name="mei_physMedium"/> <ref name="mei_plateNum"/> <ref name="mei_playingSpeed"/> <ref name="mei_scoreFormat"/> <ref name="mei_soundChan"/> <ref name="mei_specRepro"/> <ref name="mei_trackConfig"/> <ref name="mei_watermarkDesc"/> <ref name="mei_accMat"/> <ref name="mei_addDesc"/> <ref name="mei_bindingDesc"/> <ref name="mei_catchwords"/> <ref name="mei_colophon"/> <ref name="mei_decoDesc"/> <ref name="mei_explicit"/> <ref name="mei_heraldry"/> <ref name="mei_layoutDesc"/> <ref name="mei_rubric"/> <ref name="mei_scriptDesc"/> <ref name="mei_sealDesc"/> <ref name="mei_secFolio"/> <ref name="mei_signatures"/> <ref name="mei_stamp"/> <ref name="mei_supportDesc"/> <ref name="mei_typeDesc"/> <ref name="mei_model.incipLike"/> <ref name="mei_dimensions"/> <ref name="mei_extent"/> <ref name="mei_titlePage"/> </choice> </define> <define name="mei_model.pubStmtPart"> <choice> <ref name="mei_availability"/> <ref name="mei_model.addressLike"/> <ref name="mei_model.dateLike"/> <ref name="mei_model.identifierLike"/> <ref name="mei_distributor"/> <ref name="mei_publisher"/> <ref name="mei_pubPlace"/> <ref name="mei_respStmt"/> </choice> </define> <define name="mei_model.workIdent"> <choice> <ref name="mei_key"/> <ref name="mei_mensuration"/> <ref name="mei_meter"/> <ref name="mei_model.incipLike"/> <ref name="mei_tempo"/> </choice> </define> <define name="mei_model.workLike"> <choice> <ref name="mei_work"/> </choice> </define> <define name="mei_accessRestrict"> <element name="accessRestrict"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(access restriction) Describes the conditions that affect the accessibility of material.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_acquisition"> <element name="acquisition"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records information concerning the process by which an item was acquired by the holding institution.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_eventList"/> <ref name="mei_model.pLike"/> </choice> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_altId"> <element name="altId"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(alternative identifier) May contain a bibliographic identifier that does not fit within the meiHead element’s id attribute, for example because the identifier does not fit the definition of an XML id or because multiple identifiers are needed.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.lbLike"/> <ref name="mei_model.rendLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_appInfo"> <element name="appInfo"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(application information) Groups information about applications which have acted upon the MEI file.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_application"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_application"> <element name="application"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides information about an application which has acted upon the current document.</a:documentation> <oneOrMore> <ref name="mei_name"/> </oneOrMore> <choice> <zeroOrMore> <ref name="mei_model.locrefLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.pLike"/> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.datable.attributes"/> <optional> <attribute name="version"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Supplies a version number for an application, independent of its identifier or display name.</a:documentation> <data type="NMTOKEN"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_attUsage"> <element name="attUsage"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Documents the usage of a specific attribute of the element.</a:documentation> <optional> <ref name="mei_desc"/> </optional> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-attUsage-context_attribute_requires_content-constraint-rule-62"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@context"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@context attribute should contain an XPath expression.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <attribute name="name"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of the attribute.</a:documentation> <ref name="mei_data.NMTOKEN"/> </attribute> <optional> <attribute name="context"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Circumstances in which the attribute appears, an XPath expression.</a:documentation> <data type="string"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_audience"> <element name="audience"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Defines the class of user for which the work is intended, as defined by age group (e.g., children, young adults, adults, etc.), educational level (e.g., primary, secondary, etc.), or other categorization.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_availability"> <element name="availability"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Groups elements that describe the availability of and access to a bibliographic item, including an MEI-encoded document.</a:documentation> <ref name="mei_macro.availabilityPart"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <empty/> </element> </define> <define name="mei_bifolium"> <element name="bifolium"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes a folded sheet of paper.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.foliumLike"/> <ref name="mei_model.bifoliumLike"/> <ref name="mei_model.paperModLike"/> <ref name="mei_del"/> <ref name="mei_add"/> <ref name="mei_damage"/> <ref name="mei_gap"/> <ref name="mei_restore"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.dimensions.attributes"/> <ref name="mei_att.measurement.attributes"/> <ref name="mei_att.bifoliumSurfaces.attributes"/> <empty/> </element> </define> <define name="mei_byline"> <element name="byline"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the primary statement of responsibility given for a work on its title page.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.respLikePart"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_captureMode"> <element name="captureMode"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(capture mode) The means used to record notation, sound, or images in the production of a source/manifestation (e.g., analogue, acoustic, electric, digital, optical etc.).</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_carrierForm"> <element name="carrierForm"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(carrier form) The specific class of material to which the physical carrier of the source/manifestation belongs (e.g., sound cassette, videodisc, microfilm cartridge, transparency, etc.). The carrier for a manifestation comprising multiple physical components may include more than one form (e.g., a filmstrip with an accompanying booklet, a separate sound disc carrying the sound track for a film, etc.).</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_category"> <element name="category"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains an individual descriptive category in a user-defined taxonomy, possibly nested within a superordinate category.</a:documentation> <zeroOrMore> <ref name="mei_altId"/> </zeroOrMore> <zeroOrMore> <ref name="mei_label"/> </zeroOrMore> <zeroOrMore> <ref name="mei_desc"/> </zeroOrMore> <zeroOrMore> <ref name="mei_catRel"/> </zeroOrMore> <zeroOrMore> <ref name="mei_category"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-category-category_id-constraint-rule-63"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:category"> <sch:assert test="@xml:id" role="warning">To be addressable, the category element must have an xml:id attribute.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <empty/> </element> </define> <define name="mei_catRel"> <element name="catRel"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(category relationship) Contains the name, i.e., label, of a related category.</a:documentation> <zeroOrMore> <ref name="mei_label"/> </zeroOrMore> <zeroOrMore> <ref name="mei_desc"/> </zeroOrMore> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a description of the relationship between the current and the target categories.</a:documentation> <choice> <value>broader</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Category to which the current category is hierarchically subordinate.</a:documentation> <value>narrower</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Category which is hierarchically subordinate to the current category.</a:documentation> <value>related</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Category that is associatively but not hierarchically linked to the current category.</a:documentation> <value>usefor</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Non-preferred category; often a synonym or near-synonym for the preferred category label.</a:documentation> </choice> </attribute> <empty/> </element> </define> <define name="mei_change"> <element name="change"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Individual change within the revision description.</a:documentation> <optional> <ref name="mei_respStmt"/> </optional> <ref name="mei_changeDesc"/> <optional> <ref name="mei_model.dateLike"/> </optional> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-change-check_change-constraint-rule-64"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:change"> <sch:assert test="@isodate or mei:date">The date of the change must be recorded in an isodate attribute or date element.</sch:assert> <sch:assert test="@resp or mei:respStmt[mei:name or mei:corpName or mei:persName]" role="warning">It is recommended that the agent responsible for the change be recorded in a resp attribute or in a name, corpName, or persName element in the respStmt element.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <empty/> </element> </define> <define name="mei_changeDesc"> <element name="changeDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(change description) Description of a revision of the MEI file.</a:documentation> <oneOrMore> <ref name="mei_model.pLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_classDecls"> <element name="classDecls"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Groups information which describes the nature or topic of an entity.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_taxonomy"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_classification"> <element name="classification"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Groups information which describes the nature or topic of an entity.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_termList"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <empty/> </element> </define> <define name="mei_componentList"> <element name="componentList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Container for intellectual or physical component parts of a bibliographic entity.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <choice> <choice> <zeroOrMore> <ref name="mei_model.workLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.expressionLike"/> </zeroOrMore> </choice> <choice> <zeroOrMore> <ref name="mei_model.manifestationLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.itemLike"/> </zeroOrMore> </choice> </choice> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-componentList-checkComponentList-constraint-rule-65"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:componentList"> <sch:assert test="every $i in ./child::mei:*[not(local-name()='head')] satisfies $i/local-name() eq ./parent::mei:*/local-name()">Only child elements of the same name as the parent of the componentList are allowed.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-componentList-checkComponents-constraint-rule-66"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:componentList[mei:*[@comptype]]"> <sch:assert role="warning" test="count(mei:*[@comptype]) = count(mei:*[local-name() ne 'head'])">When any child element has a comptype attribute, it is recommended that comptype appear on all child elements.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_condition"> <element name="condition"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The physical condition of an item, particularly any variances between the physical make-up of the item and that of other copies of the same item (e.g., missing pages or plates, brittleness, faded images, etc.).</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_contentItem"> <element name="contentItem"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a single entry within a content description element.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_contents"> <element name="contents"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">List of the material contained within a resource.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <choice> <optional> <ref name="mei_model.pLike"/> </optional> <oneOrMore> <optional> <ref name="mei_label"/> </optional> <ref name="mei_contentItem"/> </oneOrMore> </choice> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-contents-checkContentsLabels-constraint-rule-67"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:contents[mei:label]"> <sch:assert role="warning" test="count(mei:label) = count(mei:contentItem)">When labels are used, usually each content item has one.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.pointing.attributes"/> <empty/> </element> </define> <define name="mei_context"> <element name="context"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The historical, social, intellectual, artistic, or other context within which the work was originally conceived (e.g., the 17th century restoration of the monarchy in England, the aesthetic movement of the late 19th century, etc.) or the historical, social, intellectual, artistic, or other context within which the expression was realized.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_correction"> <element name="correction"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">States how and under what circumstances corrections have been made in the text.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.pLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.regularMethod.attributes"/> <optional> <attribute name="corrlevel"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the degree of correction applied to the text.</a:documentation> <choice> <value>high</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The text has been thoroughly checked and proofread.</a:documentation> <value>medium</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The text has been checked at least once.</a:documentation> <value>low</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The text has not been checked.</a:documentation> <value>unknown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The correction status of the text is unknown.</a:documentation> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_cutout"> <element name="cutout"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A cutout is a section of a document sheet that has been removed and is now missing.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.foliumLike"/> <ref name="mei_model.bifoliumLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.dimensions.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.measurement.attributes"/> <ref name="mei_att.trans.attributes"/> <ref name="mei_att.xy.attributes"/> <attribute name="removed.from"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the position of the cutout on the parent folium / bifolium.</a:documentation> <choice> <value>outer.recto</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">removed from outer recto side of bifolium.</a:documentation> <value>inner.verso</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">removed from inner verso side of bifolium.</a:documentation> <value>inner.recto</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">removed from inner recto side of bifolium.</a:documentation> <value>outer.verso</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">removed from outer verso side of bifolium.</a:documentation> <value>recto</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">removed from recto side of folium.</a:documentation> <value>verso</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">removed from verso side of folium.</a:documentation> </choice> </attribute> <optional> <attribute name="removed.by"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the method of removing the cutout. Suggested values include: 1] cut; 2] rip</a:documentation> <choice> <value>cut</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">section is cleanly cut by a knife, scissor or other sharp blade.</a:documentation> <value>rip</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">section is ripped off the page, leaving a rough edge.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_dedication"> <element name="dedication"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a dedicatory statement.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.textComponentLike"/> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_domainsDecl"> <element name="domainsDecl"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(domains declaration) Indicates which domains are included in the encoding.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <attribute name="anl"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <ref name="mei_data.BOOLEAN"/> </attribute> <attribute name="ges"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <ref name="mei_data.BOOLEAN"/> </attribute> <attribute name="vis"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <ref name="mei_data.BOOLEAN"/> </attribute> <empty/> </element> </define> <define name="mei_editionStmt"> <element name="editionStmt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(edition statement) Container for meta-data pertaining to a particular edition of the material being described.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.editionLike"/> <zeroOrMore> <choice> <ref name="mei_model.respLikePart"/> <ref name="mei_respStmt"/> </choice> </zeroOrMore> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_editorialDecl"> <element name="editorialDecl"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(editorial declaration) Used to provide details of editorial principles and practices applied during the encoding of musical text.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <choice> <oneOrMore> <ref name="mei_model.pLike"/> </oneOrMore> <group> <oneOrMore> <ref name="mei_model.editorialDeclPart"/> </oneOrMore> <zeroOrMore> <ref name="mei_model.pLike"/> </zeroOrMore> </group> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_encodingDesc"> <element name="encodingDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(encoding description) Documents the relationship between an electronic file and the source or sources from which it was derived as well as applications used in the encoding/editing process.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <optional> <ref name="mei_appInfo"/> </optional> <optional> <ref name="mei_editorialDecl"/> </optional> <optional> <ref name="mei_projectDesc"/> </optional> <optional> <ref name="mei_samplingDecl"/> </optional> <zeroOrMore> <ref name="mei_domainsDecl"/> </zeroOrMore> <optional> <ref name="mei_tagsDecl"/> </optional> <optional> <ref name="mei_classDecls"/> </optional> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_exhibHist"> <element name="exhibHist"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(exhibition history) A record of public exhibitions, including dates, venues, etc.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_eventList"/> <ref name="mei_model.pLike"/> </choice> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_extMeta"> <element name="extMeta"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(extended metadata) Provides a container element for non-MEI metadata formats.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_macro.anyXML"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.whitespace.attributes"/> <empty/> </element> </define> <define name="mei_fileChar"> <element name="fileChar"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(file characteristics) Standards or schemes used to encode the file (e.g., ASCII, SGML, etc.), physical characteristics of the file (e.g., recording density, parity, blocking, etc.), and other characteristics that have a bearing on how the file can be processed.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_fileDesc"> <element name="fileDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(file description) Contains a full bibliographic description of the MEI file.</a:documentation> <ref name="mei_titleStmt"/> <optional> <ref name="mei_editionStmt"/> </optional> <optional> <ref name="mei_extent"/> </optional> <ref name="mei_pubStmt"/> <optional> <ref name="mei_seriesStmt"/> </optional> <optional> <ref name="mei_notesStmt"/> </optional> <optional> <ref name="mei_sourceDesc"/> </optional> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_foliaDesc"> <element name="foliaDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the order of folia and bifolia making up the text block of a manuscript or print.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.foliumLike"/> <ref name="mei_model.bifoliumLike"/> <ref name="mei_del"/> <ref name="mei_add"/> <ref name="mei_damage"/> <ref name="mei_gap"/> <ref name="mei_restore"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_folium"> <element name="folium"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes a single leaf of paper.</a:documentation> <zeroOrMore> <ref name="mei_model.paperModLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.dimensions.attributes"/> <ref name="mei_att.measurement.attributes"/> <ref name="mei_att.foliumSurfaces.attributes"/> <empty/> </element> </define> <define name="mei_hand"> <element name="hand"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Defines a distinct scribe or handwriting style.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.medium.attributes"/> <optional> <attribute name="initial"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marks this hand as the first one of the document.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_handList"> <element name="handList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Container for one or more hand elements.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <optional> <ref name="mei_label"/> </optional> <ref name="mei_hand"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-handList-checkHandListLabels-constraint-rule-68"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:handList[mei:label]"> <sch:assert role="warning" test="count(mei:label) = count(mei:hand)">When labels are used, usually each hand has one.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_history"> <element name="history"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a container for information about the history of a resource other than the circumstances of its creation.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_acquisition"/> <ref name="mei_exhibHist"/> <ref name="mei_provenance"/> <ref name="mei_treatHist"/> <ref name="mei_treatSched"/> <ref name="mei_model.divLike"/> <ref name="mei_model.textComponentLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-history-history_restriction-constraint-rule-69"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:history[parent::mei:work or parent::mei:expression or parent::mei:manifestation[not(@singleton='true')]]"> <sch:assert test="not(mei:acquisition or mei:provenance or mei:exhibHist or mei:treatHist or mei:treatSched)">The elements acquisition, provenance, exhibHist, treatHist and treatSched are not permitted at the work or expression level and are only permitted at the manifestation level, if the manifestation is a manifestation singleton.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_incipCode"> <element name="incipCode"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Incipit coded in a non-XML, plain text format, such as Plaine & Easie Code.</a:documentation> <text/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-incipCode-Check_incipCode_form_mimetype-constraint-rule-70"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:incipCode"> <sch:assert test="@form or @mimetype">incipCode must have a form or mimetype attribute.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.internetMedia.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.whitespace.attributes"/> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Form of the encoded incipit. Suggested values include: 1] plaineAndEasie; 2] humdrumKern; 3] parsons</a:documentation> <choice> <value>plaineAndEasie</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Plaine & Easie Code.</a:documentation> <value>humdrumKern</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">**kern representation of the Humdrum format.</a:documentation> <value>parsons</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Parsons code.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_incipText"> <element name="incipText"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Opening words of a musical composition.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_model.pLike"/> <ref name="mei_model.lgLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.internetMedia.attributes"/> <empty/> </element> </define> <define name="mei_inscription"> <element name="inscription"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An inscription added to an item, such as a bookplate, a note designating the item as a gift, and/or the author’s signature.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_interpretation"> <element name="interpretation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the scope of any analytic or interpretive information added to the transcription of the music.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.pLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_key"> <element name="key"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Key captures information about tonal center and mode.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.accidental.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.keyMode.attributes"/> <ref name="mei_att.pitch.attributes"/> <empty/> </element> </define> <define name="mei_language"> <element name="language"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Description of a language used in the document.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_langUsage"> <element name="langUsage"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language usage) Groups elements describing the languages, sub-languages, dialects, etc., represented within the encoded resource.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_language"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <empty/> </element> </define> <define name="mei_meiHead"> <element name="meiHead"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(MEI header) Supplies the descriptive and declarative metadata prefixed to every MEI-conformant text.</a:documentation> <zeroOrMore> <ref name="mei_altId"/> </zeroOrMore> <ref name="mei_fileDesc"/> <optional> <ref name="mei_encodingDesc"/> </optional> <optional> <ref name="mei_workList"/> </optional> <optional> <ref name="mei_manifestationList"/> </optional> <zeroOrMore> <ref name="mei_extMeta"/> </zeroOrMore> <optional> <ref name="mei_revisionDesc"/> </optional> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-meiHead-check_meiHead_type-constraint-rule-71"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:meiHead[@type eq 'music']"> <sch:assert test="ancestor::mei:mei">The meiHead type attribute can have the value 'music' only when the document element is "mei".</sch:assert> </sch:rule> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:meiHead[@type eq 'corpus']"> <sch:assert test="ancestor::mei:meiCorpus">The meiHead type attribute can have the value 'corpus' only when the document element is "meiCorpus".</sch:assert> </sch:rule> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:meiHead[@type eq 'independent']"> <sch:assert test="not(ancestor::mei:*)">The meiHead type attribute can have the value 'independent' only when the document element is "meiHead".</sch:assert> </sch:rule> </pattern> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.meiVersion.attributes"/> <ref name="mei_att.responsibility.attributes"/> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the kind of document to which the header is attached, for example whether it is a corpus or individual text.</a:documentation> <choice> <value>music</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Header is attached to a music document.</a:documentation> <value>corpus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Header is attached to a corpus.</a:documentation> <value>independent</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Header is independent; i.e., not attached to either a music or a corpus document.</a:documentation> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_mensuration"> <element name="mensuration"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures information about mensuration within bibliographic descriptions.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.mensur.log.attributes"/> <ref name="mei_att.mensur.vis.attributes"/> <empty/> </element> </define> <define name="mei_meter"> <element name="meter"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures information about the time signature within bibliographic descriptions.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.meterSig.log.attributes"/> <empty/> </element> </define> <define name="mei_namespace"> <element name="namespace"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Supplies the formal name of the namespace to which the elements documented by its children belong.</a:documentation> <optional> <ref name="mei_desc"/> </optional> <choice> <oneOrMore> <ref name="mei_tagUsage"/> </oneOrMore> <oneOrMore> <ref name="mei_attUsage"/> </oneOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <attribute name="name"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Formal namespace identifier; that is, a uniform resource identifier (URI).</a:documentation> <ref name="mei_data.URI"/> </attribute> <optional> <attribute name="prefix"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Prefix associated with the formal identifier.</a:documentation> <ref name="mei_data.NMTOKEN"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_normalization"> <element name="normalization"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the extent of normalization or regularization of the original source carried out in converting it to electronic form.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.pLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.regularMethod.attributes"/> <empty/> </element> </define> <define name="mei_notesStmt"> <element name="notesStmt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(notes statement) Collects any notes providing information about a text additional to that recorded in other parts of the bibliographic description.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.annotLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_otherChar"> <element name="otherChar"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(other distinguishing characteristic) Any characteristic that serves to differentiate a work or expression from another.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_patch"> <element name="patch"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes a physical writing surface attached to the original document.</a:documentation> <choice> <ref name="mei_model.foliumLike"/> <ref name="mei_model.bifoliumLike"/> </choice> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-patch-check_attached_position-constraint-rule-74"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:patch"> <sch:assert test="(parent::mei:folium and @attached.to = ('recto','verso')) or (parent::mei:bifolium and @attached.to = ('outer.recto','inner.verso','inner.recto','outer.verso'))">The allowed positions of a patch depend on its parent element.</sch:assert> <sch:assert test="count(child::node()) gt 0">A patch element must contain either a folium or a bifolium element.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.measurement.attributes"/> <ref name="mei_att.trans.attributes"/> <ref name="mei_att.xy.attributes"/> <attribute name="attached.to"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the position of the patch on the parent folium / bifolium.</a:documentation> <choice> <value>outer.recto</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch attached to outer recto side of bifolium.</a:documentation> <value>inner.verso</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch attached to inner verso side of bifolium.</a:documentation> <value>inner.recto</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch attached to inner recto side of bifolium.</a:documentation> <value>outer.verso</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch attached to outer verso side of bifolium.</a:documentation> <value>recto</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch attached to recto side of folium.</a:documentation> <value>verso</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch attached to verso side of folium.</a:documentation> </choice> </attribute> <optional> <attribute name="attached.by"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the method of attachment of the patch. Suggested values include: 1] glue; 2] thread; 3] needle; 4] tape; 5] staple</a:documentation> <choice> <value>glue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch is glued on surface beneath.</a:documentation> <value>thread</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch is sewn on surface beneath.</a:documentation> <value>needle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch is pinned to the surface beneath.</a:documentation> <value>tape</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch is taped on surface beneath using an adhesive strip.</a:documentation> <value>staple</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">patch is attached on surface beneath using a staple.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_perfDuration"> <element name="perfDuration"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(performance duration) Used to express the duration of performance of printed or manuscript music or the playing time for a sound recording, videorecording, etc.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="isodur"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds a W3C duration value, e.g., "PT2H34M45.67S".</a:documentation> <data type="duration"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_perfMedium"> <element name="perfMedium"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(performance medium) Indicates the number and character of the performing forces used in a musical composition.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <optional> <ref name="mei_castList"/> </optional> <optional> <ref name="mei_perfResList"/> </optional> <zeroOrMore> <ref name="mei_model.annotLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_perfRes"> <element name="perfRes"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(performance resource) Name of an instrument on which a performer plays, a performer's voice range, or a standard performing ensemble designation.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_perfRes"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.perfRes.attributes"/> <empty/> </element> </define> <define name="mei_perfResList"> <element name="perfResList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(performance resources list) Several instrumental or vocal resources treated as a group.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_annot"/> <ref name="mei_perfRes"/> <ref name="mei_perfResList"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.perfRes.basic.attributes"/> <empty/> </element> </define> <define name="mei_physDesc"> <element name="physDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(physical description) Container for information about the appearance, construction, or handling of physical materials, such as their dimension, quantity, color, style, and technique of creation.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.pLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.physDescPart"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_physMedium"> <element name="physMedium"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(physical medium) Records the physical materials used in the source, such as ink and paper.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_plateNum"> <element name="plateNum"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(plate number) Designation assigned to a resource by a music publisher, usually printed at the bottom of each page, and sometimes appearing also on the title page.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_playingSpeed"> <element name="playingSpeed"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Playing speed for a sound recording is the speed at which the carrier must be operated to produce the sound intended (e.g., 33 1/3 rpm, 19 cm/s, etc.).</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_price"> <element name="price"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The cost of access to a bibliographic item.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="amount"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Numeric value capturing a cost. Can only be interpreted in combination with the currency attribute.</a:documentation> <data type="decimal"> <param name="pattern">[0-9]+\.[0-9]{2}</param> </data> </attribute> </optional> <optional> <attribute name="currency"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Monetary unit.</a:documentation> <data type="NMTOKEN"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_projectDesc"> <element name="projectDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(project description) Project-level meta-data describing the aim or purpose for which the electronic file was encoded, funding agencies, etc. together with any other relevant information concerning the process by which it was assembled or collected.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.pLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_provenance"> <element name="provenance"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The record of ownership or custodianship of an item.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_eventList"/> <ref name="mei_model.pLike"/> </choice> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_pubStmt"> <element name="pubStmt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(publication statement) Container for information regarding the publication or distribution of a bibliographic item, including the publisher’s name and address, the date of publication, and other relevant details.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <choice> <optional> <ref name="mei_unpub"/> </optional> <zeroOrMore> <ref name="mei_model.pubStmtPart"/> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_revisionDesc"> <element name="revisionDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(revision description) Container for information about alterations that have been made to an MEI file.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_change"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_samplingDecl"> <element name="samplingDecl"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(sampling declaration) Contains a prose description of the rationale and methods used in sampling texts in the creation of a corpus or collection.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.pLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_scoreFormat"> <element name="scoreFormat"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the type of score used to represent a musical composition (e.g., short score, full score, condensed score, close score, etc.).</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_segmentation"> <element name="segmentation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the principles according to which the musical text has been segmented, for example into movements, sections, etc.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.pLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_seriesStmt"> <element name="seriesStmt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(series statement) Groups information about the series, if any, to which a publication belongs.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.titleLike"/> </oneOrMore> <zeroOrMore> <choice> <ref name="mei_model.respLikePart"/> <ref name="mei_respStmt"/> </choice> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_model.identifierLike"/> <ref name="mei_biblScope"/> <ref name="mei_contents"/> <ref name="mei_seriesStmt"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_soundChan"> <element name="soundChan"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(sound channels) Reflects the number of apparent sound channels in the playback of a recording (monaural, stereophonic, quadraphonic, etc.).</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="num"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the channel configuration in numeric form.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_source"> <element name="source"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A bibliographic description of a source used in the creation of the electronic file.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_locus"/> <ref name="mei_locusGrp"/> </choice> </zeroOrMore> <zeroOrMore> <ref name="mei_model.biblLike"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-source-check_source_target-constraint-rule-75"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:source/@target"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@target attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[local-name() eq 'source' or local-name() eq 'manifestation']/@xml:id or matches($i, '^([a-z]+://|\.{1,2}/)')">Each value in @target should correspond to the @xml:id attribute of a source or manifestation element or be an external URI.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.componentType.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.recordType.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_sourceDesc"> <element name="sourceDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(source description) A container for the descriptions of the source(s) used in the creation of the electronic file.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_source"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_specRepro"> <element name="specRepro"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(special reproduction characteristic) The equalization system, noise reduction system, etc. used in making the recording (e.g., NAB, DBX, Dolby, etc.).</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_stdVals"> <element name="stdVals"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(standard values) Specifies the format used when standardized date or number values are supplied.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.pLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_sysReq"> <element name="sysReq"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(system requirements) System requirements for using the electronic item.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_tagsDecl"> <element name="tagsDecl"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(tagging declaration) Provides detailed information about the tagging applied to a document.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <optional> <ref name="mei_desc"/> </optional> <zeroOrMore> <ref name="mei_namespace"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_tagUsage"> <element name="tagUsage"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Documents the usage of a specific element within the document.</a:documentation> <optional> <ref name="mei_desc"/> </optional> <zeroOrMore> <ref name="mei_attUsage"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-tagUsage-context_attribute_requires_content-constraint-rule-76"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@context"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@context attribute should contain an XPath expression.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <attribute name="name"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of the element.</a:documentation> <ref name="mei_data.NMTOKEN"/> </attribute> <optional> <attribute name="context"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Circumstances in which the element appears, an XPath expression.</a:documentation> <data type="string"/> </attribute> </optional> <optional> <attribute name="occurs"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Number of occurrences in the defined context.</a:documentation> <data type="nonNegativeInteger"/> </attribute> </optional> <optional> <attribute name="withid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Number of occurrences in the defined context that have an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@xml:id</code> attribute.</a:documentation> <data type="nonNegativeInteger"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_taxonomy"> <element name="taxonomy"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Defines a typology either implicitly, by means of a bibliographic citation, or explicitly by a structured taxonomy.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <optional> <ref name="mei_model.biblLike"/> </optional> <zeroOrMore> <ref name="mei_desc"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_category"/> <ref name="mei_taxonomy"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_termList"> <element name="termList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Collection of text phrases which describe a resource.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <optional> <ref name="mei_label"/> </optional> <ref name="mei_term"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-termList-checkTermListLabels-constraint-rule-77"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:termList[mei:label]"> <sch:assert role="warning" test="count(mei:label) = count(mei:term)">When labels are used, usually each term has one.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.pointing.attributes"/> <empty/> </element> </define> <define name="mei_titleStmt"> <element name="titleStmt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(title statement) Container for title and responsibility meta-data.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.titleLike"/> </oneOrMore> <zeroOrMore> <ref name="mei_model.respLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_trackConfig"> <element name="trackConfig"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(track configuration) Number of physical/input tracks on a sound medium (e.g., eight track, twelve track).</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="num"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the track configuration in numeric form.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_treatHist"> <element name="treatHist"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(treatment history) A record of the treatment the item has undergone (e.g., de-acidification, restoration, etc.).</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_eventList"/> <ref name="mei_model.pLike"/> </choice> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_treatSched"> <element name="treatSched"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(treatment scheduled) Scheduled treatment, e.g., de-acidification, restoration, etc., for an item.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_eventList"/> <ref name="mei_model.pLike"/> </choice> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_unpub"> <element name="unpub"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unpublished) Used to explicitly indicate that a bibliographic resource is unpublished.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_useRestrict"> <element name="useRestrict"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(usage restrictions) Container for information about the conditions that affect use of a bibliographic item after access has been granted.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_watermarkDesc"> <element name="watermarkDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(watermark description) Contains a description of the watermark(s) of an item.</a:documentation> <group> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_watermarkList"/> <ref name="mei_watermark"/> <ref name="mei_p"/> </choice> </zeroOrMore> </group> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_watermarkList"> <element name="watermarkList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list of watermarks) Grouping several watermarks.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_annot"/> <ref name="mei_watermark"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_watermark"> <element name="watermark"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a description of a watermark or similar device.</a:documentation> <oneOrMore> <choice> <ref name="mei_macro.watermark"/> <text/> </choice> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_work"> <element name="work"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a detailed description of a work — a distinct intellectual or artistic creation — specifically its history, language use, and high-level musical attributes (e.g., key, tempo, meter, medium of performance, and intended duration).</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.identifierLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_model.titleLike"/> </oneOrMore> <zeroOrMore> <ref name="mei_model.respLikePart"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.workIdent"/> </zeroOrMore> <zeroOrMore> <ref name="mei_otherChar"/> </zeroOrMore> <optional> <ref name="mei_creation"/> </optional> <optional> <ref name="mei_history"/> </optional> <optional> <ref name="mei_langUsage"/> </optional> <optional> <ref name="mei_perfMedium"/> </optional> <optional> <ref name="mei_perfDuration"/> </optional> <optional> <ref name="mei_audience"/> </optional> <optional> <ref name="mei_contents"/> </optional> <optional> <ref name="mei_context"/> </optional> <zeroOrMore> <ref name="mei_biblList"/> </zeroOrMore> <optional> <ref name="mei_notesStmt"/> </optional> <optional> <ref name="mei_classification"/> </optional> <optional> <ref name="mei_expressionList"/> </optional> <optional> <ref name="mei_componentList"/> </optional> <optional> <ref name="mei_relationList"/> </optional> <zeroOrMore> <ref name="mei_extMeta"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_workList"> <element name="workList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(work list) Grouping mechanism for information describing non-bibliographic aspects of a text.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <ref name="mei_work"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_att.lyrics.log.attributes"> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> </define> <define name="mei_att.refrain.log.attributes"> <empty/> </define> <define name="mei_att.verse.log.attributes"> <empty/> </define> <define name="mei_att.volta.log.attributes"> <empty/> </define> <define name="mei_model.verseLike"> <choice> <ref name="mei_refrain"/> <ref name="mei_verse"/> </choice> </define> <define name="mei_model.verseLike_alternation"> <choice> <ref name="mei_refrain"/> <ref name="mei_verse"/> </choice> </define> <define name="mei_model.verseLike_sequence"> <ref name="mei_refrain"/> <ref name="mei_verse"/> </define> <define name="mei_model.verseLike_sequenceOptional"> <optional> <ref name="mei_refrain"/> </optional> <optional> <ref name="mei_verse"/> </optional> </define> <define name="mei_model.verseLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_refrain"/> </zeroOrMore> <zeroOrMore> <ref name="mei_verse"/> </zeroOrMore> </define> <define name="mei_model.verseLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_refrain"/> </oneOrMore> <oneOrMore> <ref name="mei_verse"/> </oneOrMore> </define> <define name="mei_refrain"> <element name="refrain"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Recurring lyrics, especially at the end of each verse or stanza of a poem or song lyrics; a chorus.</a:documentation> <zeroOrMore> <choice> <ref name="mei_dir"/> <ref name="mei_dynam"/> <ref name="mei_tempo"/> <ref name="mei_space"/> </choice> </zeroOrMore> <oneOrMore> <choice> <ref name="mei_volta"/> <ref name="mei_model.sylLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> </choice> </oneOrMore> <zeroOrMore> <ref name="mei_model.lbLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.refrain.log.attributes"/> <ref name="mei_att.refrain.vis.attributes"/> <ref name="mei_att.refrain.ges.attributes"/> <ref name="mei_att.refrain.anl.attributes"/> <empty/> </element> </define> <define name="mei_verse"> <element name="verse"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Division of a poem or song lyrics, sometimes having a fixed length, meter or rhyme scheme; a stanza.</a:documentation> <zeroOrMore> <ref name="mei_label"/> </zeroOrMore> <zeroOrMore> <ref name="mei_labelAbbr"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_dir"/> <ref name="mei_dynam"/> <ref name="mei_tempo"/> <ref name="mei_space"/> </choice> </zeroOrMore> <oneOrMore> <choice> <ref name="mei_volta"/> <ref name="mei_model.sylLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> </choice> </oneOrMore> <zeroOrMore> <ref name="mei_model.lbLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.verse.log.attributes"/> <ref name="mei_att.verse.vis.attributes"/> <ref name="mei_att.verse.ges.attributes"/> <ref name="mei_att.verse.anl.attributes"/> <empty/> </element> </define> <define name="mei_volta"> <element name="volta"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sung text for a specific iteration of a repeated section of music.</a:documentation> <zeroOrMore> <choice> <ref name="mei_dir"/> <ref name="mei_dynam"/> <ref name="mei_tempo"/> <ref name="mei_space"/> </choice> </zeroOrMore> <oneOrMore> <choice> <ref name="mei_model.sylLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> </choice> </oneOrMore> <zeroOrMore> <ref name="mei_model.lbLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.volta.log.attributes"/> <ref name="mei_att.volta.vis.attributes"/> <ref name="mei_att.volta.ges.attributes"/> <ref name="mei_att.volta.anl.attributes"/> <empty/> </element> </define> <define name="mei_att.duration.quality.attributes"> <ref name="mei_att.duration.quality.attribute.dur.quality"/> </define> <define name="mei_att.duration.quality.attribute.dur.quality"> <optional> <attribute name="dur.quality"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the durational quality of a mensural note using the values provided by the data.DURQUALITY.mensural datatype (i.e., the perfect / imperfect / altered / major / minor / duplex quality of a note).</a:documentation> <ref name="mei_data.DURQUALITY.mensural"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.duration.quality-check_duplex_quality-constraint-rule-78"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="(mei:note|mei:space)[@dur.quality='duplex']"> <sch:assert test="@dur='longa'"> Duplex quality can only be used with longas (in Ars antiqua). </sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.duration.quality-check_maiorminor_quality-constraint-rule-79"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="(mei:note|mei:space)[@dur.quality='maior' or @dur.quality='minor']"> <sch:assert test="@dur='semibrevis'"> Maior / minor quality can only be used with semibreves (in Ars antiqua). </sch:assert> </sch:rule> </pattern> <define name="mei_att.ligature.log.attributes"> <empty/> </define> <define name="mei_att.mensural.log.attributes"> <ref name="mei_att.mensural.shared.attributes"/> <ref name="mei_att.mensural.log.attribute.proport.num"/> <ref name="mei_att.mensural.log.attribute.proport.numbase"/> </define> <define name="mei_att.mensural.log.attribute.proport.num"> <optional> <attribute name="proport.num"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Together, proport.num and proport.numbase specify a proportional change as a ratio, e.g., 1:3. Proport.num is for the first value in the ratio.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.mensural.log.attribute.proport.numbase"> <optional> <attribute name="proport.numbase"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Together, proport.num and proport.numbase specify a proportional change as a ratio, e.g., 1:3. Proport.numbase is for the second value in the ratio.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.mensural.shared.attributes"> <ref name="mei_att.mensural.shared.attribute.modusmaior"/> <ref name="mei_att.mensural.shared.attribute.modusminor"/> <ref name="mei_att.mensural.shared.attribute.prolatio"/> <ref name="mei_att.mensural.shared.attribute.tempus"/> <ref name="mei_att.mensural.shared.attribute.divisio"/> </define> <define name="mei_att.mensural.shared.attribute.modusmaior"> <optional> <attribute name="modusmaior"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the maxima-long relationship.</a:documentation> <ref name="mei_data.MODUSMAIOR"/> </attribute> </optional> </define> <define name="mei_att.mensural.shared.attribute.modusminor"> <optional> <attribute name="modusminor"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the long-breve relationship.</a:documentation> <ref name="mei_data.MODUSMINOR"/> </attribute> </optional> </define> <define name="mei_att.mensural.shared.attribute.prolatio"> <optional> <attribute name="prolatio"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the semibreve-minim relationship.</a:documentation> <ref name="mei_data.PROLATIO"/> </attribute> </optional> </define> <define name="mei_att.mensural.shared.attribute.tempus"> <optional> <attribute name="tempus"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the breve-semibreve relationship.</a:documentation> <ref name="mei_data.TEMPUS"/> </attribute> </optional> </define> <define name="mei_att.mensural.shared.attribute.divisio"> <optional> <attribute name="divisio"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the divisions of the breve in use in 14th-century Italy.</a:documentation> <ref name="mei_data.DIVISIO"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.mensural.shared-mensuration_conflicting_attributes-constraint-rule-80"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:mensur[@divisio]"> <sch:assert test="not(@tempus) and not(@prolatio)"> When the @divisio attribute is used, the @tempus and @prolatio attributes are not allowed. </sch:assert> </sch:rule> </pattern> <define name="mei_att.note.anl.mensural.attributes"> <empty/> </define> <define name="mei_att.note.ges.mensural.attributes"> <ref name="mei_att.duration.ratio.attributes"/> </define> <define name="mei_att.note.log.mensural.attributes"> <empty/> </define> <define name="mei_att.note.vis.mensural.attributes"> <ref name="mei_att.note.vis.mensural.attribute.lig"/> </define> <define name="mei_att.note.vis.mensural.attribute.lig"> <optional> <attribute name="lig"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates this element’s participation in a ligature.</a:documentation> <ref name="mei_data.LIGATUREFORM"/> </attribute> </optional> </define> <define name="mei_att.plica.log.attributes"> <empty/> </define> <define name="mei_att.proport.log.attributes"> <ref name="mei_att.duration.ratio.attributes"/> </define> <define name="mei_att.rest.ges.mensural.attributes"> <ref name="mei_att.duration.ratio.attributes"/> </define> <define name="mei_att.rest.vis.mensural.attributes"> <ref name="mei_att.rest.vis.mensural.attribute.spaces"/> </define> <define name="mei_att.rest.vis.mensural.attribute.spaces"> <optional> <attribute name="spaces"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">States how many spaces are covered by the rest.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.scoreDef.log.mensural.attributes"> <ref name="mei_att.mensural.log.attributes"/> </define> <define name="mei_att.scoreDef.vis.mensural.attributes"> <ref name="mei_att.mensural.vis.attributes"/> </define> <define name="mei_att.staffDef.log.mensural.attributes"> <ref name="mei_att.mensural.log.attributes"/> </define> <define name="mei_att.staffDef.vis.mensural.attributes"> <ref name="mei_att.mensural.vis.attributes"/> </define> <define name="mei_att.stem.log.attributes"> <empty/> </define> <define name="mei_att.stems.mensural.attributes"> <ref name="mei_att.stems.mensural.attribute.stem.form"/> </define> <define name="mei_att.stems.mensural.attribute.stem.form"> <optional> <attribute name="stem.form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the form of the stem.</a:documentation> <ref name="mei_data.STEMFORM.mensural"/> </attribute> </optional> </define> <define name="mei_model.eventLike.mensural"> <choice> <ref name="mei_ligature"/> <ref name="mei_mensur"/> <ref name="mei_proport"/> <ref name="mei_dot"/> </choice> </define> <define name="mei_model.eventLike.mensural_alternation"> <choice> <ref name="mei_ligature"/> <ref name="mei_mensur"/> <ref name="mei_proport"/> <ref name="mei_dot"/> </choice> </define> <define name="mei_model.eventLike.mensural_sequence"> <ref name="mei_ligature"/> <ref name="mei_mensur"/> <ref name="mei_proport"/> <ref name="mei_dot"/> </define> <define name="mei_model.eventLike.mensural_sequenceOptional"> <optional> <ref name="mei_ligature"/> </optional> <optional> <ref name="mei_mensur"/> </optional> <optional> <ref name="mei_proport"/> </optional> <optional> <ref name="mei_dot"/> </optional> </define> <define name="mei_model.eventLike.mensural_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_ligature"/> </zeroOrMore> <zeroOrMore> <ref name="mei_mensur"/> </zeroOrMore> <zeroOrMore> <ref name="mei_proport"/> </zeroOrMore> <zeroOrMore> <ref name="mei_dot"/> </zeroOrMore> </define> <define name="mei_model.eventLike.mensural_sequenceRepeatable"> <oneOrMore> <ref name="mei_ligature"/> </oneOrMore> <oneOrMore> <ref name="mei_mensur"/> </oneOrMore> <oneOrMore> <ref name="mei_proport"/> </oneOrMore> <oneOrMore> <ref name="mei_dot"/> </oneOrMore> </define> <define name="mei_model.layerPart.mensural"> <choice> <ref name="mei_model.eventLike.mensural"/> </choice> </define> <define name="mei_model.layerPart.mensural_alternation"> <choice> <ref name="mei_model.eventLike.mensural_alternation"/> </choice> </define> <define name="mei_model.layerPart.mensural_sequence"> <ref name="mei_model.eventLike.mensural_sequence"/> </define> <define name="mei_model.layerPart.mensural_sequenceOptional"> <optional> <ref name="mei_model.eventLike.mensural_sequenceOptional"/> </optional> </define> <define name="mei_model.layerPart.mensural_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_model.eventLike.mensural_sequenceOptionalRepeatable"/> </zeroOrMore> </define> <define name="mei_model.layerPart.mensural_sequenceRepeatable"> <oneOrMore> <ref name="mei_model.eventLike.mensural_sequenceRepeatable"/> </oneOrMore> </define> <define name="mei_model.staffDefPart.mensural"> <choice> <ref name="mei_mensur"/> <ref name="mei_proport"/> </choice> </define> <define name="mei_model.staffPart.mensural"> <choice> <ref name="mei_model.controlEventLike"/> </choice> </define> <define name="mei_model.staffPart.mensural_alternation"> <choice> <ref name="mei_model.controlEventLike_alternation"/> </choice> </define> <define name="mei_model.staffPart.mensural_sequence"> <ref name="mei_model.controlEventLike_sequence"/> </define> <define name="mei_model.staffPart.mensural_sequenceOptional"> <optional> <ref name="mei_model.controlEventLike_sequenceOptional"/> </optional> </define> <define name="mei_model.staffPart.mensural_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_model.controlEventLike_sequenceOptionalRepeatable"/> </zeroOrMore> </define> <define name="mei_model.staffPart.mensural_sequenceRepeatable"> <oneOrMore> <ref name="mei_model.controlEventLike_sequenceRepeatable"/> </oneOrMore> </define> <define name="mei_ligature"> <element name="ligature"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A mensural notation symbol that combines two or more notes into a single sign.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.eventLike"/> <ref name="mei_model.eventLike.mensural"/> <ref name="mei_model.eventLike.neumes"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.ligature.log.attributes"/> <ref name="mei_att.ligature.vis.attributes"/> <ref name="mei_att.ligature.ges.attributes"/> <ref name="mei_att.ligature.anl.attributes"/> <empty/> </element> </define> <define name="mei_mensur"> <element name="mensur"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(mensuration) Collects information about the metrical relationship between a note value and the next smaller value; that is, either triple or duple.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.mensur.log.attributes"/> <ref name="mei_att.mensur.vis.attributes"/> <ref name="mei_att.mensur.ges.attributes"/> <ref name="mei_att.mensur.anl.attributes"/> <empty/> </element> </define> <define name="mei_plica"> <element name="plica"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Plica</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-plica-Check_plica-constraint-rule-81"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:plica"> <sch:assert test="count(../mei:plica) <= 1">Only one plica is allowed.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.plica.log.attributes"/> <ref name="mei_att.plica.vis.attributes"/> <ref name="mei_att.plica.ges.attributes"/> <ref name="mei_att.plica.anl.attributes"/> <empty/> </element> </define> <define name="mei_proport"> <element name="proport"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(proportion) Description of note duration as arithmetic ratio.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.proport.log.attributes"/> <ref name="mei_att.proport.vis.attributes"/> <ref name="mei_att.proport.ges.attributes"/> <ref name="mei_att.proport.anl.attributes"/> <empty/> </element> </define> <define name="mei_stem"> <element name="stem"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A stem element.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-stem-Check_stem-constraint-rule-82"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:stem"> <sch:assert test="not(ancestor::mei:note/@*[starts-with(local-name(),'stem.')])">A note with nested stem elements must not have @stem.* attributes.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.stem.log.attributes"/> <ref name="mei_att.stem.vis.attributes"/> <ref name="mei_att.stem.ges.attributes"/> <ref name="mei_att.stem.anl.attributes"/> <empty/> </element> </define> <define name="mei_att.channelized.attributes"> <ref name="mei_att.channelized.attribute.midi.channel"/> <ref name="mei_att.channelized.attribute.midi.duty"/> <ref name="mei_att.channelized.attribute.midi.port"/> <ref name="mei_att.channelized.attribute.midi.track"/> </define> <define name="mei_att.channelized.attribute.midi.channel"> <optional> <attribute name="midi.channel"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records a MIDI channel value.</a:documentation> <ref name="mei_data.MIDICHANNEL"/> </attribute> </optional> </define> <define name="mei_att.channelized.attribute.midi.duty"> <optional> <attribute name="midi.duty"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the 'on' part of the duty cycle as a percentage of a note’s duration.</a:documentation> <ref name="mei_data.PERCENT.LIMITED"/> </attribute> </optional> </define> <define name="mei_att.channelized.attribute.midi.port"> <optional> <attribute name="midi.port"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the MIDI port value.</a:documentation> <ref name="mei_data.MIDIVALUE_NAME"/> </attribute> </optional> </define> <define name="mei_att.channelized.attribute.midi.track"> <optional> <attribute name="midi.track"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the MIDI track.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.instrDef.log.attributes"> <empty/> </define> <define name="mei_att.instrumentIdent.attributes"> <ref name="mei_att.instrumentIdent.attribute.instr"/> </define> <define name="mei_att.instrumentIdent.attribute.instr"> <optional> <attribute name="instr"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a way of pointing to a MIDI instrument definition. It must contain the ID of an <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><instrDef></code> element elsewhere in the document.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.instrumentIdent-instr-check_instrTarget-constraint-rule-83"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@instr"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@instr attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:instrDef/@xml:id">The value in @instr should correspond to the @xml:id attribute of an instrDef element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.midi.event.attributes"> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.timestamp.log.attributes"/> <ref name="mei_att.timestamp.ges.attributes"/> </define> <define name="mei_att.midi.log.attributes"> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> </define> <define name="mei_att.midiInstrument.attributes"> <ref name="mei_att.midiInstrument.attribute.midi.instrnum"/> <ref name="mei_att.midiInstrument.attribute.midi.instrname"/> <ref name="mei_att.midiInstrument.attribute.midi.pan"/> <ref name="mei_att.midiInstrument.attribute.midi.patchname"/> <ref name="mei_att.midiInstrument.attribute.midi.patchnum"/> <ref name="mei_att.midiInstrument.attribute.midi.volume"/> </define> <define name="mei_att.midiInstrument.attribute.midi.instrnum"> <optional> <attribute name="midi.instrnum"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the General MIDI instrument number. Use an integer for a 0-based value.</a:documentation> <ref name="mei_data.MIDIVALUE"/> </attribute> </optional> </define> <define name="mei_att.midiInstrument.attribute.midi.instrname"> <optional> <attribute name="midi.instrname"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a General MIDI label for the MIDI instrument.</a:documentation> <ref name="mei_data.MIDINAMES"/> </attribute> </optional> </define> <define name="mei_att.midiInstrument.attribute.midi.pan"> <optional> <attribute name="midi.pan"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the instrument’s position in a stereo field. MIDI values of 0 and 1 both pan left, 127 or 128 pans right, and 63 or 64 pans to the center. Positve percentage values pan to the right, negative ones to the left. 0% is centered.</a:documentation> <ref name="mei_data.MIDIVALUE_PAN"/> </attribute> </optional> </define> <define name="mei_att.midiInstrument.attribute.midi.patchname"> <optional> <attribute name="midi.patchname"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records a non-General MIDI patch/instrument name.</a:documentation> <data type="NMTOKEN"/> </attribute> </optional> </define> <define name="mei_att.midiInstrument.attribute.midi.patchnum"> <optional> <attribute name="midi.patchnum"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records a non-General MIDI patch/instrument number.</a:documentation> <ref name="mei_data.MIDIVALUE"/> </attribute> </optional> </define> <define name="mei_att.midiInstrument.attribute.midi.volume"> <optional> <attribute name="midi.volume"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the instrument’s volume.</a:documentation> <ref name="mei_data.MIDIVALUE_PERCENT"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.midiInstrument-One_of_instrname_or_instrnum-constraint-rule-84"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[@midi.instrname]"> <sch:assert test="not(@midi.instrnum)">Only one of @midi.instrname and @midi.instrnum allowed.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.midiInstrument-One_of_patchname_or_patchnum-constraint-rule-85"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[@midi.patchname]"> <sch:assert test="not(@midi.patchnum)">Only one of @midi.patchname and @midi.patchnum allowed.</sch:assert> </sch:rule> </pattern> <define name="mei_att.midiNumber.attributes"> <ref name="mei_att.midiNumber.attribute.num"/> </define> <define name="mei_att.midiNumber.attribute.num"> <attribute name="num"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number) MIDI number in the range set by data.MIDIVALUE.</a:documentation> <ref name="mei_data.MIDIVALUE"/> </attribute> </define> <define name="mei_att.midiTempo.attributes"> <ref name="mei_att.midiTempo.attribute.midi.bpm"/> <ref name="mei_att.midiTempo.attribute.midi.mspb"/> </define> <define name="mei_att.midiTempo.attribute.midi.bpm"> <optional> <attribute name="midi.bpm"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the number of *quarter notes* per minute. In MIDI, a beat is always defined as a quarter note, *not the numerator of the time signature or the metronomic indication*.</a:documentation> <ref name="mei_data.MIDIBPM"/> </attribute> </optional> </define> <define name="mei_att.midiTempo.attribute.midi.mspb"> <optional> <attribute name="midi.mspb"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the number of microseconds per *quarter note*. In MIDI, a beat is always defined as a quarter note, *not the numerator of the time signature or the metronomic indication*. At 120 quarter notes per minute, each quarter note will last 500,000 microseconds.</a:documentation> <ref name="mei_data.MIDIMSPB"/> </attribute> </optional> </define> <define name="mei_att.midiValue.attributes"> <ref name="mei_att.midiValue.attribute.val"/> </define> <define name="mei_att.midiValue.attribute.val"> <optional> <attribute name="val"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI number.</a:documentation> <ref name="mei_data.MIDIVALUE"/> </attribute> </optional> </define> <define name="mei_att.midiValue2.attributes"> <ref name="mei_att.midiValue2.attribute.val2"/> </define> <define name="mei_att.midiValue2.attribute.val2"> <optional> <attribute name="val2"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI number.</a:documentation> <ref name="mei_data.MIDIVALUE"/> </attribute> </optional> </define> <define name="mei_att.midiVelocity.attributes"> <ref name="mei_att.midiVelocity.attribute.vel"/> </define> <define name="mei_att.midiVelocity.attribute.vel"> <optional> <attribute name="vel"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI Note-on/off velocity.</a:documentation> <ref name="mei_data.MIDIVALUE"/> </attribute> </optional> </define> <define name="mei_att.timeBase.attributes"> <ref name="mei_att.timeBase.attribute.ppq"/> </define> <define name="mei_att.timeBase.attribute.ppq"> <optional> <attribute name="ppq"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the number of pulses (sometimes referred to as ticks or divisions) per quarter note. Unlike MIDI, MEI permits different values for a score and individual staves.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_model.midiLike"> <choice> <ref name="mei_midi"/> </choice> </define> <define name="mei_model.midiLike_alternation"> <choice> <ref name="mei_midi"/> </choice> </define> <define name="mei_model.midiLike_sequence"> <ref name="mei_midi"/> </define> <define name="mei_model.midiLike_sequenceOptional"> <optional> <ref name="mei_midi"/> </optional> </define> <define name="mei_model.midiLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_midi"/> </zeroOrMore> </define> <define name="mei_model.midiLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_midi"/> </oneOrMore> </define> <define name="mei_cc"> <element name="cc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(control change) MIDI parameter/control change.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.event.attributes"/> <ref name="mei_att.midiNumber.attributes"/> <ref name="mei_att.midiValue.attributes"/> <empty/> </element> </define> <define name="mei_chan"> <element name="chan"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(channel) MIDI channel assignment.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.event.attributes"/> <attribute name="num"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI number in the range set by data.MIDICHANNEL.</a:documentation> <ref name="mei_data.MIDICHANNEL"/> </attribute> <empty/> </element> </define> <define name="mei_chanPr"> <element name="chanPr"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(channel pressure) MIDI channel pressure/after touch.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.event.attributes"/> <ref name="mei_att.midiNumber.attributes"/> <empty/> </element> </define> <define name="mei_cue"> <element name="cue"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI cue point.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.midi.event.attributes"/> <empty/> </element> </define> <define name="mei_hex"> <element name="hex"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Arbitrary MIDI data in hexadecimal form.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.event.attributes"/> <empty/> </element> </define> <define name="mei_instrDef"> <element name="instrDef"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(instrument definition) MIDI instrument declaration.</a:documentation> <empty/> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.nInteger.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.typed.attributes"/> <ref name="mei_att.instrDef.anl.attributes"/> <ref name="mei_att.instrDef.ges.attributes"/> <ref name="mei_att.instrDef.log.attributes"/> <ref name="mei_att.instrDef.vis.attributes"/> <empty/> </element> </define> <define name="mei_instrGrp"> <element name="instrGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(instrument group) Collects MIDI instrument definitions.</a:documentation> <oneOrMore> <ref name="mei_model.instrDefLike"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_marker"> <element name="marker"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI marker meta-event.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.midi.event.attributes"/> <empty/> </element> </define> <define name="mei_metaText"> <element name="metaText"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI text meta-event.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.midi.event.attributes"/> <empty/> </element> </define> <define name="mei_midi"> <element name="midi"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Container for elements that contain information useful when generating MIDI output.</a:documentation> <zeroOrMore> <choice> <ref name="mei_cc"/> <ref name="mei_chan"/> <ref name="mei_chanPr"/> <ref name="mei_cue"/> <ref name="mei_hex"/> <ref name="mei_marker"/> <ref name="mei_metaText"/> <ref name="mei_noteOff"/> <ref name="mei_noteOn"/> <ref name="mei_port"/> <ref name="mei_prog"/> <ref name="mei_seqNum"/> <ref name="mei_trkName"/> <ref name="mei_vel"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.log.attributes"/> <ref name="mei_att.midi.ges.attributes"/> <ref name="mei_att.midi.anl.attributes"/> <empty/> </element> </define> <define name="mei_noteOff"> <element name="noteOff"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI note-off event.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.event.attributes"/> <ref name="mei_att.midiNumber.attributes"/> <empty/> </element> </define> <define name="mei_noteOn"> <element name="noteOn"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI note-on event.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.event.attributes"/> <ref name="mei_att.midiNumber.attributes"/> <empty/> </element> </define> <define name="mei_port"> <element name="port"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MIDI port.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.event.attributes"/> <ref name="mei_att.midiNumber.attributes"/> <empty/> </element> </define> <define name="mei_prog"> <element name="prog"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(program) MIDI program change.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.event.attributes"/> <ref name="mei_att.midiNumber.attributes"/> <empty/> </element> </define> <define name="mei_seqNum"> <element name="seqNum"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(sequence number) MIDI sequence number.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.event.attributes"/> <attribute name="num"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Number in the range 0-65535.</a:documentation> <data type="nonNegativeInteger"> <param name="maxInclusive">65535</param> </data> </attribute> <empty/> </element> </define> <define name="mei_trkName"> <element name="trkName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(track name) MIDI track/sequence name.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.midi.event.attributes"/> <empty/> </element> </define> <define name="mei_vel"> <element name="vel"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(velocity) MIDI Note-on/off velocity.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.midi.event.attributes"/> <ref name="mei_att.midiNumber.attributes"/> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether this is note-on or note-off velocity data.</a:documentation> <choice> <value>on</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Note-on velocity.</a:documentation> <value>off</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Note-off velocity.</a:documentation> </choice> </attribute> <empty/> </element> </define> <define name="mei_att.componentType.attributes"> <ref name="mei_att.componentType.attribute.comptype"/> </define> <define name="mei_att.componentType.attribute.comptype"> <optional> <attribute name="comptype"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <choice> <value>constituent</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A physical and logical part of entity.</a:documentation> <value>boundwith</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A physical, but not logical component of the entity, usually included as part of the binding process.</a:documentation> <value>separated</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A logical component of the entity physically held elsewhere.</a:documentation> </choice> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.componentType-comptype-checkComponentType-constraint-rule-86"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[@comptype]"> <sch:let name="elementName" value="local-name()"/> <sch:assert test="ancestor::mei:componentList">The comptype attribute may occur on <sch:value-of select="$elementName"/> only when it is a descendant of a componentList.</sch:assert> </sch:rule> </pattern> <define name="mei_att.foliation.scheme.attributes"> <ref name="mei_att.foliation.scheme.attribute.scheme"/> </define> <define name="mei_att.foliation.scheme.attribute.scheme"> <optional> <attribute name="scheme"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Identifies the foliation scheme in terms of which the location is being specified by pointing to some foliation element defining it, or to some other equivalent resource.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_model.msInline"> <choice> <ref name="mei_catchwords"/> <ref name="mei_heraldry"/> <ref name="mei_locus"/> <ref name="mei_locusGrp"/> <ref name="mei_secFolio"/> <ref name="mei_signatures"/> <ref name="mei_stamp"/> </choice> </define> <define name="mei_model.msInline_alternation"> <choice> <ref name="mei_catchwords"/> <ref name="mei_heraldry"/> <ref name="mei_locus"/> <ref name="mei_locusGrp"/> <ref name="mei_secFolio"/> <ref name="mei_signatures"/> <ref name="mei_stamp"/> </choice> </define> <define name="mei_model.msInline_sequence"> <ref name="mei_catchwords"/> <ref name="mei_heraldry"/> <ref name="mei_locus"/> <ref name="mei_locusGrp"/> <ref name="mei_secFolio"/> <ref name="mei_signatures"/> <ref name="mei_stamp"/> </define> <define name="mei_model.msInline_sequenceOptional"> <optional> <ref name="mei_catchwords"/> </optional> <optional> <ref name="mei_heraldry"/> </optional> <optional> <ref name="mei_locus"/> </optional> <optional> <ref name="mei_locusGrp"/> </optional> <optional> <ref name="mei_secFolio"/> </optional> <optional> <ref name="mei_signatures"/> </optional> <optional> <ref name="mei_stamp"/> </optional> </define> <define name="mei_model.msInline_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_catchwords"/> </zeroOrMore> <zeroOrMore> <ref name="mei_heraldry"/> </zeroOrMore> <zeroOrMore> <ref name="mei_locus"/> </zeroOrMore> <zeroOrMore> <ref name="mei_locusGrp"/> </zeroOrMore> <zeroOrMore> <ref name="mei_secFolio"/> </zeroOrMore> <zeroOrMore> <ref name="mei_signatures"/> </zeroOrMore> <zeroOrMore> <ref name="mei_stamp"/> </zeroOrMore> </define> <define name="mei_model.msInline_sequenceRepeatable"> <oneOrMore> <ref name="mei_catchwords"/> </oneOrMore> <oneOrMore> <ref name="mei_heraldry"/> </oneOrMore> <oneOrMore> <ref name="mei_locus"/> </oneOrMore> <oneOrMore> <ref name="mei_locusGrp"/> </oneOrMore> <oneOrMore> <ref name="mei_secFolio"/> </oneOrMore> <oneOrMore> <ref name="mei_signatures"/> </oneOrMore> <oneOrMore> <ref name="mei_stamp"/> </oneOrMore> </define> <define name="mei_accMat"> <element name="accMat"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds a description of any additional material bound with an item, such as non-contemporaneous documents or fragments.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_addDesc"> <element name="addDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(addition description) Provides a description of significant additions found within an item, such as marginalia or other annotations.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_binding"> <element name="binding"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(binding) Contains a description of one binding, i.e., type of covering, boards, etc. applied to an item.</a:documentation> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_condition"/> <ref name="mei_decoNote"/> <ref name="mei_dimensions"/> <ref name="mei_p"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.contemporary.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_bindingDesc"> <element name="bindingDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(binding description) Describes the present and former bindings of an item.</a:documentation> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <choice> <group> <zeroOrMore> <ref name="mei_binding"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_condition"/> <ref name="mei_decoNote"/> <ref name="mei_p"/> </choice> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_catchwords"> <element name="catchwords"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the system used to ensure correct ordering of the quires making up an item, typically by means of annotations at the foot of the page.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-catchwords-check_catchwords_inline-constraint-rule-87"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:catchwords"> <sch:assert test="ancestor::mei:physDesc">The catchwords element may only appear as a descendant of the physDesc element.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_collation"> <element name="collation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records a description of how the leaves or bifolia of an item are physically arranged.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_colophon"> <element name="colophon"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a statement providing information regarding the date, place, agency, or reason for production of the item.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_decoDesc"> <element name="decoDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(decoration description) Contains a description of the decoration of an item.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_condition"/> <ref name="mei_decoNote"/> <ref name="mei_p"/> </choice> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_decoNote"> <element name="decoNote"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(decoration note) Contains a description of one or more decorative features of an item.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_condition"/> <ref name="mei_decoNote"/> <ref name="mei_p"/> </choice> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_explicit"> <element name="explicit"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the explicit of a manuscript item; that is, the closing words of the text proper, exclusive of any rubric or colophon which might follow it.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_foliation"> <element name="foliation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the numbering system or systems used to count the leaves or pages in a codex.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_heraldry"> <element name="heraldry"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a heraldic formula or phrase, typically found as part of a blazon, coat of arms, etc.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_layout"> <element name="layout"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes how text is laid out on the page, including information about any ruling, pricking, or other evidence of page-preparation techniques.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="cols"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the number of columns per page.</a:documentation> <list> <data type="nonNegativeInteger"/> <optional> <data type="nonNegativeInteger"/> </optional> </list> </attribute> </optional> <optional> <attribute name="ruledlines"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the number of ruled text lines per column.</a:documentation> <list> <data type="nonNegativeInteger"/> <optional> <data type="nonNegativeInteger"/> </optional> </list> </attribute> </optional> <optional> <attribute name="writtenlines"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the number of written text lines per column.</a:documentation> <list> <data type="nonNegativeInteger"/> <optional> <data type="nonNegativeInteger"/> </optional> </list> </attribute> </optional> <optional> <attribute name="ruledstaves"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the number of ruled staves per column.</a:documentation> <list> <data type="nonNegativeInteger"/> <optional> <data type="nonNegativeInteger"/> </optional> </list> </attribute> </optional> <optional> <attribute name="writtenstaves"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the number of written staves per column.</a:documentation> <list> <data type="nonNegativeInteger"/> <optional> <data type="nonNegativeInteger"/> </optional> </list> </attribute> </optional> <empty/> </element> </define> <define name="mei_layoutDesc"> <element name="layoutDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(layout description) Collects layout descriptions.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_p"/> <ref name="mei_layout"/> </choice> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_locus"> <element name="locus"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Defines a location within a manuscript or manuscript component, usually as a (possibly discontinuous) sequence of folio references.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_locus"/> <ref name="mei_rend"/> <ref name="mei_symbol"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.foliation.scheme.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="from"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the starting point of the location in a normalized form.</a:documentation> <ref name="mei_data.WORD"/> </attribute> </optional> <optional> <attribute name="to"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the end-point of the location in a normalized form.</a:documentation> <ref name="mei_data.WORD"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_locusGrp"> <element name="locusGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(locus group) Groups locations which together form a distinct but discontinuous item within a manuscript or manuscript part, according to a specific foliation.</a:documentation> <zeroOrMore> <ref name="mei_locus"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-locusGrp-check_locusGrp_inline-constraint-rule-88"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:locusGrp"> <sch:assert test="ancestor::mei:physDesc or parent::mei:contentItem or ancestor::mei:source[ancestor::mei:componentList[ancestor::mei:sourceDesc or ancestor::mei:sourceList or ancestor::mei:workList]]">The locusGrp element may only appear as a descendant of a physDesc element, a contentItem element, or a source element that is a component of another source or work.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.foliation.scheme.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_rubric"> <element name="rubric"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a string of words through which a manuscript signals the beginning or end of a text division, often with an assertion as to its author and title, which is in some way set off from the text itself, usually in red ink, or by use of different size or type of script, or some other such visual device.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <choice> <value>initial</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Signals beginning of a text division.</a:documentation> <value>final</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marks the end of a text division.</a:documentation> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_scriptDesc"> <element name="scriptDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(script description) Contains a description of the letters or characters used in an autographic item.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <zeroOrMore> <ref name="mei_p"/> </zeroOrMore> <zeroOrMore> <ref name="mei_scriptNote"/> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_scriptNote"> <element name="scriptNote"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(script note) Describes a particular script distinguished within the description of an autographic item.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_seal"> <element name="seal"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A single seal or similar attachment.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_condition"/> <ref name="mei_decoNote"/> <ref name="mei_p"/> </choice> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.contemporary.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_sealDesc"> <element name="sealDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(seal description) Describes the seals or similar external attachments applied to an item.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <choice> <zeroOrMore> <ref name="mei_seal"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_condition"/> <ref name="mei_decoNote"/> <ref name="mei_p"/> </choice> </zeroOrMore> </choice> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_secFolio"> <element name="secFolio"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(second folio) Marks the word or words taken from a fixed point in a codex (typically the beginning of the second leaf) in order to provide a unique identifier for the item.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-secFolio-check_secFolio_inline-constraint-rule-89"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:secFolio"> <sch:assert test="ancestor::mei:physDesc">The secFolio element may only appear as a descendant of the physDesc element.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_signatures"> <element name="signatures"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a description of the leaf or quire signatures found within a codex.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-signatures-check_signatures_inline-constraint-rule-90"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:signatures"> <sch:assert test="ancestor::mei:physDesc">The signatures element may only appear as a descendant of the physDesc element.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_stamp"> <element name="stamp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a word or phrase describing an official mark indicating ownership, genuineness, validity, etc.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_support"> <element name="support"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a description of the physical support material of a written item.</a:documentation> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_condition"/> <ref name="mei_decoNote"/> <ref name="mei_dimensions"/> <ref name="mei_p"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_supportDesc"> <element name="supportDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(support description) Groups elements describing the physical support material of an item.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <choice> <zeroOrMore> <ref name="mei_p"/> </zeroOrMore> <group> <optional> <ref name="mei_support"/> </optional> <optional> <ref name="mei_foliation"/> </optional> <optional> <ref name="mei_collation"/> </optional> <optional> <ref name="mei_condition"/> </optional> </group> </choice> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="material"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Short, project-defined name for the material composing the majority of the support. Suggested values include: 1] paper; 2] parch; 3] mixed</a:documentation> <choice> <value>paper</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Paper.</a:documentation> <value>parch</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Parchment.</a:documentation> <value>mixed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Mixed materials.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_typeDesc"> <element name="typeDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(type description) Contains a description of the typefaces or other aspects of the printing of a printed source.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_head"/> </zeroOrMore> <zeroOrMore> <ref name="mei_p"/> </zeroOrMore> <zeroOrMore> <ref name="mei_typeNote"/> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_typeNote"> <element name="typeNote"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(type note) Describes a particular font or other significant typographic feature of a printed resource.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_model.addressPart"> <choice> <ref name="mei_model.geogNamePart"/> <ref name="mei_postBox"/> <ref name="mei_postCode"/> <ref name="mei_street"/> </choice> </define> <define name="mei_model.addressPart_alternation"> <choice> <ref name="mei_model.geogNamePart_alternation"/> <ref name="mei_postBox"/> <ref name="mei_postCode"/> <ref name="mei_street"/> </choice> </define> <define name="mei_model.addressPart_sequence"> <ref name="mei_model.geogNamePart_sequence"/> <ref name="mei_postBox"/> <ref name="mei_postCode"/> <ref name="mei_street"/> </define> <define name="mei_model.addressPart_sequenceOptional"> <optional> <ref name="mei_model.geogNamePart_sequenceOptional"/> </optional> <optional> <ref name="mei_postBox"/> </optional> <optional> <ref name="mei_postCode"/> </optional> <optional> <ref name="mei_street"/> </optional> </define> <define name="mei_model.addressPart_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_model.geogNamePart_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_postBox"/> </zeroOrMore> <zeroOrMore> <ref name="mei_postCode"/> </zeroOrMore> <zeroOrMore> <ref name="mei_street"/> </zeroOrMore> </define> <define name="mei_model.addressPart_sequenceRepeatable"> <oneOrMore> <ref name="mei_model.geogNamePart_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_postBox"/> </oneOrMore> <oneOrMore> <ref name="mei_postCode"/> </oneOrMore> <oneOrMore> <ref name="mei_street"/> </oneOrMore> </define> <define name="mei_model.geogNamePart"> <choice> <ref name="mei_bloc"/> <ref name="mei_country"/> <ref name="mei_district"/> <ref name="mei_geogFeat"/> <ref name="mei_region"/> <ref name="mei_settlement"/> </choice> </define> <define name="mei_model.geogNamePart_alternation"> <choice> <ref name="mei_bloc"/> <ref name="mei_country"/> <ref name="mei_district"/> <ref name="mei_geogFeat"/> <ref name="mei_region"/> <ref name="mei_settlement"/> </choice> </define> <define name="mei_model.geogNamePart_sequence"> <ref name="mei_bloc"/> <ref name="mei_country"/> <ref name="mei_district"/> <ref name="mei_geogFeat"/> <ref name="mei_region"/> <ref name="mei_settlement"/> </define> <define name="mei_model.geogNamePart_sequenceOptional"> <optional> <ref name="mei_bloc"/> </optional> <optional> <ref name="mei_country"/> </optional> <optional> <ref name="mei_district"/> </optional> <optional> <ref name="mei_geogFeat"/> </optional> <optional> <ref name="mei_region"/> </optional> <optional> <ref name="mei_settlement"/> </optional> </define> <define name="mei_model.geogNamePart_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_bloc"/> </zeroOrMore> <zeroOrMore> <ref name="mei_country"/> </zeroOrMore> <zeroOrMore> <ref name="mei_district"/> </zeroOrMore> <zeroOrMore> <ref name="mei_geogFeat"/> </zeroOrMore> <zeroOrMore> <ref name="mei_region"/> </zeroOrMore> <zeroOrMore> <ref name="mei_settlement"/> </zeroOrMore> </define> <define name="mei_model.geogNamePart_sequenceRepeatable"> <oneOrMore> <ref name="mei_bloc"/> </oneOrMore> <oneOrMore> <ref name="mei_country"/> </oneOrMore> <oneOrMore> <ref name="mei_district"/> </oneOrMore> <oneOrMore> <ref name="mei_geogFeat"/> </oneOrMore> <oneOrMore> <ref name="mei_region"/> </oneOrMore> <oneOrMore> <ref name="mei_settlement"/> </oneOrMore> </define> <define name="mei_model.nameLike.agent"> <choice> <ref name="mei_corpName"/> <ref name="mei_persName"/> </choice> </define> <define name="mei_model.nameLike.agent_alternation"> <choice> <ref name="mei_corpName"/> <ref name="mei_persName"/> </choice> </define> <define name="mei_model.nameLike.agent_sequence"> <ref name="mei_corpName"/> <ref name="mei_persName"/> </define> <define name="mei_model.nameLike.agent_sequenceOptional"> <optional> <ref name="mei_corpName"/> </optional> <optional> <ref name="mei_persName"/> </optional> </define> <define name="mei_model.nameLike.agent_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_corpName"/> </zeroOrMore> <zeroOrMore> <ref name="mei_persName"/> </zeroOrMore> </define> <define name="mei_model.nameLike.agent_sequenceRepeatable"> <oneOrMore> <ref name="mei_corpName"/> </oneOrMore> <oneOrMore> <ref name="mei_persName"/> </oneOrMore> </define> <define name="mei_model.nameLike.geogName"> <choice> <ref name="mei_geogName"/> </choice> </define> <define name="mei_model.nameLike.geogName_alternation"> <choice> <ref name="mei_geogName"/> </choice> </define> <define name="mei_model.nameLike.geogName_sequence"> <ref name="mei_geogName"/> </define> <define name="mei_model.nameLike.geogName_sequenceOptional"> <optional> <ref name="mei_geogName"/> </optional> </define> <define name="mei_model.nameLike.geogName_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_geogName"/> </zeroOrMore> </define> <define name="mei_model.nameLike.geogName_sequenceRepeatable"> <oneOrMore> <ref name="mei_geogName"/> </oneOrMore> </define> <define name="mei_model.nameLike.label"> <choice> <ref name="mei_periodName"/> <ref name="mei_styleName"/> </choice> </define> <define name="mei_model.nameLike.label_alternation"> <choice> <ref name="mei_periodName"/> <ref name="mei_styleName"/> </choice> </define> <define name="mei_model.nameLike.label_sequence"> <ref name="mei_periodName"/> <ref name="mei_styleName"/> </define> <define name="mei_model.nameLike.label_sequenceOptional"> <optional> <ref name="mei_periodName"/> </optional> <optional> <ref name="mei_styleName"/> </optional> </define> <define name="mei_model.nameLike.label_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_periodName"/> </zeroOrMore> <zeroOrMore> <ref name="mei_styleName"/> </zeroOrMore> </define> <define name="mei_model.nameLike.label_sequenceRepeatable"> <oneOrMore> <ref name="mei_periodName"/> </oneOrMore> <oneOrMore> <ref name="mei_styleName"/> </oneOrMore> </define> <define name="mei_model.nameLike.place"> <choice> <ref name="mei_model.nameLike.geogName"/> <ref name="mei_model.repositoryLike"/> </choice> </define> <define name="mei_model.nameLike.place_alternation"> <choice> <ref name="mei_model.nameLike.geogName_alternation"/> <ref name="mei_model.repositoryLike_alternation"/> </choice> </define> <define name="mei_model.nameLike.place_sequence"> <ref name="mei_model.nameLike.geogName_sequence"/> <ref name="mei_model.repositoryLike_sequence"/> </define> <define name="mei_model.nameLike.place_sequenceOptional"> <optional> <ref name="mei_model.nameLike.geogName_sequenceOptional"/> </optional> <optional> <ref name="mei_model.repositoryLike_sequenceOptional"/> </optional> </define> <define name="mei_model.nameLike.place_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_model.nameLike.geogName_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.repositoryLike_sequenceOptionalRepeatable"/> </zeroOrMore> </define> <define name="mei_model.nameLike.place_sequenceRepeatable"> <oneOrMore> <ref name="mei_model.nameLike.geogName_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.repositoryLike_sequenceRepeatable"/> </oneOrMore> </define> <define name="mei_model.persNamePart"> <choice> <ref name="mei_addName"/> <ref name="mei_famName"/> <ref name="mei_foreName"/> <ref name="mei_genName"/> <ref name="mei_nameLink"/> <ref name="mei_roleName"/> </choice> </define> <define name="mei_addName"> <element name="addName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(additional name) Contains an additional name component, such as a nickname, epithet, or alias, or any other descriptive phrase used within a personal name.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_bloc"> <element name="bloc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the name of a geopolitical unit consisting of two or more nation states or countries.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_corpName"> <element name="corpName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(corporate name) Identifies an organization or group of people that acts as a single entity.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_country"> <element name="country"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the name of a geopolitical unit, such as a nation, country, colony, or commonwealth, larger than or administratively superior to a region and smaller than a bloc.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_district"> <element name="district"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the name of any kind of subdivision of a settlement, such as a parish, ward, or other administrative or geographic unit.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_famName"> <element name="famName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(family name) Contains a family (inherited) name, as opposed to a given, baptismal, or nick name.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_nameLink"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_foreName"> <element name="foreName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a forename, given or baptismal name.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_genName"> <element name="genName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(generational name component) Contains a name component used to distinguish otherwise similar names on the basis of the relative ages or generations of the persons named.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_geogFeat"> <element name="geogFeat"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(geographical feature name) Contains a common noun identifying a geographical feature.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_geogName"> <element name="geogName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(geographic name) The proper noun designation for a place, natural feature, or political jurisdiction.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_nameLink"> <element name="nameLink"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(name link) Contains a connecting phrase or link used within a name but not regarded as part of it, such as "van der" or "of", "from", etc.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_periodName"> <element name="periodName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(period name) A label that describes a period of time, such as 'Baroque' or '3rd Style period'.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_persName"> <element name="persName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(personal name) Designation for an individual, including any or all of that individual's forenames, surnames, honorific titles, and added names.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_model.persNamePart"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_postBox"> <element name="postBox"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(postal box or post office box) Contains a number or other identifier for some postal delivery point other than a street address.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_postCode"> <element name="postCode"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(postal code) Contains a numerical or alphanumeric code used as part of a postal address to simplify sorting or delivery of mail.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_region"> <element name="region"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the name of an administrative unit such as a state, province, or county, larger than a settlement, but smaller than a country.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_roleName"> <element name="roleName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(role name) Contains a name component which indicates that the referent has a particular role or position in society, such as an official title or rank.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_settlement"> <element name="settlement"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the name of a settlement such as a city, town, or village identified as a single geopolitical or administrative unit.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_street"> <element name="street"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">full street address including any name or number identifying a building as well as the name of the street or route on which it is located.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_styleName"> <element name="styleName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(style name) A label for a characteristic style of writing or performance, such as 'bebop' or 'rock-n-roll'.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_att.divLine.log.attributes"> <ref name="mei_att.divLine.log.attribute.form"/> </define> <define name="mei_att.divLine.log.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Identifies the different kinds of division. Suggested values include: 1] caesura; 2] finalis; 3] maior; 4] maxima; 5] minima; 6] virgula</a:documentation> <list> <oneOrMore> <choice> <value>caesura</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>finalis</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>maior</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>maxima</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>minima</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>virgula</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <data type="NMTOKEN"/> </choice> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.episema.log.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.plist.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.targetEval.attributes"/> </define> <define name="mei_att.hispanTick.log.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.plist.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.targetEval.attributes"/> </define> <define name="mei_att.liquescent.log.attributes"> <empty/> </define> <define name="mei_att.nc.log.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.nc.log.attribute.oct"/> <ref name="mei_att.nc.log.attribute.pname"/> </define> <define name="mei_att.nc.log.attribute.oct"> <optional> <attribute name="oct"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures written octave information.</a:documentation> <choice> <data type="nonNegativeInteger"> <param name="maxInclusive">9</param> </data> <data type="token"> <param name="pattern">unknown</param> </data> </choice> </attribute> </optional> </define> <define name="mei_att.nc.log.attribute.pname"> <optional> <attribute name="pname"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pitch name) Contains a written pitch name.</a:documentation> <data type="token"> <param name="pattern">[a-g]|unknown</param> </data> </attribute> </optional> </define> <define name="mei_att.ncForm.attributes"> <ref name="mei_att.curvatureDirection.attributes"/> <ref name="mei_att.ncForm.attribute.angled"/> <ref name="mei_att.ncForm.attribute.con"/> <ref name="mei_att.ncForm.attribute.hooked"/> <ref name="mei_att.ncForm.attribute.ligated"/> <ref name="mei_att.ncForm.attribute.rellen"/> <ref name="mei_att.ncForm.attribute.s-shape"/> <ref name="mei_att.ncForm.attribute.tilt"/> </define> <define name="mei_att.ncForm.attribute.angled"> <optional> <attribute name="angled"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.ncForm.attribute.con"> <optional> <attribute name="con"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Connection to the previous component within the same neume; this attribute should not be used for the first component of a neume.</a:documentation> <choice> <value>g</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Gapped; not connected.</a:documentation> <value>l</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Looped.</a:documentation> <value>e</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Extended.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.ncForm.attribute.hooked"> <optional> <attribute name="hooked"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pen stroke has an extension; specific to Hispanic notation.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.ncForm.attribute.ligated"> <optional> <attribute name="ligated"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates participation in a ligature.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.ncForm.attribute.rellen"> <optional> <attribute name="rellen"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Length of the pen stroke relative to the previous component within the same neume; this attribute should not be used for the first component of a neume.</a:documentation> <choice> <value>l</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Longer.</a:documentation> <value>s</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Shorter.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.ncForm.attribute.s-shape"> <optional> <attribute name="s-shape"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Direction of the initial direction for an s-shaped pen stroke; i.e., "w" for the standard letter S, "e" for its mirror image, "s" for the letter S turned 90-degrees anti-clockwise, and "n" for its mirror image.</a:documentation> <ref name="mei_data.COMPASSDIRECTION.basic"/> </attribute> </optional> </define> <define name="mei_att.ncForm.attribute.tilt"> <optional> <attribute name="tilt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Direction of the pen stroke.</a:documentation> <ref name="mei_data.COMPASSDIRECTION"/> </attribute> </optional> </define> <define name="mei_att.ncGrp.log.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.sylText.attributes"/> </define> <define name="mei_att.neume.log.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.sylText.attributes"/> </define> <define name="mei_att.neumeType.attributes"> <ref name="mei_att.neumeType.attribute.type"/> </define> <define name="mei_att.neumeType.attribute.type"> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels. Suggested values include: 1] apostropha; 2] bistropha; 3] climacus; 4] clivis; 5] oriscus; 6] pes; 7] pessubpunctis; 8] porrectus; 9] porrectusflexus; 10] pressusmaior; 11] pressusminor; 12] punctum; 13] quilisma; 14] scandicus; 15] strophicus; 16] torculus; 17] torculusresupinus; 18] tristropha; 19] virga; 20] virgastrata</a:documentation> <list> <oneOrMore> <choice> <value>apostropha</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>bistropha</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>climacus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>clivis</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>oriscus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>pes</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>pessubpunctis</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>porrectus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>porrectusflexus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>pressusmaior</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>pressusminor</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>punctum</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>quilisma</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>scandicus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>strophicus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>torculus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>torculusresupinus</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>tristropha</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>virga</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <value>virgastrata</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <data type="NMTOKEN"/> </choice> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.oriscus.log.attributes"> <empty/> </define> <define name="mei_att.quilisma.log.attributes"> <empty/> </define> <define name="mei_att.signifLet.log.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.plist.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.targetEval.attributes"/> </define> <define name="mei_att.strophicus.log.attributes"> <empty/> </define> <define name="mei_att.syllable.log.attributes"> <ref name="mei_att.alignment.attributes"/> </define> <define name="mei_model.eventLike.neumes"> <choice> <ref name="mei_neume"/> <ref name="mei_divLine"/> </choice> </define> <define name="mei_model.eventLike.neumes_alternation"> <choice> <ref name="mei_neume"/> <ref name="mei_divLine"/> </choice> </define> <define name="mei_model.eventLike.neumes_sequence"> <ref name="mei_neume"/> <ref name="mei_divLine"/> </define> <define name="mei_model.eventLike.neumes_sequenceOptional"> <optional> <ref name="mei_neume"/> </optional> <optional> <ref name="mei_divLine"/> </optional> </define> <define name="mei_model.eventLike.neumes_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_neume"/> </zeroOrMore> <zeroOrMore> <ref name="mei_divLine"/> </zeroOrMore> </define> <define name="mei_model.eventLike.neumes_sequenceRepeatable"> <oneOrMore> <ref name="mei_neume"/> </oneOrMore> <oneOrMore> <ref name="mei_divLine"/> </oneOrMore> </define> <define name="mei_model.layerPart.neumes"> <choice> <ref name="mei_model.eventLike.neumes"/> <ref name="mei_model.syllableLike"/> </choice> </define> <define name="mei_model.layerPart.neumes_alternation"> <choice> <ref name="mei_model.eventLike.neumes_alternation"/> <ref name="mei_model.syllableLike_alternation"/> </choice> </define> <define name="mei_model.layerPart.neumes_sequence"> <ref name="mei_model.eventLike.neumes_sequence"/> <ref name="mei_model.syllableLike_sequence"/> </define> <define name="mei_model.layerPart.neumes_sequenceOptional"> <optional> <ref name="mei_model.eventLike.neumes_sequenceOptional"/> </optional> <optional> <ref name="mei_model.syllableLike_sequenceOptional"/> </optional> </define> <define name="mei_model.layerPart.neumes_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_model.eventLike.neumes_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.syllableLike_sequenceOptionalRepeatable"/> </zeroOrMore> </define> <define name="mei_model.layerPart.neumes_sequenceRepeatable"> <oneOrMore> <ref name="mei_model.eventLike.neumes_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.syllableLike_sequenceRepeatable"/> </oneOrMore> </define> <define name="mei_model.neumeComponentModifierLike"> <choice> <ref name="mei_liquescent"/> <ref name="mei_oriscus"/> <ref name="mei_quilisma"/> <ref name="mei_strophicus"/> </choice> </define> <define name="mei_model.neumeModifierLike"> <choice> <ref name="mei_episema"/> <ref name="mei_hispanTick"/> <ref name="mei_signifLet"/> </choice> </define> <define name="mei_model.neumePart"> <choice> <ref name="mei_nc"/> <ref name="mei_ncGrp"/> </choice> </define> <define name="mei_model.syllableLike"> <choice> <ref name="mei_syllable"/> </choice> </define> <define name="mei_model.syllableLike_alternation"> <choice> <ref name="mei_syllable"/> </choice> </define> <define name="mei_model.syllableLike_sequence"> <ref name="mei_syllable"/> </define> <define name="mei_model.syllableLike_sequenceOptional"> <optional> <ref name="mei_syllable"/> </optional> </define> <define name="mei_model.syllableLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_syllable"/> </zeroOrMore> </define> <define name="mei_model.syllableLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_syllable"/> </oneOrMore> </define> <define name="mei_model.syllablePart"> <choice> <ref name="mei_model.verseLike"/> <ref name="mei_model.midiLike"/> <ref name="mei_model.eventLike.neumes"/> <ref name="mei_model.controlEventLike"/> <ref name="mei_model.sylLike"/> <ref name="mei_accid"/> <ref name="mei_clef"/> </choice> </define> <define name="mei_episema"> <element name="episema"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Episema.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.episema.anl.attributes"/> <ref name="mei_att.episema.ges.attributes"/> <ref name="mei_att.episema.log.attributes"/> <ref name="mei_att.episema.vis.attributes"/> <empty/> </element> </define> <define name="mei_hispanTick"> <element name="hispanTick"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Hispanic tick.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.hispanTick.anl.attributes"/> <ref name="mei_att.hispanTick.ges.attributes"/> <ref name="mei_att.hispanTick.log.attributes"/> <ref name="mei_att.hispanTick.vis.attributes"/> <empty/> </element> </define> <define name="mei_liquescent"> <element name="liquescent"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Liquescent.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.liquescent.anl.attributes"/> <ref name="mei_att.liquescent.ges.attributes"/> <ref name="mei_att.liquescent.log.attributes"/> <ref name="mei_att.liquescent.vis.attributes"/> <empty/> </element> </define> <define name="mei_nc"> <element name="nc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign representing a single pitched event, although the exact pitch may not be known.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.neumeComponentModifierLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.classed.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.nc.anl.attributes"/> <ref name="mei_att.nc.ges.attributes"/> <ref name="mei_att.nc.log.attributes"/> <ref name="mei_att.nc.vis.attributes"/> <empty/> </element> </define> <define name="mei_ncGrp"> <element name="ncGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(neume component group) Collection of one or more neume components.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_nc"/> <ref name="mei_ncGrp"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.ncGrp.anl.attributes"/> <ref name="mei_att.ncGrp.ges.attributes"/> <ref name="mei_att.ncGrp.log.attributes"/> <ref name="mei_att.ncGrp.vis.attributes"/> <empty/> </element> </define> <define name="mei_neume"> <element name="neume"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sign representing one or more musical pitches.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.neumePart"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.classed.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.neume.anl.attributes"/> <ref name="mei_att.neume.ges.attributes"/> <ref name="mei_att.neume.log.attributes"/> <ref name="mei_att.neume.vis.attributes"/> <empty/> </element> </define> <define name="mei_oriscus"> <element name="oriscus"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Oriscus.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.oriscus.anl.attributes"/> <ref name="mei_att.oriscus.ges.attributes"/> <ref name="mei_att.oriscus.log.attributes"/> <ref name="mei_att.oriscus.vis.attributes"/> <empty/> </element> </define> <define name="mei_quilisma"> <element name="quilisma"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Quilisma.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.quilisma.anl.attributes"/> <ref name="mei_att.quilisma.ges.attributes"/> <ref name="mei_att.quilisma.log.attributes"/> <ref name="mei_att.quilisma.vis.attributes"/> <empty/> </element> </define> <define name="mei_signifLet"> <element name="signifLet"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Significantive letter(s).</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.signifLet.anl.attributes"/> <ref name="mei_att.signifLet.ges.attributes"/> <ref name="mei_att.signifLet.log.attributes"/> <ref name="mei_att.signifLet.vis.attributes"/> <empty/> </element> </define> <define name="mei_strophicus"> <element name="strophicus"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Strophicus.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.strophicus.anl.attributes"/> <ref name="mei_att.strophicus.ges.attributes"/> <ref name="mei_att.strophicus.log.attributes"/> <ref name="mei_att.strophicus.vis.attributes"/> <empty/> </element> </define> <define name="mei_syllable"> <element name="syllable"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Neume notation can be thought of as "neumed text". Therefore, the syllable element provides high-level organization in this repertoire.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.neumeModifierLike"/> <ref name="mei_model.scoreDefLike"/> <ref name="mei_model.staffDefLike"/> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.syllablePart"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.syllable.anl.attributes"/> <ref name="mei_att.syllable.ges.attributes"/> <ref name="mei_att.syllable.log.attributes"/> <ref name="mei_att.syllable.vis.attributes"/> <empty/> </element> </define> <define name="mei_divLine"> <element name="divLine"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Represents a division (divisio) in neume notation. Divisions indicate short, medium, or long pauses similar to breath marks in modern notation.</a:documentation> <empty/> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.classed.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.divLine.log.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <empty/> </element> </define> <define name="mei_att.alignment.attributes"> <ref name="mei_att.alignment.attribute.when"/> </define> <define name="mei_att.alignment.attribute.when"> <optional> <attribute name="when"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the point of occurrence of this feature along a time line. Its value must be the ID of a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><when></code> element elsewhere in the document.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.alignment-check_whenTarget-constraint-rule-91"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@when"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@when attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:when/@xml:id">A value in @when should correspond to the @xml:id attribute of a when element.</sch:assert> </sch:rule> </pattern> <define name="mei_avFile"> <element name="avFile"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(audio/video file) References an external digital audio or video file.</a:documentation> <zeroOrMore> <ref name="mei_clip"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-avFile-avFile_child_of_clip-constraint-rule-92"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:clip/mei:avFile"> <sch:assert test="count(mei:*) = 0">An avFile child of clip cannot have children.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.internetMedia.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <empty/> </element> </define> <define name="mei_clip"> <element name="clip"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Defines a time segment of interest within a recording or within a digital audio or video file.</a:documentation> <zeroOrMore> <ref name="mei_avFile"/> </zeroOrMore> <zeroOrMore> <ref name="mei_when"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-clip-betype_required_when_begin_or_end-constraint-rule-93"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:clip[@begin or @end]"> <sch:assert role="warning" test="@betype or ancestor::mei:*[@betype]">When @begin or @end is used, @betype should appear on clip or one of its ancestors.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.mediaBounds.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.startId.attributes"/> <empty/> </element> </define> <define name="mei_performance"> <element name="performance"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A presentation of one or more musical works.</a:documentation> <zeroOrMore> <ref name="mei_recording"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_recording"> <element name="recording"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A recorded performance.</a:documentation> <zeroOrMore> <ref name="mei_avFile"/> </zeroOrMore> <zeroOrMore> <ref name="mei_when"/> </zeroOrMore> <zeroOrMore> <ref name="mei_clip"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-recording-betype_required_when_begin_or_end-constraint-rule-94"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:recording[@begin or @end]"> <sch:assert role="warning" test="@betype">When @begin or @end is used, @betype should be present.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.mediaBounds.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.startId.attributes"/> <empty/> </element> </define> <define name="mei_when"> <element name="when"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates a point in time either absolutely (using the absolute attribute), or relative to another when element (using the since, interval and inttype attributes).</a:documentation> <zeroOrMore> <ref name="mei_extData"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-when-check_when_interval-constraint-rule-95"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:when[@interval]"> <sch:assert test="@since">@since must be present when @interval is used.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(@since, '\s+') satisfies substring($i,2)=//mei:when/@xml:id">The value in @since should correspond to the @xml:id attribute of a when element.</sch:assert> </sch:rule> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:when[matches(@interval, '^[0-9]+$')]"> <sch:assert test="not(@inttype eq 'time')">When @interval contains an integer value, @inttype cannot be 'time'.</sch:assert> </sch:rule> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:when[matches(@interval, ':')]"> <sch:assert test="@inttype eq 'time'">When @interval contains a time value, @inttype must be 'time'.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-when-check_when_absolute-constraint-rule-98"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:when[@absolute]"> <sch:assert role="warning" test="@abstype or ancestor::mei:*[@betype]">When @absolute is present, @abstype should be present or @betype should be present on an ancestor.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <optional> <attribute name="absolute"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides an absolute value for the time point.</a:documentation> <text/> </attribute> </optional> <optional> <attribute name="interval"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the time interval between this time point and the one designated by the since attribute. This attribute can only be interpreted meaningfully in conjunction with the inttype attribute.</a:documentation> <choice> <data type="decimal"> <param name="minInclusive">1</param> </data> <data type="time"/> </choice> </attribute> </optional> <optional> <attribute name="abstype"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the kind of values used in the absolute attribute.</a:documentation> <ref name="mei_data.BETYPE"/> </attribute> </optional> <optional> <attribute name="inttype"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the kind of values used in the interval attribute.</a:documentation> <ref name="mei_data.BETYPE"/> </attribute> </optional> <optional> <attribute name="since"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Identifies the reference point for determining the time of the current when element, which is obtained by adding the interval to the time of the reference point. The value should be the ID of another when element within the same parent element. If the since attribute is omitted and the absolute attribute is not specified, then the reference point is understood to be the immediately preceding when element.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-when-since-check_sinceTarget-constraint-rule-99"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@since"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@since attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:when/@xml:id">The value in @since should correspond to the @xml:id attribute of a when element.</sch:assert> </sch:rule> </pattern> <empty/> </element> </define> <define name="mei_model.locrefLike"> <choice> <ref name="mei_ptr"/> <ref name="mei_ref"/> </choice> </define> <define name="mei_model.locrefLike_alternation"> <choice> <ref name="mei_ptr"/> <ref name="mei_ref"/> </choice> </define> <define name="mei_model.locrefLike_sequence"> <ref name="mei_ptr"/> <ref name="mei_ref"/> </define> <define name="mei_model.locrefLike_sequenceOptional"> <optional> <ref name="mei_ptr"/> </optional> <optional> <ref name="mei_ref"/> </optional> </define> <define name="mei_model.locrefLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_ptr"/> </zeroOrMore> <zeroOrMore> <ref name="mei_ref"/> </zeroOrMore> </define> <define name="mei_model.locrefLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_ptr"/> </oneOrMore> <oneOrMore> <ref name="mei_ref"/> </oneOrMore> </define> <define name="mei_ptr"> <element name="ptr"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pointer) Defines a traversible pointer to another location, using only attributes to describe the destination.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.internetMedia.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_ref"> <element name="ref"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference) Defines a traversible reference to another location. May contain text and sub-elements that describe the destination.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.internetMedia.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_att.accid.log.attributes"> <ref name="mei_att.accidental.attributes"/> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.accid.log.attribute.func"/> </define> <define name="mei_att.accid.log.attribute.func"> <optional> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the function of an accidental.</a:documentation> <choice> <value>caution</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Cautionary accidental.</a:documentation> <value>edit</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Editorial accidental.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.accidental.attributes"> <ref name="mei_att.accidental.attribute.accid"/> </define> <define name="mei_att.accidental.attribute.accid"> <optional> <attribute name="accid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures a written accidental.</a:documentation> <ref name="mei_data.ACCIDENTAL.WRITTEN"/> </attribute> </optional> </define> <define name="mei_att.ambitus.log.attributes"> <empty/> </define> <define name="mei_att.ambNote.log.attributes"> <ref name="mei_att.accidental.attributes"/> <ref name="mei_att.coloration.attributes"/> <ref name="mei_att.duration.log.attributes"/> <ref name="mei_att.pitched.attributes"/> </define> <define name="mei_att.annot.log.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp.log.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.artic.log.attributes"> <ref name="mei_att.articulation.attributes"/> <ref name="mei_att.controlEvent.attributes"/> </define> <define name="mei_att.articulation.attributes"> <ref name="mei_att.articulation.attribute.artic"/> </define> <define name="mei_att.articulation.attribute.artic"> <optional> <attribute name="artic"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the written articulation(s). Articulations are normally encoded in order from the note head outward; that is, away from the stem. See additional notes at att.vis.note. Only articulations should be encoded in the artic attribute; for example, fingerings should be encoded using the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><fing></code> element.</a:documentation> <list> <oneOrMore> <ref name="mei_data.ARTICULATION"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.attacca.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.attacca.log.attribute.target"/> </define> <define name="mei_att.attacca.log.attribute.target"> <optional> <attribute name="target"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the next section or movement to be performed.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.attacca.log-target-check_attaccaTarget-constraint-rule-100"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:attacca/@target"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@target attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[local-name() eq 'section' or local-name() eq 'mdiv']/@xml:id">The value in @target should correspond to the @xml:id attribute of a section or mdiv element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.audience.attributes"> <ref name="mei_att.audience.attribute.audience"/> </define> <define name="mei_att.audience.attribute.audience"> <optional> <attribute name="audience"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The intended audience.</a:documentation> <choice> <value>private</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Internal use only.</a:documentation> <value>public</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Available to all audiences.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.augmentDots.attributes"> <ref name="mei_att.augmentDots.attribute.dots"/> </define> <define name="mei_att.augmentDots.attribute.dots"> <optional> <attribute name="dots"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the number of augmentation dots required by a written dotted duration.</a:documentation> <ref name="mei_data.AUGMENTDOT"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.augmentDots-dots-dots_attribute_requires_dur-constraint-rule-101"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[@dots]"> <sch:assert test="@dur">An element with a dots attribute must also have a dur attribute.</sch:assert> </sch:rule> </pattern> <define name="mei_att.authorized.attributes"> <ref name="mei_att.canonical.attributes"/> <ref name="mei_att.authorized.attribute.auth"/> <ref name="mei_att.authorized.attribute.auth.uri"/> </define> <define name="mei_att.authorized.attribute.auth"> <optional> <attribute name="auth"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A name or label associated with a controlled vocabulary or other authoritative source for this element or its content.</a:documentation> <data type="string"/> </attribute> </optional> </define> <define name="mei_att.authorized.attribute.auth.uri"> <optional> <attribute name="auth.uri"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A web-accessible location of the controlled vocabulary or other authoritative source of identification or definition for this element or its content. This attribute may contain a complete URI or a partial URI which is completed by the value of the codedval attribute.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.barLine.log.attributes"> <ref name="mei_att.meterConformance.bar.attributes"/> <ref name="mei_att.barLine.log.attribute.form"/> </define> <define name="mei_att.barLine.log.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the appearance and usually the function of the bar line.</a:documentation> <ref name="mei_data.BARRENDITION"/> </attribute> </optional> </define> <define name="mei_att.barring.attributes"> <ref name="mei_att.barring.attribute.bar.len"/> <ref name="mei_att.barring.attribute.bar.method"/> <ref name="mei_att.barring.attribute.bar.place"/> </define> <define name="mei_att.barring.attribute.bar.len"> <optional> <attribute name="bar.len"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">States the length of bar lines in virtual units. The value must be greater than 0 and is typically equal to 2 times (the number of staff lines - 1); e.g., a value of 8 for a 5-line staff.</a:documentation> <data type="decimal"> <param name="minExclusive">0</param> </data> </attribute> </optional> </define> <define name="mei_att.barring.attribute.bar.method"> <optional> <attribute name="bar.method"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the method of barring.</a:documentation> <ref name="mei_data.BARMETHOD"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.barring-bar.method-check_barmethod-constraint-rule-102"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@bar.method[parent::*[matches(local-name(), '(staffDef|measure)')]]"> <sch:assert test="not(. eq 'mensur')">"mensur" not allowed in this context.</sch:assert> </sch:rule> </pattern> <define name="mei_att.barring.attribute.bar.place"> <optional> <attribute name="bar.place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Denotes the staff location of bar lines, if the length is non-standard; that is, not equal to 2 times (the number of staff lines - 1).</a:documentation> <ref name="mei_data.STAFFLOC"/> </attribute> </optional> </define> <define name="mei_att.basic.attributes"> <ref name="mei_att.id.attributes"/> <ref name="mei_att.basic.attribute.xmlbase"/> </define> <define name="mei_att.basic.attribute.xmlbase"> <optional> <attribute name="xml:base"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a base URI reference with which applications can resolve relative URI references into absolute URI references.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.bibl.attributes"> <ref name="mei_att.bibl.attribute.analog"/> </define> <define name="mei_att.bibl.attribute.analog"> <optional> <attribute name="analog"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a reference to a field or element in another descriptive encoding system to which this MEI element is comparable.</a:documentation> <data type="string"/> </attribute> </optional> </define> <define name="mei_att.caesura.log.attributes"> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.startId.attributes"/> <ref name="mei_att.timestamp.log.attributes"/> </define> <define name="mei_att.calendared.attributes"> <ref name="mei_att.calendared.attribute.calendar"/> </define> <define name="mei_att.calendared.attribute.calendar"> <optional> <attribute name="calendar"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the calendar system to which a date belongs, for example, Gregorian, Julian, Roman, Mosaic, Revolutionary, Islamic, etc.</a:documentation> <data type="NMTOKEN"/> </attribute> </optional> </define> <define name="mei_att.canonical.attributes"> <ref name="mei_att.canonical.attribute.codedval"/> </define> <define name="mei_att.canonical.attribute.codedval"> <optional> <attribute name="codedval"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A value that represents or identifies other data. Often, it is a primary key in the database or a unique value in the coded list identified by the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@auth</code> or <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@auth.uri</code> attributes.</a:documentation> <list> <oneOrMore> <data type="NMTOKEN"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.chord.log.attributes"> <ref name="mei_att.articulation.attributes"/> <ref name="mei_att.augmentDots.attributes"/> <ref name="mei_att.chord.log.cmn.attributes"/> <ref name="mei_att.cue.attributes"/> <ref name="mei_att.duration.log.attributes"/> <ref name="mei_att.event.attributes"/> <ref name="mei_att.sylText.attributes"/> </define> <define name="mei_att.classed.attributes"> <ref name="mei_att.classed.attribute.class"/> </define> <define name="mei_att.classed.attribute.class"> <optional> <attribute name="class"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains one or more URIs which denote classification terms that apply to the entity bearing this attribute.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.classed-class-check_classURI-constraint-rule-103"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@class"> <sch:assert test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:category/@xml:id or matches($i, '^([a-z]+://|\.{1,2}/)')">The value in @class must either correspond to the @xml:id attribute of a category element or be an external URL.</sch:assert> </sch:rule> </pattern> <define name="mei_att.clef.log.attributes"> <ref name="mei_att.clefShape.attributes"/> <ref name="mei_att.lineLoc.attributes"/> <ref name="mei_att.octave.attributes"/> <ref name="mei_att.octaveDisplacement.attributes"/> <ref name="mei_att.clef.log.attribute.cautionary"/> </define> <define name="mei_att.clef.log.attribute.cautionary"> <optional> <attribute name="cautionary"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the function of the clef. A "cautionary" clef does not change the following pitches.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.cleffing.log.attributes"> <ref name="mei_att.cleffing.log.attribute.clef.shape"/> <ref name="mei_att.cleffing.log.attribute.clef.line"/> <ref name="mei_att.cleffing.log.attribute.clef.dis"/> <ref name="mei_att.cleffing.log.attribute.clef.dis.place"/> </define> <define name="mei_att.cleffing.log.attribute.clef.shape"> <optional> <attribute name="clef.shape"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes a value for the clef symbol.</a:documentation> <ref name="mei_data.CLEFSHAPE"/> </attribute> </optional> </define> <define name="mei_att.cleffing.log.attribute.clef.line"> <optional> <attribute name="clef.line"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a default value for the position of the clef. The value must be in the range between 1 and the number of lines on the staff. The numbering of lines starts with the lowest line of the staff.</a:documentation> <ref name="mei_data.CLEFLINE"/> </attribute> </optional> </define> <define name="mei_att.cleffing.log.attribute.clef.dis"> <optional> <attribute name="clef.dis"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the amount of octave displacement to be applied to the clef.</a:documentation> <ref name="mei_data.OCTAVE.DIS"/> </attribute> </optional> </define> <define name="mei_att.cleffing.log.attribute.clef.dis.place"> <optional> <attribute name="clef.dis.place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the direction of octave displacement to be applied to the clef.</a:documentation> <ref name="mei_data.STAFFREL.basic"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.cleffing.log-clef_shape_requires_clef_line-constraint-rule-104"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[matches(@clef.shape, '[FCG]')]"> <sch:assert test="@clef.line">An 'F', 'C', or 'G' clef requires that its position be specified.</sch:assert> </sch:rule> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[matches(@clef.shape, '(TAB|perc)')]"> <sch:assert test="@lines">A TAB or percussion clef requires that the number of lines be specified.</sch:assert> </sch:rule> </pattern> <define name="mei_att.clefGrp.log.attributes"> <empty/> </define> <define name="mei_att.clefShape.attributes"> <ref name="mei_att.clefShape.attribute.shape"/> </define> <define name="mei_att.clefShape.attribute.shape"> <optional> <attribute name="shape"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes a clef’s shape.</a:documentation> <ref name="mei_data.CLEFSHAPE"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.clefShape-shape_requires_line-constraint-rule-106"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:clef[matches(@shape, '[FCG]')]"> <sch:assert test="@line">When @shape is present, @line must also be specified.</sch:assert> </sch:rule> </pattern> <define name="mei_att.color.attributes"> <ref name="mei_att.color.attribute.color"/> </define> <define name="mei_att.color.attribute.color"> <optional> <attribute name="color"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to indicate visual appearance. Do not confuse this with the musical term 'color' as used in pre-CMN notation.</a:documentation> <ref name="mei_data.COLOR"/> </attribute> </optional> </define> <define name="mei_att.coloration.attributes"> <ref name="mei_att.coloration.attribute.colored"/> </define> <define name="mei_att.coloration.attribute.colored"> <optional> <attribute name="colored"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates this feature is 'colored'; that is, it is a participant in a change in rhythmic values. In mensural notation, coloration is indicated by colored notes (red, black, etc.) where void notes would otherwise occur. In CMN, coloration is indicated by an inverse color; that is, the note head is void when it would otherwise be filled and vice versa.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.common.attributes"> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.typed.attributes"/> </define> <define name="mei_att.contemporary.attributes"> <ref name="mei_att.contemporary.attribute.contemporary"/> </define> <define name="mei_att.contemporary.attribute.contemporary"> <optional> <attribute name="contemporary"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.controlEvent.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> <ref name="mei_att.plist.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.targetEval.attributes"/> <ref name="mei_att.timestamp.log.attributes"/> <ref name="mei_att.timestamp.ges.attributes"/> </define> <define name="mei_att.coordinated.attributes"> <ref name="mei_att.coordinated.ul.attributes"/> <ref name="mei_att.coordinated.attribute.lrx"/> <ref name="mei_att.coordinated.attribute.lry"/> <ref name="mei_att.coordinated.attribute.rotate"/> </define> <define name="mei_att.coordinated.attribute.lrx"> <optional> <attribute name="lrx"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the lower-right corner x coordinate.</a:documentation> <data type="nonNegativeInteger"/> </attribute> </optional> </define> <define name="mei_att.coordinated.attribute.lry"> <optional> <attribute name="lry"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the lower-right corner y coordinate.</a:documentation> <data type="nonNegativeInteger"/> </attribute> </optional> </define> <define name="mei_att.coordinated.attribute.rotate"> <optional> <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" name="rotate" a:defaultValue="0"> <a:documentation>Indicates the amount by which the contents of this element have been rotated clockwise or, if applicable, how the orientation of the element self should be interpreted, with respect to the normal orientation of the parent surface. The orientation is expressed in arc degrees. </a:documentation> <ref name="mei_data.DEGREES"/> </attribute> </optional> </define> <define name="mei_att.coordinated.ul.attributes"> <ref name="mei_att.coordinated.ul.attribute.ulx"/> <ref name="mei_att.coordinated.ul.attribute.uly"/> </define> <define name="mei_att.coordinated.ul.attribute.ulx"> <optional> <attribute name="ulx"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the upper-left corner x coordinate.</a:documentation> <data type="nonNegativeInteger"/> </attribute> </optional> </define> <define name="mei_att.coordinated.ul.attribute.uly"> <optional> <attribute name="uly"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the upper-left corner y coordinate.</a:documentation> <data type="nonNegativeInteger"/> </attribute> </optional> </define> <define name="mei_att.cue.attributes"> <ref name="mei_att.cue.attribute.cue"/> </define> <define name="mei_att.cue.attribute.cue"> <optional> <attribute name="cue"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.curvature.attributes"> <ref name="mei_att.curvature.attribute.bezier"/> <ref name="mei_att.curvature.attribute.bulge"/> <ref name="mei_att.curvature.attribute.curvedir"/> </define> <define name="mei_att.curvature.attribute.bezier"> <optional> <attribute name="bezier"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the placement of Bezier control points as a series of pairs of space-separated values; e.g., 19 45 -32 118.</a:documentation> <list> <oneOrMore> <data type="decimal"/> <data type="decimal"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.curvature.attribute.bulge"> <optional> <attribute name="bulge"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes a curve as one or more pairs of values with respect to an imaginary line connecting the starting and ending points of the curve. The first value captures a distance to the left (positive value) or right (negative value) of the line, expressed in virtual units. The second value of each pair represents a point along the line, expressed as a percentage of the line’s length. N.B. An MEI virtual unit (vu) is half the distance between adjacent staff lines where the interline space is measured from the middle of a staff line.</a:documentation> <list> <oneOrMore> <data type="decimal"/> <ref name="mei_data.PERCENT"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.curvature.attribute.curvedir"> <optional> <attribute name="curvedir"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes a curve with a generic term indicating the direction of curvature.</a:documentation> <choice> <value>above</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Upward curve.</a:documentation> <value>below</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Downward curve.</a:documentation> <value>mixed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A "meandering" curve, both above and below the items it pertains to.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.custos.log.attributes"> <ref name="mei_att.accidental.attributes"/> <ref name="mei_att.pitched.attributes"/> <ref name="mei_att.custos.log.attribute.target"/> </define> <define name="mei_att.custos.log.attribute.target"> <optional> <attribute name="target"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the target note when its pitch differs from the pitch at which the custos appears.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.custos.log-target-check_custosTarget-constraint-rule-107"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:custos/@target"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@target attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:note/@xml:id">The value in @target should correspond to the @xml:id attribute of a note element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.datable.attributes"> <ref name="mei_att.datable.attribute.enddate"/> <ref name="mei_att.datable.attribute.isodate"/> <ref name="mei_att.datable.attribute.notafter"/> <ref name="mei_att.datable.attribute.notbefore"/> <ref name="mei_att.datable.attribute.startdate"/> </define> <define name="mei_att.datable.attribute.enddate"> <optional> <attribute name="enddate"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the end point of a date range in standard ISO form.</a:documentation> <ref name="mei_data.ISODATE"/> </attribute> </optional> </define> <define name="mei_att.datable.attribute.isodate"> <optional> <attribute name="isodate"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides the value of a textual date in standard ISO form.</a:documentation> <ref name="mei_data.ISODATE"/> </attribute> </optional> </define> <define name="mei_att.datable.attribute.notafter"> <optional> <attribute name="notafter"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains an upper boundary for an uncertain date in standard ISO form.</a:documentation> <ref name="mei_data.ISODATE"/> </attribute> </optional> </define> <define name="mei_att.datable.attribute.notbefore"> <optional> <attribute name="notbefore"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a lower boundary, in standard ISO form, for an uncertain date.</a:documentation> <ref name="mei_data.ISODATE"/> </attribute> </optional> </define> <define name="mei_att.datable.attribute.startdate"> <optional> <attribute name="startdate"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the starting point of a date range in standard ISO form.</a:documentation> <ref name="mei_data.ISODATE"/> </attribute> </optional> </define> <define name="mei_att.dataPointing.attributes"> <ref name="mei_att.dataPointing.attribute.data"/> </define> <define name="mei_att.dataPointing.attribute.data"> <optional> <attribute name="data"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to link metadata elements to one or more data-containing elements.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.dataPointing-data-check_dataTarget-constraint-rule-108"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@data"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@data attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[ancestor::mei:music]/@xml:id">The value in @data should correspond to the @xml:id attribute of a descendant of the music element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.dataSelecting.attributes"> <ref name="mei_att.dataSelecting.attribute.select"/> </define> <define name="mei_att.dataSelecting.attribute.select"> <optional> <attribute name="select"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">XPath used to select data to which an element or a property applies.</a:documentation> <data type="token"/> </attribute> </optional> </define> <define name="mei_att.mdiv.log.attributes"> <ref name="mei_att.alignment.attributes"/> </define> <define name="mei_att.metadataPointing.attributes"> <ref name="mei_att.metadataPointing.attribute.decls"/> </define> <define name="mei_att.metadataPointing.attribute.decls"> <optional> <attribute name="decls"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Identifies one or more metadata elements (other than classification terms) within the header, which are understood to apply to the element bearing this attribute and its content.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.metadataPointing-decls-check_declsTarget-constraint-rule-109"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@decls"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@decls attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[ancestor::mei:meiHead]/@xml:id">Each value in @decls should correspond to the @xml:id attribute of an element within the metadata header.</sch:assert> <sch:assert test="every $i in tokenize(., '\s+') satisfies not(substring($i,2)=//mei:term/@xml:id)">No value in @decls should correspond to the @xml:id attribute of a classification term. Use @class for this purpose.</sch:assert> </sch:rule> </pattern> <define name="mei_att.dimensions.attributes"> <ref name="mei_att.height.attributes"/> <ref name="mei_att.width.attributes"/> </define> <define name="mei_att.dir.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.distances.attributes"> <ref name="mei_att.distances.attribute.dir.dist"/> <ref name="mei_att.distances.attribute.dynam.dist"/> <ref name="mei_att.distances.attribute.harm.dist"/> <ref name="mei_att.distances.attribute.reh.dist"/> <ref name="mei_att.distances.attribute.tempo.dist"/> </define> <define name="mei_att.distances.attribute.dir.dist"> <optional> <attribute name="dir.dist"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the default distance from the staff for directives.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.distances.attribute.dynam.dist"> <optional> <attribute name="dynam.dist"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the default distance from the staff for dynamic marks.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.distances.attribute.harm.dist"> <optional> <attribute name="harm.dist"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the default distance from the staff of harmonic indications, such as guitar chord grids or functional labels.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.distances.attribute.reh.dist"> <optional> <attribute name="reh.dist"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the default distance from the staff for rehearsal marks.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.distances.attribute.tempo.dist"> <optional> <attribute name="tempo.dist"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the default distance from the staff for tempo marks.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.dot.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.dot.log.attribute.form"/> </define> <define name="mei_att.dot.log.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the function of the dot.</a:documentation> <choice> <value>aug</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Augmentation dot.</a:documentation> <value>div</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dot of division.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.duration.additive.attributes"> <ref name="mei_att.duration.additive.attribute.dur"/> </define> <define name="mei_att.duration.additive.attribute.dur"> <optional> <attribute name="dur"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(duration) When a duration cannot be represented as a single power-of-two value, multiple space-separated values that add up to the total duration may be used.</a:documentation> <list> <oneOrMore> <ref name="mei_data.DURATION"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.duration.default.attributes"> <ref name="mei_att.duration.default.attribute.dur.default"/> <ref name="mei_att.duration.default.attribute.num.default"/> <ref name="mei_att.duration.default.attribute.numbase.default"/> </define> <define name="mei_att.duration.default.attribute.dur.default"> <optional> <attribute name="dur.default"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a default duration in those situations when the first note, rest, chord, etc. in a measure does not have a duration specified.</a:documentation> <ref name="mei_data.DURATION"/> </attribute> </optional> </define> <define name="mei_att.duration.default.attribute.num.default"> <optional> <attribute name="num.default"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Along with numbase.default, describes the default duration as a ratio. num.default is the first value in the ratio.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.duration.default.attribute.numbase.default"> <optional> <attribute name="numbase.default"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Along with num.default, describes the default duration as a ratio. numbase.default is the second value in the ratio.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.duration.log.attributes"> <ref name="mei_att.duration.log.attribute.dur"/> </define> <define name="mei_att.duration.log.attribute.dur"> <optional> <attribute name="dur"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(duration) Records the duration of a feature using the relative durational values provided by the data.DURATION datatype.</a:documentation> <ref name="mei_data.DURATION"/> </attribute> </optional> </define> <define name="mei_att.duration.ratio.attributes"> <ref name="mei_att.duration.ratio.attribute.num"/> <ref name="mei_att.duration.ratio.attribute.numbase"/> </define> <define name="mei_att.duration.ratio.attribute.num"> <optional> <attribute name="num"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number) Along with numbase, describes duration as a ratio. num is the first value in the ratio, while numbase is the second.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.duration.ratio.attribute.numbase"> <optional> <attribute name="numbase"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Along with num, describes duration as a ratio. num is the first value in the ratio, while numbase is the second.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.dynam.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.enclosingChars.attributes"> <ref name="mei_att.enclosingChars.attribute.enclose"/> </define> <define name="mei_att.enclosingChars.attribute.enclose"> <optional> <attribute name="enclose"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the characters often used to mark accidentals, articulations, and sometimes notes as having a cautionary or editorial function. For an example of cautionary accidentals enclosed in parentheses, see Read, p. 131, ex. 9-14.</a:documentation> <ref name="mei_data.ENCLOSURE"/> </attribute> </optional> </define> <define name="mei_att.ending.log.attributes"> <ref name="mei_att.alignment.attributes"/> </define> <define name="mei_att.endings.attributes"> <ref name="mei_att.endings.attribute.ending.rend"/> </define> <define name="mei_att.endings.attribute.ending.rend"> <optional> <attribute name="ending.rend"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes where ending marks should be displayed.</a:documentation> <choice> <value>top</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Ending rendered only above top staff.</a:documentation> <value>barred</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Ending rendered above staves that have bar lines drawn across them.</a:documentation> <value>grouped</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Endings rendered above staff groups.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.event.attributes"> <ref name="mei_att.alignment.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.staffIdent.attributes"/> <ref name="mei_att.timestamp.ges.attributes"/> <ref name="mei_att.timestamp.log.attributes"/> </define> <define name="mei_att.evidence.attributes"> <ref name="mei_att.evidence.attribute.cert"/> <ref name="mei_att.evidence.attribute.evidence"/> </define> <define name="mei_att.evidence.attribute.cert"> <optional> <attribute name="cert"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Signifies the degree of certainty or precision associated with a feature.</a:documentation> <ref name="mei_data.CERTAINTY"/> </attribute> </optional> </define> <define name="mei_att.evidence.attribute.evidence"> <optional> <attribute name="evidence"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the nature of the evidence supporting the reliability or accuracy of the intervention or interpretation. Suggested values include: 1] internal; 2] external; 3] conjecture</a:documentation> <choice> <value>internal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">There is evidence within the document to support the intervention.</a:documentation> <value>external</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">There is evidence outside the document to support the intervention.</a:documentation> <value>conjecture</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The assertion has been made by the editor, cataloguer, or scholar on the basis of their expertise.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> </define> <define name="mei_att.extender.attributes"> <ref name="mei_att.lineRend.attributes"/> <ref name="mei_att.extender.attribute.extender"/> </define> <define name="mei_att.extender.attribute.extender"> <optional> <attribute name="extender"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the presence of an extension symbol, typically a line.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.extent.attributes"> <ref name="mei_att.measurement.attributes"/> <ref name="mei_att.ranging.attributes"/> <ref name="mei_att.extent.attribute.extent"/> </define> <define name="mei_att.extent.attribute.extent"> <optional> <attribute name="extent"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures a measurement, count, or description. When extent contains a numeric value, use the unit attribute to indicate the measurement unit.</a:documentation> <data type="string"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.extent-extent-check_extent-constraint-rule-110"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@extent[matches(normalize-space(.), '^\d+(\.\d+)?$')]"> <sch:assert role="warning" test="../@unit">The @unit attribute is recommended.</sch:assert> </sch:rule> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@extent[matches(., '\d+(\.\d+)?\s')]"> <sch:assert role="warning" test="../@unit">Separation into value (@extent) and unit (@unit) is recommended.</sch:assert> </sch:rule> </pattern> <define name="mei_att.fermataPresent.attributes"> <ref name="mei_att.fermataPresent.attribute.fermata"/> </define> <define name="mei_att.fermataPresent.attribute.fermata"> <optional> <attribute name="fermata"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the attachment of a fermata to this element. If visual information about the fermata needs to be recorded, then a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><fermata></code> element should be employed instead.</a:documentation> <ref name="mei_data.STAFFREL.basic"/> </attribute> </optional> </define> <define name="mei_att.filing.attributes"> <ref name="mei_att.filing.attribute.nonfiling"/> </define> <define name="mei_att.filing.attribute.nonfiling"> <optional> <attribute name="nonfiling"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the number of initial characters (such as those constituting an article or preposition) that should not be used for sorting a title or name.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.formework.attributes"> <ref name="mei_att.formework.attribute.func"/> </define> <define name="mei_att.formework.attribute.func"> <optional> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the function (i.e., placement) of a page header or footer.</a:documentation> <ref name="mei_data.PGFUNC"/> </attribute> </optional> </define> <define name="mei_att.grpSym.log.attributes"> <ref name="mei_att.staffGroupingSym.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.grpSym.log.attribute.level"/> </define> <define name="mei_att.grpSym.log.attribute.level"> <optional> <attribute name="level"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the nesting level of staff grouping symbols.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.handIdent.attributes"> <ref name="mei_att.handIdent.attribute.hand"/> </define> <define name="mei_att.handIdent.attribute.hand"> <optional> <attribute name="hand"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Signifies the hand responsible for an action. The value must be the ID of a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><hand></code> element declared in the header.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.handIdent-hand-check_handTarget-constraint-rule-112"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@hand"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@hand attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:hand/@xml:id">Each value in @hand should correspond to the @xml:id attribute of a hand element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.height.attributes"> <ref name="mei_att.height.attribute.height"/> </define> <define name="mei_att.height.attribute.height"> <optional> <attribute name="height"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Measurement of the vertical dimension of an entity.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.horizontalAlign.attributes"> <ref name="mei_att.horizontalAlign.attribute.halign"/> </define> <define name="mei_att.horizontalAlign.attribute.halign"> <optional> <attribute name="halign"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records horizontal alignment.</a:documentation> <ref name="mei_data.HORIZONTALALIGNMENT"/> </attribute> </optional> </define> <define name="mei_att.id.attributes"> <ref name="mei_att.id.attribute.xmlid"/> </define> <define name="mei_att.id.attribute.xmlid"> <optional> <attribute name="xml:id"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Regularizes the naming of an element and thus facilitates building links between it and other resources. Each id attribute within a document must have a unique value.</a:documentation> <data type="ID"/> </attribute> </optional> </define> <define name="mei_att.internetMedia.attributes"> <ref name="mei_att.internetMedia.attribute.mimetype"/> </define> <define name="mei_att.internetMedia.attribute.mimetype"> <optional> <attribute name="mimetype"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the applicable MIME (multimedia internet mail extension) type. The value should be a valid MIME media type defined by the Internet Engineering Task Force in RFC 2046.</a:documentation> <data type="string"/> </attribute> </optional> </define> <define name="mei_att.joined.attributes"> <ref name="mei_att.joined.attribute.join"/> </define> <define name="mei_att.joined.attribute.join"> <optional> <attribute name="join"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used for linking visually separate entities that form a single logical entity, for example, multiple slurs broken across a system break that form a single musical phrase. Also used to indicate a measure which metrically completes the current one. Record the identifiers of the separately encoded components, excluding the one carrying the attribute.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.joined-join-check_joinTarget-constraint-rule-113"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@join"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@join attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @join should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.keyAccid.log.attributes"> <ref name="mei_att.accidental.attributes"/> <ref name="mei_att.pitched.attributes"/> </define> <define name="mei_att.keyMode.attributes"> <ref name="mei_att.keyMode.attribute.mode"/> </define> <define name="mei_att.keyMode.attribute.mode"> <optional> <attribute name="mode"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates major, minor, or other tonality.</a:documentation> <ref name="mei_data.MODE"/> </attribute> </optional> </define> <define name="mei_att.keySig.log.attributes"> <ref name="mei_att.keySig.log.attribute.sig"/> </define> <define name="mei_att.keySig.log.attribute.sig"> <optional> <attribute name="sig"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Written key signature.</a:documentation> <list> <oneOrMore> <ref name="mei_data.KEYFIFTHS"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.keySigDefault.log.attributes"> <ref name="mei_att.keySigDefault.log.attribute.keysig"/> </define> <define name="mei_att.keySigDefault.log.attribute.keysig"> <optional> <attribute name="keysig"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Written key signature.</a:documentation> <list> <oneOrMore> <ref name="mei_data.KEYFIFTHS"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.labelled.attributes"> <ref name="mei_att.labelled.attribute.label"/> </define> <define name="mei_att.labelled.attribute.label"> <optional> <attribute name="label"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures text to be used to generate a label for the element to which it’s attached, a "tool tip" or prefatory text, for example. Should not be used to record document content.</a:documentation> <data type="string"/> </attribute> </optional> </define> <define name="mei_att.lang.attributes"> <ref name="mei_att.lang.attribute.xmllang"/> <ref name="mei_att.lang.attribute.translit"/> </define> <define name="mei_att.lang.attribute.xmllang"> <optional> <attribute name="xml:lang"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Identifies the language of the element’s content. The values for this attribute are language 'tags' as defined in BCP 47. All language tags that make use of private use sub-tags must be documented in a corresponding language element in the MEI header whose id attribute is the same as the language tag’s value.</a:documentation> <data type="language"/> </attribute> </optional> </define> <define name="mei_att.lang.attribute.translit"> <optional> <attribute name="translit"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the transliteration technique used.</a:documentation> <data type="NMTOKEN"/> </attribute> </optional> </define> <define name="mei_att.layer.log.attributes"> <ref name="mei_att.cue.attributes"/> <ref name="mei_att.meterConformance.attributes"/> <ref name="mei_att.layer.log.attribute.def"/> </define> <define name="mei_att.layer.log.attribute.def"> <optional> <attribute name="def"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a mechanism for linking the layer to a layerDef element.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.layer.log-def-check_defTarget_layer-constraint-rule-114"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:layer/@def"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@def attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:layerDef/@xml:id">The value in @def should correspond to the @xml:id attribute of a layerDef element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.layerDef.log.attributes"> <ref name="mei_att.duration.default.attributes"/> <ref name="mei_att.layerDef.log.cmn.attributes"/> <ref name="mei_att.octaveDefault.attributes"/> <ref name="mei_att.transposition.attributes"/> </define> <define name="mei_att.layerIdent.attributes"> <ref name="mei_att.layerIdent.attribute.layer"/> </define> <define name="mei_att.layerIdent.attribute.layer"> <optional> <attribute name="layer"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Identifies the layer to which a feature applies.</a:documentation> <list> <oneOrMore> <data type="positiveInteger"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.lineLoc.attributes"> <ref name="mei_att.lineLoc.attribute.line"/> </define> <define name="mei_att.lineLoc.attribute.line"> <optional> <attribute name="line"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the line upon which a feature stands. The value must be in the range between 1 and the number of lines on the staff. The numbering of lines starts with the lowest line of the staff.</a:documentation> <ref name="mei_data.CLEFLINE"/> </attribute> </optional> </define> <define name="mei_att.lineRend.attributes"> <ref name="mei_att.lineRend.base.attributes"/> <ref name="mei_att.lineRend.attribute.lendsym"/> <ref name="mei_att.lineRend.attribute.lendsym.size"/> <ref name="mei_att.lineRend.attribute.lstartsym"/> <ref name="mei_att.lineRend.attribute.lstartsym.size"/> </define> <define name="mei_att.lineRend.attribute.lendsym"> <optional> <attribute name="lendsym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(line end symbol) Symbol rendered at end of line.</a:documentation> <ref name="mei_data.LINESTARTENDSYMBOL"/> </attribute> </optional> </define> <define name="mei_att.lineRend.attribute.lendsym.size"> <optional> <attribute name="lendsym.size"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the relative size of the line-end symbol.</a:documentation> <ref name="mei_data.FONTSIZESCALE"/> </attribute> </optional> </define> <define name="mei_att.lineRend.attribute.lstartsym"> <optional> <attribute name="lstartsym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(line start symbol) Symbol rendered at start of line.</a:documentation> <ref name="mei_data.LINESTARTENDSYMBOL"/> </attribute> </optional> </define> <define name="mei_att.lineRend.attribute.lstartsym.size"> <optional> <attribute name="lstartsym.size"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the relative size of the line-start symbol.</a:documentation> <ref name="mei_data.FONTSIZESCALE"/> </attribute> </optional> </define> <define name="mei_att.lineRend.base.attributes"> <ref name="mei_att.lineRend.base.attribute.lform"/> <ref name="mei_att.lineRend.base.attribute.lwidth"/> <ref name="mei_att.lineRend.base.attribute.lsegs"/> </define> <define name="mei_att.lineRend.base.attribute.lform"> <optional> <attribute name="lform"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the style of a line.</a:documentation> <ref name="mei_data.LINEFORM"/> </attribute> </optional> </define> <define name="mei_att.lineRend.base.attribute.lwidth"> <optional> <attribute name="lwidth"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Width of a line.</a:documentation> <ref name="mei_data.LINEWIDTH"/> </attribute> </optional> </define> <define name="mei_att.lineRend.base.attribute.lsegs"> <optional> <attribute name="lsegs"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the number of segments into which a dashed or dotted line may be divided, or the number of "peaks" of a wavy line; a pair of space-separated values (minimum and maximum, respectively) provides a range between which a rendering system-supplied value may fall, while a single value indicates a fixed amount of space; that is, the minimum and maximum values are equal.</a:documentation> <list> <data type="positiveInteger"> <param name="minInclusive">2</param> </data> <optional> <data type="positiveInteger"> <param name="minInclusive">2</param> </data> </optional> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.lineRend.base-lsegs-check_lsegs-constraint-rule-115"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@lsegs"> <sch:assert test="matches(../@lform, '(dashed|dotted|wavy)')">@lform attribute matching "dashed", "dotted", or "wavy" required.</sch:assert> </sch:rule> </pattern> <define name="mei_att.linking.attributes"> <ref name="mei_att.linking.attribute.copyof"/> <ref name="mei_att.linking.attribute.corresp"/> <ref name="mei_att.linking.attribute.follows"/> <ref name="mei_att.linking.attribute.next"/> <ref name="mei_att.linking.attribute.precedes"/> <ref name="mei_att.linking.attribute.prev"/> <ref name="mei_att.linking.attribute.sameas"/> <ref name="mei_att.linking.attribute.synch"/> </define> <define name="mei_att.linking.attribute.copyof"> <optional> <attribute name="copyof"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Points to an element of which the current element is a copy.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.linking-copyof-When_copyof_element_empty-constraint-rule-116"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[@copyof]"> <sch:assert test="count(child::*[not(comment() or processing-instruction())]) = 0">An element with a copyof attribute can only have comment or processing instruction descendents.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.linking-copyof-check_copyofTarget-constraint-rule-117"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@copyof"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@copyof attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @copyof should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.linking.attribute.corresp"> <optional> <attribute name="corresp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to point to other elements that correspond to this one in a generic fashion.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.linking-corresp-check_correspTarget-constraint-rule-118"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@corresp"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@corresp attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @corresp should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.linking.attribute.follows"> <optional> <attribute name="follows"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to one or more events in a user-defined collection that are known to be predecessors of the current element.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.linking-follows-check_followsTarget-constraint-rule-119"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@follows"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@follows attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @follows must correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.linking.attribute.next"> <optional> <attribute name="next"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to point to the next event(s) in a user-defined collection.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.linking-next-check_nextTarget-constraint-rule-120"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@next"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@next attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @next should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.linking.attribute.precedes"> <optional> <attribute name="precedes"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Points to one or more events in a user-defined collection that are known to be successors of the current element.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.linking-precedes-check_precedesTarget-constraint-rule-121"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@precedes"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@precedes attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @precedes must correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.linking.attribute.prev"> <optional> <attribute name="prev"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Points to the previous event(s) in a user-defined collection.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.linking-prev-check_prevTarget-constraint-rule-122"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@prev"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@prev attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @prev should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.linking.attribute.sameas"> <optional> <attribute name="sameas"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Points to an element that is the same as the current element but is not a literal copy of the current element.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.linking-sameas-check_sameasTarget-constraint-rule-123"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@sameas"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@sameas attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @sameas should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.linking.attribute.synch"> <optional> <attribute name="synch"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Points to elements that are synchronous with the current element.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.linking-synch-check_synchTarget-constraint-rule-124"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@synch"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@synch attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @synch should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.lyricStyle.attributes"> <ref name="mei_att.lyricStyle.attribute.lyric.align"/> <ref name="mei_att.lyricStyle.attribute.lyric.fam"/> <ref name="mei_att.lyricStyle.attribute.lyric.name"/> <ref name="mei_att.lyricStyle.attribute.lyric.size"/> <ref name="mei_att.lyricStyle.attribute.lyric.style"/> <ref name="mei_att.lyricStyle.attribute.lyric.weight"/> </define> <define name="mei_att.lyricStyle.attribute.lyric.align"> <optional> <attribute name="lyric.align"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the alignment of lyric syllables associated with a note or chord.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.lyricStyle.attribute.lyric.fam"> <optional> <attribute name="lyric.fam"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the font family default value for lyrics.</a:documentation> <ref name="mei_data.FONTFAMILY"/> </attribute> </optional> </define> <define name="mei_att.lyricStyle.attribute.lyric.name"> <optional> <attribute name="lyric.name"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the font name default value for lyrics.</a:documentation> <ref name="mei_data.FONTNAME"/> </attribute> </optional> </define> <define name="mei_att.lyricStyle.attribute.lyric.size"> <optional> <attribute name="lyric.size"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the default font size value for lyrics.</a:documentation> <ref name="mei_data.FONTSIZE"/> </attribute> </optional> </define> <define name="mei_att.lyricStyle.attribute.lyric.style"> <optional> <attribute name="lyric.style"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the default font style value for lyrics.</a:documentation> <ref name="mei_data.FONTSTYLE"/> </attribute> </optional> </define> <define name="mei_att.lyricStyle.attribute.lyric.weight"> <optional> <attribute name="lyric.weight"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the default font weight value for lyrics.</a:documentation> <ref name="mei_data.FONTWEIGHT"/> </attribute> </optional> </define> <define name="mei_att.measurement.attributes"> <ref name="mei_att.measurement.attribute.unit"/> </define> <define name="mei_att.measurement.attribute.unit"> <optional> <attribute name="unit"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the unit of measurement. Suggested values include: 1] byte; 2] char; 3] cm; 4] deg; 5] in; 6] issue; 7] ft; 8] m; 9] mm; 10] page; 11] pc; 12] pt; 13] px; 14] rad; 15] record; 16] vol; 17] vu</a:documentation> <choice> <value>byte</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Byte.</a:documentation> <value>char</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Character.</a:documentation> <value>cm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Centimeter.</a:documentation> <value>deg</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Degree.</a:documentation> <value>in</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Inch.</a:documentation> <value>issue</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Serial issue.</a:documentation> <value>ft</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Foot.</a:documentation> <value>m</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Meter.</a:documentation> <value>mm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Millimeter.</a:documentation> <value>page</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Page.</a:documentation> <value>pc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pica.</a:documentation> <value>pt</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Point.</a:documentation> <value>px</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Pixel.</a:documentation> <value>rad</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Radian.</a:documentation> <value>record</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Record.</a:documentation> <value>vol</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Serial volume.</a:documentation> <value>vu</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">MEI virtual unit.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> </define> <define name="mei_att.measureNumbers.attributes"> <ref name="mei_att.measureNumbers.attribute.mnum.visible"/> </define> <define name="mei_att.measureNumbers.attribute.mnum.visible"> <optional> <attribute name="mnum.visible"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether measure numbers should be displayed.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.mediaBounds.attributes"> <ref name="mei_att.mediaBounds.attribute.begin"/> <ref name="mei_att.mediaBounds.attribute.end"/> <ref name="mei_att.mediaBounds.attribute.betype"/> </define> <define name="mei_att.mediaBounds.attribute.begin"> <optional> <attribute name="begin"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies a point where the relevant content begins. A numerical value must be less and a time value must be earlier than that given by the end attribute.</a:documentation> <text/> </attribute> </optional> </define> <define name="mei_att.mediaBounds.attribute.end"> <optional> <attribute name="end"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies a point where the relevant content ends. If not specified, the end of the content is assumed to be the end point. A numerical value must be greater and a time value must be later than that given by the begin attribute.</a:documentation> <text/> </attribute> </optional> </define> <define name="mei_att.mediaBounds.attribute.betype"> <optional> <attribute name="betype"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Type of values used in the begin/end attributes. The begin and end attributes can only be interpreted meaningfully in conjunction with this attribute.</a:documentation> <ref name="mei_data.BETYPE"/> </attribute> </optional> </define> <define name="mei_att.medium.attributes"> <ref name="mei_att.medium.attribute.medium"/> </define> <define name="mei_att.medium.attribute.medium"> <optional> <attribute name="medium"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the writing medium.</a:documentation> <data type="string"/> </attribute> </optional> </define> <define name="mei_att.meiVersion.attributes"> <ref name="mei_att.meiVersion.attribute.meiversion"/> </define> <define name="mei_att.meiVersion.attribute.meiversion"> <optional> <attribute name="meiversion"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies a generic MEI version label.</a:documentation> <choice> <value>6.0-dev</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Version of MEI</a:documentation> </choice> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.meiVersion-meiVersion.onlyRoot-constraint-rule-125"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="/mei:*//*"> <sch:report test="@meiversion">The @meiversion attribute is not allowed on elements that are not the document root element.</sch:report> </sch:rule> </pattern> <define name="mei_att.mensur.log.attributes"> <ref name="mei_att.duration.ratio.attributes"/> <ref name="mei_att.mensural.shared.attributes"/> <ref name="mei_att.mensur.log.attribute.level"/> </define> <define name="mei_att.mensur.log.attribute.level"> <optional> <attribute name="level"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Level of duration at which the proportion given by the @num and @numbase ratio applies.</a:documentation> <ref name="mei_data.DURATION.mensural"/> </attribute> </optional> </define> <define name="mei_att.meterConformance.attributes"> <ref name="mei_att.meterConformance.attribute.metcon"/> </define> <define name="mei_att.meterConformance.attribute.metcon"> <optional> <attribute name="metcon"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(meter conformance) Indicates the relationship between the content of a staff or layer and the prevailing meter.</a:documentation> <choice> <value>c</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Complete; i.e., conformant with the prevailing meter.</a:documentation> <value>i</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Incomplete; i.e., not enough beats.</a:documentation> <value>o</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Overfull; i.e., too many beats.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.meterConformance.bar.attributes"> <ref name="mei_att.meterConformance.bar.attribute.metcon"/> <ref name="mei_att.meterConformance.bar.attribute.control"/> </define> <define name="mei_att.meterConformance.bar.attribute.metcon"> <optional> <attribute name="metcon"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(meter conformance) Indicates the relationship between the content of a measure and the prevailing meter.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.meterConformance.bar.attribute.control"> <optional> <attribute name="control"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether or not a bar line is "controlling"; that is, if it indicates a point of alignment across all the parts. Bar lines within a score are usually controlling; that is, they "line up". Bar lines within parts may or may not be controlling. When applied to <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><measure></code>, this attribute indicates the nature of the right bar line but not the left.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.meterSig.log.attributes"> <ref name="mei_att.meterSig.log.attribute.count"/> <ref name="mei_att.meterSig.log.attribute.sym"/> <ref name="mei_att.meterSig.log.attribute.unit"/> </define> <define name="mei_att.meterSig.log.attribute.count"> <optional> <attribute name="count"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the number of beats in a measure, that is, the top number of the meter signature. It must contain a decimal number or an expression that evaluates to a decimal number, such as 2+3 or 3*2.</a:documentation> <data type="string"> <param name="pattern">\d+(\.\d+)?(\s*[\+\-\*/]\s*\d+(\.\d+)?)*</param> </data> </attribute> </optional> </define> <define name="mei_att.meterSig.log.attribute.sym"> <optional> <attribute name="sym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(symbol) Indicates the use of a meter symbol instead of a numeric meter signature, that is, 'C' for common time or 'C' with a slash for cut time.</a:documentation> <ref name="mei_data.METERSIGN"/> </attribute> </optional> </define> <define name="mei_att.meterSig.log.attribute.unit"> <optional> <attribute name="unit"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the number indicating the beat unit, that is, the bottom number of the meter signature.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.meterSigDefault.log.attributes"> <ref name="mei_att.meterSigDefault.log.attribute.meter.count"/> <ref name="mei_att.meterSigDefault.log.attribute.meter.unit"/> <ref name="mei_att.meterSigDefault.log.attribute.meter.sym"/> </define> <define name="mei_att.meterSigDefault.log.attribute.meter.count"> <optional> <attribute name="meter.count"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the number of beats in a measure, that is, the top number of the meter signature. It must contain a decimal number or an expression that evaluates to a decimal number, such as 2+3 or 3*2.</a:documentation> <data type="string"> <param name="pattern">\d+(\.\d+)?(\s*[\+\-\*/]\s*\d+(\.\d+)?)*</param> </data> </attribute> </optional> </define> <define name="mei_att.meterSigDefault.log.attribute.meter.unit"> <optional> <attribute name="meter.unit"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the number indicating the beat unit, that is, the bottom number of the meter signature.</a:documentation> <data type="decimal"> <param name="minExclusive">0</param> </data> </attribute> </optional> </define> <define name="mei_att.meterSigDefault.log.attribute.meter.sym"> <optional> <attribute name="meter.sym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the use of a meter symbol instead of a numeric meter signature, that is, 'C' for common time or 'C' with a slash for cut time.</a:documentation> <ref name="mei_data.METERSIGN"/> </attribute> </optional> </define> <define name="mei_att.mmTempo.attributes"> <ref name="mei_att.mmTempo.attribute.mm"/> <ref name="mei_att.mmTempo.attribute.mm.unit"/> <ref name="mei_att.mmTempo.attribute.mm.dots"/> </define> <define name="mei_att.mmTempo.attribute.mm"> <optional> <attribute name="mm"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to describe tempo in terms of beats (often the meter signature denominator) per minute, ala M.M. (Maelzel’s Metronome). Do not confuse this attribute with midi.bpm or midi.mspb. In MIDI, a beat is always defined as a quarter note, *not the numerator of the time signature or the metronomic indication*.</a:documentation> <ref name="mei_data.TEMPOVALUE"/> </attribute> </optional> </define> <define name="mei_att.mmTempo.attribute.mm.unit"> <optional> <attribute name="mm.unit"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the metronomic unit.</a:documentation> <ref name="mei_data.DURATION"/> </attribute> </optional> </define> <define name="mei_att.mmTempo.attribute.mm.dots"> <optional> <attribute name="mm.dots"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the number of augmentation dots required by a dotted metronome unit.</a:documentation> <ref name="mei_data.AUGMENTDOT"/> </attribute> </optional> </define> <define name="mei_att.multinumMeasures.attributes"> <ref name="mei_att.multinumMeasures.attribute.multi.number"/> </define> <define name="mei_att.multinumMeasures.attribute.multi.number"> <optional> <attribute name="multi.number"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether programmatically calculated counts of multiple measures of rest (mRest) and whole measure repeats (mRpt) in parts should be rendered.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.name.attributes"> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.filing.attributes"/> <ref name="mei_att.name.attribute.nymref"/> <ref name="mei_att.name.attribute.role"/> </define> <define name="mei_att.name.attribute.nymref"> <optional> <attribute name="nymref"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to record a pointer to the regularized form of the name elsewhere in the document.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.name-nymref-check_nymrefTarget-constraint-rule-126"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@nymref"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@nymref attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @nymref should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.name.attribute.role"> <optional> <attribute name="role"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to specify further information about the entity referenced by this name, for example, the occupation of a person or the status of a place.</a:documentation> <text/> </attribute> </optional> </define> <define name="mei_att.nInteger.attributes"> <ref name="mei_att.nInteger.attribute.n"/> </define> <define name="mei_att.nInteger.attribute.n"> <optional> <attribute name="n"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a numeric designation that indicates an element’s position in a sequence of similar elements. Its value must be a non-negative integer.</a:documentation> <data type="nonNegativeInteger"/> </attribute> </optional> </define> <define name="mei_att.nNumberLike.attributes"> <ref name="mei_att.nNumberLike.attribute.n"/> </define> <define name="mei_att.nNumberLike.attribute.n"> <optional> <attribute name="n"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a number-like designation that indicates an element’s position in a sequence of similar elements. May not contain space characters.</a:documentation> <ref name="mei_data.WORD"/> </attribute> </optional> </define> <define name="mei_att.notationStyle.attributes"> <ref name="mei_att.notationStyle.attribute.music.name"/> <ref name="mei_att.notationStyle.attribute.music.size"/> </define> <define name="mei_att.notationStyle.attribute.music.name"> <optional> <attribute name="music.name"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the default music font name.</a:documentation> <ref name="mei_data.MUSICFONT"/> </attribute> </optional> </define> <define name="mei_att.notationStyle.attribute.music.size"> <optional> <attribute name="music.size"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Sets the default music font size.</a:documentation> <ref name="mei_data.FONTSIZE"/> </attribute> </optional> </define> <define name="mei_att.note.log.attributes"> <ref name="mei_att.augmentDots.attributes"/> <ref name="mei_att.coloration.attributes"/> <ref name="mei_att.cue.attributes"/> <ref name="mei_att.duration.log.attributes"/> <ref name="mei_att.event.attributes"/> <ref name="mei_att.note.log.cmn.attributes"/> <ref name="mei_att.note.log.mensural.attributes"/> <ref name="mei_att.pitched.attributes"/> <ref name="mei_att.duration.quality.attributes"/> </define> <define name="mei_att.noteHeads.attributes"> <ref name="mei_att.noteHeads.attribute.head.altsym"/> <ref name="mei_att.noteHeads.attribute.head.auth"/> <ref name="mei_att.noteHeads.attribute.head.color"/> <ref name="mei_att.noteHeads.attribute.head.fill"/> <ref name="mei_att.noteHeads.attribute.head.fillcolor"/> <ref name="mei_att.noteHeads.attribute.head.mod"/> <ref name="mei_att.noteHeads.attribute.head.rotation"/> <ref name="mei_att.noteHeads.attribute.head.shape"/> <ref name="mei_att.noteHeads.attribute.head.visible"/> </define> <define name="mei_att.noteHeads.attribute.head.altsym"> <optional> <attribute name="head.altsym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a way of pointing to a user-defined symbol. It must contain a reference to an ID of a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><symbolDef></code> element elsewhere in the document.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.noteHeads-head.altsym-check_head.altsymTarget-constraint-rule-127"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@head.altsym"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@head.altsym attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:symbolDef/@xml:id">The value in @head.altsym should correspond to the @xml:id attribute of a symbolDef element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.noteHeads.attribute.head.auth"> <optional> <attribute name="head.auth"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A name or label associated with the controlled vocabulary from which a numerical value of <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@head.shape</code> is taken. Suggested values include: 1] smufl</a:documentation> <choice> <value>smufl</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Standard Music Font Layout.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.noteHeads-head.auth-check_head.auth-constraint-rule-128"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[lower-case(@head.auth) eq 'smufl']"> <sch:assert test="matches(@head.shape, '^#x') or matches(@head.shape, '^U+')">When @head.auth matches 'smufl', @head.shape must contain a numeric glyph reference in hexadecimal notation, like "#xE000" or "U+E000".</sch:assert> </sch:rule> </pattern> <define name="mei_att.noteHeads.attribute.head.color"> <optional> <attribute name="head.color"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the overall color of a notehead.</a:documentation> <ref name="mei_data.COLOR"/> </attribute> </optional> </define> <define name="mei_att.noteHeads.attribute.head.fill"> <optional> <attribute name="head.fill"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes how/if the notehead is filled.</a:documentation> <ref name="mei_data.FILL"/> </attribute> </optional> </define> <define name="mei_att.noteHeads.attribute.head.fillcolor"> <optional> <attribute name="head.fillcolor"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the fill color of a notehead if different from the overall note color.</a:documentation> <ref name="mei_data.COLOR"/> </attribute> </optional> </define> <define name="mei_att.noteHeads.attribute.head.mod"> <optional> <attribute name="head.mod"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records any additional symbols applied to the notehead.</a:documentation> <list> <oneOrMore> <ref name="mei_data.NOTEHEADMODIFIER"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.noteHeads.attribute.head.rotation"> <optional> <attribute name="head.rotation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes rotation applied to the basic notehead shape. A positive value rotates the notehead in a counter-clockwise fashion, while negative values produce clockwise rotation.</a:documentation> <ref name="mei_data.ROTATION"/> </attribute> </optional> </define> <define name="mei_att.noteHeads.attribute.head.shape"> <optional> <attribute name="head.shape"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to override the head shape normally used for the given duration.</a:documentation> <ref name="mei_data.HEADSHAPE"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.noteHeads-head.shape-check_headshape_num-constraint-rule-129"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[(matches(@head.shape, '#x') or matches(@head.shape, 'U+')) and (lower-case(@head.auth) eq 'smufl')]"> <sch:assert role="warning" test="matches(normalize-space(@head.shape), '^(#x|U\+)E([0-9AB][0-9A-F][0-9A-F]|C[0-9A][0-9A-F]|CB[0-9A-F])$')">SMuFL version 1.18 uses the range U+E000 - U+ECBF.</sch:assert> </sch:rule> </pattern> <define name="mei_att.noteHeads.attribute.head.visible"> <optional> <attribute name="head.visible"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates if a feature should be rendered when the notation is presented graphically or sounded when it is presented in an aural form.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.octave.attributes"> <ref name="mei_att.octave.attribute.oct"/> </define> <define name="mei_att.octave.attribute.oct"> <optional> <attribute name="oct"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(octave) Captures written octave information.</a:documentation> <ref name="mei_data.OCTAVE"/> </attribute> </optional> </define> <define name="mei_att.octaveDefault.attributes"> <ref name="mei_att.octaveDefault.attribute.oct.default"/> </define> <define name="mei_att.octaveDefault.attribute.oct.default"> <optional> <attribute name="oct.default"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a default octave specification for use when the first note, rest, chord, etc. in a measure does not have an octave value specified.</a:documentation> <ref name="mei_data.OCTAVE"/> </attribute> </optional> </define> <define name="mei_att.octaveDisplacement.attributes"> <ref name="mei_att.octaveDisplacement.attribute.dis"/> <ref name="mei_att.octaveDisplacement.attribute.dis.place"/> </define> <define name="mei_att.octaveDisplacement.attribute.dis"> <optional> <attribute name="dis"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the amount of octave displacement.</a:documentation> <ref name="mei_data.OCTAVE.DIS"/> </attribute> </optional> </define> <define name="mei_att.octaveDisplacement.attribute.dis.place"> <optional> <attribute name="dis.place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the direction of octave displacement.</a:documentation> <ref name="mei_data.STAFFREL.basic"/> </attribute> </optional> </define> <define name="mei_att.oneLineStaff.attributes"> <ref name="mei_att.oneLineStaff.attribute.ontheline"/> </define> <define name="mei_att.oneLineStaff.attribute.ontheline"> <optional> <attribute name="ontheline"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines the placement of notes on a 1-line staff. A value of true places all notes on the line, while a value of false places stems-up notes above the line and stems-down notes below the line.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.optimization.attributes"> <ref name="mei_att.optimization.attribute.optimize"/> </define> <define name="mei_att.optimization.attribute.optimize"> <optional> <attribute name="optimize"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether staves without notes, rests, etc. should be displayed. When the value is 'true', empty staves are not displayed.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.origin.layerIdent.attributes"> <ref name="mei_att.origin.layerIdent.attribute.origin.layer"/> </define> <define name="mei_att.origin.layerIdent.attribute.origin.layer"> <optional> <attribute name="origin.layer"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the layer on which referenced notation occurs.</a:documentation> <list> <oneOrMore> <data type="positiveInteger"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.origin.staffIdent.attributes"> <ref name="mei_att.origin.staffIdent.attribute.origin.staff"/> </define> <define name="mei_att.origin.staffIdent.attribute.origin.staff"> <optional> <attribute name="origin.staff"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">signifies the staff on which referenced notation occurs. Defaults to the same value as the local staff. Mandatory when applicable.</a:documentation> <list> <oneOrMore> <data type="positiveInteger"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.origin.startEndId.attributes"> <ref name="mei_att.origin.startEndId.attribute.origin.startid"/> <ref name="mei_att.origin.startEndId.attribute.origin.endid"/> </define> <define name="mei_att.origin.startEndId.attribute.origin.startid"> <optional> <attribute name="origin.startid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the first element in a sequence of events.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.origin.startEndId.attribute.origin.endid"> <optional> <attribute name="origin.endid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the final element in a sequence of events.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.origin.timestamp.log.attributes"> <ref name="mei_att.origin.timestamp.log.attribute.origin.tstamp"/> <ref name="mei_att.origin.timestamp.log.attribute.origin.tstamp2"/> </define> <define name="mei_att.origin.timestamp.log.attribute.origin.tstamp"> <optional> <attribute name="origin.tstamp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">encodes the starting point of musical material in terms of musical time, i.e., a (potentially negative) count of measures plus a beat location.</a:documentation> <ref name="mei_data.MEASUREBEATOFFSET"/> </attribute> </optional> </define> <define name="mei_att.origin.timestamp.log.attribute.origin.tstamp2"> <optional> <attribute name="origin.tstamp2"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">encodes the ending point of musical material in terms of musical time, i.e., a count of measures plus a beat location. The values are relative to the measure identified by <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@origin.tstamp</code>.</a:documentation> <ref name="mei_data.MEASUREBEAT"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.origin.timestamp.log-origin.tstamp2-origin.tstamp2_requires_origin.tstamp-constraint-rule-130"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[@origin.tstamp2]"> <sch:assert test="@origin.tstamp">When @origin.tstamp2 is used @origin.tstamp must also be present.</sch:assert> </sch:rule> </pattern> <define name="mei_att.ornam.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.ornamentAccid.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.pad.log.attributes"> <ref name="mei_att.event.attributes"/> <ref name="mei_att.width.attributes"/> </define> <define name="mei_att.pages.attributes"> <ref name="mei_att.pages.attribute.page.height"/> <ref name="mei_att.pages.attribute.page.width"/> <ref name="mei_att.pages.attribute.page.topmar"/> <ref name="mei_att.pages.attribute.page.botmar"/> <ref name="mei_att.pages.attribute.page.leftmar"/> <ref name="mei_att.pages.attribute.page.rightmar"/> <ref name="mei_att.pages.attribute.page.panels"/> <ref name="mei_att.pages.attribute.page.scale"/> </define> <define name="mei_att.pages.attribute.page.height"> <optional> <attribute name="page.height"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the height of the page; may be expressed in real-world units or staff steps.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.pages.attribute.page.width"> <optional> <attribute name="page.width"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the width of the page; may be expressed in real-world units or staff steps.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.pages.attribute.page.topmar"> <optional> <attribute name="page.topmar"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(page top margin) Indicates the amount of whitespace at the top of a page.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.pages.attribute.page.botmar"> <optional> <attribute name="page.botmar"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(page bottom margin) Indicates the amount of whitespace at the bottom of a page.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.pages.attribute.page.leftmar"> <optional> <attribute name="page.leftmar"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(page left margin) Indicates the amount of whitespace at the left side of a page.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.pages.attribute.page.rightmar"> <optional> <attribute name="page.rightmar"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(page right margin) Indicates the amount of whitespace at the right side of a page.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.pages.attribute.page.panels"> <optional> <attribute name="page.panels"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the number of logical pages to be rendered on a single physical page.</a:documentation> <ref name="mei_data.PAGE.PANELS"/> </attribute> </optional> </define> <define name="mei_att.pages.attribute.page.scale"> <optional> <attribute name="page.scale"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates how the page should be scaled when rendered.</a:documentation> <ref name="mei_data.PGSCALE"/> </attribute> </optional> </define> <define name="mei_att.part.log.attributes"> <empty/> </define> <define name="mei_att.partIdent.attributes"> <ref name="mei_att.partIdent.attribute.part"/> <ref name="mei_att.partIdent.attribute.partstaff"/> </define> <define name="mei_att.partIdent.attribute.part"> <optional> <attribute name="part"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the part in which the current feature should appear. Use '%all' when the feature should occur in every part.</a:documentation> <list> <oneOrMore> <data type="token"> <param name="pattern">(%all|#[\i][\c]+)</param> </data> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.partIdent-part-check_part_attr_all-constraint-rule-131"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@part[some $i in tokenize(., '\s+') satisfies (matches($i, '^%all$'))]"> <sch:assert test="count(tokenize(., '\s+')) = 1">'%all' cannot be mixed with other values.</sch:assert> </sch:rule> </pattern> <define name="mei_att.partIdent.attribute.partstaff"> <optional> <attribute name="partstaff"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Signifies the part staff on which a notated feature occurs. Use '%all' when the feature should occur on every staff.</a:documentation> <list> <oneOrMore> <data type="token"> <param name="pattern">(%all|\d+(-\d+)?)</param> </data> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.partIdent-partstaff-check_partstaff_attr_all-constraint-rule-132"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@partstaff[some $i in tokenize(., '\s+') satisfies (matches($i, '^%all$'))]"> <sch:assert test="count(tokenize(., '\s+')) = 1">'%all' cannot be mixed with other values.</sch:assert> </sch:rule> </pattern> <define name="mei_att.parts.log.attributes"> <empty/> </define> <define name="mei_att.pb.log.attributes"> <ref name="mei_att.alignment.attributes"/> </define> <define name="mei_att.phrase.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> </define> <define name="mei_att.pitch.attributes"> <ref name="mei_att.pitch.attribute.pname"/> </define> <define name="mei_att.pitch.attribute.pname"> <optional> <attribute name="pname"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(pitch name) Contains a written pitch name.</a:documentation> <ref name="mei_data.PITCHNAME"/> </attribute> </optional> </define> <define name="mei_att.pitched.attributes"> <ref name="mei_att.pitch.attributes"/> <ref name="mei_att.octave.attributes"/> </define> <define name="mei_att.placementOnStaff.attributes"> <ref name="mei_att.placementOnStaff.attribute.onstaff"/> </define> <define name="mei_att.placementOnStaff.attribute.onstaff"> <optional> <attribute name="onstaff"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the placement of the item within the staff. A value of true means on the staff, and false off the staff.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.placementRelEvent.attributes"> <ref name="mei_att.placementRelEvent.attribute.place"/> </define> <define name="mei_att.placementRelEvent.attribute.place"> <optional> <attribute name="place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the placement of the item with respect to the event with which it is associated.</a:documentation> <ref name="mei_data.STAFFREL"/> </attribute> </optional> </define> <define name="mei_att.placementRelStaff.attributes"> <ref name="mei_att.placementRelStaff.attribute.place"/> </define> <define name="mei_att.placementRelStaff.attribute.place"> <optional> <attribute name="place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the placement of the item with respect to the staff with which it is associated.</a:documentation> <ref name="mei_data.STAFFREL"/> </attribute> </optional> </define> <define name="mei_att.plist.attributes"> <ref name="mei_att.plist.attribute.plist"/> </define> <define name="mei_att.plist.attribute.plist"> <optional> <attribute name="plist"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">When the target attribute is present, plist identifies the active participants; that is, those entities pointed "from", in a relationship with the specified target(s). When the target attribute is not present, it identifies participants in a mutual relationship.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.plist-plist-check_plistTarget-constraint-rule-133"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@plist"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@plist attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @plist should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.pointing.attributes"> <ref name="mei_att.pointing.attribute.xlinkactuate"/> <ref name="mei_att.pointing.attribute.xlinkrole"/> <ref name="mei_att.pointing.attribute.xlinkshow"/> <ref name="mei_att.pointing.attribute.target"/> <ref name="mei_att.pointing.attribute.targettype"/> </define> <define name="mei_att.pointing.attribute.xlinkactuate"> <optional> <attribute name="xlink:actuate"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Defines whether a link occurs automatically or must be requested by the user.</a:documentation> <choice> <value>onLoad</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Load the target resource(s) immediately.</a:documentation> <value>onRequest</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Load the target resource(s) upon user request.</a:documentation> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Do not permit loading of the target resource(s).</a:documentation> <value>other</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Behavior other than allowed by the other values of this attribute.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.pointing.attribute.xlinkrole"> <optional> <attribute name="xlink:role"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Characterization of the relationship between resources. The value of the role attribute must be a URI.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <define name="mei_att.pointing.attribute.xlinkshow"> <optional> <attribute name="xlink:show"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Defines how a remote resource is rendered.</a:documentation> <choice> <value>new</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Open in a new window.</a:documentation> <value>replace</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Load the referenced resource in the same window.</a:documentation> <value>embed</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Embed the referenced resource at the point of the link.</a:documentation> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Do not permit traversal to the referenced resource.</a:documentation> <value>other</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Behavior other than permitted by the other values of this attribute.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.pointing.attribute.target"> <optional> <attribute name="target"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Identifies passive participants in a relationship; that is, the entities pointed "to".</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.pointing.attribute.targettype"> <optional> <attribute name="targettype"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Characterization of target resource(s) using any convenient classification scheme or typology.</a:documentation> <data type="NMTOKEN"/> </attribute> </optional> </define> <define name="mei_att.quantity.attributes"> <ref name="mei_att.measurement.attributes"/> <ref name="mei_att.ranging.attributes"/> <ref name="mei_att.quantity.attribute.quantity"/> </define> <define name="mei_att.quantity.attribute.quantity"> <optional> <attribute name="quantity"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Numeric value capturing a measurement or count. Can only be interpreted in combination with the unit attribute.</a:documentation> <data type="decimal"> <param name="minInclusive">0</param> </data> </attribute> </optional> </define> <define name="mei_att.ranging.attributes"> <ref name="mei_att.ranging.attribute.atleast"/> <ref name="mei_att.ranging.attribute.atmost"/> <ref name="mei_att.ranging.attribute.min"/> <ref name="mei_att.ranging.attribute.max"/> <ref name="mei_att.ranging.attribute.confidence"/> </define> <define name="mei_att.ranging.attribute.atleast"> <optional> <attribute name="atleast"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Gives a minimum estimated value for an approximate measurement.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.ranging.attribute.atmost"> <optional> <attribute name="atmost"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Gives a maximum estimated value for an approximate measurement.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.ranging.attribute.min"> <optional> <attribute name="min"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Where the measurement summarizes more than one observation or a range of values, supplies the minimum value observed.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.ranging.attribute.max"> <optional> <attribute name="max"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Where the measurement summarizes more than one observation or a range of values, supplies the maximum value observed.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.ranging.attribute.confidence"> <optional> <attribute name="confidence"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the degree of statistical confidence (between zero and one) that a value falls within the range specified by min and max, or the proportion of observed values that fall within that range.</a:documentation> <ref name="mei_data.CONFIDENCE"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.ranging-confidence-check_confidence-constraint-rule-134"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[@confidence]"> <sch:assert test="@min and @max">The attributes @min and @max are required when @confidence is present.</sch:assert> </sch:rule> </pattern> <define name="mei_att.repeatMark.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.repeatMark.log.attribute.func"/> </define> <define name="mei_att.repeatMark.log.attribute.func"> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the function of the mark, usually implying a corresponding form.</a:documentation> <choice> <value>coda</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Coda (SMuFL E048 or Unicode 1D10C).</a:documentation> <value>segno</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Segno (SMuFL E047 or Unicode 1D10B).</a:documentation> <value>dalSegno</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dal segno (SMuFL E045 or Unicode 1D109).</a:documentation> <value>daCapo</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Da capo (SMuFL E046 or Unicode 1D10A).</a:documentation> <value>fine</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Fine. (text)</a:documentation> </choice> </attribute> </define> <define name="mei_att.responsibility.attributes"> <ref name="mei_att.responsibility.attribute.resp"/> </define> <define name="mei_att.responsibility.attribute.resp"> <optional> <attribute name="resp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the agent(s) responsible for some aspect of the text’s transcription, editing, or encoding. Its value must point to one or more identifiers declared in the document header.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.responsibility-resp-check_respTarget-constraint-rule-135"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@resp"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@resp attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[ancestor::mei:meiHead]/@xml:id">The value in @resp should correspond to the @xml:id attribute of an element within the metadata header.</sch:assert> </sch:rule> </pattern> <define name="mei_att.rest.log.attributes"> <ref name="mei_att.augmentDots.attributes"/> <ref name="mei_att.cue.attributes"/> <ref name="mei_att.restduration.log.attributes"/> <ref name="mei_att.event.attributes"/> <ref name="mei_att.rest.log.cmn.attributes"/> </define> <define name="mei_att.restduration.log.attributes"> <ref name="mei_att.restduration.log.attribute.dur"/> </define> <define name="mei_att.restduration.log.attribute.dur"> <optional> <attribute name="dur"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the duration of a rest using the relative durational values provided by the data.DURATIONRESTS datatype.</a:documentation> <ref name="mei_data.DURATIONRESTS"/> </attribute> </optional> </define> <define name="mei_att.sb.log.attributes"> <ref name="mei_att.alignment.attributes"/> </define> <define name="mei_att.scalable.attributes"> <ref name="mei_att.scalable.attribute.scale"/> </define> <define name="mei_att.scalable.attribute.scale"> <optional> <attribute name="scale"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Scale factor to be applied to the feature to make it the desired display size.</a:documentation> <ref name="mei_data.PERCENT"/> </attribute> </optional> </define> <define name="mei_att.score.log.attributes"> <empty/> </define> <define name="mei_att.scoreDef.log.attributes"> <ref name="mei_att.cleffing.log.attributes"/> <ref name="mei_att.duration.default.attributes"/> <ref name="mei_att.keySigDefault.log.attributes"/> <ref name="mei_att.meterSigDefault.log.attributes"/> <ref name="mei_att.octaveDefault.attributes"/> <ref name="mei_att.transposition.attributes"/> <ref name="mei_att.scoreDef.log.cmn.attributes"/> <ref name="mei_att.scoreDef.log.mensural.attributes"/> </define> <define name="mei_att.section.log.attributes"> <ref name="mei_att.alignment.attributes"/> </define> <define name="mei_att.sequence.attributes"> <ref name="mei_att.sequence.attribute.seq"/> </define> <define name="mei_att.sequence.attribute.seq"> <optional> <attribute name="seq"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to assign a sequence number related to the order in which the encoded features carrying this attribute are believed to have occurred.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.slashCount.attributes"> <ref name="mei_att.slashCount.attribute.slash"/> </define> <define name="mei_att.slashCount.attribute.slash"> <optional> <attribute name="slash"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the number of slashes present.</a:documentation> <ref name="mei_data.SLASH"/> </attribute> </optional> </define> <define name="mei_att.slurPresent.attributes"> <ref name="mei_att.slurPresent.attribute.slur"/> </define> <define name="mei_att.slurPresent.attribute.slur"> <optional> <attribute name="slur"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates that this element participates in a slur. If visual information about the slur needs to be recorded, then a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><slur></code> element should be employed.</a:documentation> <list> <oneOrMore> <ref name="mei_data.SLUR"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.source.attributes"> <ref name="mei_att.source.attribute.source"/> </define> <define name="mei_att.source.attribute.source"> <optional> <attribute name="source"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a list of one or more pointers indicating the sources which attest to a given reading. Each value should correspond to the ID of a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><source></code> or <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><manifestation></code>element located in the document header.</a:documentation> <list> <oneOrMore> <ref name="mei_data.URI"/> </oneOrMore> </list> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.source-source-check_sourceTarget-constraint-rule-136"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@source"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@source attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[local-name() eq 'source' or local-name() eq 'manifestation']/@xml:id">Each value in @source should correspond to the @xml:id attribute of a source or manifestation element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.space.log.attributes"> <ref name="mei_att.augmentDots.attributes"/> <ref name="mei_att.duration.log.attributes"/> <ref name="mei_att.event.attributes"/> <ref name="mei_att.space.log.cmn.attributes"/> </define> <define name="mei_att.spacing.attributes"> <ref name="mei_att.spacing.attribute.spacing.packexp"/> <ref name="mei_att.spacing.attribute.spacing.packfact"/> <ref name="mei_att.spacing.attribute.spacing.staff"/> <ref name="mei_att.spacing.attribute.spacing.system"/> </define> <define name="mei_att.spacing.attribute.spacing.packexp"> <optional> <attribute name="spacing.packexp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes a note’s spacing relative to its time value.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.spacing.attribute.spacing.packfact"> <optional> <attribute name="spacing.packfact"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the note spacing of output.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.spacing.attribute.spacing.staff"> <optional> <attribute name="spacing.staff"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the minimum amount of space between adjacent staves in the same system; measured from the bottom line of the staff above to the top line of the staff below.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.spacing.attribute.spacing.system"> <optional> <attribute name="spacing.system"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the space between adjacent systems; a pair of space-separated values (minimum and maximum, respectively) provides a range between which a rendering system-supplied value may fall, while a single value indicates a fixed amount of space; that is, the minimum and maximum values are equal.</a:documentation> <list> <ref name="mei_data.MEASUREMENTSIGNED"/> <optional> <ref name="mei_data.MEASUREMENTSIGNED"/> </optional> </list> </attribute> </optional> </define> <define name="mei_att.staff.log.attributes"> <ref name="mei_att.meterConformance.attributes"/> <ref name="mei_att.staff.log.attribute.def"/> </define> <define name="mei_att.staff.log.attribute.def"> <optional> <attribute name="def"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a mechanism for linking the staff to a staffDef element.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.staff.log-def-check_defTarget_staff-constraint-rule-137"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:staff/@def"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@def attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:staffDef/@xml:id">The value in @def should correspond to the @xml:id attribute of a staffDef element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.staffDef.log.attributes"> <ref name="mei_att.cleffing.log.attributes"/> <ref name="mei_att.duration.default.attributes"/> <ref name="mei_att.keySigDefault.log.attributes"/> <ref name="mei_att.meterSigDefault.log.attributes"/> <ref name="mei_att.notationType.attributes"/> <ref name="mei_att.octaveDefault.attributes"/> <ref name="mei_att.transposition.attributes"/> <ref name="mei_att.staffDef.log.cmn.attributes"/> <ref name="mei_att.staffDef.log.mensural.attributes"/> <ref name="mei_att.staffDef.log.attribute.lines"/> </define> <define name="mei_att.staffDef.log.attribute.lines"> <optional> <attribute name="lines"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the number of staff lines.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.staffGroupingSym.attributes"> <ref name="mei_att.staffGroupingSym.attribute.symbol"/> </define> <define name="mei_att.staffGroupingSym.attribute.symbol"> <optional> <attribute name="symbol"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the symbol used to group a set of staves.</a:documentation> <choice> <value>brace</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Curved symbol, i.e., {.</a:documentation> <value>bracket</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Square symbol, i.e., [, but with curved/angled top and bottom segments.</a:documentation> <value>bracketsq</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Square symbol, i.e., [, with horizontal top and bottom segments.</a:documentation> <value>line</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Line symbol, i.e., |, (wide) line without top and bottom curved/horizontal segments.</a:documentation> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Grouping symbol missing.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.staffGrp.log.attributes"> <empty/> </define> <define name="mei_att.staffIdent.attributes"> <ref name="mei_att.staffIdent.attribute.staff"/> </define> <define name="mei_att.staffIdent.attribute.staff"> <optional> <attribute name="staff"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Signifies the staff on which a notated event occurs or to which a control event applies. Mandatory when applicable.</a:documentation> <list> <oneOrMore> <data type="positiveInteger"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.staffItems.attributes"> <ref name="mei_att.staffItems.attribute.aboveorder"/> <ref name="mei_att.staffItems.attribute.beloworder"/> <ref name="mei_att.staffItems.attribute.betweenorder"/> </define> <define name="mei_att.staffItems.attribute.aboveorder"> <optional> <attribute name="aboveorder"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes vertical order of items printed above a staff, from closest to farthest away from the staff.</a:documentation> <list> <oneOrMore> <ref name="mei_data.STAFFITEM"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.staffItems.attribute.beloworder"> <optional> <attribute name="beloworder"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes vertical order of items printed below a staff, from closest to farthest away from the staff.</a:documentation> <list> <oneOrMore> <ref name="mei_data.STAFFITEM"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.staffItems.attribute.betweenorder"> <optional> <attribute name="betweenorder"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes vertical order of items printed between staves, from top to bottom.</a:documentation> <list> <oneOrMore> <ref name="mei_data.STAFFITEM"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.staffLoc.attributes"> <ref name="mei_att.staffLoc.attribute.loc"/> </define> <define name="mei_att.staffLoc.attribute.loc"> <optional> <attribute name="loc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the staff location of the feature.</a:documentation> <ref name="mei_data.STAFFLOC"/> </attribute> </optional> </define> <define name="mei_att.staffLoc.pitched.attributes"> <ref name="mei_att.staffLoc.pitched.attribute.ploc"/> <ref name="mei_att.staffLoc.pitched.attribute.oloc"/> </define> <define name="mei_att.staffLoc.pitched.attribute.ploc"> <optional> <attribute name="ploc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures staff location in terms of written pitch name.</a:documentation> <ref name="mei_data.PITCHNAME"/> </attribute> </optional> </define> <define name="mei_att.staffLoc.pitched.attribute.oloc"> <optional> <attribute name="oloc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records staff location in terms of written octave.</a:documentation> <ref name="mei_data.OCTAVE"/> </attribute> </optional> </define> <define name="mei_att.startEndId.attributes"> <ref name="mei_att.startId.attributes"/> <ref name="mei_att.startEndId.attribute.endid"/> </define> <define name="mei_att.startEndId.attribute.endid"> <optional> <attribute name="endid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the final element in a sequence of events to which the feature applies.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.startEndId-endid-check_endidTarget-constraint-rule-138"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@endid"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@endid attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @endid should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.startId.attributes"> <ref name="mei_att.startId.attribute.startid"/> </define> <define name="mei_att.startId.attribute.startid"> <optional> <attribute name="startid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds a reference to the first element in a sequence of events to which the feature applies.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.startId-startid-check_startidTarget-constraint-rule-139"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@startid"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@startid attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @startid should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </pattern> <define name="mei_att.stems.attributes"> <ref name="mei_att.stems.cmn.attributes"/> <ref name="mei_att.stems.mensural.attributes"/> <ref name="mei_att.stems.attribute.stem.dir"/> <ref name="mei_att.stems.attribute.stem.len"/> <ref name="mei_att.stems.attribute.stem.mod"/> <ref name="mei_att.stems.attribute.stem.pos"/> <ref name="mei_att.stems.attribute.stem.sameas"/> <ref name="mei_att.stems.attribute.stem.visible"/> <ref name="mei_att.stems.attribute.stem.x"/> <ref name="mei_att.stems.attribute.stem.y"/> </define> <define name="mei_att.stems.attribute.stem.dir"> <optional> <attribute name="stem.dir"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the direction of a stem.</a:documentation> <ref name="mei_data.STEMDIRECTION"/> </attribute> </optional> </define> <define name="mei_att.stems.attribute.stem.len"> <optional> <attribute name="stem.len"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the stem length.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.stems.attribute.stem.mod"> <optional> <attribute name="stem.mod"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes any stem "modifiers"; that is, symbols rendered on the stem, such as tremolo or Sprechstimme indicators.</a:documentation> <ref name="mei_data.STEMMODIFIER"/> </attribute> </optional> </define> <define name="mei_att.stems.attribute.stem.pos"> <optional> <attribute name="stem.pos"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the position of the stem in relation to the note head(s).</a:documentation> <ref name="mei_data.STEMPOSITION"/> </attribute> </optional> </define> <define name="mei_att.stems.attribute.stem.sameas"> <optional> <attribute name="stem.sameas"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Points to a note element in a different layer whose stem is shared. The linked notes should be rendered like a chord though they are part of different layers. </a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.stems-stem.sameas-check_stem.sameasTarget-constraint-rule-140"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@stem.sameas"> <sch:let name="layer.n" value="self::node()/ancestor::mei:layer/@n"/> <sch:let name="ref.id" value="substring(.,2)"/> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@stem.sameas attribute should have content.</sch:assert> <sch:assert role="warning" test="substring(.,2)=//mei:note[not(ancestor::mei:layer/@n=$layer.n)]/@xml:id"> The value in @stem.sameas should correspond to the @xml:id attribute of the linked note element of a different layer.</sch:assert> <sch:assert role="warning" test="../@dur=//mei:note[@xml:id=$ref.id]/@dur"> The linked notes by @stem.sameas should have the same @dur values. </sch:assert> </sch:rule> </pattern> <define name="mei_att.stems.attribute.stem.visible"> <optional> <attribute name="stem.visible"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines whether a stem should be displayed.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.stems.attribute.stem.x"> <optional> <attribute name="stem.x"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the output x coordinate of the stem’s attachment point.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.stems.attribute.stem.y"> <optional> <attribute name="stem.y"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the output y coordinate of the stem’s attachment point.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.syl.log.attributes"> <ref name="mei_att.syl.log.attribute.con"/> <ref name="mei_att.syl.log.attribute.wordpos"/> </define> <define name="mei_att.syl.log.attribute.con"> <optional> <attribute name="con"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the symbols typically used to indicate breaks between syllables and their functions.</a:documentation> <choice> <value>s</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Space (word separator).</a:documentation> <value>d</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dash (syllable separator).</a:documentation> <value>u</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Underscore (syllable extension).</a:documentation> <value>t</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Tilde (syllable elision).</a:documentation> <value>c</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Circumflex [angled line above] (syllable elision).</a:documentation> <value>v</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Caron [angled line below] (syllable elision).</a:documentation> <value>i</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Inverted breve [curved line above] (syllable elision).</a:documentation> <value>b</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Breve [curved line below] (syllable elision).</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.syl.log.attribute.wordpos"> <optional> <attribute name="wordpos"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the position of a syllable within a word.</a:documentation> <choice> <value>i</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(initial) first syllable.</a:documentation> <value>m</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(medial) neither first nor last syllable.</a:documentation> <value>s</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(single) single syllable.</a:documentation> <value>t</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(terminal) last syllable.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.sylText.attributes"> <ref name="mei_att.sylText.attribute.syl"/> </define> <define name="mei_att.sylText.attribute.syl"> <optional> <attribute name="syl"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds an associated sung text syllable.</a:documentation> <data type="string"/> </attribute> </optional> </define> <define name="mei_att.symbol.log.attributes"> <ref name="mei_att.startId.attributes"/> </define> <define name="mei_att.systems.attributes"> <ref name="mei_att.systems.attribute.system.leftline"/> <ref name="mei_att.systems.attribute.system.leftmar"/> <ref name="mei_att.systems.attribute.system.rightmar"/> <ref name="mei_att.systems.attribute.system.topmar"/> </define> <define name="mei_att.systems.attribute.system.leftline"> <optional> <attribute name="system.leftline"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether the system starts with a continuous line connecting all staves, including single-staff systems. Do not confuse this with the heavy vertical line used as a grouping symbol.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.systems.attribute.system.leftmar"> <optional> <attribute name="system.leftmar"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the amount of whitespace at the left system margin relative to page.leftmar.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.systems.attribute.system.rightmar"> <optional> <attribute name="system.rightmar"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the amount of whitespace at the right system margin relative to page.rightmar.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.systems.attribute.system.topmar"> <optional> <attribute name="system.topmar"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the distance from page’s top edge to the first system; used for first page only.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.targetEval.attributes"> <ref name="mei_att.targetEval.attribute.evaluate"/> </define> <define name="mei_att.targetEval.attribute.evaluate"> <optional> <attribute name="evaluate"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the intended meaning when a participant in a relationship is itself a pointer.</a:documentation> <choice> <value>all</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">If an element pointed to is itself a pointer, then the target of that pointer will be taken, and so on, until an element is found which is not a pointer.</a:documentation> <value>one</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">If an element pointed to is itself a pointer, then its target (whether a pointer or not) is taken as the target of this pointer.</a:documentation> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">No further evaluation of targets is carried out beyond that needed to find the element(s) specified in plist or target attribute.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.tempo.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.mmTempo.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.tempo.log.attribute.func"/> </define> <define name="mei_att.tempo.log.attribute.func"> <optional> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the function of a tempo indication.</a:documentation> <choice> <value>continuous</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marks a gradual change of tempo, such as "accel." or "rit."</a:documentation> <value>instantaneous</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Represents a static tempo instruction, such as a textual term like "Adagio", a metronome marking like "♩=70", or a combination of text and metronome indication.</a:documentation> <value>metricmod</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures a change in pulse rate (tempo) and/or pulse grouping (subdivision) in an "equation" of the form [tempo before change] = [tempo after change].</a:documentation> <value>precedente</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates a change in pulse rate (tempo) and/or pulse grouping (subdivision) in an "equation" of the form [tempo after change] = [tempo before change]. The term "precedente" often appears following the "equation" to distinguish this kind of historical usage from the modern metric modulation form.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.textRendition.attributes"> <ref name="mei_att.textRendition.attribute.altrend"/> <ref name="mei_att.textRendition.attribute.rend"/> </define> <define name="mei_att.textRendition.attribute.altrend"> <optional> <attribute name="altrend"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to extend the values of the rend attribute.</a:documentation> <list> <oneOrMore> <data type="NMTOKEN"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.textRendition.attribute.rend"> <optional> <attribute name="rend"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rendition) Captures the appearance of the element’s contents using MEI-defined descriptors.</a:documentation> <list> <oneOrMore> <ref name="mei_data.TEXTRENDITION"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.textStyle.attributes"> <ref name="mei_att.textStyle.attribute.text.fam"/> <ref name="mei_att.textStyle.attribute.text.name"/> <ref name="mei_att.textStyle.attribute.text.size"/> <ref name="mei_att.textStyle.attribute.text.style"/> <ref name="mei_att.textStyle.attribute.text.weight"/> </define> <define name="mei_att.textStyle.attribute.text.fam"> <optional> <attribute name="text.fam"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a default value for the font family name of text (other than lyrics) when this information is not provided on the individual elements.</a:documentation> <ref name="mei_data.FONTFAMILY"/> </attribute> </optional> </define> <define name="mei_att.textStyle.attribute.text.name"> <optional> <attribute name="text.name"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a default value for the font name of text (other than lyrics) when this information is not provided on the individual elements.</a:documentation> <ref name="mei_data.FONTNAME"/> </attribute> </optional> </define> <define name="mei_att.textStyle.attribute.text.size"> <optional> <attribute name="text.size"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a default value for the font size of text (other than lyrics) when this information is not provided on the individual elements.</a:documentation> <ref name="mei_data.FONTSIZE"/> </attribute> </optional> </define> <define name="mei_att.textStyle.attribute.text.style"> <optional> <attribute name="text.style"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a default value for the font style of text (other than lyrics) when this information is not provided on the individual elements.</a:documentation> <ref name="mei_data.FONTSTYLE"/> </attribute> </optional> </define> <define name="mei_att.textStyle.attribute.text.weight"> <optional> <attribute name="text.weight"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a default value for the font weight for text (other than lyrics) when this information is not provided on the individual elements.</a:documentation> <ref name="mei_data.FONTWEIGHT"/> </attribute> </optional> </define> <define name="mei_att.tiePresent.attributes"> <ref name="mei_att.tiePresent.attribute.tie"/> </define> <define name="mei_att.tiePresent.attribute.tie"> <optional> <attribute name="tie"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates that this element participates in a tie. If visual information about the tie needs to be recorded, then a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><tie></code> element should be employed.</a:documentation> <list> <oneOrMore> <ref name="mei_data.TIE"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.timestamp.log.attributes"> <ref name="mei_att.timestamp.log.attribute.tstamp"/> </define> <define name="mei_att.timestamp.log.attribute.tstamp"> <optional> <attribute name="tstamp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(time stamp) Encodes the onset time in terms of musical time, i.e., beats[.fractional beat part], as expressed in the written time signature.</a:documentation> <ref name="mei_data.BEAT"/> </attribute> </optional> </define> <define name="mei_att.timestamp2.log.attributes"> <ref name="mei_att.timestamp2.log.attribute.tstamp2"/> </define> <define name="mei_att.timestamp2.log.attribute.tstamp2"> <optional> <attribute name="tstamp2"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the ending point of an event, i.e., a count of measures plus a beat location in the ending measure.</a:documentation> <ref name="mei_data.MEASUREBEAT"/> </attribute> </optional> </define> <define name="mei_att.transposition.attributes"> <ref name="mei_att.transposition.attribute.trans.diat"/> <ref name="mei_att.transposition.attribute.trans.semi"/> </define> <define name="mei_att.transposition.attribute.trans.diat"> <optional> <attribute name="trans.diat"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(transposition (diatonic)) Records the amount of diatonic pitch shift, e.g., C to C♯ = 0, C to D♭ = 1, necessary to calculate the sounded pitch from the written one.</a:documentation> <data type="integer"/> </attribute> </optional> </define> <define name="mei_att.transposition.attribute.trans.semi"> <optional> <attribute name="trans.semi"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(transposition (semitones)) Records the amount of pitch shift in semitones, e.g., C to C♯ = 1, C to D♭ = 1, necessary to calculate the sounded pitch from the written one.</a:documentation> <data type="integer"/> </attribute> </optional> </define> <define name="mei_att.tuning.log.attributes"> <ref name="mei_att.tuning.log.attribute.tuning.standard"/> </define> <define name="mei_att.tuning.log.attribute.tuning.standard"> <optional> <attribute name="tuning.standard"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the tuning standard used.</a:documentation> <ref name="mei_data.COURSETUNING"/> </attribute> </optional> </define> <define name="mei_att.tuning.attributes"> <ref name="mei_att.tuning.attribute.tune.Hz"/> <ref name="mei_att.tuning.attribute.tune.pname"/> <ref name="mei_att.tuning.attribute.tune.temper"/> </define> <define name="mei_att.tuning.attribute.tune.Hz"> <optional> <attribute name="tune.Hz"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds a value for cycles per second, i.e., Hertz, for a tuning reference pitch.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.tuning.attribute.tune.pname"> <optional> <attribute name="tune.pname"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the pitch name of a tuning reference pitch, i.e., the central tone of a tuning system.</a:documentation> <ref name="mei_data.PITCHNAME"/> </attribute> </optional> </define> <define name="mei_att.tuning.attribute.tune.temper"> <optional> <attribute name="tune.temper"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides an indication of the tuning system, just, for example.</a:documentation> <ref name="mei_data.TEMPERAMENT"/> </attribute> </optional> </define> <define name="mei_att.tupletPresent.attributes"> <ref name="mei_att.tupletPresent.attribute.tuplet"/> </define> <define name="mei_att.tupletPresent.attribute.tuplet"> <optional> <attribute name="tuplet"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates that this feature participates in a tuplet. If visual information about the tuplet needs to be recorded, then a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><tuplet></code> element should be employed.</a:documentation> <list> <oneOrMore> <ref name="mei_data.TUPLET"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.typed.attributes"> <ref name="mei_att.classed.attributes"/> <ref name="mei_att.typed.attribute.type"/> </define> <define name="mei_att.typed.attribute.type"> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels.</a:documentation> <list> <oneOrMore> <data type="NMTOKEN"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.typography.attributes"> <ref name="mei_att.typography.attribute.fontfam"/> <ref name="mei_att.typography.attribute.fontname"/> <ref name="mei_att.typography.attribute.fontsize"/> <ref name="mei_att.typography.attribute.fontstyle"/> <ref name="mei_att.typography.attribute.fontweight"/> <ref name="mei_att.typography.attribute.letterspacing"/> <ref name="mei_att.typography.attribute.lineheight"/> </define> <define name="mei_att.typography.attribute.fontfam"> <optional> <attribute name="fontfam"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the name of a font-family.</a:documentation> <ref name="mei_data.FONTFAMILY"/> </attribute> </optional> </define> <define name="mei_att.typography.attribute.fontname"> <optional> <attribute name="fontname"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the name of a font.</a:documentation> <ref name="mei_data.FONTNAME"/> </attribute> </optional> </define> <define name="mei_att.typography.attribute.fontsize"> <optional> <attribute name="fontsize"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the size of a font expressed in printers' points, i.e., 1/72nd of an inch, relative terms, e.g., small, larger, etc., or percentage values relative to normal size, e.g., 125%.</a:documentation> <ref name="mei_data.FONTSIZE"/> </attribute> </optional> </define> <define name="mei_att.typography.attribute.fontstyle"> <optional> <attribute name="fontstyle"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the style of a font, i.e., italic, oblique, or normal.</a:documentation> <ref name="mei_data.FONTSTYLE"/> </attribute> </optional> </define> <define name="mei_att.typography.attribute.fontweight"> <optional> <attribute name="fontweight"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to indicate bold type.</a:documentation> <ref name="mei_data.FONTWEIGHT"/> </attribute> </optional> </define> <define name="mei_att.typography.attribute.letterspacing"> <optional> <attribute name="letterspacing"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates letter spacing (aka tracking) in analogy to the CSS letter-spacing property.</a:documentation> <ref name="mei_data.MEASUREMENTTYPOGRAPHYSIGNED"/> </attribute> </optional> </define> <define name="mei_att.typography.attribute.lineheight"> <optional> <attribute name="lineheight"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates line height in analogy to the CSS line-height property.</a:documentation> <choice> <ref name="mei_data.MEASUREMENTTYPOGRAPHYUNSIGNED"/> <ref name="mei_data.PERCENT"/> </choice> </attribute> </optional> </define> <define name="mei_att.verticalAlign.attributes"> <ref name="mei_att.verticalAlign.attribute.valign"/> </define> <define name="mei_att.verticalAlign.attribute.valign"> <optional> <attribute name="valign"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records vertical alignment.</a:documentation> <ref name="mei_data.VERTICALALIGNMENT"/> </attribute> </optional> </define> <define name="mei_att.verticalGroup.attributes"> <ref name="mei_att.verticalGroup.attribute.vgrp"/> </define> <define name="mei_att.verticalGroup.attribute.vgrp"> <optional> <attribute name="vgrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a label for members of a vertically aligned group.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.visibility.attributes"> <ref name="mei_att.visibility.attribute.visible"/> </define> <define name="mei_att.visibility.attribute.visible"> <optional> <attribute name="visible"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates if a feature should be rendered when the notation is presented graphically or sounded when it is presented in an aural form.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.visualOffset.attributes"> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.visualOffset.to.attributes"/> <ref name="mei_att.visualOffset.vo.attributes"/> </define> <define name="mei_att.visualOffset.ho.attributes"> <ref name="mei_att.visualOffset.ho.attribute.ho"/> </define> <define name="mei_att.visualOffset.ho.attribute.ho"> <optional> <attribute name="ho"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records a horizontal adjustment to a feature’s programmatically-determined location in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.visualOffset.to.attributes"> <ref name="mei_att.visualOffset.to.attribute.to"/> </define> <define name="mei_att.visualOffset.to.attribute.to"> <optional> <attribute name="to"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records a timestamp adjustment of a feature’s programmatically-determined location in terms of musical time; that is, beats.</a:documentation> <ref name="mei_data.TSTAMPOFFSET"/> </attribute> </optional> </define> <define name="mei_att.visualOffset.vo.attributes"> <ref name="mei_att.visualOffset.vo.attribute.vo"/> </define> <define name="mei_att.visualOffset.vo.attribute.vo"> <optional> <attribute name="vo"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the vertical adjustment of a feature’s programmatically-determined location in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.visualOffset2.attributes"> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.visualOffset2.vo.attributes"/> </define> <define name="mei_att.visualOffset2.ho.attributes"> <ref name="mei_att.visualOffset2.ho.attribute.startho"/> <ref name="mei_att.visualOffset2.ho.attribute.endho"/> </define> <define name="mei_att.visualOffset2.ho.attribute.startho"> <optional> <attribute name="startho"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the horizontal adjustment of a feature’s programmatically-determined start point.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.visualOffset2.ho.attribute.endho"> <optional> <attribute name="endho"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the horizontal adjustment of a feature’s programmatically-determined end point.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.visualOffset2.to.attributes"> <ref name="mei_att.visualOffset2.to.attribute.startto"/> <ref name="mei_att.visualOffset2.to.attribute.endto"/> </define> <define name="mei_att.visualOffset2.to.attribute.startto"> <optional> <attribute name="startto"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records a timestamp adjustment of a feature’s programmatically-determined start point.</a:documentation> <ref name="mei_data.TSTAMPOFFSET"/> </attribute> </optional> </define> <define name="mei_att.visualOffset2.to.attribute.endto"> <optional> <attribute name="endto"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records a timestamp adjustment of a feature’s programmatically-determined end point.</a:documentation> <ref name="mei_data.TSTAMPOFFSET"/> </attribute> </optional> </define> <define name="mei_att.visualOffset2.vo.attributes"> <ref name="mei_att.visualOffset2.vo.attribute.startvo"/> <ref name="mei_att.visualOffset2.vo.attribute.endvo"/> </define> <define name="mei_att.visualOffset2.vo.attribute.startvo"> <optional> <attribute name="startvo"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records a vertical adjustment of a feature’s programmatically-determined start point.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.visualOffset2.vo.attribute.endvo"> <optional> <attribute name="endvo"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records a vertical adjustment of a feature’s programmatically-determined end point.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.voltaGroupingSym.attributes"> <ref name="mei_att.voltaGroupingSym.attribute.voltasym"/> </define> <define name="mei_att.voltaGroupingSym.attribute.voltasym"> <optional> <attribute name="voltasym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the symbol used to group lyrics.</a:documentation> <choice> <value>brace</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Curved symbol, i.e., {.</a:documentation> <value>bracket</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Square symbol, i.e., [, but with curved/angled top and bottom segments.</a:documentation> <value>bracketsq</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Square symbol, i.e., [, with horizontal top and bottom segments.</a:documentation> <value>line</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Line symbol, i.e., |, (wide) line without top and bottom curved/horizontal segments.</a:documentation> <value>none</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Grouping symbol missing.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.whitespace.attributes"> <ref name="mei_att.whitespace.attribute.xmlspace"/> </define> <define name="mei_att.whitespace.attribute.xmlspace"> <optional> <attribute name="xml:space"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Allows one to signal to an application whether an element’s white space is "significant". The behavior of xml:space cascades to all descendant elements, but it can be turned off locally by setting the xml:space attribute to the value default.</a:documentation> <choice> <value>default</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Allows the application to handle white space as necessary. Not including an xml:space attribute produces the same result as using the default value.</a:documentation> <value>preserve</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Instructs the application to maintain white space "as-is", suggesting that it might have meaning.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.width.attributes"> <ref name="mei_att.width.attribute.width"/> </define> <define name="mei_att.width.attribute.width"> <optional> <attribute name="width"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Measurement of the horizontal dimension of an entity.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.xy.attributes"> <ref name="mei_att.xy.attribute.x"/> <ref name="mei_att.xy.attribute.y"/> </define> <define name="mei_att.xy.attribute.x"> <optional> <attribute name="x"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes an x coordinate for a feature in an output coordinate system. When it is necessary to record the placement of a feature in a facsimile image, use the facs attribute.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.xy.attribute.y"> <optional> <attribute name="y"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes a y coordinate for a feature in an output coordinate system. When it is necessary to record the placement of a feature in a facsimile image, use the facs attribute.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.xy2.attributes"> <ref name="mei_att.xy2.attribute.x2"/> <ref name="mei_att.xy2.attribute.y2"/> </define> <define name="mei_att.xy2.attribute.x2"> <optional> <attribute name="x2"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the optional 2nd x coordinate.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.xy2.attribute.y2"> <optional> <attribute name="y2"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the optional 2nd y coordinate.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_model.addressLike"> <choice> <ref name="mei_address"/> </choice> </define> <define name="mei_model.addressLike_alternation"> <choice> <ref name="mei_address"/> </choice> </define> <define name="mei_model.addressLike_sequence"> <ref name="mei_address"/> </define> <define name="mei_model.addressLike_sequenceOptional"> <optional> <ref name="mei_address"/> </optional> </define> <define name="mei_model.addressLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_address"/> </zeroOrMore> </define> <define name="mei_model.addressLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_address"/> </oneOrMore> </define> <define name="mei_model.annotLike"> <choice> <ref name="mei_annot"/> </choice> </define> <define name="mei_model.annotLike_alternation"> <choice> <ref name="mei_annot"/> </choice> </define> <define name="mei_model.annotLike_sequence"> <ref name="mei_annot"/> </define> <define name="mei_model.annotLike_sequenceOptional"> <optional> <ref name="mei_annot"/> </optional> </define> <define name="mei_model.annotLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_annot"/> </zeroOrMore> </define> <define name="mei_model.annotLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_annot"/> </oneOrMore> </define> <define name="mei_model.biblLike"> <choice> <ref name="mei_bibl"/> <ref name="mei_biblStruct"/> </choice> </define> <define name="mei_model.biblLike_alternation"> <choice> <ref name="mei_bibl"/> <ref name="mei_biblStruct"/> </choice> </define> <define name="mei_model.biblLike_sequence"> <ref name="mei_bibl"/> <ref name="mei_biblStruct"/> </define> <define name="mei_model.biblLike_sequenceOptional"> <optional> <ref name="mei_bibl"/> </optional> <optional> <ref name="mei_biblStruct"/> </optional> </define> <define name="mei_model.biblLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_bibl"/> </zeroOrMore> <zeroOrMore> <ref name="mei_biblStruct"/> </zeroOrMore> </define> <define name="mei_model.biblLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_bibl"/> </oneOrMore> <oneOrMore> <ref name="mei_biblStruct"/> </oneOrMore> </define> <define name="mei_model.biblPart"> <choice> <ref name="mei_perfDuration"/> <ref name="mei_model.editionLike"/> <ref name="mei_model.respLike"/> <ref name="mei_biblScope"/> <ref name="mei_creation"/> <ref name="mei_genre"/> <ref name="mei_imprint"/> <ref name="mei_physLoc"/> <ref name="mei_recipient"/> <ref name="mei_relatedItem"/> <ref name="mei_series"/> <ref name="mei_textLang"/> </choice> </define> <define name="mei_model.captionLike"> <choice> <ref name="mei_caption"/> </choice> </define> <define name="mei_model.chordPart"> <choice> <ref name="mei_artic"/> <ref name="mei_note"/> </choice> </define> <define name="mei_model.controlEventLike"> <choice> <ref name="mei_bend"/> <ref name="mei_gliss"/> <ref name="mei_repeatMark"/> <ref name="mei_model.stageDirLike"/> <ref name="mei_sp"/> <ref name="mei_cpMark"/> <ref name="mei_metaMark"/> <ref name="mei_model.fingeringLike"/> <ref name="mei_model.controlEventLike.harmony"/> <ref name="mei_caesura"/> <ref name="mei_dir"/> <ref name="mei_dynam"/> <ref name="mei_ornam"/> <ref name="mei_phrase"/> <ref name="mei_tempo"/> </choice> </define> <define name="mei_model.controlEventLike_alternation"> <choice> <ref name="mei_bend"/> <ref name="mei_gliss"/> <ref name="mei_repeatMark"/> <ref name="mei_model.stageDirLike_alternation"/> <ref name="mei_sp"/> <ref name="mei_cpMark"/> <ref name="mei_metaMark"/> <ref name="mei_model.fingeringLike_alternation"/> <ref name="mei_model.controlEventLike.harmony_alternation"/> <ref name="mei_caesura"/> <ref name="mei_dir"/> <ref name="mei_dynam"/> <ref name="mei_ornam"/> <ref name="mei_phrase"/> <ref name="mei_tempo"/> </choice> </define> <define name="mei_model.controlEventLike_sequence"> <ref name="mei_bend"/> <ref name="mei_gliss"/> <ref name="mei_repeatMark"/> <ref name="mei_model.stageDirLike_sequence"/> <ref name="mei_sp"/> <ref name="mei_cpMark"/> <ref name="mei_metaMark"/> <ref name="mei_model.fingeringLike_sequence"/> <ref name="mei_model.controlEventLike.harmony_sequence"/> <ref name="mei_caesura"/> <ref name="mei_dir"/> <ref name="mei_dynam"/> <ref name="mei_ornam"/> <ref name="mei_phrase"/> <ref name="mei_tempo"/> </define> <define name="mei_model.controlEventLike_sequenceOptional"> <optional> <ref name="mei_bend"/> </optional> <optional> <ref name="mei_gliss"/> </optional> <optional> <ref name="mei_repeatMark"/> </optional> <optional> <ref name="mei_model.stageDirLike_sequenceOptional"/> </optional> <optional> <ref name="mei_sp"/> </optional> <optional> <ref name="mei_cpMark"/> </optional> <optional> <ref name="mei_metaMark"/> </optional> <optional> <ref name="mei_model.fingeringLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.controlEventLike.harmony_sequenceOptional"/> </optional> <optional> <ref name="mei_caesura"/> </optional> <optional> <ref name="mei_dir"/> </optional> <optional> <ref name="mei_dynam"/> </optional> <optional> <ref name="mei_ornam"/> </optional> <optional> <ref name="mei_phrase"/> </optional> <optional> <ref name="mei_tempo"/> </optional> </define> <define name="mei_model.controlEventLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_bend"/> </zeroOrMore> <zeroOrMore> <ref name="mei_gliss"/> </zeroOrMore> <zeroOrMore> <ref name="mei_repeatMark"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.stageDirLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_sp"/> </zeroOrMore> <zeroOrMore> <ref name="mei_cpMark"/> </zeroOrMore> <zeroOrMore> <ref name="mei_metaMark"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.fingeringLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.controlEventLike.harmony_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_caesura"/> </zeroOrMore> <zeroOrMore> <ref name="mei_dir"/> </zeroOrMore> <zeroOrMore> <ref name="mei_dynam"/> </zeroOrMore> <zeroOrMore> <ref name="mei_ornam"/> </zeroOrMore> <zeroOrMore> <ref name="mei_phrase"/> </zeroOrMore> <zeroOrMore> <ref name="mei_tempo"/> </zeroOrMore> </define> <define name="mei_model.controlEventLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_bend"/> </oneOrMore> <oneOrMore> <ref name="mei_gliss"/> </oneOrMore> <oneOrMore> <ref name="mei_repeatMark"/> </oneOrMore> <oneOrMore> <ref name="mei_model.stageDirLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_sp"/> </oneOrMore> <oneOrMore> <ref name="mei_cpMark"/> </oneOrMore> <oneOrMore> <ref name="mei_metaMark"/> </oneOrMore> <oneOrMore> <ref name="mei_model.fingeringLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.controlEventLike.harmony_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_caesura"/> </oneOrMore> <oneOrMore> <ref name="mei_dir"/> </oneOrMore> <oneOrMore> <ref name="mei_dynam"/> </oneOrMore> <oneOrMore> <ref name="mei_ornam"/> </oneOrMore> <oneOrMore> <ref name="mei_phrase"/> </oneOrMore> <oneOrMore> <ref name="mei_tempo"/> </oneOrMore> </define> <define name="mei_model.dateLike"> <choice> <ref name="mei_date"/> </choice> </define> <define name="mei_model.dateLike_alternation"> <choice> <ref name="mei_date"/> </choice> </define> <define name="mei_model.dateLike_sequence"> <ref name="mei_date"/> </define> <define name="mei_model.dateLike_sequenceOptional"> <optional> <ref name="mei_date"/> </optional> </define> <define name="mei_model.dateLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_date"/> </zeroOrMore> </define> <define name="mei_model.dateLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_date"/> </oneOrMore> </define> <define name="mei_model.dimLike"> <choice> <ref name="mei_depth"/> <ref name="mei_dim"/> <ref name="mei_height"/> <ref name="mei_width"/> </choice> </define> <define name="mei_model.dimLike_alternation"> <choice> <ref name="mei_depth"/> <ref name="mei_dim"/> <ref name="mei_height"/> <ref name="mei_width"/> </choice> </define> <define name="mei_model.dimLike_sequence"> <ref name="mei_depth"/> <ref name="mei_dim"/> <ref name="mei_height"/> <ref name="mei_width"/> </define> <define name="mei_model.dimLike_sequenceOptional"> <optional> <ref name="mei_depth"/> </optional> <optional> <ref name="mei_dim"/> </optional> <optional> <ref name="mei_height"/> </optional> <optional> <ref name="mei_width"/> </optional> </define> <define name="mei_model.dimLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_depth"/> </zeroOrMore> <zeroOrMore> <ref name="mei_dim"/> </zeroOrMore> <zeroOrMore> <ref name="mei_height"/> </zeroOrMore> <zeroOrMore> <ref name="mei_width"/> </zeroOrMore> </define> <define name="mei_model.dimLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_depth"/> </oneOrMore> <oneOrMore> <ref name="mei_dim"/> </oneOrMore> <oneOrMore> <ref name="mei_height"/> </oneOrMore> <oneOrMore> <ref name="mei_width"/> </oneOrMore> </define> <define name="mei_model.editionLike"> <choice> <ref name="mei_edition"/> </choice> </define> <define name="mei_model.editorialLike"> <choice> <ref name="mei_abbr"/> <ref name="mei_expan"/> </choice> </define> <define name="mei_model.editorialLike_alternation"> <choice> <ref name="mei_abbr"/> <ref name="mei_expan"/> </choice> </define> <define name="mei_model.editorialLike_sequence"> <ref name="mei_abbr"/> <ref name="mei_expan"/> </define> <define name="mei_model.editorialLike_sequenceOptional"> <optional> <ref name="mei_abbr"/> </optional> <optional> <ref name="mei_expan"/> </optional> </define> <define name="mei_model.editorialLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_abbr"/> </zeroOrMore> <zeroOrMore> <ref name="mei_expan"/> </zeroOrMore> </define> <define name="mei_model.editorialLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_abbr"/> </oneOrMore> <oneOrMore> <ref name="mei_expan"/> </oneOrMore> </define> <define name="mei_model.endingLike"> <choice> <ref name="mei_ending"/> </choice> </define> <define name="mei_model.eventLike"> <choice> <ref name="mei_model.keySigLike"/> <ref name="mei_model.meterSigLike"/> <ref name="mei_barLine"/> <ref name="mei_chord"/> <ref name="mei_clef"/> <ref name="mei_clefGrp"/> <ref name="mei_custos"/> <ref name="mei_note"/> <ref name="mei_pad"/> <ref name="mei_rest"/> <ref name="mei_space"/> <ref name="mei_tabDurSym"/> <ref name="mei_tabGrp"/> </choice> </define> <define name="mei_model.headLike"> <choice> <ref name="mei_head"/> </choice> </define> <define name="mei_model.identifierLike"> <choice> <ref name="mei_identifier"/> </choice> </define> <define name="mei_model.identifierLike_alternation"> <choice> <ref name="mei_identifier"/> </choice> </define> <define name="mei_model.identifierLike_sequence"> <ref name="mei_identifier"/> </define> <define name="mei_model.identifierLike_sequenceOptional"> <optional> <ref name="mei_identifier"/> </optional> </define> <define name="mei_model.identifierLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_identifier"/> </zeroOrMore> </define> <define name="mei_model.identifierLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_identifier"/> </oneOrMore> </define> <define name="mei_model.imprintPart"> <choice> <ref name="mei_availability"/> <ref name="mei_unpub"/> <ref name="mei_distributor"/> <ref name="mei_publisher"/> <ref name="mei_pubPlace"/> </choice> </define> <define name="mei_model.incipLike"> <choice> <ref name="mei_incip"/> </choice> </define> <define name="mei_model.instrDefLike"> <choice> <ref name="mei_instrDef"/> </choice> </define> <define name="mei_model.keyAccidLike"> <choice> <ref name="mei_keyAccid"/> </choice> </define> <define name="mei_model.keySigLike"> <choice> <ref name="mei_keySig"/> </choice> </define> <define name="mei_model.keySigLike_alternation"> <choice> <ref name="mei_keySig"/> </choice> </define> <define name="mei_model.keySigLike_sequence"> <ref name="mei_keySig"/> </define> <define name="mei_model.keySigLike_sequenceOptional"> <optional> <ref name="mei_keySig"/> </optional> </define> <define name="mei_model.keySigLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_keySig"/> </zeroOrMore> </define> <define name="mei_model.keySigLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_keySig"/> </oneOrMore> </define> <define name="mei_model.labelLike"> <choice> <ref name="mei_label"/> <ref name="mei_labelAbbr"/> </choice> </define> <define name="mei_model.layerDefLike"> <choice> <ref name="mei_layerDef"/> </choice> </define> <define name="mei_model.layerLike"> <choice> <ref name="mei_layer"/> </choice> </define> <define name="mei_model.layerLike_alternation"> <choice> <ref name="mei_layer"/> </choice> </define> <define name="mei_model.layerLike_sequence"> <ref name="mei_layer"/> </define> <define name="mei_model.layerLike_sequenceOptional"> <optional> <ref name="mei_layer"/> </optional> </define> <define name="mei_model.layerLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_layer"/> </zeroOrMore> </define> <define name="mei_model.layerLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_layer"/> </oneOrMore> </define> <define name="mei_model.layerPart"> <choice> <ref name="mei_model.layerPart.cmn"/> <ref name="mei_model.eventLike"/> <ref name="mei_model.layerPart.mensuralAndNeumes"/> </choice> </define> <define name="mei_model.layerPart.mensuralAndNeumes"> <choice> <ref name="mei_model.layerPart.mensural"/> <ref name="mei_model.midiLike"/> <ref name="mei_model.layerPart.neumes"/> <ref name="mei_model.noteModifierLike"/> </choice> </define> <define name="mei_model.lbLike"> <choice> <ref name="mei_lb"/> </choice> </define> <define name="mei_model.lbLike_alternation"> <choice> <ref name="mei_lb"/> </choice> </define> <define name="mei_model.lbLike_sequence"> <ref name="mei_lb"/> </define> <define name="mei_model.lbLike_sequenceOptional"> <optional> <ref name="mei_lb"/> </optional> </define> <define name="mei_model.lbLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_lb"/> </zeroOrMore> </define> <define name="mei_model.lbLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_lb"/> </oneOrMore> </define> <define name="mei_model.mdivLike"> <choice> <ref name="mei_mdiv"/> </choice> </define> <define name="mei_model.measurementLike"> <choice> <ref name="mei_model.numLike"/> </choice> </define> <define name="mei_model.measurementLike_alternation"> <choice> <ref name="mei_model.numLike_alternation"/> </choice> </define> <define name="mei_model.measurementLike_sequence"> <ref name="mei_model.numLike_sequence"/> </define> <define name="mei_model.measurementLike_sequenceOptional"> <optional> <ref name="mei_model.numLike_sequenceOptional"/> </optional> </define> <define name="mei_model.measurementLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_model.numLike_sequenceOptionalRepeatable"/> </zeroOrMore> </define> <define name="mei_model.measurementLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_model.numLike_sequenceRepeatable"/> </oneOrMore> </define> <define name="mei_model.meterSigLike"> <choice> <ref name="mei_meterSig"/> <ref name="mei_meterSigGrp"/> </choice> </define> <define name="mei_model.meterSigLike_alternation"> <choice> <ref name="mei_meterSig"/> <ref name="mei_meterSigGrp"/> </choice> </define> <define name="mei_model.meterSigLike_sequence"> <ref name="mei_meterSig"/> <ref name="mei_meterSigGrp"/> </define> <define name="mei_model.meterSigLike_sequenceOptional"> <optional> <ref name="mei_meterSig"/> </optional> <optional> <ref name="mei_meterSigGrp"/> </optional> </define> <define name="mei_model.meterSigLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_meterSig"/> </zeroOrMore> <zeroOrMore> <ref name="mei_meterSigGrp"/> </zeroOrMore> </define> <define name="mei_model.meterSigLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_meterSig"/> </oneOrMore> <oneOrMore> <ref name="mei_meterSigGrp"/> </oneOrMore> </define> <define name="mei_model.milestoneLike.music"> <choice> <ref name="mei_model.pbLike"/> <ref name="mei_cb"/> <ref name="mei_colLayout"/> <ref name="mei_sb"/> </choice> </define> <define name="mei_model.milestoneLike.text"> <choice> <ref name="mei_model.lbLike"/> <ref name="mei_model.pbLike"/> <ref name="mei_cb"/> <ref name="mei_colLayout"/> </choice> </define> <define name="mei_model.nameLike"> <choice> <ref name="mei_model.nameLike.agent"/> <ref name="mei_model.nameLike.place"/> <ref name="mei_name"/> </choice> </define> <define name="mei_model.nameLike_alternation"> <choice> <ref name="mei_model.nameLike.agent_alternation"/> <ref name="mei_model.nameLike.place_alternation"/> <ref name="mei_name"/> </choice> </define> <define name="mei_model.nameLike_sequence"> <ref name="mei_model.nameLike.agent_sequence"/> <ref name="mei_model.nameLike.place_sequence"/> <ref name="mei_name"/> </define> <define name="mei_model.nameLike_sequenceOptional"> <optional> <ref name="mei_model.nameLike.agent_sequenceOptional"/> </optional> <optional> <ref name="mei_model.nameLike.place_sequenceOptional"/> </optional> <optional> <ref name="mei_name"/> </optional> </define> <define name="mei_model.nameLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_model.nameLike.agent_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.nameLike.place_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_name"/> </zeroOrMore> </define> <define name="mei_model.nameLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_model.nameLike.agent_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.nameLike.place_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_name"/> </oneOrMore> </define> <define name="mei_model.noteModifierLike"> <choice> <ref name="mei_accid"/> <ref name="mei_artic"/> <ref name="mei_dot"/> </choice> </define> <define name="mei_model.noteModifierLike_alternation"> <choice> <ref name="mei_accid"/> <ref name="mei_artic"/> <ref name="mei_dot"/> </choice> </define> <define name="mei_model.noteModifierLike_sequence"> <ref name="mei_accid"/> <ref name="mei_artic"/> <ref name="mei_dot"/> </define> <define name="mei_model.noteModifierLike_sequenceOptional"> <optional> <ref name="mei_accid"/> </optional> <optional> <ref name="mei_artic"/> </optional> <optional> <ref name="mei_dot"/> </optional> </define> <define name="mei_model.noteModifierLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_accid"/> </zeroOrMore> <zeroOrMore> <ref name="mei_artic"/> </zeroOrMore> <zeroOrMore> <ref name="mei_dot"/> </zeroOrMore> </define> <define name="mei_model.noteModifierLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_accid"/> </oneOrMore> <oneOrMore> <ref name="mei_artic"/> </oneOrMore> <oneOrMore> <ref name="mei_dot"/> </oneOrMore> </define> <define name="mei_model.numLike"> <choice> <ref name="mei_num"/> </choice> </define> <define name="mei_model.numLike_alternation"> <choice> <ref name="mei_num"/> </choice> </define> <define name="mei_model.numLike_sequence"> <ref name="mei_num"/> </define> <define name="mei_model.numLike_sequenceOptional"> <optional> <ref name="mei_num"/> </optional> </define> <define name="mei_model.numLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_num"/> </zeroOrMore> </define> <define name="mei_model.numLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_num"/> </oneOrMore> </define> <define name="mei_model.paracontentPart"> <choice> <ref name="mei_model.stageDirLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_model.tableLike"/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.lgLike"/> <ref name="mei_model.listLike"/> <ref name="mei_model.quoteLike"/> </choice> </define> <define name="mei_model.partLike"> <choice> <ref name="mei_part"/> </choice> </define> <define name="mei_model.partsLike"> <choice> <ref name="mei_parts"/> </choice> </define> <define name="mei_model.pbLike"> <choice> <ref name="mei_pb"/> </choice> </define> <define name="mei_model.pbLike_alternation"> <choice> <ref name="mei_pb"/> </choice> </define> <define name="mei_model.pbLike_sequence"> <ref name="mei_pb"/> </define> <define name="mei_model.pbLike_sequenceOptional"> <optional> <ref name="mei_pb"/> </optional> </define> <define name="mei_model.pbLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_pb"/> </zeroOrMore> </define> <define name="mei_model.pbLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_pb"/> </oneOrMore> </define> <define name="mei_model.pLike"> <choice> <ref name="mei_p"/> </choice> </define> <define name="mei_model.pLike_alternation"> <choice> <ref name="mei_p"/> </choice> </define> <define name="mei_model.pLike_sequence"> <ref name="mei_p"/> </define> <define name="mei_model.pLike_sequenceOptional"> <optional> <ref name="mei_p"/> </optional> </define> <define name="mei_model.pLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_p"/> </zeroOrMore> </define> <define name="mei_model.pLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_p"/> </oneOrMore> </define> <define name="mei_model.relationLike"> <choice> <ref name="mei_relation"/> <ref name="mei_relationList"/> </choice> </define> <define name="mei_model.relationLike_alternation"> <choice> <ref name="mei_relation"/> <ref name="mei_relationList"/> </choice> </define> <define name="mei_model.relationLike_sequence"> <ref name="mei_relation"/> <ref name="mei_relationList"/> </define> <define name="mei_model.relationLike_sequenceOptional"> <optional> <ref name="mei_relation"/> </optional> <optional> <ref name="mei_relationList"/> </optional> </define> <define name="mei_model.relationLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_relation"/> </zeroOrMore> <zeroOrMore> <ref name="mei_relationList"/> </zeroOrMore> </define> <define name="mei_model.relationLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_relation"/> </oneOrMore> <oneOrMore> <ref name="mei_relationList"/> </oneOrMore> </define> <define name="mei_model.rendLike"> <choice> <ref name="mei_rend"/> <ref name="mei_stack"/> </choice> </define> <define name="mei_model.rendLike_alternation"> <choice> <ref name="mei_rend"/> <ref name="mei_stack"/> </choice> </define> <define name="mei_model.rendLike_sequence"> <ref name="mei_rend"/> <ref name="mei_stack"/> </define> <define name="mei_model.rendLike_sequenceOptional"> <optional> <ref name="mei_rend"/> </optional> <optional> <ref name="mei_stack"/> </optional> </define> <define name="mei_model.rendLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_rend"/> </zeroOrMore> <zeroOrMore> <ref name="mei_stack"/> </zeroOrMore> </define> <define name="mei_model.rendLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_rend"/> </oneOrMore> <oneOrMore> <ref name="mei_stack"/> </oneOrMore> </define> <define name="mei_model.repositoryLike"> <choice> <ref name="mei_repository"/> </choice> </define> <define name="mei_model.repositoryLike_alternation"> <choice> <ref name="mei_repository"/> </choice> </define> <define name="mei_model.repositoryLike_sequence"> <ref name="mei_repository"/> </define> <define name="mei_model.repositoryLike_sequenceOptional"> <optional> <ref name="mei_repository"/> </optional> </define> <define name="mei_model.repositoryLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_repository"/> </zeroOrMore> </define> <define name="mei_model.repositoryLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_repository"/> </oneOrMore> </define> <define name="mei_model.resourceLike"> <choice> <ref name="mei_facsimile"/> <ref name="mei_genDesc"/> <ref name="mei_performance"/> </choice> </define> <define name="mei_model.respLike"> <choice> <ref name="mei_model.respLikePart"/> <ref name="mei_respStmt"/> </choice> </define> <define name="mei_model.respLikePart"> <choice> <ref name="mei_arranger"/> <ref name="mei_author"/> <ref name="mei_composer"/> <ref name="mei_contributor"/> <ref name="mei_editor"/> <ref name="mei_funder"/> <ref name="mei_librettist"/> <ref name="mei_lyricist"/> <ref name="mei_sponsor"/> </choice> </define> <define name="mei_model.respLikePart_alternation"> <choice> <ref name="mei_arranger"/> <ref name="mei_author"/> <ref name="mei_composer"/> <ref name="mei_contributor"/> <ref name="mei_editor"/> <ref name="mei_funder"/> <ref name="mei_librettist"/> <ref name="mei_lyricist"/> <ref name="mei_sponsor"/> </choice> </define> <define name="mei_model.respLikePart_sequence"> <ref name="mei_arranger"/> <ref name="mei_author"/> <ref name="mei_composer"/> <ref name="mei_contributor"/> <ref name="mei_editor"/> <ref name="mei_funder"/> <ref name="mei_librettist"/> <ref name="mei_lyricist"/> <ref name="mei_sponsor"/> </define> <define name="mei_model.respLikePart_sequenceOptional"> <optional> <ref name="mei_arranger"/> </optional> <optional> <ref name="mei_author"/> </optional> <optional> <ref name="mei_composer"/> </optional> <optional> <ref name="mei_contributor"/> </optional> <optional> <ref name="mei_editor"/> </optional> <optional> <ref name="mei_funder"/> </optional> <optional> <ref name="mei_librettist"/> </optional> <optional> <ref name="mei_lyricist"/> </optional> <optional> <ref name="mei_sponsor"/> </optional> </define> <define name="mei_model.respLikePart_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_arranger"/> </zeroOrMore> <zeroOrMore> <ref name="mei_author"/> </zeroOrMore> <zeroOrMore> <ref name="mei_composer"/> </zeroOrMore> <zeroOrMore> <ref name="mei_contributor"/> </zeroOrMore> <zeroOrMore> <ref name="mei_editor"/> </zeroOrMore> <zeroOrMore> <ref name="mei_funder"/> </zeroOrMore> <zeroOrMore> <ref name="mei_librettist"/> </zeroOrMore> <zeroOrMore> <ref name="mei_lyricist"/> </zeroOrMore> <zeroOrMore> <ref name="mei_sponsor"/> </zeroOrMore> </define> <define name="mei_model.respLikePart_sequenceRepeatable"> <oneOrMore> <ref name="mei_arranger"/> </oneOrMore> <oneOrMore> <ref name="mei_author"/> </oneOrMore> <oneOrMore> <ref name="mei_composer"/> </oneOrMore> <oneOrMore> <ref name="mei_contributor"/> </oneOrMore> <oneOrMore> <ref name="mei_editor"/> </oneOrMore> <oneOrMore> <ref name="mei_funder"/> </oneOrMore> <oneOrMore> <ref name="mei_librettist"/> </oneOrMore> <oneOrMore> <ref name="mei_lyricist"/> </oneOrMore> <oneOrMore> <ref name="mei_sponsor"/> </oneOrMore> </define> <define name="mei_model.scoreDefLike"> <choice> <ref name="mei_scoreDef"/> </choice> </define> <define name="mei_model.scoreLike"> <choice> <ref name="mei_score"/> </choice> </define> <define name="mei_model.scorePart"> <choice> <ref name="mei_model.endingLike"/> <ref name="mei_model.sectionLike"/> </choice> </define> <define name="mei_model.sectionLike"> <choice> <ref name="mei_section"/> </choice> </define> <define name="mei_model.sectionPart"> <choice> <ref name="mei_model.sectionPart.cmn"/> <ref name="mei_model.endingLike"/> <ref name="mei_model.scoreDefLike"/> <ref name="mei_model.sectionLike"/> <ref name="mei_model.sectionPart.mensuralAndNeumes"/> <ref name="mei_model.staffDefLike"/> </choice> </define> <define name="mei_model.sectionPart.mensuralAndNeumes"> <choice> <ref name="mei_model.staffLike"/> </choice> </define> <define name="mei_model.staffDefLike"> <choice> <ref name="mei_staffDef"/> </choice> </define> <define name="mei_model.staffDefPart"> <choice> <ref name="mei_model.staffDefPart.mensural"/> <ref name="mei_model.keySigLike"/> <ref name="mei_model.meterSigLike"/> <ref name="mei_clef"/> <ref name="mei_clefGrp"/> <ref name="mei_tuning"/> </choice> </define> <define name="mei_model.staffGrpLike"> <choice> <ref name="mei_staffGrp"/> </choice> </define> <define name="mei_model.staffLike"> <choice> <ref name="mei_staff"/> </choice> </define> <define name="mei_model.staffLike_alternation"> <choice> <ref name="mei_staff"/> </choice> </define> <define name="mei_model.staffLike_sequence"> <ref name="mei_staff"/> </define> <define name="mei_model.staffLike_sequenceOptional"> <optional> <ref name="mei_staff"/> </optional> </define> <define name="mei_model.staffLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_staff"/> </zeroOrMore> </define> <define name="mei_model.staffLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_staff"/> </oneOrMore> </define> <define name="mei_model.staffPart"> <choice> <ref name="mei_model.ossiaLike"/> <ref name="mei_model.layerLike"/> <ref name="mei_model.staffPart.mensuralAndNeumes"/> </choice> </define> <define name="mei_model.staffPart.mensuralAndNeumes"> <choice> <ref name="mei_model.staffPart.mensural"/> </choice> </define> <define name="mei_model.sylLike"> <choice> <ref name="mei_syl"/> </choice> </define> <define name="mei_model.textComponentLike"> <choice> <ref name="mei_model.tableLike"/> <ref name="mei_model.pLike"/> <ref name="mei_model.lgLike"/> <ref name="mei_model.listLike"/> <ref name="mei_model.quoteLike"/> </choice> </define> <define name="mei_model.textComponentLike_alternation"> <choice> <ref name="mei_model.tableLike_alternation"/> <ref name="mei_model.pLike_alternation"/> <ref name="mei_model.lgLike_alternation"/> <ref name="mei_model.listLike_alternation"/> <ref name="mei_model.quoteLike_alternation"/> </choice> </define> <define name="mei_model.textComponentLike_sequence"> <ref name="mei_model.tableLike_sequence"/> <ref name="mei_model.pLike_sequence"/> <ref name="mei_model.lgLike_sequence"/> <ref name="mei_model.listLike_sequence"/> <ref name="mei_model.quoteLike_sequence"/> </define> <define name="mei_model.textComponentLike_sequenceOptional"> <optional> <ref name="mei_model.tableLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.pLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.lgLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.listLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.quoteLike_sequenceOptional"/> </optional> </define> <define name="mei_model.textComponentLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_model.tableLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.pLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.lgLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.listLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.quoteLike_sequenceOptionalRepeatable"/> </zeroOrMore> </define> <define name="mei_model.textComponentLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_model.tableLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.pLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.lgLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.listLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.quoteLike_sequenceRepeatable"/> </oneOrMore> </define> <define name="mei_model.textPhraseLike"> <choice> <ref name="mei_model.pbLike"/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </define> <define name="mei_model.textPhraseLike.limited"> <choice> <ref name="mei_model.figureLike"/> <ref name="mei_model.msInline"/> <ref name="mei_model.addressPart"/> <ref name="mei_model.nameLike.label"/> <ref name="mei_model.locrefLike"/> <ref name="mei_model.addressLike"/> <ref name="mei_model.annotLike"/> <ref name="mei_model.biblLike"/> <ref name="mei_model.dateLike"/> <ref name="mei_model.dimLike"/> <ref name="mei_model.editorialLike"/> <ref name="mei_model.identifierLike"/> <ref name="mei_model.lbLike"/> <ref name="mei_model.measurementLike"/> <ref name="mei_model.nameLike"/> <ref name="mei_model.relationLike"/> <ref name="mei_model.rendLike"/> <ref name="mei_model.titleLike"/> <ref name="mei_dedicatee"/> <ref name="mei_dimensions"/> <ref name="mei_extent"/> <ref name="mei_symbol"/> <ref name="mei_term"/> <ref name="mei_model.qLike"/> <ref name="mei_seg"/> </choice> </define> <define name="mei_model.textPhraseLike.limited_alternation"> <choice> <ref name="mei_model.figureLike_alternation"/> <ref name="mei_model.msInline_alternation"/> <ref name="mei_model.addressPart_alternation"/> <ref name="mei_model.nameLike.label_alternation"/> <ref name="mei_model.locrefLike_alternation"/> <ref name="mei_model.addressLike_alternation"/> <ref name="mei_model.annotLike_alternation"/> <ref name="mei_model.biblLike_alternation"/> <ref name="mei_model.dateLike_alternation"/> <ref name="mei_model.dimLike_alternation"/> <ref name="mei_model.editorialLike_alternation"/> <ref name="mei_model.identifierLike_alternation"/> <ref name="mei_model.lbLike_alternation"/> <ref name="mei_model.measurementLike_alternation"/> <ref name="mei_model.nameLike_alternation"/> <ref name="mei_model.relationLike_alternation"/> <ref name="mei_model.rendLike_alternation"/> <ref name="mei_model.titleLike_alternation"/> <ref name="mei_dedicatee"/> <ref name="mei_dimensions"/> <ref name="mei_extent"/> <ref name="mei_symbol"/> <ref name="mei_term"/> <ref name="mei_model.qLike_alternation"/> <ref name="mei_seg"/> </choice> </define> <define name="mei_model.textPhraseLike.limited_sequence"> <ref name="mei_model.figureLike_sequence"/> <ref name="mei_model.msInline_sequence"/> <ref name="mei_model.addressPart_sequence"/> <ref name="mei_model.nameLike.label_sequence"/> <ref name="mei_model.locrefLike_sequence"/> <ref name="mei_model.addressLike_sequence"/> <ref name="mei_model.annotLike_sequence"/> <ref name="mei_model.biblLike_sequence"/> <ref name="mei_model.dateLike_sequence"/> <ref name="mei_model.dimLike_sequence"/> <ref name="mei_model.editorialLike_sequence"/> <ref name="mei_model.identifierLike_sequence"/> <ref name="mei_model.lbLike_sequence"/> <ref name="mei_model.measurementLike_sequence"/> <ref name="mei_model.nameLike_sequence"/> <ref name="mei_model.relationLike_sequence"/> <ref name="mei_model.rendLike_sequence"/> <ref name="mei_model.titleLike_sequence"/> <ref name="mei_dedicatee"/> <ref name="mei_dimensions"/> <ref name="mei_extent"/> <ref name="mei_symbol"/> <ref name="mei_term"/> <ref name="mei_model.qLike_sequence"/> <ref name="mei_seg"/> </define> <define name="mei_model.textPhraseLike.limited_sequenceOptional"> <optional> <ref name="mei_model.figureLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.msInline_sequenceOptional"/> </optional> <optional> <ref name="mei_model.addressPart_sequenceOptional"/> </optional> <optional> <ref name="mei_model.nameLike.label_sequenceOptional"/> </optional> <optional> <ref name="mei_model.locrefLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.addressLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.annotLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.biblLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.dateLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.dimLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.editorialLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.identifierLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.lbLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.measurementLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.nameLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.relationLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.rendLike_sequenceOptional"/> </optional> <optional> <ref name="mei_model.titleLike_sequenceOptional"/> </optional> <optional> <ref name="mei_dedicatee"/> </optional> <optional> <ref name="mei_dimensions"/> </optional> <optional> <ref name="mei_extent"/> </optional> <optional> <ref name="mei_symbol"/> </optional> <optional> <ref name="mei_term"/> </optional> <optional> <ref name="mei_model.qLike_sequenceOptional"/> </optional> <optional> <ref name="mei_seg"/> </optional> </define> <define name="mei_model.textPhraseLike.limited_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_model.figureLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.msInline_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.addressPart_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.nameLike.label_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.locrefLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.addressLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.annotLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.biblLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.dateLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.dimLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.editorialLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.identifierLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.lbLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.measurementLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.nameLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.relationLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.rendLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.titleLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_dedicatee"/> </zeroOrMore> <zeroOrMore> <ref name="mei_dimensions"/> </zeroOrMore> <zeroOrMore> <ref name="mei_extent"/> </zeroOrMore> <zeroOrMore> <ref name="mei_symbol"/> </zeroOrMore> <zeroOrMore> <ref name="mei_term"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.qLike_sequenceOptionalRepeatable"/> </zeroOrMore> <zeroOrMore> <ref name="mei_seg"/> </zeroOrMore> </define> <define name="mei_model.textPhraseLike.limited_sequenceRepeatable"> <oneOrMore> <ref name="mei_model.figureLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.msInline_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.addressPart_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.nameLike.label_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.locrefLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.addressLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.annotLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.biblLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.dateLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.dimLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.editorialLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.identifierLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.lbLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.measurementLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.nameLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.relationLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.rendLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_model.titleLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_dedicatee"/> </oneOrMore> <oneOrMore> <ref name="mei_dimensions"/> </oneOrMore> <oneOrMore> <ref name="mei_extent"/> </oneOrMore> <oneOrMore> <ref name="mei_symbol"/> </oneOrMore> <oneOrMore> <ref name="mei_term"/> </oneOrMore> <oneOrMore> <ref name="mei_model.qLike_sequenceRepeatable"/> </oneOrMore> <oneOrMore> <ref name="mei_seg"/> </oneOrMore> </define> <define name="mei_model.titleLike"> <choice> <ref name="mei_title"/> </choice> </define> <define name="mei_model.titleLike_alternation"> <choice> <ref name="mei_title"/> </choice> </define> <define name="mei_model.titleLike_sequence"> <ref name="mei_title"/> </define> <define name="mei_model.titleLike_sequenceOptional"> <optional> <ref name="mei_title"/> </optional> </define> <define name="mei_model.titleLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_title"/> </zeroOrMore> </define> <define name="mei_model.titleLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_title"/> </oneOrMore> </define> <define name="mei_model.titlePagePart"> <choice> <ref name="mei_accessRestrict"/> <ref name="mei_byline"/> <ref name="mei_contents"/> <ref name="mei_dedication"/> <ref name="mei_perfDuration"/> <ref name="mei_perfMedium"/> <ref name="mei_plateNum"/> <ref name="mei_price"/> <ref name="mei_sysReq"/> <ref name="mei_useRestrict"/> <ref name="mei_model.dateLike"/> <ref name="mei_model.editionLike"/> <ref name="mei_model.identifierLike"/> <ref name="mei_model.respLikePart"/> <ref name="mei_model.titleLike"/> <ref name="mei_imprint"/> <ref name="mei_series"/> <ref name="mei_titlePart"/> <ref name="mei_argument"/> <ref name="mei_epigraph"/> <ref name="mei_imprimatur"/> </choice> </define> <define name="mei_model.tuningPart"> <choice> <ref name="mei_course"/> </choice> </define> <define name="mei_accid"> <element name="accid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(accidental) Records a temporary alteration to the pitch of a note.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.accid.anl.attributes"/> <ref name="mei_att.accid.ges.attributes"/> <ref name="mei_att.accid.log.attributes"/> <ref name="mei_att.accid.vis.attributes"/> <empty/> </element> </define> <define name="mei_actor"> <element name="actor"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of an actor appearing within a cast list.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_address"> <element name="address"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a postal address, for example of a publisher, an organization, or an individual.</a:documentation> <choice> <oneOrMore> <ref name="mei_addrLine"/> </oneOrMore> <oneOrMore> <ref name="mei_model.addressPart"/> </oneOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_addrLine"> <element name="addrLine"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(address line) Single line of a postal address.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_ambitus"> <element name="ambitus"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Range of a voice, instrument or piece.</a:documentation> <ref name="mei_ambNote"/> <ref name="mei_ambNote"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.ambitus.anl.attributes"/> <ref name="mei_att.ambitus.ges.attributes"/> <ref name="mei_att.ambitus.log.attributes"/> <ref name="mei_att.ambitus.vis.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_ambNote"> <element name="ambNote"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Highest or lowest pitch in a score, staff, or layer.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.ambNote.anl.attributes"/> <ref name="mei_att.ambNote.ges.attributes"/> <ref name="mei_att.ambNote.log.attributes"/> <ref name="mei_att.ambNote.vis.attributes"/> <empty/> </element> </define> <define name="mei_analytic"> <element name="analytic"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(analytic level) Contains bibliographic elements describing an item (e.g., an article or poem) published within a monograph or journal and not as an independent publication.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.respLikePart"/> <ref name="mei_respStmt"/> <ref name="mei_title"/> </choice> </zeroOrMore> <zeroOrMore> <ref name="mei_biblScope"/> </zeroOrMore> <optional> <ref name="mei_identifier"/> </optional> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.componentType.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.recordType.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_annot"> <element name="annot"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(annotation) Provides a statement explaining the text or indicating the basis for an assertion.</a:documentation> <choice> <group> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.textComponentLike"/> </zeroOrMore> </group> <zeroOrMore> <choice> <text/> <ref name="mei_model.editLike"/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> </choice> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-annot-Check_annot_data-constraint-rule-141"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:annot[@data]"> <sch:assert test="ancestor::mei:notesStmt">The @data attribute may only occur on an annotation within the notesStmt element.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.audience.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.plist.attributes"/> <ref name="mei_att.source.attributes"/> <ref name="mei_att.targetEval.attributes"/> <ref name="mei_att.annot.anl.attributes"/> <ref name="mei_att.annot.ges.attributes"/> <ref name="mei_att.annot.log.attributes"/> <ref name="mei_att.annot.vis.attributes"/> <empty/> </element> </define> <define name="mei_arranger"> <element name="arranger"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A person or organization who transcribes a musical composition, usually for a different medium from that of the original; in an arrangement the musical substance remains essentially unchanged.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_artic"> <element name="artic"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(articulation) An indication of how to play a note or chord.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.artic.anl.attributes"/> <ref name="mei_att.artic.ges.attributes"/> <ref name="mei_att.artic.log.attributes"/> <ref name="mei_att.artic.vis.attributes"/> <empty/> </element> </define> <define name="mei_author"> <element name="author"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The name of the creator of the intellectual content of a non-musical, literary work.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_barLine"> <element name="barLine"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Vertical line drawn through one or more staves that divides musical notation into metrical units.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.targetEval.attributes"/> <ref name="mei_att.barLine.anl.attributes"/> <ref name="mei_att.barLine.ges.attributes"/> <ref name="mei_att.barLine.log.attributes"/> <ref name="mei_att.barLine.vis.attributes"/> <empty/> </element> </define> <define name="mei_bibl"> <element name="bibl"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(bibliographic reference) Provides a loosely-structured bibliographic citation in which the sub-components may or may not be explicitly marked.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.biblPart"/> <ref name="mei_model.imprintPart"/> <ref name="mei_model.textPhraseLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.pointing.attributes"/> <empty/> </element> </define> <define name="mei_biblList"> <element name="biblList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">List of bibliographic references.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <group> <optional> <ref name="mei_label"/> </optional> <ref name="mei_model.biblLike"/> </group> <ref name="mei_biblList"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-biblList-checkBiblLabels-constraint-rule-142"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:biblList[mei:label]"> <sch:assert role="warning" test="count(mei:label) = count(mei:bibl)">When labels are used, usually each bibliographic item has one.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_biblScope"> <element name="biblScope"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(scope of citation) Defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.extent.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="from"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <data type="token"/> </attribute> </optional> <optional> <attribute name="to"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <data type="token"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_biblStruct"> <element name="biblStruct"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(structured bibliographic citation) Contains a bibliographic citation in which bibliographic sub-elements must appear in a specified order.</a:documentation> <group> <zeroOrMore> <ref name="mei_analytic"/> </zeroOrMore> <oneOrMore> <ref name="mei_monogr"/> <zeroOrMore> <ref name="mei_series"/> </zeroOrMore> </oneOrMore> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_identifier"/> <ref name="mei_relatedItem"/> </choice> </zeroOrMore> </group> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.recordType.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_body"> <element name="body"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains the whole of a single musical text, excluding any front or back matter.</a:documentation> <oneOrMore> <choice> <ref name="mei_model.divLike"/> <ref name="mei_model.mdivLike"/> </choice> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_caesura"> <element name="caesura"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Break, pause, or interruption in the normal tempo of a composition. Typically indicated by "railroad tracks", i.e., two diagonal slashes.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-caesura-caesura_start-type_attributes_required-constraint-rule-143"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:caesura"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.caesura.anl.attributes"/> <ref name="mei_att.caesura.ges.attributes"/> <ref name="mei_att.caesura.log.attributes"/> <ref name="mei_att.caesura.vis.attributes"/> <empty/> </element> </define> <define name="mei_caption"> <element name="caption"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A label which accompanies an illustration or a table.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_castGrp"> <element name="castGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(cast group) Groups one or more individual castItem elements within a cast list.</a:documentation> <oneOrMore> <choice> <ref name="mei_castItem"/> <ref name="mei_castGrp"/> <ref name="mei_roleDesc"/> </choice> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_castItem"> <element name="castItem"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a single entry within a cast list, describing either a single role or a list of non-speaking roles.</a:documentation> <oneOrMore> <choice> <text/> <ref name="mei_role"/> <ref name="mei_roleDesc"/> <ref name="mei_actor"/> <ref name="mei_perfRes"/> </choice> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_castList"> <element name="castList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a single cast list or dramatis personae.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <choice> <ref name="mei_castItem"/> <ref name="mei_castGrp"/> </choice> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_cb"> <element name="cb"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(column beginning) An empty formatting element that forces text to begin in a new column.</a:documentation> <empty/> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.source.attributes"/> <ref name="mei_att.typed.attributes"/> <attribute name="n"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the column number.</a:documentation> <data type="positiveInteger"/> </attribute> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-cb-n-check_cb-constraint-rule-144"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:cb"> <sch:let name="totalColumns" value="preceding::mei:colLayout[1]/@cols"/> <sch:assert test="preceding::mei:colLayout">Column beginning must be preceded by a colLayout element.</sch:assert> <sch:assert test="@n <= $totalColumns">The value of @n should be less than or equal to the value of @cols (<sch:value-of select="$totalColumns"/>) of the preceding colLayout element.</sch:assert> </sch:rule> </pattern> <empty/> </element> </define> <define name="mei_chord"> <element name="chord"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A simultaneous sounding of two or more notes in the same layer *with the same duration*.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.chordPart"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.sylLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_model.verseLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.chord.anl.attributes"/> <ref name="mei_att.chord.ges.attributes"/> <ref name="mei_att.chord.log.attributes"/> <ref name="mei_att.chord.vis.attributes"/> <empty/> </element> </define> <define name="mei_clef"> <element name="clef"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indication of the exact location of a particular note on the staff and, therefore, the other notes as well.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-clef-Clef_position_lines-constraint-rule-145"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:clef[matches(@shape, '[FCG]')][ancestor::mei:staffDef[@lines]]"> <sch:let name="thisstaff" value="ancestor::mei:staffDef/@n"/> <sch:assert test="number(@line) <= number(ancestor::mei:staffDef[@n=$thisstaff and @lines][1]/@lines)">The clef position must be less than or equal to the number of lines of an ancestor staff.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-clef-Clef_position_nolines-constraint-rule-146"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:clef[ancestor::mei:staffDef[not(@lines)]]"> <sch:let name="thisstaff" value="ancestor::mei:staffDef/@n"/> <sch:assert test="number(@line) <= number(preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines)">The clef position must be less than or equal to the number of lines of a preceding staff.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.event.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.clef.anl.attributes"/> <ref name="mei_att.clef.ges.attributes"/> <ref name="mei_att.clef.log.attributes"/> <ref name="mei_att.clef.vis.attributes"/> <empty/> </element> </define> <define name="mei_clefGrp"> <element name="clefGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(clef group) A set of simultaneously-occurring clefs.</a:documentation> <oneOrMore> <ref name="mei_clef"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.event.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.clefGrp.anl.attributes"/> <ref name="mei_att.clefGrp.ges.attributes"/> <ref name="mei_att.clefGrp.log.attributes"/> <ref name="mei_att.clefGrp.vis.attributes"/> <empty/> </element> </define> <define name="mei_colLayout"> <element name="colLayout"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(column layout) An empty formatting element that signals the start of columnar layout.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.source.attributes"/> <attribute name="cols"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the number of columns.</a:documentation> <data type="positiveInteger"/> </attribute> <empty/> </element> </define> <define name="mei_composer"> <element name="composer"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The name of the creator of the intellectual content of a musical work.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_contributor"> <element name="contributor"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Names of individuals, institutions, or organizations responsible for contributions to the intellectual content of a work, where the specialized elements for authors, editors, etc. do not suffice or do not apply.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-contributor-check_contributor_role-constraint-rule-147"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:contributor"> <sch:assert test="not(matches(normalize-space(lower-case(@role)), '(arranger|author|composer|contributor|editor|funder|librettist|lyricist|sponsor)'))">The value of @role must not contain the name of another element available in this context.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="role"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to specify the contributor’s function.</a:documentation> <text/> </attribute> </optional> <empty/> </element> </define> <define name="mei_creation"> <element name="creation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Non-bibliographic details of the creation of an intellectual entity, in narrative form, such as the date, place, and circumstances of its composition. More detailed information may be captured within the history element.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <choice> <text/> <ref name="mei_dedication"/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_custos"> <element name="custos"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Symbol placed at the end of a line of music to indicate the first note of the next line. Sometimes called a "direct".</a:documentation> <zeroOrMore> <ref name="mei_accid"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.source.attributes"/> <ref name="mei_att.custos.anl.attributes"/> <ref name="mei_att.custos.ges.attributes"/> <ref name="mei_att.custos.log.attributes"/> <ref name="mei_att.custos.vis.attributes"/> <empty/> </element> </define> <define name="mei_date"> <element name="date"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A string identifying a point in time or the time period between two such points.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.calendared.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_dedicatee"> <element name="dedicatee"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Entity to whom a creative work is formally offered.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-dedicatee-check_dedicatee-constraint-rule-148"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:dedicatee"> <sch:assert test="not(ancestor::mei:dedicatee)">The dedicatee element may not be recursively nested.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_depth"> <element name="depth"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Description of a measurement taken through a three-dimensional object.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.quantity.attributes"/> <empty/> </element> </define> <define name="mei_desc"> <element name="desc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(description) Container for text that briefly describes the feature to which it is attached, including its intended usage, purpose, or application as appropriate.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.source.attributes"/> <empty/> </element> </define> <define name="mei_dim"> <element name="dim"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(dimension) Any single dimensional specification.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.quantity.attributes"/> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Aspect of the object being measured. Suggested values include: 1] alt; 2] angle; 3] circum; 4] depth; 5] diameter; 6] elevation; 7] height; 8] length; 9] radius; 10] relief; 11] width</a:documentation> <choice> <value>alt</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Altitude. Refers to the distance above a given level, commonly mean sea level.</a:documentation> <value>angle</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Angle. Amount of rotation needed to bring one line or plane into coincidence with another.</a:documentation> <value>circum</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Circumference of a circular area.</a:documentation> <value>depth</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dimension taken through an object or body of material, usually downward from an upper surface, horizontally inward from an outer surface, or from top to bottom of something regarded as one of several layers.</a:documentation> <value>diameter</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Length of a straight line passing through the center of a circle or sphere and meeting the circumference or surface at each end.</a:documentation> <value>elevation</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Distance to which something has been raised or uplifted above a level, e.g., a hill’s elevation above the surrounding country.</a:documentation> <value>height</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Denotes extent upward (as from foot to head) as well as any measurable distance above a given level.</a:documentation> <value>length</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Measure of the greatest dimension of a plane or solid figure.</a:documentation> <value>radius</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Half the diameter of a circular, spherical, or cylindrical object.</a:documentation> <value>relief</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Projection of a figure or part from the plane on which it is formed.</a:documentation> <value>width</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Extent from side to side; breadth.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> <empty/> </element> </define> <define name="mei_dimensions"> <element name="dimensions"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Information about the physical size of an entity; usually includes numerical data.</a:documentation> <ref name="mei_macro.struc-unstrucContent"/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-dimensions-check_dimensions-constraint-rule-149"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:physDesc/mei:dimensions"> <sch:assert test="not(count(mei:depth) > 1)">The depth element may only appear once.</sch:assert> <sch:assert test="not(count(mei:height) > 1)">The height element may only appear once.</sch:assert> <sch:assert test="not(count(mei:width) > 1)">The width element may only appear once.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.measurement.attributes"/> <empty/> </element> </define> <define name="mei_dir"> <element name="dir"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(directive) An instruction expressed as a combination of text and symbols, typically above, below, or between staves, but not on the staff — that is not encoded elsewhere in more specific elements, like <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><tempo></code>, <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><dynam></code> or <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><repeatMark></code>.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-dir-dir_start-type_attributes_required-constraint-rule-150"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:dir[not(ancestor::mei:syllable)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.dir.anl.attributes"/> <ref name="mei_att.dir.ges.attributes"/> <ref name="mei_att.dir.log.attributes"/> <ref name="mei_att.dir.vis.attributes"/> <empty/> </element> </define> <define name="mei_distributor"> <element name="distributor"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Person or agency, other than a publisher, from which access (including electronic access) to a bibliographic entity may be obtained.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_div"> <element name="div"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(division) Major structural division of text, such as a preface, chapter or section.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.headLike"/> <ref name="mei_model.milestoneLike.text"/> </choice> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_model.divLike"/> <ref name="mei_model.figureLike"/> <ref name="mei_model.textComponentLike"/> <ref name="mei_sp"/> </choice> <zeroOrMore> <ref name="mei_model.milestoneLike.text"/> </zeroOrMore> </zeroOrMore> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.classed.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Characterizes the textual division in some sense, using any convenient classification scheme or typology that employs single-token labels. Suggested values include: 1] abstract; 2] ack; 3] appendix; 4] bibliography; 5] colophon; 6] contents; 7] dedication; 8] frontispiece; 9] glossary; 10] half-title; 11] index; 12] annotations; 13] preface</a:documentation> <choice> <value>abstract</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A summary of the content of a text as continuous prose.</a:documentation> <value>ack</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A formal declaration of acknowledgment by the author in which persons and institutions are thanked for their part in the creation of a text.</a:documentation> <value>appendix</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An ancillary self-contained section of a work, often providing additional but in some sense extra-canonical text.</a:documentation> <value>bibliography</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A list of bibliographic citations.</a:documentation> <value>colophon</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A statement appearing at the end of a book describing the conditions of its physical production.</a:documentation> <value>contents</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A table of contents, specifying the structure of a work and listing its constituents. The list element should be used to mark its structure.</a:documentation> <value>dedication</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A formal offering or dedication of a text to one or more persons or institutions by the author.</a:documentation> <value>frontispiece</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A pictorial frontispiece, possibly including some text.</a:documentation> <value>glossary</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A list of terms associated with definition texts (‘glosses’).</a:documentation> <value>half-title</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A page containing only the title of a book — as opposed to the title page, which also lists subtitle, author, imprint and similar data.</a:documentation> <value>index</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Any form of index to the work.</a:documentation> <value>annotations</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A section in which annotations on the text are gathered together.</a:documentation> <value>preface</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A foreword or preface addressed to the reader in which the author or publisher explains the content, purpose, or origin of the text.</a:documentation> <data type="NMTOKENS"/> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_dot"> <element name="dot"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Dot of augmentation or division.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.dot.anl.attributes"/> <ref name="mei_att.dot.ges.attributes"/> <ref name="mei_att.dot.log.attributes"/> <ref name="mei_att.dot.vis.attributes"/> <empty/> </element> </define> <define name="mei_dynam"> <element name="dynam"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(dynamic) Indication of the volume of a note, phrase, or section of music.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-dynam-dynam_start-type_attributes_required-constraint-rule-151"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:dynam"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real"> Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-dynam-dynam_end-type_attributes-constraint-rule-152"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:dynam[@val2]"> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">When @val2 is present, either @dur, @dur.ges, @endid, or @tstamp2 must also be present.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.dynam.anl.attributes"/> <ref name="mei_att.dynam.ges.attributes"/> <ref name="mei_att.dynam.log.attributes"/> <ref name="mei_att.dynam.vis.attributes"/> <empty/> </element> </define> <define name="mei_edition"> <element name="edition"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(edition designation) A word or text phrase that indicates a difference in either content or form between the item being described and a related item previously issued by the same publisher/distributor (e.g., 2nd edition, version 2.0, etc.), or simultaneously issued by either the same publisher/distributor or another publisher/distributor (e.g., large print edition, British edition, etc.).</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_editor"/> <ref name="mei_respStmt"/> <ref name="mei_textLang"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_editor"> <element name="editor"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The name of the individual(s), institution(s) or organization(s) acting in an editorial capacity.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.nameLike.agent"/> <ref name="mei_name"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_ending"> <element name="ending"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Alternative ending for a repeated passage of music; i.e., prima volta, seconda volta, etc.</a:documentation> <zeroOrMore> <ref name="mei_expansion"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.relationLike"/> <ref name="mei_model.scoreDefLike"/> <ref name="mei_model.sectionLike"/> <ref name="mei_model.sectionPart.cmn"/> <ref name="mei_model.sectionPart.mensuralAndNeumes"/> <ref name="mei_model.staffDefLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.targetEval.attributes"/> <ref name="mei_att.ending.anl.attributes"/> <ref name="mei_att.ending.ges.attributes"/> <ref name="mei_att.ending.log.attributes"/> <ref name="mei_att.ending.vis.attributes"/> <empty/> </element> </define> <define name="mei_event"> <element name="event"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a free-text event description.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <choice> <zeroOrMore> <choice> <ref name="mei_model.eventPart"/> <ref name="mei_castList"/> <ref name="mei_eventList"/> </choice> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_model.pLike"/> <ref name="mei_model.tableLike"/> <ref name="mei_list"/> </choice> </zeroOrMore> </choice> <zeroOrMore> <ref name="mei_biblList"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.calendared.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_eventList"> <element name="eventList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains historical information given as a sequence of significant past events.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <group> <optional> <choice> <ref name="mei_name"/> <ref name="mei_model.addressLike"/> <ref name="mei_model.dateLike"/> <ref name="mei_model.nameLike.agent"/> <ref name="mei_model.nameLike.geogName"/> </choice> </optional> <choice> <ref name="mei_event"/> <ref name="mei_eventList"/> </choice> </group> </zeroOrMore> <zeroOrMore> <ref name="mei_biblList"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <empty/> </element> </define> <define name="mei_expansion"> <element name="expansion"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates how a section may be programmatically expanded into its 'through-composed' form.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.plist.attributes"/> <ref name="mei_att.source.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_extent"> <element name="extent"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to express size in terms other than physical dimensions, such as number of pages, records, bytes, physical components, etc.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.quantity.attributes"/> <empty/> </element> </define> <define name="mei_extData"> <element name="extData"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(extended data) Provides a container element for non-MEI data formats.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_macro.anyXML"/> </choice> </zeroOrMore> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.typed.attributes"/> <ref name="mei_att.whitespace.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.internetMedia.attributes"/> <empty/> </element> </define> <define name="mei_funder"> <element name="funder"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Names of individuals, institutions, or organizations responsible for funding. Funders provide financial support for a project; they are distinct from sponsors, who provide intellectual support and authority.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_genre"> <element name="genre"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Term or terms that designate a category characterizing a particular style, form, or content.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_group"> <element name="group"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a composite musical text, grouping together a sequence of distinct musical texts (or groups of such musical texts) which are regarded as a unit for some purpose, for example, the collected works of a composer.</a:documentation> <choice> <ref name="mei_music"/> <ref name="mei_group"/> </choice> <zeroOrMore> <choice> <ref name="mei_music"/> <ref name="mei_group"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_grpSym"> <element name="grpSym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(group symbol) A brace or bracket used to group two or more staves of a score or part.</a:documentation> <zeroOrMore> <ref name="mei_model.labelLike"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-grpSym-check_grpSym_attributes_scoreDef-constraint-rule-153"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:grpSym[parent::mei:scoreDef]"> <sch:assert test="@startid and @endid and @level">In scoreDef, grpSym must have startid, endid, and level attributes.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-grpSym-check_grpSym_attributes_staffDef-constraint-rule-154"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:grpSym[parent::mei:staffGrp]"> <sch:assert test="not(@startid or @endid or @level)">In staffGrp, grpSym must not have startid, endid, or level attributes.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.grpSym.anl.attributes"/> <ref name="mei_att.grpSym.ges.attributes"/> <ref name="mei_att.grpSym.log.attributes"/> <ref name="mei_att.grpSym.vis.attributes"/> <empty/> </element> </define> <define name="mei_head"> <element name="head"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(heading) Contains any heading, for example, the title of a section of text, or the heading of a list.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.xy.attributes"/> <empty/> </element> </define> <define name="mei_height"> <element name="height"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Description of the vertical size of an object.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.quantity.attributes"/> <empty/> </element> </define> <define name="mei_identifier"> <element name="identifier"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An alpha-numeric string that establishes the identity of the described material.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <empty/> </element> </define> <define name="mei_imprint"> <element name="imprint"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Information relating to the publication or distribution of a bibliographic item.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.imprintPart"/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_respStmt"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <empty/> </element> </define> <define name="mei_incip"> <element name="incip"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(incipit) The opening music and/or words of a musical or textual work.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <optional> <ref name="mei_tempo"/> </optional> <optional> <ref name="mei_role"/> </optional> <optional> <choice> <ref name="mei_clef"/> <ref name="mei_clefGrp"/> </choice> </optional> <optional> <choice> <ref name="mei_perfRes"/> <ref name="mei_perfResList"/> </choice> </optional> <optional> <ref name="mei_key"/> </optional> <optional> <ref name="mei_meter"/> </optional> <optional> <ref name="mei_mensuration"/> </optional> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.graphicLike"/> <ref name="mei_model.scoreLike"/> <ref name="mei_incipCode"/> <ref name="mei_incipText"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <empty/> </element> </define> <define name="mei_keyAccid"> <element name="keyAccid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(key accidental) Accidental in a key signature.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-keyAccid-Check_keyAccidPlacement-constraint-rule-155"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:keyAccid"> <sch:assert test="(@x and @y) or @pname or @loc">One of the following is required: @x and @y attribute pair, @pname attribute, or @loc attribute. </sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.keyAccid.anl.attributes"/> <ref name="mei_att.keyAccid.ges.attributes"/> <ref name="mei_att.keyAccid.log.attributes"/> <ref name="mei_att.keyAccid.vis.attributes"/> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies whether enharmonic (written) values or implicit ("perform-able") values are allowed.</a:documentation> <choice> <value>implicit</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Only performed values (sharp, flat, natural) allowed.</a:documentation> <value>explicit</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">All enharmonic (written) values allowed.</a:documentation> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_keySig"> <element name="keySig"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(key signature) Written key signature.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.keyAccidLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-keySig-check_keyAccid_oct-constraint-rule-156"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:keySig[mei:keyAccid[@oct]]"> <sch:assert test="count(mei:keyAccid[@oct]) = count(mei:keyAccid)">If the @oct attribute appears on any keyAccid element, it must be provided on all keyAccid elements.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-keySig-check_keySig_editorial-constraint-rule-157"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:keySig/mei:*[local-name() eq 'add' or local-name() eq 'corr' or local-name() eq 'damage' or local-name() eq 'del' or local-name() eq 'orig' or local-name() eq 'reg' or local-name() eq 'restore' or local-name() eq 'sic' or local-name() eq 'supplied' or local-name() eq 'unclear']"> <sch:assert test="count(mei:keyAccid) = count(mei:*)">Only keyAccid elements are allowed here.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.keySig.anl.attributes"/> <ref name="mei_att.keySig.ges.attributes"/> <ref name="mei_att.keySig.log.attributes"/> <ref name="mei_att.keySig.vis.attributes"/> <empty/> </element> </define> <define name="mei_label"> <element name="label"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A container for document text that identifies the feature to which it is attached. For a "tool tip" or other generated label, use the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@label</code> attribute.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.source.attributes"/> <empty/> </element> </define> <define name="mei_labelAbbr"> <element name="labelAbbr"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A label on the pages following the first.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.source.attributes"/> <empty/> </element> </define> <define name="mei_layer"> <element name="layer"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An independent stream of events on a staff.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.layerPart"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_divLine"/> </choice> </zeroOrMore> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.nInteger.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.typed.attributes"/> <ref name="mei_att.layer.anl.attributes"/> <ref name="mei_att.layer.ges.attributes"/> <ref name="mei_att.layer.log.attributes"/> <ref name="mei_att.layer.vis.attributes"/> <empty/> </element> </define> <define name="mei_layerDef"> <element name="layerDef"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(layer definition) Container for layer meta-information.</a:documentation> <zeroOrMore> <ref name="mei_model.labelLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_model.instrDefLike"/> <ref name="mei_model.meterSigLike"/> </choice> </zeroOrMore> <optional> <ref name="mei_ambitus"/> </optional> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.nInteger.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.typed.attributes"/> <ref name="mei_att.layerDef.anl.attributes"/> <ref name="mei_att.layerDef.ges.attributes"/> <ref name="mei_att.layerDef.log.attributes"/> <ref name="mei_att.layerDef.vis.attributes"/> <empty/> </element> </define> <define name="mei_lb"> <element name="lb"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(line beginning) An empty formatting element that forces text to begin on a new line.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.source.attributes"/> <empty/> </element> </define> <define name="mei_lg"> <element name="lg"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(line group) May be used for any section of text that is organized as a group of lines; however, it is most often used for a group of verse lines functioning as a formal unit, e.g., a stanza, refrain, verse paragraph, etc.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <choice> <ref name="mei_model.lLike"/> <ref name="mei_model.lgLike"/> </choice> <zeroOrMore> <choice> <ref name="mei_model.lLike"/> <ref name="mei_model.lgLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.lyrics.anl.attributes"/> <ref name="mei_att.lyrics.ges.attributes"/> <ref name="mei_att.lyrics.log.attributes"/> <ref name="mei_att.lyrics.vis.attributes"/> <empty/> </element> </define> <define name="mei_librettist"> <element name="librettist"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Person or organization who is a writer of the text of an opera, oratorio, etc.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_lyricist"> <element name="lyricist"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Person or organization who is a writer of the text of a song.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_mdiv"> <element name="mdiv"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(musical division) Contains a subdivision of the body of a musical text.</a:documentation> <choice> <group> <optional> <ref name="mei_model.scoreLike"/> </optional> <optional> <ref name="mei_model.partsLike"/> </optional> </group> <zeroOrMore> <ref name="mei_model.mdivLike"/> </zeroOrMore> </choice> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.mdiv.anl.attributes"/> <ref name="mei_att.mdiv.ges.attributes"/> <ref name="mei_att.mdiv.log.attributes"/> <ref name="mei_att.mdiv.vis.attributes"/> <empty/> </element> </define> <define name="mei_mei"> <element name="mei"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a single MEI-conformant document, consisting of an MEI header and a musical text, either in isolation or as part of an meiCorpus element.</a:documentation> <ref name="mei_meiHead"/> <ref name="mei_music"/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-mei-Check_staff-constraint-rule-158"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:*[@staff]"> <sch:assert test="every $i in tokenize(normalize-space(@staff), '\s+') satisfies $i=//mei:staffDef/@n">The values in @staff must correspond to @n attribute of a staffDef element.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.id.attributes"/> <ref name="mei_att.meiVersion.attributes"/> <ref name="mei_att.responsibility.attributes"/> <empty/> </element> </define> <define name="mei_monogr"> <element name="monogr"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(monograph level) Contains bibliographic elements describing an item, for example, a published book or journal, score, recording, or an unpublished manuscript.</a:documentation> <group> <optional> <choice> <group> <choice> <ref name="mei_model.respLikePart"/> <ref name="mei_respStmt"/> </choice> <zeroOrMore> <choice> <ref name="mei_model.respLikePart"/> <ref name="mei_respStmt"/> </choice> </zeroOrMore> <oneOrMore> <ref name="mei_model.titleLike"/> </oneOrMore> <zeroOrMore> <choice> <ref name="mei_editor"/> <ref name="mei_model.identifierLike"/> <ref name="mei_respStmt"/> </choice> </zeroOrMore> </group> <group> <oneOrMore> <ref name="mei_model.titleLike"/> </oneOrMore> <zeroOrMore> <choice> <ref name="mei_model.respLikePart"/> <ref name="mei_model.identifierLike"/> <ref name="mei_respStmt"/> </choice> </zeroOrMore> </group> </choice> </optional> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_corpName"/> </choice> </zeroOrMore> <zeroOrMore> <ref name="mei_model.editionLike"/> <zeroOrMore> <choice> <ref name="mei_model.identifierLike"/> <ref name="mei_editor"/> <ref name="mei_respStmt"/> </choice> </zeroOrMore> </zeroOrMore> <ref name="mei_imprint"/> <zeroOrMore> <choice> <ref name="mei_imprint"/> <ref name="mei_extent"/> <ref name="mei_biblScope"/> </choice> </zeroOrMore> </group> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.recordType.attributes"/> <ref name="mei_att.targetEval.attributes"/> <empty/> </element> </define> <define name="mei_music"> <element name="music"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a single musical text of any kind, whether unitary or composite, for example, an etude, opera, song cycle, symphony, or anthology of piano solos.</a:documentation> <zeroOrMore> <ref name="mei_model.resourceLike"/> </zeroOrMore> <ref name="mei_macro.musicPart"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.meiVersion.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_name"> <element name="name"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Proper noun or noun phrase.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-name-nameParts-constraint-rule-159"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:name"> <sch:assert role="warning" test="not(mei:geogName or mei:persName or mei:corpName)">Recommended practice is to use name elements to capture sub-parts of a generic name.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.classed.attributes"/> <ref name="mei_att.edit.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.name.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Characterizes the name in some sense, using any convenient classification scheme or typology that employs single-token labels. Suggested values include: 1] person; 2] corporation; 3] location; 4] process; 5] style; 6] time</a:documentation> <choice> <value>person</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A personal name.</a:documentation> <value>corporation</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of a corporate body.</a:documentation> <value>location</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of a location.</a:documentation> <value>process</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of a process or software application.</a:documentation> <value>style</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of a musical style; i.e., form, genre, technique, etc.</a:documentation> <value>time</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of a period of time.</a:documentation> <data type="NMTOKENS"/> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_note"> <element name="note"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A single pitched event. </a:documentation> <zeroOrMore> <choice> <ref name="mei_model.noteModifierLike"/> <ref name="mei_model.verseLike"/> <ref name="mei_model.sylLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_plica"/> <ref name="mei_stem"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.note.anl.attributes"/> <ref name="mei_att.note.ges.attributes"/> <ref name="mei_att.note.log.attributes"/> <ref name="mei_att.note.vis.attributes"/> <empty/> </element> </define> <define name="mei_num"> <element name="num"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number) Numeric information in any form.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.measurement.attributes"/> <ref name="mei_att.ranging.attributes"/> <optional> <attribute name="value"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Numeric value capturing a measurement or count. Can only be interpreted in combination with the unit attribute.</a:documentation> <data type="decimal"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_ornam"> <element name="ornam"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An element indicating an ornament that is not a mordent, turn, or trill. </a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-ornam-ornam_start-type_attributes_required-constraint-rule-160"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:ornam"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.ornam.anl.attributes"/> <ref name="mei_att.ornam.ges.attributes"/> <ref name="mei_att.ornam.log.attributes"/> <ref name="mei_att.ornam.vis.attributes"/> <empty/> </element> </define> <define name="mei_p"> <element name="p"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(paragraph) One or more text phrases that form a logical prose passage.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.paracontentPart"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.xy.attributes"/> <empty/> </element> </define> <define name="mei_pad"> <element name="pad"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(padding) An indication of extra visual space between notational elements.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.pad.anl.attributes"/> <ref name="mei_att.pad.ges.attributes"/> <ref name="mei_att.pad.log.attributes"/> <ref name="mei_att.pad.vis.attributes"/> <empty/> </element> </define> <define name="mei_part"> <element name="part"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">An alternative visual rendition of the score from the point of view of a particular performer (or group of performers).</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.scoreDefLike"/> <ref name="mei_model.scorePart"/> <ref name="mei_model.staffDefLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.part.anl.attributes"/> <ref name="mei_att.part.ges.attributes"/> <ref name="mei_att.part.log.attributes"/> <ref name="mei_att.part.vis.attributes"/> <empty/> </element> </define> <define name="mei_parts"> <element name="parts"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a container for performers' parts.</a:documentation> <zeroOrMore> <ref name="mei_model.partLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.parts.anl.attributes"/> <ref name="mei_att.parts.ges.attributes"/> <ref name="mei_att.parts.log.attributes"/> <ref name="mei_att.parts.vis.attributes"/> <empty/> </element> </define> <define name="mei_pb"> <element name="pb"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(page beginning) An empty formatting element that forces text to begin on a new page.</a:documentation> <ref name="mei_macro.metaLike.page"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.source.attributes"/> <ref name="mei_att.pb.anl.attributes"/> <ref name="mei_att.pb.ges.attributes"/> <ref name="mei_att.pb.log.attributes"/> <ref name="mei_att.pb.vis.attributes"/> <empty/> </element> </define> <define name="mei_pgDesc"> <element name="pgDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(page description) Contains a brief prose description of the appearance or description of the content of a physical page.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.textComponentLike"/> <ref name="mei_model.annotLike"/> <ref name="mei_model.locrefLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_pgFoot"> <element name="pgFoot"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(page footer) A running footer.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textComponentLike"/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_model.appLike"/> <ref name="mei_anchoredText"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.formework.attributes"/> <ref name="mei_att.horizontalAlign.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_pgHead"> <element name="pgHead"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(page header) A running header.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textComponentLike"/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_model.appLike"/> <ref name="mei_anchoredText"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.formework.attributes"/> <ref name="mei_att.horizontalAlign.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_phrase"> <element name="phrase"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indication of 1) a "unified melodic idea" or 2) performance technique.</a:documentation> <zeroOrMore> <ref name="mei_curve"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-phrase-phrase_start-_and_end-type_attributes_required-constraint-rule-161"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:phrase"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-phrase-phrase_containing_curve-constraint-rule-162"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:phrase[mei:curve[@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2]]"> <sch:assert test="not(@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2)" role="warning">The visual attributes of the phrase (@bezier, @bulge, @curvedir, @lform, @lwidth, @ho, @startho, @endho, @to, @startto, @endto, @vo, @startvo, @endvo, @x, @y, @x2, and @y2) will be overridden by visual attributes of the contained curve elements.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.phrase.anl.attributes"/> <ref name="mei_att.phrase.ges.attributes"/> <ref name="mei_att.phrase.log.attributes"/> <ref name="mei_att.phrase.vis.attributes"/> <empty/> </element> </define> <define name="mei_physLoc"> <element name="physLoc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(physical location) Groups information about the current physical location of a bibliographic item, such as the repository in which it is located and its shelf mark(s), and its previous locations.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <group> <ref name="mei_model.repositoryLike"/> <zeroOrMore> <ref name="mei_model.identifierLike"/> </zeroOrMore> </group> </zeroOrMore> <optional> <ref name="mei_history"/> </optional> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <empty/> </element> </define> <define name="mei_publisher"> <element name="publisher"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of the organization responsible for the publication of a bibliographic item.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_pubPlace"> <element name="pubPlace"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(publication place) Name of the place where a bibliographic item was published.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_recipient"> <element name="recipient"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The name of the individual(s), institution(s) or organization(s) receiving correspondence.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_relatedItem"> <element name="relatedItem"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(related item) Contains or references another bibliographic item which is related to the present one.</a:documentation> <zeroOrMore> <ref name="mei_model.biblLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.targetEval.attributes"/> <attribute name="rel"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the relationship between the entity identified by the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><relatedItem></code> element and the resource described in the parent element, i.e., <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><bibl></code>, <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><source></code> or <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><relatedItem></code>.</a:documentation> <ref name="mei_data.MODSRELATIONSHIP"/> </attribute> <empty/> </element> </define> <define name="mei_relation"> <element name="relation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes a relationship or linkage amongst entities.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-relation-FRBR_relation-constraint-rule-163"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:relationList/mei:relation[parent::mei:work or parent::mei:expression or parent::mei:source or parent::mei:item]"> <sch:assert test="matches(@rel, 'hasAbridgement') or matches(@rel, 'hasAbridgement') or matches(@rel, 'isAbridgementOf') or matches(@rel, 'hasAdaptation') or matches(@rel, 'isAdaptationOf') or matches(@rel, 'hasAlternate') or matches(@rel, 'isAlternateOf') or matches(@rel, 'hasArrangement') or matches(@rel, 'isArrangementOf') or matches(@rel, 'hasComplement') or matches(@rel, 'isComplementOf') or matches(@rel, 'hasEmbodiment') or matches(@rel, 'isEmbodimentOf') or matches(@rel, 'hasExemplar') or matches(@rel, 'isExemplarOf') or matches(@rel, 'hasImitation') or matches(@rel, 'isImitationOf') or matches(@rel, 'hasPart') or matches(@rel, 'isPartOf') or matches(@rel, 'hasRealization') or matches(@rel, 'isRealizationOf') or matches(@rel, 'hasReconfiguration') or matches(@rel, 'isReconfigurationOf') or matches(@rel, 'hasReproduction') or matches(@rel, 'isReproductionOf') or matches(@rel, 'hasRevision') or matches(@rel, 'isRevisionOf') or matches(@rel, 'hasSuccessor') or matches(@rel, 'isSuccessorOf') or matches(@rel, 'hasSummarization') or matches(@rel, 'isSummarizationOf') or matches(@rel, 'hasSupplement') or matches(@rel, 'isSupplementOf') or matches(@rel, 'hasTransformation') or matches(@rel, 'isTransformationOf') or matches(@rel, 'hasTranslation') or matches(@rel, 'isTranslationOf')">Within work, expression, source, or item, the value of the rel attribute must match one of the following: hasAbridgement, isAbridgementOf, hasAdaptation, isAdaptationOf, hasAlternate, isAlternateOf, hasArrangement, isArrangementOf, hasComplement, isComplementOf, hasEmbodiment, isEmbodimentOf, hasExemplar, isExemplarOf, hasImitation, isImitationOf, hasPart, isPartOf, hasRealization, isRealizationOf, hasReconfiguration, isReconfigurationOf, hasReproduction, isReproductionOf, hasRevision, isRevisionOf, hasSuccessor, isSuccessorOf, hasSummarization, isSummarizationOf, hasSupplement, isSupplementOf, hasTransformation, isTransformationOf, hasTranslation, isTranslationOf</sch:assert> <sch:assert test="@target">Within work, expression, source or item, the target attribute must be present.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.plist.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.targetEval.attributes"/> <attribute name="rel"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the relationship between the entities identified by the plist and target attributes.</a:documentation> <ref name="mei_data.RELATIONSHIP"/> </attribute> <empty/> </element> </define> <define name="mei_relationList"> <element name="relationList"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Gathers relation elements.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.relationLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_rend"> <element name="rend"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(render) A formatting element indicating special visual rendering, e.g., bold or italicized, of a text word or phrase.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.color.attributes"/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.extSym.auth.attributes"/> <ref name="mei_att.horizontalAlign.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.textRendition.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.verticalAlign.attributes"/> <ref name="mei_att.whitespace.attributes"/> <optional> <attribute name="rotation"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A positive value for rotation rotates the text in a counter-clockwise fashion, while negative values produce clockwise rotation.</a:documentation> <ref name="mei_data.DEGREES"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_repository"> <element name="repository"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Institution, agency, or individual which holds a bibliographic item.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.name.attributes"/> <empty/> </element> </define> <define name="mei_resp"> <element name="resp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsibility) A phrase describing the nature of intellectual responsibility.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.datable.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_respStmt"> <element name="respStmt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsibility statement) Transcription of text that names one or more individuals, groups, or in rare cases, mechanical processes, responsible for creation, realization, production, funding, or distribution of the intellectual or artistic content.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <choice> <oneOrMore> <oneOrMore> <ref name="mei_resp"/> </oneOrMore> <oneOrMore> <choice> <ref name="mei_model.nameLike.agent"/> <ref name="mei_name"/> </choice> </oneOrMore> </oneOrMore> <oneOrMore> <oneOrMore> <choice> <ref name="mei_model.nameLike.agent"/> <ref name="mei_name"/> </choice> </oneOrMore> <oneOrMore> <ref name="mei_resp"/> </oneOrMore> </oneOrMore> <oneOrMore> <choice> <ref name="mei_model.nameLike.agent"/> <ref name="mei_name"/> </choice> </oneOrMore> </choice> <zeroOrMore> <ref name="mei_annot"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <empty/> </element> </define> <define name="mei_rest"> <element name="rest"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A non-sounding event found in the source being transcribed.</a:documentation> <zeroOrMore> <choice> <ref name="mei_dot"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-rest-Check_restline-constraint-rule-164"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:rest[@line]"> <sch:let name="thisstaff" value="ancestor::mei:staff/@n"/> <sch:assert test="number(@line) <= number(preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines)">The value of @line must be less than or equal to the number of lines on the staff.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.rest.anl.attributes"/> <ref name="mei_att.rest.ges.attributes"/> <ref name="mei_att.rest.log.attributes"/> <ref name="mei_att.rest.vis.attributes"/> <empty/> </element> </define> <define name="mei_role"> <element name="role"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of a dramatic role, as given in a cast list.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_roleDesc"> <element name="roleDesc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(role description) Describes a character’s role in a drama.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_sb"> <element name="sb"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(system beginning) An empty formatting element that forces musical notation to begin on a new line.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.source.attributes"/> <ref name="mei_att.sb.anl.attributes"/> <ref name="mei_att.sb.ges.attributes"/> <ref name="mei_att.sb.log.attributes"/> <ref name="mei_att.sb.vis.attributes"/> <empty/> </element> </define> <define name="mei_score"> <element name="score"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Full score view of the musical content.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.relationLike"/> <ref name="mei_model.scoreDefLike"/> <ref name="mei_model.scorePart"/> <ref name="mei_model.staffDefLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.score.anl.attributes"/> <ref name="mei_att.score.ges.attributes"/> <ref name="mei_att.score.log.attributes"/> <ref name="mei_att.score.vis.attributes"/> <empty/> </element> </define> <define name="mei_scoreDef"> <element name="scoreDef"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(score definition) Container for score meta-information.</a:documentation> <optional> <ref name="mei_model.chordTableLike"/> </optional> <zeroOrMore> <ref name="mei_model.symbolTableLike"/> </zeroOrMore> <optional> <ref name="mei_model.keySigLike"/> </optional> <optional> <ref name="mei_model.meterSigLike"/> </optional> <zeroOrMore> <ref name="mei_pgHead"/> </zeroOrMore> <zeroOrMore> <ref name="mei_pgFoot"/> </zeroOrMore> <optional> <ref name="mei_instrGrp"/> </optional> <optional> <ref name="mei_model.staffGrpLike"/> </optional> <zeroOrMore> <ref name="mei_grpSym"/> </zeroOrMore> <optional> <ref name="mei_ambitus"/> </optional> <ref name="mei_att.common.attributes"/> <ref name="mei_att.scoreDef.anl.attributes"/> <ref name="mei_att.scoreDef.ges.attributes"/> <ref name="mei_att.scoreDef.log.attributes"/> <ref name="mei_att.scoreDef.vis.attributes"/> <empty/> </element> </define> <define name="mei_section"> <element name="section"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Segment of music data.</a:documentation> <zeroOrMore> <ref name="mei_expansion"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.divLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.relationLike"/> <ref name="mei_model.sectionPart"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-section-Check_sectionexpansion-constraint-rule-165"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:section[mei:expansion]"> <sch:assert test="descendant::mei:section|descendant::mei:ending|descendant::mei:rdg">A section containing an expansion element must have descendant section, ending, or rdg elements.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.pointing.attributes"/> <ref name="mei_att.targetEval.attributes"/> <ref name="mei_att.section.anl.attributes"/> <ref name="mei_att.section.ges.attributes"/> <ref name="mei_att.section.log.attributes"/> <ref name="mei_att.section.vis.attributes"/> <empty/> </element> </define> <define name="mei_series"> <element name="series"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains information about the serial publication in which a bibliographic item has appeared.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.identifierLike"/> <ref name="mei_model.locrefLike"/> <ref name="mei_model.milestoneLike.text"/> <ref name="mei_model.titleLike"/> <ref name="mei_editor"/> <ref name="mei_extent"/> <ref name="mei_respStmt"/> <ref name="mei_textLang"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_space"> <element name="space"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A placeholder used to fill an incomplete measure, layer, etc. most often so that the combined duration of the events equals the number of beats in the measure.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.duration.quality.attributes"/> <ref name="mei_att.space.log.attributes"/> <ref name="mei_att.space.vis.attributes"/> <ref name="mei_att.space.ges.attributes"/> <ref name="mei_att.space.anl.attributes"/> <empty/> </element> </define> <define name="mei_speaker"> <element name="speaker"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a specialized form of heading or label, giving the name of one or more speakers in a dramatic text or fragment.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_sponsor"> <element name="sponsor"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Names of sponsoring individuals, organizations or institutions. Sponsors give their intellectual authority to a project; they are to be distinguished from funders, who provide the funding but do not necessarily take intellectual responsibility.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.evidence.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_stack"> <element name="stack"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(stacked text) An inline table with a single column.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="delim"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the delimiter used to mark the portions of text that are to be stacked.</a:documentation> <data type="string"/> </attribute> </optional> <optional> <attribute name="align"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies how the stacked text components should be aligned.</a:documentation> <choice> <value>left</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Left justified.</a:documentation> <value>right</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Right justified.</a:documentation> <value>center</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Centered.</a:documentation> <value>rightdigit</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Aligned on right-most digit.</a:documentation> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_staff"> <element name="staff"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A group of equidistant horizontal lines on which notes are placed in order to represent pitch or a grouping element for individual 'strands' of notes, rests, etc. that may or may not actually be rendered on staff lines; that is, both diastematic and non-diastematic signs.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.annotLike"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.milestoneLike.music"/> <ref name="mei_model.relationLike"/> <ref name="mei_model.staffDefLike"/> <ref name="mei_model.staffPart"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-staff-checkStaff_n-constraint-rule-166"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:staff[@n]"> <sch:let name="thisstaff" value="@n"/> <sch:assert test="preceding::mei:staffDef[@n=$thisstaff] or preceding::mei:staff[@n=$thisstaff]/mei:staffDef or mei:staffDef">There must be a preceding staffDef with a matching value of @n, a preceding staff with a matching @n value containing a staffDef, or a staffDef child element.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.nInteger.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.typed.attributes"/> <ref name="mei_att.staff.log.attributes"/> <ref name="mei_att.staff.vis.attributes"/> <ref name="mei_att.staff.ges.attributes"/> <ref name="mei_att.staff.anl.attributes"/> <empty/> </element> </define> <define name="mei_staffDef"> <element name="staffDef"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(staff definition) Container for staff meta-information.</a:documentation> <zeroOrMore> <ref name="mei_model.labelLike"/> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_model.instrDefLike"/> <ref name="mei_model.layerDefLike"/> <ref name="mei_model.staffDefPart"/> </choice> </zeroOrMore> <optional> <ref name="mei_ambitus"/> </optional> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-staffDef-Check_staffDefn-constraint-rule-167"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:staffDef[not(ancestor::mei:staff)]"> <sch:let name="thisstaff" value="@n"/> <sch:assert test="@n">StaffDef must have an n attribute.</sch:assert> <sch:assert test="@lines or preceding::mei:staffDef[@n=$thisstaff and @lines]"> Either @lines must be present or a preceding staffDef with the same value for @n and @lines must exist.</sch:assert> <sch:assert test="count(mei:clef) + count(mei:clefGrp) < 2">Only one clef or clefGrp is permitted.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-staffDef-Check_ancestor_staff-constraint-rule-168"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:staffDef[ancestor::mei:staff and @n]"> <sch:let name="thisstaff" value="@n"/> <sch:assert test="ancestor::mei:staff/@n eq $thisstaff">@n must have the same value as the current staff.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-staffDef-Check_ancestor_staff_lines-constraint-rule-169"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:staffDef[ancestor::mei:staff and not(@n)]"> <sch:let name="thisstaff" value="ancestor::mei:staff/@n"/> <sch:assert test="@lines or preceding::mei:staffDef[@n=$thisstaff and @lines]"> Either @lines must be present or a preceding staffDef with matching @n value and @lines must exist.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-staffDef-Check_clef_position_staffDef-constraint-rule-170"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:staffDef[@clef.line and @lines]"> <sch:assert test="number(@clef.line) <= number(@lines)">The clef position must be less than or equal to the number of lines on the staff.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-staffDef-Check_clef_position_staffDef_nolines-constraint-rule-171"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:staffDef[@clef.line and not(@lines)]"> <sch:let name="thisstaff" value="@n"/> <sch:let name="stafflines" value="preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines"/> <sch:assert test="number(@clef.line) <= number($stafflines)">The clef position must be less than or equal to the number of lines on the staff.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-staffDef-Check_tab_strings_lines-constraint-rule-172"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:staffDef[@tab.strings and @lines]"> <sch:let name="countTokens" value="count(tokenize(normalize-space(@tab.strings), '\s'))"/> <sch:assert test="$countTokens = @lines">The tab.strings attribute must have the same number of values as there are staff lines.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-staffDef-Check_tab_strings_nolines-constraint-rule-173"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:staffDef[@tab.strings and not(@lines)]"> <sch:let name="countTokens" value="count(tokenize(normalize-space(@tab.strings), '\s'))"/> <sch:let name="thisstaff" value="@n"/> <sch:assert test="$countTokens = preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines">The tab.strings attribute must have the same number of values as there are staff lines.</sch:assert> </sch:rule> </pattern> <sch:pattern xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude"> <sch:rule context="mei:staffDef[@lines.color and @lines]"> <sch:let name="countTokens" value="count(tokenize(normalize-space(@lines.color), '\s'))"/> <sch:assert test="$countTokens = 1 or $countTokens = @lines">The lines.color attribute must have either 1) a single value or 2) the same number of values as there are staff lines.</sch:assert> </sch:rule> <sch:rule context="mei:staffDef[@lines.color and not(@lines)]"> <sch:let name="countTokens" value="count(tokenize(normalize-space(@lines.color), '\s'))"/> <sch:let name="thisstaff" value="@n"/> <sch:assert test="$countTokens = 1 or $countTokens = preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines">The lines.color attribute must have either 1) a single value or 2) the same number of values as there are staff lines.</sch:assert> </sch:rule> </sch:pattern> <sch:pattern xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude"> <sch:rule context="mei:staffDef[@ppq][ancestor::mei:scoreDef[@ppq]]"> <sch:let name="staffPPQ" value="@ppq"/> <sch:let name="scorePPQ" value="ancestor::mei:scoreDef[@ppq][1]/@ppq"/> <sch:assert test="($scorePPQ mod $staffPPQ) = 0">The value of ppq must be a factor of the value of ppq on an ancestor scoreDef.</sch:assert> </sch:rule> </sch:pattern> <sch:pattern xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude"> <sch:rule context="mei:staffDef[@ppq][preceding::mei:scoreDef[@ppq]]"> <sch:let name="staffPPQ" value="@ppq"/> <sch:let name="scorePPQ" value="preceding::mei:scoreDef[@ppq][1]/@ppq"/> <sch:assert test="($scorePPQ mod $staffPPQ) = 0">The value of ppq must be a factor of the value of ppq on a preceding scoreDef.</sch:assert> </sch:rule> </sch:pattern> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.nInteger.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.typed.attributes"/> <ref name="mei_att.staffDef.anl.attributes"/> <ref name="mei_att.staffDef.ges.attributes"/> <ref name="mei_att.staffDef.log.attributes"/> <ref name="mei_att.staffDef.vis.attributes"/> <empty/> </element> </define> <define name="mei_staffGrp"> <element name="staffGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(staff group) A group of bracketed or braced staves.</a:documentation> <zeroOrMore> <ref name="mei_grpSym"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.labelLike"/> </zeroOrMore> <zeroOrMore> <ref name="mei_model.instrDefLike"/> </zeroOrMore> <oneOrMore> <choice> <ref name="mei_model.staffGrpLike"/> <ref name="mei_model.staffDefLike"/> </choice> </oneOrMore> <zeroOrMore> <ref name="mei_grpSym"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-staffGrp-Check_staffGrp_unique_staff_n_values-constraint-rule-178"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:staffGrp"> <sch:let name="countstaves" value="count(descendant::mei:staffDef)"/> <sch:let name="countuniqstaves" value="count(distinct-values(descendant::mei:staffDef/@n))"/> <sch:assert test="$countstaves eq $countuniqstaves">Each staffDef must have a unique value for the n attribute.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <ref name="mei_att.staffGrp.anl.attributes"/> <ref name="mei_att.staffGrp.ges.attributes"/> <ref name="mei_att.staffGrp.log.attributes"/> <ref name="mei_att.staffGrp.vis.attributes"/> <empty/> </element> </define> <define name="mei_syl"> <element name="syl"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(syllable) Individual lyric syllable.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.appLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.syl.anl.attributes"/> <ref name="mei_att.syl.ges.attributes"/> <ref name="mei_att.syl.log.attributes"/> <ref name="mei_att.syl.vis.attributes"/> <empty/> </element> </define> <define name="mei_symbol"> <element name="symbol"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A reference to a previously defined symbol.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-symbol-symbolDef_symbol_attributes_required-constraint-rule-179"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:symbol[ancestor::mei:symbolDef]"> <sch:assert test="@startid or (@x and @y)">In the symbolDef context, symbol must have either a startid attribute or x and y attributes.</sch:assert> <sch:assert test="@altsym or @glyph.name or @glyph.num">In the symbolDef context, symbol must have one of the following attributes: altsym, glyph.name, or glyph.num.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.symbol.anl.attributes"/> <ref name="mei_att.symbol.ges.attributes"/> <ref name="mei_att.symbol.log.attributes"/> <ref name="mei_att.symbol.vis.attributes"/> <empty/> </element> </define> <define name="mei_tempo"> <element name="tempo"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Text and symbols descriptive of tempo, mood, or style, e.g., "allarg.", "a tempo", "cantabile", "Moderato", "♩=60", "Moderato ♩ =60").</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-tempo-tempo_in_header_disallow_most_attrs-constraint-rule-180"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:tempo[not(ancestor::mei:score or ancestor::mei:part)]"> <sch:assert test="not(@*[name() != 'analog' and name() != 'class' and name() != 'label' and name() != 'mm' and name() != 'mm.dots' and name() != 'translit' and name() != 'type' and name() != 'mm.unit' and name() != 'n' and name() != 'xml:base' and name() != 'xml:id' and name() != 'xml:lang'])">Only analog, class, label, mm, mm.dots, mm.unit, n, translit, type, xml:base, xml:id, and xml:lang attributes are allowed when tempo is not a descendant of a score or part.</sch:assert> </sch:rule> </pattern> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-tempo-tempo_start-type_attributes_required-constraint-rule-181"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:tempo[not(ancestor::mei:syllable) and not(ancestor::mei:work) and not(ancestor::mei:expression) and not(count(ancestor::mei:*) = 0)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.tempo.anl.attributes"/> <ref name="mei_att.tempo.ges.attributes"/> <ref name="mei_att.tempo.log.attributes"/> <ref name="mei_att.tempo.vis.attributes"/> <empty/> </element> </define> <define name="mei_term"> <element name="term"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Keyword or phrase which describes a resource.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-term-Check_term_dataTarget-constraint-rule-182"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:term[@data]"> <sch:assert test="ancestor::mei:classification">The @data attribute may only occur on a term which is a descendant of a classification element.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.dataPointing.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_textLang"> <element name="textLang"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(text language) Identifies the languages and writing systems within the work described by a bibliographic description, not the language of the description.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="lang.main"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(main language) supplies a code which identifies the chief language used in the bibliographic work.</a:documentation> <data type="language"/> </attribute> </optional> <optional> <attribute name="lang.other"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(other languages) one or more codes identifying any other languages used in the bibliographic work.</a:documentation> <list> <oneOrMore> <data type="language"/> </oneOrMore> </list> </attribute> </optional> <empty/> </element> </define> <define name="mei_title"> <element name="title"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Title of a bibliographic entity.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_macro.titlePart"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> <ref name="mei_titlePart"/> </choice> </zeroOrMore> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.classed.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.filing.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <optional> <attribute name="level"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the bibliographic level of the title.</a:documentation> <choice> <value>a</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Analyzed component, such as an article or chapter, within a larger bibliographic entity.</a:documentation> <value>c</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Collection. A group of items that were not originally published, distributed, or produced together.</a:documentation> <value>d</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Subunit of a collection, e.g., item, folder, box, archival series, subgroup, or subcollection.</a:documentation> <value>i</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Integrating resource, such as a continuously updated loose-leaf service or Web site.</a:documentation> <value>m</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Monograph.</a:documentation> <value>j</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Journal.</a:documentation> <value>s</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Series.</a:documentation> <value>u</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Unpublished (including theses and dissertations unless published by a commercial press).</a:documentation> </choice> </attribute> </optional> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Characterizes the title in some sense, using any convenient classification scheme or typology that employs single-token labels. Suggested values include: 1] main; 2] subordinate; 3] abbreviated; 4] alternative; 5] translated; 6] uniform; 7] desc</a:documentation> <choice> <value>main</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Main title.</a:documentation> <value>subordinate</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Subtitle or title of part.</a:documentation> <value>abbreviated</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Abbreviated form of title.</a:documentation> <value>alternative</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Alternate title by which the item is also known.</a:documentation> <value>translated</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Translated form of title.</a:documentation> <value>uniform</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Collective title.</a:documentation> <value>desc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Descriptive paraphrase of the work.</a:documentation> <data type="NMTOKENS"/> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_titlePage"> <element name="titlePage"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a transcription of the title page of a text.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <oneOrMore> <choice> <ref name="mei_model.figureLike"/> <ref name="mei_model.imprintPart"/> <ref name="mei_model.milestoneLike.text"/> <ref name="mei_model.textComponentLike"/> <ref name="mei_model.titlePagePart"/> <ref name="mei_model.transcriptionLike"/> </choice> </oneOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_titlePart"> <element name="titlePart"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a subsection or division of the title of a bibliographic entity.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_macro.titlePart"/> <ref name="mei_model.editLike"/> <ref name="mei_model.titleLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.authorized.attributes"/> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.classed.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.filing.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.nInteger.attributes"/> <ref name="mei_att.responsibility.attributes"/> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Characterizes this title component in some sense, using any convenient classification scheme or typology that employs single-token labels. Suggested values include: 1] alternative; 2] arrangement; 3] carrier; 4] date; 5] desc; 6] form; 7] key; 8] language; 9] main; 10] name; 11] number; 12] perfmedium; 13] subordinate; 14] translated; 15] version</a:documentation> <choice> <value>alternative</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Alternate title by which the item is also known.</a:documentation> <value>arrangement</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Arranged statement for music. Analogous to MARC 240 subfield o.</a:documentation> <value>carrier</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Medium of the carrier. Analogous to MARC 240 subfield h.</a:documentation> <value>date</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Publication/creation date(s) of work. Analogous to MARC 240 subfield f.</a:documentation> <value>desc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Descriptive paraphrase of the work.</a:documentation> <value>form</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Form subheading. Analogous to MARC 240 subfield k.</a:documentation> <value>key</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Key for music. Analogous to MARC 240 subfield r.</a:documentation> <value>language</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Language of a work. Analogous to MARC 240 subfield l (el).</a:documentation> <value>main</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Main title.</a:documentation> <value>name</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Name of a part or section of a work. Analogous to MARC 240 subfield p.</a:documentation> <value>number</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Standard number designation of a work or of a part or section of a work. Analogous to MARC 240 subfield n.</a:documentation> <value>perfmedium</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Performance medium. Analogous to MARC 240 subfield m.</a:documentation> <value>subordinate</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Subtitle.</a:documentation> <value>translated</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Translated form of title.</a:documentation> <value>version</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Version. Analogous to MARC 240 subfield s.</a:documentation> <data type="NMTOKENS"/> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_tuning"> <element name="tuning"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the tuning of an instrument.</a:documentation> <zeroOrMore> <ref name="mei_model.tuningPart"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.tuning.log.attributes"/> <ref name="mei_att.tuning.vis.attributes"/> <ref name="mei_att.tuning.ges.attributes"/> <ref name="mei_att.tuning.anl.attributes"/> <empty/> </element> </define> <define name="mei_width"> <element name="width"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Description of the horizontal size of an object.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.bibl.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.quantity.attributes"/> <empty/> </element> </define> <define name="mei_att.course.log.attributes"> <ref name="mei_att.accidental.attributes"/> <ref name="mei_att.pitched.attributes"/> </define> <define name="mei_att.scoreDef.vis.tablature.attributes"> <empty/> </define> <define name="mei_att.staffDef.vis.tablature.attributes"> <ref name="mei_att.staffDef.vis.tablature.attribute.tab.align"/> <ref name="mei_att.staffDef.vis.tablature.attribute.tab.anchorline"/> </define> <define name="mei_att.staffDef.vis.tablature.attribute.tab.align"> <optional> <attribute name="tab.align"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Attribute that describes the vertical alignment of tablature symbols. Only applicable in cases where the symbols' vertical position does not communicate other information, such as courses (i.e., only in German lute tablature). Typical values are top and bottom.</a:documentation> <ref name="mei_data.VERTICALALIGNMENT"/> </attribute> </optional> </define> <define name="mei_att.staffDef.vis.tablature.attribute.tab.anchorline"> <optional> <attribute name="tab.anchorline"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used in German lute tablature where the vertical alignment of tab notes is consistent but cannot be identified using a typical value of <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@tab.align</code> (i.e., top or bottom). Specifies the horizontal strand corresponding to the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@lines</code> attribute on <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><staffDef></code> that anchors the vertical position of tab notes. This anchorline is used as the vertical starting position when stacking tab notes into chords. Single tab notes simply occupy this position. Chords grow upwards from this position. If the chord extends further than the number of available horizontal strands (lines) above the anchorline, the entire chord is shifted downward until its top tab note is positioned on the top-most line. (Note that in German lute tablature, the lines are conceptual rather than visible).</a:documentation> <ref name="mei_data.CLEFLINE"/> </attribute> </optional> </define> <define name="mei_att.stringtab.attributes"> <ref name="mei_att.stringtab.attribute.tab.fing"/> <ref name="mei_att.stringtab.attribute.tab.fret"/> <ref name="mei_att.stringtab.attribute.tab.line"/> <ref name="mei_att.stringtab.attribute.tab.string"/> <ref name="mei_att.stringtab.attribute.tab.course"/> </define> <define name="mei_att.stringtab.attribute.tab.fing"> <optional> <attribute name="tab.fing"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute is deprecated and will be removed in a future version. Indicates which finger, if any, should be used to play an individual string. The index, middle, ring, and little fingers are represented by the values 1-4, while t is for the thumb. The values x and o indicate muffled and open strings, respectively.</a:documentation> <ref name="mei_data.FINGER.FRET"/> </attribute> </optional> </define> <define name="mei_att.stringtab.attribute.tab.fret"> <optional> <attribute name="tab.fret"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the location at which a string should be stopped against a fret.</a:documentation> <ref name="mei_data.FRETNUMBER"/> </attribute> </optional> </define> <define name="mei_att.stringtab.attribute.tab.line"> <optional> <attribute name="tab.line"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used in German lute tablature in cases where vertical positioning deviates from the norm which can be specified by <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@tab.align</code>. Indicates the position of the tab note on one of the horizontal strands corresponding to the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@lines</code> attribute on <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><staffDef></code>. (Note that in this case, the lines are conceptual rather than visible).</a:documentation> <ref name="mei_data.CLEFLINE"/> </attribute> </optional> </define> <define name="mei_att.stringtab.attribute.tab.string"> <optional> <attribute name="tab.string"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute is deprecated in favor of <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@tab.course</code> and will be removed in a future version. Records which string is to be played.</a:documentation> <ref name="mei_data.STRINGNUMBER"/> </attribute> </optional> </define> <define name="mei_att.stringtab.attribute.tab.course"> <optional> <attribute name="tab.course"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records which course is to be played.</a:documentation> <ref name="mei_data.COURSENUMBER"/> </attribute> </optional> </define> <define name="mei_att.stringtab.position.attributes"> <ref name="mei_att.stringtab.position.attribute.tab.pos"/> </define> <define name="mei_att.stringtab.position.attribute.tab.pos"> <optional> <attribute name="tab.pos"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records fret position.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.stringtab.tuning.attributes"> <ref name="mei_att.stringtab.tuning.attribute.tab.strings"/> <ref name="mei_att.stringtab.tuning.attribute.tab.courses"/> </define> <define name="mei_att.stringtab.tuning.attribute.tab.strings"> <optional> <attribute name="tab.strings"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute is deprecated in favor of the new <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><tuning></code> element and will be removed in a future version. Provides a *written* pitch and octave for each open string or course of strings.</a:documentation> <list> <oneOrMore> <data type="token"> <param name="pattern">[a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?([a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?)*</param> </data> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.stringtab.tuning.attribute.tab.courses"> <optional> <attribute name="tab.courses"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute is deprecated in favor of the new <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><tuning></code> element and will be removed in a future version. Provides a *written* pitch and octave for each open string or course of strings.</a:documentation> <list> <oneOrMore> <data type="token"> <param name="pattern">[a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?([a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?)*</param> </data> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.tabDurSym.log.attributes"> <ref name="mei_att.augmentDots.attributes"/> <ref name="mei_att.duration.log.attributes"/> <ref name="mei_att.layerIdent.attributes"/> <ref name="mei_att.partIdent.attributes"/> </define> <define name="mei_att.tabGrp.log.attributes"> <ref name="mei_att.augmentDots.attributes"/> <ref name="mei_att.duration.log.attributes"/> <ref name="mei_att.event.attributes"/> </define> <define name="mei_barre"> <element name="barre"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A barre in a chord tablature grid.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.startEndId.attributes"/> <optional> <attribute name="fret"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute is deprecated in favor of <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0">@tab.fret</code>, and will be removed in a future version. Records the location at which the strings should be stopped against a fret in a fretboard diagram. This may or may not be the same as the actual location on the fretboard of the instrument in performance.</a:documentation> <data type="positiveInteger"> <param name="minInclusive">1</param> <param name="maxInclusive">5</param> </data> </attribute> </optional> <empty/> </element> </define> <define name="mei_course"> <element name="course"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(individual course tuning information) Describes the tuning of a course on a stringed instrument (e.g., guitar, lute).</a:documentation> <zeroOrMore> <ref name="mei_string"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.course.log.attributes"/> <ref name="mei_att.course.vis.attributes"/> <ref name="mei_att.course.ges.attributes"/> <ref name="mei_att.course.anl.attributes"/> <empty/> </element> </define> <define name="mei_string"> <element name="string"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(individual string tuning information) Used to modify tuning information given by the course element. Describes the tuning of an individual string within a course on a stringed instrument (e.g., guitar, lute).</a:documentation> <zeroOrMore> <ref name="mei_string"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.course.log.attributes"/> <ref name="mei_att.course.vis.attributes"/> <ref name="mei_att.course.ges.attributes"/> <ref name="mei_att.course.anl.attributes"/> <empty/> </element> </define> <define name="mei_tabDurSym"> <element name="tabDurSym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A visual indication of the duration of a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><tabGrp></code>.</a:documentation> <empty/> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.stringtab.attributes"/> <ref name="mei_att.tabDurSym.log.attributes"/> <ref name="mei_att.tabDurSym.vis.attributes"/> <ref name="mei_att.tabDurSym.ges.attributes"/> <ref name="mei_att.tabDurSym.anl.attributes"/> <empty/> </element> </define> <define name="mei_tabGrp"> <element name="tabGrp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A group of simultaneous tab notes, comparable to a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><chord></code> in CMN. Rarely, may also contain rests, as in some "German" lute tablatures.</a:documentation> <optional> <ref name="mei_tabDurSym"/> </optional> <interleave> <choice> <zeroOrMore> <ref name="mei_note"/> </zeroOrMore> <optional> <ref name="mei_rest"/> </optional> </choice> <zeroOrMore> <choice> <ref name="mei_model.transcriptionLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.appLike"/> </choice> </zeroOrMore> </interleave> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-tabGrp-check_tabGrp_in_beam-constraint-rule-183"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:tabGrp[ancestor::mei:beam]"> <sch:assert test="count(mei:tabDurSym) = 1" role="warning">A tabGrp inside of a beam must contain one tabDurSym.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.tabGrp.log.attributes"/> <ref name="mei_att.tabGrp.vis.attributes"/> <ref name="mei_att.tabGrp.ges.attributes"/> <ref name="mei_att.tabGrp.anl.attributes"/> <empty/> </element> </define> <define name="mei_model.backLike"> <choice> <ref name="mei_back"/> </choice> </define> <define name="mei_model.divLike"> <choice> <ref name="mei_div"/> </choice> </define> <define name="mei_model.frontLike"> <choice> <ref name="mei_front"/> </choice> </define> <define name="mei_model.lgLike"> <choice> <ref name="mei_lg"/> </choice> </define> <define name="mei_model.lgLike_alternation"> <choice> <ref name="mei_lg"/> </choice> </define> <define name="mei_model.lgLike_sequence"> <ref name="mei_lg"/> </define> <define name="mei_model.lgLike_sequenceOptional"> <optional> <ref name="mei_lg"/> </optional> </define> <define name="mei_model.lgLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_lg"/> </zeroOrMore> </define> <define name="mei_model.lgLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_lg"/> </oneOrMore> </define> <define name="mei_model.listLike"> <choice> <ref name="mei_biblList"/> <ref name="mei_castList"/> <ref name="mei_eventList"/> <ref name="mei_list"/> </choice> </define> <define name="mei_model.listLike_alternation"> <choice> <ref name="mei_biblList"/> <ref name="mei_castList"/> <ref name="mei_eventList"/> <ref name="mei_list"/> </choice> </define> <define name="mei_model.listLike_sequence"> <ref name="mei_biblList"/> <ref name="mei_castList"/> <ref name="mei_eventList"/> <ref name="mei_list"/> </define> <define name="mei_model.listLike_sequenceOptional"> <optional> <ref name="mei_biblList"/> </optional> <optional> <ref name="mei_castList"/> </optional> <optional> <ref name="mei_eventList"/> </optional> <optional> <ref name="mei_list"/> </optional> </define> <define name="mei_model.listLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_biblList"/> </zeroOrMore> <zeroOrMore> <ref name="mei_castList"/> </zeroOrMore> <zeroOrMore> <ref name="mei_eventList"/> </zeroOrMore> <zeroOrMore> <ref name="mei_list"/> </zeroOrMore> </define> <define name="mei_model.listLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_biblList"/> </oneOrMore> <oneOrMore> <ref name="mei_castList"/> </oneOrMore> <oneOrMore> <ref name="mei_eventList"/> </oneOrMore> <oneOrMore> <ref name="mei_list"/> </oneOrMore> </define> <define name="mei_model.lLike"> <choice> <ref name="mei_l"/> </choice> </define> <define name="mei_model.qLike"> <choice> <ref name="mei_q"/> </choice> </define> <define name="mei_model.qLike_alternation"> <choice> <ref name="mei_q"/> </choice> </define> <define name="mei_model.qLike_sequence"> <ref name="mei_q"/> </define> <define name="mei_model.qLike_sequenceOptional"> <optional> <ref name="mei_q"/> </optional> </define> <define name="mei_model.qLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_q"/> </zeroOrMore> </define> <define name="mei_model.qLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_q"/> </oneOrMore> </define> <define name="mei_model.quoteLike"> <choice> <ref name="mei_quote"/> </choice> </define> <define name="mei_model.quoteLike_alternation"> <choice> <ref name="mei_quote"/> </choice> </define> <define name="mei_model.quoteLike_sequence"> <ref name="mei_quote"/> </define> <define name="mei_model.quoteLike_sequenceOptional"> <optional> <ref name="mei_quote"/> </optional> </define> <define name="mei_model.quoteLike_sequenceOptionalRepeatable"> <zeroOrMore> <ref name="mei_quote"/> </zeroOrMore> </define> <define name="mei_model.quoteLike_sequenceRepeatable"> <oneOrMore> <ref name="mei_quote"/> </oneOrMore> </define> <define name="mei_argument"> <element name="argument"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a formal list or prose description of topics addressed.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.headLike"/> <ref name="mei_model.milestoneLike.text"/> </choice> </zeroOrMore> <zeroOrMore> <choice> <ref name="mei_model.figureLike"/> <ref name="mei_model.textComponentLike"/> <ref name="mei_sp"/> </choice> <zeroOrMore> <ref name="mei_model.milestoneLike.text"/> </zeroOrMore> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_back"> <element name="back"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(back matter) Contains any appendixes, advertisements, indexes, etc. following the main body of a musical text.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.divLike"/> <ref name="mei_model.frontAndBackPart"/> <ref name="mei_model.milestoneLike.text"/> <ref name="mei_model.relationLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_epigraph"> <element name="epigraph"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a quotation, anonymous or attributed, appearing on a title page.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.paracontentPart"/> <ref name="mei_p"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_front"> <element name="front"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(front matter) Bundles prefatory text found before the start of the musical text.</a:documentation> <zeroOrMore> <choice> <ref name="mei_model.divLike"/> <ref name="mei_model.frontAndBackPart"/> <ref name="mei_model.milestoneLike.text"/> <ref name="mei_model.relationLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_imprimatur"> <element name="imprimatur"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a formal statement authorizing the publication of a work, sometimes required to appear on a title page or its verso.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.paracontentPart"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.metadataPointing.attributes"/> <empty/> </element> </define> <define name="mei_l"> <element name="l"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(line of text) Contains a single line of text within a line group.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.editLike"/> <ref name="mei_model.sylLike"/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <optional> <attribute name="rhythm"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to specify a rhythm for the lyric syllables that differs from that of the notes on the staff, e.g., '4,4,4,4' when the rhythm of the notes is '4.,8,4.,8'.</a:documentation> <data type="string"/> </attribute> </optional> <empty/> </element> </define> <define name="mei_li"> <element name="li"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(list item) Single item in a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><list></code>.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textComponentLike"/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_list"> <element name="list"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A formatting element that contains a series of items separated from one another and arranged in a linear, often vertical, sequence.</a:documentation> <zeroOrMore> <ref name="mei_model.headLike"/> </zeroOrMore> <zeroOrMore> <optional> <ref name="mei_label"/> </optional> <ref name="mei_li"/> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-list-list_type_constraint-constraint-rule-184"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:list[contains(@type,'gloss')]"> <sch:assert test="count(mei:label) = count(mei:li)">In a list of type "gloss" all items must be immediately preceded by a label.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.classed.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.xy.attributes"/> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to indicate the format of a list. In a simple list, <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><li></code> elements are not numbered or bulleted. In a marked list, the sequence of the list items is not critical, and a bullet, box, dash, or other character is displayed at the start of each <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><item></code>. In an ordered list, the sequence of the items is important, and each <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><li></code> is lettered or numbered. Style sheet functions should be used to specify the mark or numeration system for each <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><li></code>.</a:documentation> <choice> <value>simple</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Items are not numbered or bulleted.</a:documentation> <value>marked</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Bullet, box, dash, or other character is displayed before each item.</a:documentation> <value>ordered</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Each item is numbered or lettered.</a:documentation> </choice> </attribute> </optional> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the nature of the content of a list. Suggested values include: 1] gloss; 2] index; 3] instructions; 4] litany; 5] syllogism</a:documentation> <choice> <value>gloss</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Each list item glosses some term or concept, which is given by a label element preceding the list item.</a:documentation> <value>index</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Each list item is an entry in an index such as the alphabetical topical index at the back of a print volume.</a:documentation> <value>instructions</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Each list item is a step in a sequence of instructions, as in a recipe.</a:documentation> <value>litany</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Each list item is one of a sequence of petitions, supplications or invocations, typically in a religious ritual.</a:documentation> <value>syllogism</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Each list item is part of an argument consisting of two or more propositions and a final conclusion derived from them.</a:documentation> <data type="NMTOKENS"/> </choice> </attribute> </optional> <empty/> </element> </define> <define name="mei_q"> <element name="q"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(quoted) Contains material which is distinguished from the surrounding phrase-level text using quotation marks or a similar method. Use <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><quote></code> for block-level quotations.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike"/> </choice> </zeroOrMore> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.classed.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <ref name="mei_att.textRendition.attributes"/> <optional> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"> Suggested values include: 1] spoken; 2] thought; 3] written; 4] soCalled; 5] foreign; 6] distinct; 7] term; 8] emph; 9] mentioned</a:documentation> <list> <oneOrMore> <choice> <value>spoken</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Representation of speech.</a:documentation> <value>thought</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Representation of thought, e.g., internal monologue.</a:documentation> <value>written</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Quotation from a written source.</a:documentation> <value>soCalled</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Authorial distance.</a:documentation> <value>foreign</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Linguistically distinct.</a:documentation> <value>distinct</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Linguistically distinct.</a:documentation> <value>term</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Technical term.</a:documentation> <value>emph</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Rhetorically emphasized.</a:documentation> <value>mentioned</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Refering to itself, not its normal referent.</a:documentation> <data type="NMTOKEN"/> </choice> </oneOrMore> </list> </attribute> </optional> <empty/> </element> </define> <define name="mei_quote"> <element name="quote"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(quoted material) Contains a paragraph-like block of text attributed to an external source, normally set off from the surrounding text by spacing or other typographic distinction.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.paracontentPart"/> <ref name="mei_model.pLike"/> <ref name="mei_sp"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.textRendition.attributes"/> <ref name="mei_att.xy.attributes"/> <empty/> </element> </define> <define name="mei_seg"> <element name="seg"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(arbitrary segment) represents any segmentation of text below the "text component" level.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.editLike"/> <ref name="mei_model.sylLike"/> <ref name="mei_model.textPhraseLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <empty/> </element> </define> <define name="mei_att.altSym.attributes"> <ref name="mei_att.altSym.attribute.altsym"/> </define> <define name="mei_att.altSym.attribute.altsym"> <optional> <attribute name="altsym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides a way of pointing to a user-defined symbol. It must contain a reference to an ID of a <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><symbolDef></code> element elsewhere in the document.</a:documentation> <ref name="mei_data.URI"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.altSym-altsym-check_altsymTarget-constraint-rule-185"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="@altsym"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@altsym attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:symbolDef/@xml:id">The value in @altsym should correspond to the @xml:id attribute of a symbolDef element.</sch:assert> <sch:assert test="not(substring(., 2) eq ancestor::mei:symbolDef/@xml:id)">The value in @altsym must not correspond to the @xml:id attribute of a symbolDef ancestor.</sch:assert> </sch:rule> </pattern> <define name="mei_att.anchoredText.log.attributes"> <ref name="mei_att.startId.attributes"/> <ref name="mei_att.anchoredText.log.attribute.func"/> </define> <define name="mei_att.anchoredText.log.attribute.func"> <optional> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the function of the text. Suggested values include: 1] unknown</a:documentation> <choice> <value>unknown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The function of the text is unknown.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> </define> <define name="mei_att.curve.log.attributes"> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.curve.log.attribute.func"/> </define> <define name="mei_att.curve.log.attribute.func"> <optional> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the function of the curve. Suggested values include: 1] unknown</a:documentation> <choice> <value>unknown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The function of the curve is unknown.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> </define> <define name="mei_att.line.log.attributes"> <ref name="mei_att.controlEvent.attributes"/> <ref name="mei_att.duration.additive.attributes"/> <ref name="mei_att.startEndId.attributes"/> <ref name="mei_att.timestamp2.log.attributes"/> <ref name="mei_att.line.log.attribute.func"/> </define> <define name="mei_att.line.log.attribute.func"> <optional> <attribute name="func"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the function of the line. Suggested values include: 1] coloration; 2] ligature; 3] unknown</a:documentation> <choice> <value>coloration</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates coloration in material transcribed from a source originally in mensural notation.</a:documentation> <value>ligature</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Marks a ligature in material transcribed from a source originally in mensural notation.</a:documentation> <value>unknown</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The function of the line is unknown.</a:documentation> <data type="NMTOKEN"/> </choice> </attribute> </optional> </define> <define name="mei_model.graphicPrimitiveLike"> <choice> <ref name="mei_anchoredText"/> <ref name="mei_curve"/> <ref name="mei_line"/> </choice> </define> <define name="mei_model.symbolTableLike"> <choice> <ref name="mei_symbolTable"/> </choice> </define> <define name="mei_anchoredText"> <element name="anchoredText"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Container for text that is fixed to a particular page location, regardless of changes made to the layout of the measures around it.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> <ref name="mei_model.editLike"/> <ref name="mei_model.transcriptionLike"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.lang.attributes"/> <ref name="mei_att.anchoredText.anl.attributes"/> <ref name="mei_att.anchoredText.ges.attributes"/> <ref name="mei_att.anchoredText.log.attributes"/> <ref name="mei_att.anchoredText.vis.attributes"/> <empty/> </element> </define> <define name="mei_curve"> <element name="curve"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A curved line that cannot be represented by a more specific element, such as a slur.</a:documentation> <empty/> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-curve-symbolDef_curve_attributes_required-constraint-rule-186"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:curve[ancestor::mei:symbolDef]"> <sch:assert test="@startid or (@x and @y)">In the symbolDef context, curve must have either a startid attribute or x and y attributes.</sch:assert> <sch:assert test="@endid or (@x2 and @y2)">In the symbolDef context, curve must have either an endid attribute or both x2 and y2 attributes.</sch:assert> <sch:assert test="@bezier or @bulge">In the symbolDef context, curve must have either a bezier or bulge attribute.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.curve.anl.attributes"/> <ref name="mei_att.curve.ges.attributes"/> <ref name="mei_att.curve.log.attributes"/> <ref name="mei_att.curve.vis.attributes"/> <ref name="mei_att.facsimile.attributes"/> <empty/> </element> </define> <define name="mei_line"> <element name="line"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A visual line that cannot be represented by a more specific; i.e., semantic, element.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_model.textPhraseLike.limited"/> </choice> </zeroOrMore> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" id="mei-all-line-line_start-_and_end-type_attributes_required-constraint-rule-187"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:line[ancestor::mei:symbolDef]"> <sch:assert test="@startid or (@x and @y)">When used in the symbolDef context, must have either a startid attribute or x and y attributes.</sch:assert> <sch:assert test="@endid or (@x2 and @y2)">When used in the symbolDef context, must have either an endid attribute or both x2 and y2 attributes.</sch:assert> </sch:rule> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:line[not(ancestor::mei:symbolDef)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real or (@x and @y)">When used in the score context, must have a startid, tstamp, tstamp.ges or tstamp.real attribute or both x and y attributes.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2 or (@x2 and @y2)">When used in the score context, must have an endid, dur, dur.ges, or tstamp2 attribute or both x2 and y2 attributes.</sch:assert> </sch:rule> </pattern> <ref name="mei_att.common.attributes"/> <ref name="mei_att.facsimile.attributes"/> <ref name="mei_att.line.anl.attributes"/> <ref name="mei_att.line.ges.attributes"/> <ref name="mei_att.line.log.attributes"/> <ref name="mei_att.line.vis.attributes"/> <empty/> </element> </define> <define name="mei_mapping"> <element name="mapping"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">One or more characters which are related to the parent symbol in some respect, as specified by the type attribute.</a:documentation> <zeroOrMore> <choice> <text/> <ref name="mei_symbol"/> </choice> </zeroOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_propName"> <element name="propName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(property name) Name of a property of the symbol.</a:documentation> <text/> <ref name="mei_att.basic.attributes"/> <ref name="mei_att.labelled.attributes"/> <ref name="mei_att.linking.attributes"/> <ref name="mei_att.nNumberLike.attributes"/> <ref name="mei_att.responsibility.attributes"/> <attribute name="type"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Characterizes the property name.</a:documentation> <choice> <value>unicode</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A registered Unicode normative or informative property name.</a:documentation> <value>local</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A locally defined name.</a:documentation> </choice> </attribute> <empty/> </element> </define> <define name="mei_propValue"> <element name="propValue"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(property value) A single property value.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_symbolDef"> <element name="symbolDef"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(symbol definition) Declaration of an individual symbol in a symbolTable.</a:documentation> <optional> <ref name="mei_symName"/> </optional> <zeroOrMore> <ref name="mei_symProp"/> </zeroOrMore> <zeroOrMore> <ref name="mei_mapping"/> </zeroOrMore> <choice> <optional> <ref name="svg_svg"/> </optional> <zeroOrMore> <choice> <ref name="mei_model.graphicPrimitiveLike"/> <ref name="mei_symbol"/> <ref name="mei_graphic"/> </choice> </zeroOrMore> </choice> <zeroOrMore> <ref name="mei_model.annotLike"/> </zeroOrMore> <ref name="mei_att.common.attributes"/> <ref name="mei_att.coordinated.attributes"/> <ref name="mei_att.dataSelecting.attributes"/> <empty/> </element> </define> <define name="mei_symName"> <element name="symName"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(symbol name) Contains the name of a symbol, expressed following Unicode conventions.</a:documentation> <text/> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_symProp"> <element name="symProp"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(symbol property) Provides a name and value for some property of the parent symbol.</a:documentation> <ref name="mei_propName"/> <ref name="mei_propValue"/> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_symbolTable"> <element name="symbolTable"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains a set of user-defined symbols.</a:documentation> <oneOrMore> <ref name="mei_symbolDef"/> </oneOrMore> <ref name="mei_att.common.attributes"/> <empty/> </element> </define> <define name="mei_att.accid.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementOnStaff.attributes"/> <ref name="mei_att.placementRelEvent.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.staffLoc.pitched.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.visualOffset.vo.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.ambitus.vis.attributes"> <empty/> </define> <define name="mei_att.ambNote.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.noteHeads.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.stems.attributes"/> <ref name="mei_att.typography.attributes"/> </define> <define name="mei_att.anchoredText.vis.attributes"> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.annot.vis.attributes"> <ref name="mei_att.annot.vis.attribute.place"/> </define> <define name="mei_att.annot.vis.attribute.place"> <optional> <attribute name="place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Location of the annotation.</a:documentation> <list> <oneOrMore> <ref name="mei_data.PLACEMENT"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.arpeg.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.lineRend.base.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.arpeg.vis.attribute.arrow"/> <ref name="mei_att.arpeg.vis.attribute.arrow.shape"/> <ref name="mei_att.arpeg.vis.attribute.arrow.size"/> <ref name="mei_att.arpeg.vis.attribute.arrow.color"/> <ref name="mei_att.arpeg.vis.attribute.arrow.fillcolor"/> </define> <define name="mei_att.arpeg.vis.attribute.arrow"> <optional> <attribute name="arrow"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates if an arrowhead is to be drawn as part of the arpeggiation symbol.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.arpeg.vis.attribute.arrow.shape"> <optional> <attribute name="arrow.shape"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Symbol rendered at end of the line.</a:documentation> <ref name="mei_data.LINESTARTENDSYMBOL"/> </attribute> </optional> </define> <define name="mei_att.arpeg.vis.attribute.arrow.size"> <optional> <attribute name="arrow.size"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the relative size of the arrow symbol.</a:documentation> <ref name="mei_data.FONTSIZESCALE"/> </attribute> </optional> </define> <define name="mei_att.arpeg.vis.attribute.arrow.color"> <optional> <attribute name="arrow.color"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the overall color of the arrow.</a:documentation> <ref name="mei_data.COLOR"/> </attribute> </optional> </define> <define name="mei_att.arpeg.vis.attribute.arrow.fillcolor"> <optional> <attribute name="arrow.fillcolor"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the fill color of the arrow if different from the line color.</a:documentation> <ref name="mei_data.COLOR"/> </attribute> </optional> </define> <define name="mei_att.artic.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementOnStaff.attributes"/> <ref name="mei_att.placementRelEvent.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.staffLoc.pitched.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.attacca.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.barLine.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.width.attributes"/> <ref name="mei_att.barLine.vis.attribute.len"/> <ref name="mei_att.barLine.vis.attribute.method"/> <ref name="mei_att.barLine.vis.attribute.place"/> </define> <define name="mei_att.barLine.vis.attribute.len"> <optional> <attribute name="len"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(length) States the length of bar lines in virtual units. The value must be greater than 0 and is typically equal to 2 times (the number of staff lines - 1); e.g., a value of 8 for a 5-line staff.</a:documentation> <data type="decimal"> <param name="minExclusive">0</param> </data> </attribute> </optional> </define> <define name="mei_att.barLine.vis.attribute.method"> <optional> <attribute name="method"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the method of barring.</a:documentation> <ref name="mei_data.BARMETHOD"/> </attribute> </optional> </define> <define name="mei_att.barLine.vis.attribute.place"> <optional> <attribute name="place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Denotes the staff location of the bar line if its length is non-standard.</a:documentation> <ref name="mei_data.STAFFLOC"/> </attribute> </optional> </define> <define name="mei_att.beam.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.cue.attributes"/> <ref name="mei_att.beamRend.attributes"/> <ref name="mei_att.visibility.attributes"/> </define> <define name="mei_att.beaming.vis.attributes"> <ref name="mei_att.beaming.vis.attribute.beam.color"/> <ref name="mei_att.beaming.vis.attribute.beam.rend"/> <ref name="mei_att.beaming.vis.attribute.beam.slope"/> </define> <define name="mei_att.beaming.vis.attribute.beam.color"> <optional> <attribute name="beam.color"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Color of beams, including those associated with tuplets.</a:documentation> <ref name="mei_data.COLOR"/> </attribute> </optional> </define> <define name="mei_att.beaming.vis.attribute.beam.rend"> <optional> <attribute name="beam.rend"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes whether a beam is "feathered" and in which direction.</a:documentation> <choice> <value>acc</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Beam lines grow farther apart from left to right.</a:documentation> <value>rit</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Beam lines grow closer together from left to right.</a:documentation> <value>norm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Beam lines are equally-spaced over the entire length of the beam.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.beaming.vis.attribute.beam.slope"> <optional> <attribute name="beam.slope"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures beam slope.</a:documentation> <data type="decimal"/> </attribute> </optional> </define> <define name="mei_att.beamSpan.vis.attributes"> <ref name="mei_att.beam.vis.attributes"/> </define> <define name="mei_att.beatRpt.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.expandable.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.beatRpt.vis.attribute.slash"/> </define> <define name="mei_att.beatRpt.vis.attribute.slash"> <attribute name="slash"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the number of slashes required to render the appropriate beat repeat symbol. When a single beat consisting of a single note or chord is repeated, the repetition symbol is a single thick, slanting slash; therefore, the value 1 should be used. When the beat is divided into even notes, the following values should be used: 4ths or 8ths=1, 16ths=2, 32nds=3, 64ths=4, 128ths=5. When the beat is comprised of mixed duration values, the default rendition is 2 slashes and 2 dots.</a:documentation> <ref name="mei_data.BEATRPT.REND"/> </attribute> </define> <define name="mei_att.bend.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.curvature.attributes"/> <ref name="mei_att.lineRend.base.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.xy2.attributes"/> </define> <define name="mei_att.bracketSpan.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.lineRend.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.xy2.attributes"/> </define> <define name="mei_att.breath.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.staffLoc.pitched.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.bTrem.vis.attributes"> <ref name="mei_att.numberPlacement.attributes"/> </define> <define name="mei_att.caesura.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.staffLoc.pitched.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.chord.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.stems.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.visualOffset.to.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.chord.vis.cmn.attributes"/> <ref name="mei_att.chord.vis.attribute.cluster"/> </define> <define name="mei_att.chord.vis.attribute.cluster"> <optional> <attribute name="cluster"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates a single, alternative note head should be displayed instead of individual note heads. The highest and lowest notes of the chord usually indicate the upper and lower boundaries of the cluster note head.</a:documentation> <ref name="mei_data.CLUSTER"/> </attribute> </optional> </define> <define name="mei_att.chordDef.vis.attributes"> <empty/> </define> <define name="mei_att.chordMember.vis.attributes"> <empty/> </define> <define name="mei_att.clef.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.attributes"/> </define> <define name="mei_att.cleffing.vis.attributes"> <ref name="mei_att.cleffing.vis.attribute.clef.color"/> <ref name="mei_att.cleffing.vis.attribute.clef.visible"/> </define> <define name="mei_att.cleffing.vis.attribute.clef.color"> <optional> <attribute name="clef.color"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the color of the clef.</a:documentation> <ref name="mei_data.COLOR"/> </attribute> </optional> </define> <define name="mei_att.cleffing.vis.attribute.clef.visible"> <optional> <attribute name="clef.visible"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines whether the clef is to be displayed.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.clefGrp.vis.attributes"> <empty/> </define> <define name="mei_att.course.vis.attributes"> <empty/> </define> <define name="mei_att.cpMark.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.curvatureDirection.attributes"> <ref name="mei_att.curvatureDirection.attribute.curve"/> </define> <define name="mei_att.curvatureDirection.attribute.curve"> <optional> <attribute name="curve"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records direction of curvature.</a:documentation> <choice> <value>a</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Anti-clockwise curvature.</a:documentation> <value>c</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Clockwise curvature.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.curve.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.curvature.attributes"/> <ref name="mei_att.lineRend.base.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.xy2.attributes"/> </define> <define name="mei_att.custos.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> </define> <define name="mei_att.mdiv.vis.attributes"> <empty/> </define> <define name="mei_att.dir.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.dot.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.staffLoc.pitched.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.visualOffset.vo.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.dynam.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.ending.vis.attributes"> <ref name="mei_att.lineRend.attributes"/> </define> <define name="mei_att.episema.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.episema.vis.attribute.form"/> <ref name="mei_att.episema.vis.attribute.place"/> </define> <define name="mei_att.episema.vis.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"/> <choice> <value>h</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Horizontal stroke.</a:documentation> <value>v</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Vertical stroke.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.episema.vis.attribute.place"> <optional> <attribute name="place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the placement of the episema with respect to the neume or neume component with which it is associated.</a:documentation> <ref name="mei_data.EVENTREL"/> </attribute> </optional> </define> <define name="mei_att.f.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.fermata.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.fermata.vis.attribute.form"/> <ref name="mei_att.fermata.vis.attribute.shape"/> </define> <define name="mei_att.fermata.vis.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the visual appearance of the fermata; that is, whether it occurs as upright or inverted.</a:documentation> <choice> <value>inv</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Inverted, i.e., curve or bracket below the dot.</a:documentation> <value>norm</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Upright; i.e., curve or bracket above the dot.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.fermata.vis.attribute.shape"> <optional> <attribute name="shape"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the visual appearance of the fermata; that is, whether it has a curved, square, or angular shape.</a:documentation> <choice> <value>curved</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A curve above or below the dot.</a:documentation> <value>square</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A bracket above or below the dot.</a:documentation> <value>angular</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A triangle above or below the dot.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.fing.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.fingGrp.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.fingGrp.vis.attribute.orient"/> </define> <define name="mei_att.fingGrp.vis.attribute.orient"> <optional> <attribute name="orient"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(orientation) </a:documentation> <choice> <value>horiz</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Combination expressed horizontally, as for brass instruments.</a:documentation> <value>vert</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Combination expressed vertically, as for woodwind instruments or piano.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.fTrem.vis.attributes"> <ref name="mei_att.fTrem.vis.attribute.beams"/> <ref name="mei_att.fTrem.vis.attribute.beams.float"/> <ref name="mei_att.fTrem.vis.attribute.float.gap"/> </define> <define name="mei_att.fTrem.vis.attribute.beams"> <optional> <attribute name="beams"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the number of beams present.</a:documentation> <data type="positiveInteger"> <param name="minInclusive">1</param> <param name="maxInclusive">6</param> </data> </attribute> </optional> </define> <define name="mei_att.fTrem.vis.attribute.beams.float"> <optional> <attribute name="beams.float"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the number of "floating" beams, i.e., those not attached to stems.</a:documentation> <data type="nonNegativeInteger"/> </attribute> </optional> </define> <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="mei-all-att.fTrem.vis-beams.float-check_beams.floating-constraint-rule-189"> <sch:rule xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" context="mei:fTrem[@beams and @beams.float]"> <sch:assert test="@beams.float <= @beams">The number of floating beams must be less than or equal to the total number of beams.</sch:assert> </sch:rule> </pattern> <define name="mei_att.fTrem.vis.attribute.float.gap"> <optional> <attribute name="float.gap"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the amount of separation between floating beams and stems.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.gliss.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.xy2.attributes"/> <ref name="mei_att.lineRend.attributes"/> </define> <define name="mei_att.graceGrp.vis.attributes"> <ref name="mei_att.color.attributes"/> </define> <define name="mei_att.guitarGrid.vis.attributes"> <ref name="mei_att.guitarGrid.vis.attribute.grid.show"/> </define> <define name="mei_att.guitarGrid.vis.attribute.grid.show"> <optional> <attribute name="grid.show"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines whether to display guitar chord grids.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.grpSym.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.hairpin.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.lineRend.base.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.xy2.attributes"/> <ref name="mei_att.hairpin.vis.attribute.opening"/> <ref name="mei_att.hairpin.vis.attribute.closed"/> <ref name="mei_att.hairpin.vis.attribute.opening.vertical"/> <ref name="mei_att.hairpin.vis.attribute.angle.optimize"/> </define> <define name="mei_att.hairpin.vis.attribute.opening"> <optional> <attribute name="opening"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies the distance between the lines at the open end of a hairpin dynamic mark.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.hairpin.vis.attribute.closed"> <optional> <attribute name="closed"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Applies to a "Rossini" hairpin, i.e., one where the normally open side is closed by a connecting line.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.hairpin.vis.attribute.opening.vertical"> <optional> <attribute name="opening.vertical"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates that the opening points are aligned with an imaginary line that is always 90° perpendicular to the horizontal plane, regardless of any angle or start/end adjustments, including when the hairpin is angled with @angle.optimize or through @endvo/@startvo adjustments.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.hairpin.vis.attribute.angle.optimize"> <optional> <attribute name="angle.optimize"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates that the slope of the hairpin can be adjusted to follow the content in order to optimize spacing.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.halfmRpt.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.expandable.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> </define> <define name="mei_att.harm.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.harm.vis.attribute.rendgrid"/> </define> <define name="mei_att.harm.vis.attribute.rendgrid"> <optional> <attribute name="rendgrid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes how the harmonic indication should be rendered.</a:documentation> <choice> <value>grid</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Chord tablature grid.</a:documentation> <value>gridtext</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Chord tablature grid and the element’s textual content.</a:documentation> <value>text</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Textual content of the element.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.harpPedal.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.hispanTick.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.hispanTick.vis.attribute.place"/> <ref name="mei_att.hispanTick.vis.attribute.tilt"/> </define> <define name="mei_att.hispanTick.vis.attribute.place"> <optional> <attribute name="place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the placement of the tick mark with respect to the neume or neume component with which it is associated.</a:documentation> <ref name="mei_data.EVENTREL"/> </attribute> </optional> </define> <define name="mei_att.hispanTick.vis.attribute.tilt"> <optional> <attribute name="tilt"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Direction toward which the mark points.</a:documentation> <ref name="mei_data.COMPASSDIRECTION"/> </attribute> </optional> </define> <define name="mei_att.instrDef.vis.attributes"> <empty/> </define> <define name="mei_att.keyAccid.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.keySig.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.keySig.vis.attribute.cancelaccid"/> </define> <define name="mei_att.keySig.vis.attribute.cancelaccid"> <optional> <attribute name="cancelaccid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines where cautionary accidentals should be displayed at a key change.</a:documentation> <ref name="mei_data.CANCELACCID"/> </attribute> </optional> </define> <define name="mei_att.keySigDefault.vis.attributes"> <ref name="mei_att.keySigDefault.vis.attribute.keysig.cancelaccid"/> <ref name="mei_att.keySigDefault.vis.attribute.keysig.visible"/> </define> <define name="mei_att.keySigDefault.vis.attribute.keysig.cancelaccid"> <optional> <attribute name="keysig.cancelaccid"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines where cautionary accidentals should be displayed at a key change.</a:documentation> <ref name="mei_data.CANCELACCID"/> </attribute> </optional> </define> <define name="mei_att.keySigDefault.vis.attribute.keysig.visible"> <optional> <attribute name="keysig.visible"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines whether the key signature is to be displayed.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.layer.vis.attributes"> <ref name="mei_att.visibility.attributes"/> </define> <define name="mei_att.layerDef.vis.attributes"> <ref name="mei_att.beaming.vis.attributes"/> <ref name="mei_att.textStyle.attributes"/> <ref name="mei_att.visibility.attributes"/> </define> <define name="mei_att.ligature.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.ligature.vis.attribute.form"/> </define> <define name="mei_att.ligature.vis.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Provides an indication of the function of the ligature.</a:documentation> <ref name="mei_data.LIGATUREFORM"/> </attribute> </optional> </define> <define name="mei_att.line.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.xy2.attributes"/> <ref name="mei_att.line.vis.attribute.form"/> <ref name="mei_att.line.vis.attribute.width"/> <ref name="mei_att.line.vis.attribute.endsym"/> <ref name="mei_att.line.vis.attribute.endsym.size"/> <ref name="mei_att.line.vis.attribute.startsym"/> <ref name="mei_att.line.vis.attribute.startsym.size"/> </define> <define name="mei_att.line.vis.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Visual form of the line.</a:documentation> <ref name="mei_data.LINEFORM"/> </attribute> </optional> </define> <define name="mei_att.line.vis.attribute.width"> <optional> <attribute name="width"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Width of the line.</a:documentation> <ref name="mei_data.LINEWIDTH"/> </attribute> </optional> </define> <define name="mei_att.line.vis.attribute.endsym"> <optional> <attribute name="endsym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Symbol rendered at end of line.</a:documentation> <ref name="mei_data.LINESTARTENDSYMBOL"/> </attribute> </optional> </define> <define name="mei_att.line.vis.attribute.endsym.size"> <optional> <attribute name="endsym.size"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the relative size of the line-end symbol.</a:documentation> <ref name="mei_data.FONTSIZESCALE"/> </attribute> </optional> </define> <define name="mei_att.line.vis.attribute.startsym"> <optional> <attribute name="startsym"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Symbol rendered at start of line.</a:documentation> <ref name="mei_data.LINESTARTENDSYMBOL"/> </attribute> </optional> </define> <define name="mei_att.line.vis.attribute.startsym.size"> <optional> <attribute name="startsym.size"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the relative size of the line-start symbol.</a:documentation> <ref name="mei_data.FONTSIZESCALE"/> </attribute> </optional> </define> <define name="mei_att.liquescent.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.curvatureDirection.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.liquescent.vis.attribute.looped"/> </define> <define name="mei_att.liquescent.vis.attribute.looped"> <optional> <attribute name="looped"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether curve is closed.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.lv.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.curvature.attributes"/> <ref name="mei_att.lineRend.base.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.xy2.attributes"/> </define> <define name="mei_att.lyrics.vis.attributes"> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> </define> <define name="mei_att.measure.vis.attributes"> <ref name="mei_att.barring.attributes"/> <ref name="mei_att.width.attributes"/> </define> <define name="mei_att.mensur.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.slashCount.attributes"/> <ref name="mei_att.mensur.vis.attribute.dot"/> <ref name="mei_att.mensur.vis.attribute.form"/> <ref name="mei_att.mensur.vis.attribute.orient"/> <ref name="mei_att.mensur.vis.attribute.sign"/> </define> <define name="mei_att.mensur.vis.attribute.dot"> <optional> <attribute name="dot"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Specifies whether a dot is to be added to the base symbol.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.mensur.vis.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether the base symbol is written vertically or horizontally.</a:documentation> <choice> <value>horizontal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Horizontally oriented.</a:documentation> <value>vertical</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Vertically oriented.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.mensur.vis.attribute.orient"> <optional> <attribute name="orient"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the rotation or reflection of the base symbol.</a:documentation> <ref name="mei_data.ORIENTATION"/> </attribute> </optional> </define> <define name="mei_att.mensur.vis.attribute.sign"> <optional> <attribute name="sign"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The base symbol in the mensuration sign/time signature of mensural notation.</a:documentation> <ref name="mei_data.MENSURATIONSIGN"/> </attribute> </optional> </define> <define name="mei_att.mensural.vis.attributes"> <ref name="mei_att.mensural.vis.attribute.mensur.color"/> <ref name="mei_att.mensural.vis.attribute.mensur.dot"/> <ref name="mei_att.mensural.vis.attribute.mensur.form"/> <ref name="mei_att.mensural.vis.attribute.mensur.loc"/> <ref name="mei_att.mensural.vis.attribute.mensur.orient"/> <ref name="mei_att.mensural.vis.attribute.mensur.sign"/> <ref name="mei_att.mensural.vis.attribute.mensur.size"/> <ref name="mei_att.mensural.vis.attribute.mensur.slash"/> </define> <define name="mei_att.mensural.vis.attribute.mensur.color"> <optional> <attribute name="mensur.color"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the color of the mensuration sign. Do not confuse this with the musical term 'color' as used in pre-CMN notation.</a:documentation> <ref name="mei_data.COLOR"/> </attribute> </optional> </define> <define name="mei_att.mensural.vis.attribute.mensur.dot"> <optional> <attribute name="mensur.dot"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines if a dot is to be added to the base symbol.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.mensural.vis.attribute.mensur.form"> <optional> <attribute name="mensur.form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether the base symbol is written vertically or horizontally.</a:documentation> <choice> <value>horizontal</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Horizontally oriented.</a:documentation> <value>vertical</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Vertically oriented.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.mensural.vis.attribute.mensur.loc"> <optional> <attribute name="mensur.loc"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Holds the staff location of the mensuration sign.</a:documentation> <ref name="mei_data.STAFFLOC"/> </attribute> </optional> </define> <define name="mei_att.mensural.vis.attribute.mensur.orient"> <optional> <attribute name="mensur.orient"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the rotation or reflection of the base symbol.</a:documentation> <ref name="mei_data.ORIENTATION"/> </attribute> </optional> </define> <define name="mei_att.mensural.vis.attribute.mensur.sign"> <optional> <attribute name="mensur.sign"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The base symbol in the mensuration sign/time signature of mensural notation.</a:documentation> <ref name="mei_data.MENSURATIONSIGN"/> </attribute> </optional> </define> <define name="mei_att.mensural.vis.attribute.mensur.size"> <optional> <attribute name="mensur.size"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Describes the relative size of the mensuration sign.</a:documentation> <ref name="mei_data.FONTSIZE"/> </attribute> </optional> </define> <define name="mei_att.mensural.vis.attribute.mensur.slash"> <optional> <attribute name="mensur.slash"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the number lines added to the mensuration sign. For example, one slash is added for what we now call 'alla breve'.</a:documentation> <data type="positiveInteger"/> </attribute> </optional> </define> <define name="mei_att.metaMark.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> </define> <define name="mei_att.meterSig.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.meterSig.vis.attribute.form"/> </define> <define name="mei_att.meterSig.vis.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains an indication of how the meter signature should be rendered.</a:documentation> <ref name="mei_data.METERFORM"/> </attribute> </optional> </define> <define name="mei_att.meterSigDefault.vis.attributes"> <ref name="mei_att.meterSigDefault.vis.attribute.meter.form"/> <ref name="mei_att.meterSigDefault.vis.attribute.meter.showchange"/> <ref name="mei_att.meterSigDefault.vis.attribute.meter.visible"/> </define> <define name="mei_att.meterSigDefault.vis.attribute.meter.form"> <optional> <attribute name="meter.form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Contains an indication of how the meter signature should be rendered.</a:documentation> <ref name="mei_data.METERFORM"/> </attribute> </optional> </define> <define name="mei_att.meterSigDefault.vis.attribute.meter.showchange"> <optional> <attribute name="meter.showchange"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines whether the old meter signature should be displayed when the meter signature changes.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.meterSigDefault.vis.attribute.meter.visible"> <optional> <attribute name="meter.visible"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines whether the meter signature is to be displayed.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.meterSigGrp.vis.attributes"> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.visibility.attributes"/> </define> <define name="mei_att.mNum.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.mordent.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> </define> <define name="mei_att.mRest.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.cutout.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.staffLoc.pitched.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.mRpt.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.expandable.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.numberPlacement.attributes"/> <ref name="mei_att.typography.attributes"/> </define> <define name="mei_att.mRpt2.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.expandable.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.typography.attributes"/> </define> <define name="mei_att.mSpace.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.cutout.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.multiRest.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.numberPlacement.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.staffLoc.pitched.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.width.attributes"/> <ref name="mei_att.multiRest.vis.attribute.block"/> </define> <define name="mei_att.multiRest.vis.attribute.block"> <optional> <attribute name="block"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The block attribute controls whether the multimeasure rest should be rendered as a block rest or as church rests ("Kirchenpausen"), that are combinations of longa, breve and semibreve rests.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.multiRpt.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.expandable.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.typography.attributes"/> </define> <define name="mei_att.nc.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.ncForm.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.ncGrp.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.neume.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.note.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.noteHeads.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.stems.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.visualOffset.to.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.note.vis.cmn.attributes"/> <ref name="mei_att.note.vis.mensural.attributes"/> </define> <define name="mei_att.octave.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.oriscus.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.ornam.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.ossia.vis.attributes"> <empty/> </define> <define name="mei_att.pad.vis.attributes"> <empty/> </define> <define name="mei_att.part.vis.attributes"> <empty/> </define> <define name="mei_att.parts.vis.attributes"> <empty/> </define> <define name="mei_att.pb.vis.attributes"> <ref name="mei_att.pb.vis.attribute.folium"/> </define> <define name="mei_att.pb.vis.attribute.folium"> <optional> <attribute name="folium"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">States the side of a leaf (as in a manuscript) on which the content following the <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><pb></code> element occurs.</a:documentation> <choice> <value>verso</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The back of a manuscript page.</a:documentation> <value>recto</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">The front of a manuscript page.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.pedal.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.lineRend.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.pedal.vis.attribute.form"/> </define> <define name="mei_att.pedal.vis.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Determines whether piano pedal marks should be rendered as lines or as terms.</a:documentation> <ref name="mei_data.PEDALSTYLE"/> </attribute> </optional> </define> <define name="mei_att.phrase.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.xy2.attributes"/> <ref name="mei_att.phrase.vis.cmn.attributes"/> </define> <define name="mei_att.plica.vis.attributes"> <ref name="mei_att.plica.vis.attribute.dir"/> <ref name="mei_att.plica.vis.attribute.len"/> </define> <define name="mei_att.plica.vis.attribute.dir"> <optional> <attribute name="dir"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(direction) Describes the direction of a stem.</a:documentation> <ref name="mei_data.STEMDIRECTION.basic"/> </attribute> </optional> </define> <define name="mei_att.plica.vis.attribute.len"> <optional> <attribute name="len"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(length) Encodes the stem length.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.proport.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> </define> <define name="mei_att.quilisma.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.quilisma.vis.attribute.waves"/> </define> <define name="mei_att.quilisma.vis.attribute.waves"> <optional> <attribute name="waves"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Number of "crests" of a wavy line.</a:documentation> <data type="positiveInteger"> <param name="minInclusive">2</param> <param name="maxInclusive">4</param> </data> </attribute> </optional> </define> <define name="mei_att.rdg.vis.attributes"> <empty/> </define> <define name="mei_att.refrain.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.to.attributes"/> <ref name="mei_att.visualOffset.vo.attributes"/> <ref name="mei_att.voltaGroupingSym.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.reh.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.repeatMark.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.rest.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.rest.vis.cmn.attributes"/> <ref name="mei_att.rest.vis.mensural.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.staffLoc.pitched.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.sb.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.sb.vis.attribute.form"/> </define> <define name="mei_att.sb.vis.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether hash marks should be rendered between systems. See Read, p. 436, ex. 26-3.</a:documentation> <choice> <value>hash</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Display hash marks between systems.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.score.vis.attributes"> <empty/> </define> <define name="mei_att.scoreDef.vis.attributes"> <ref name="mei_att.barring.attributes"/> <ref name="mei_att.cleffing.vis.attributes"/> <ref name="mei_att.distances.attributes"/> <ref name="mei_att.endings.attributes"/> <ref name="mei_att.keySigDefault.vis.attributes"/> <ref name="mei_att.lyricStyle.attributes"/> <ref name="mei_att.measureNumbers.attributes"/> <ref name="mei_att.meterSigDefault.vis.attributes"/> <ref name="mei_att.multinumMeasures.attributes"/> <ref name="mei_att.notationStyle.attributes"/> <ref name="mei_att.oneLineStaff.attributes"/> <ref name="mei_att.optimization.attributes"/> <ref name="mei_att.pages.attributes"/> <ref name="mei_att.spacing.attributes"/> <ref name="mei_att.staffItems.attributes"/> <ref name="mei_att.systems.attributes"/> <ref name="mei_att.textStyle.attributes"/> <ref name="mei_att.scoreDef.vis.cmn.attributes"/> <ref name="mei_att.scoreDef.vis.mensural.attributes"/> <ref name="mei_att.scoreDef.vis.tablature.attributes"/> <ref name="mei_att.scoreDef.vis.attribute.vu.height"/> </define> <define name="mei_att.scoreDef.vis.attribute.vu.height"> <optional> <attribute name="vu.height"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Defines the height of a "virtual unit" (vu) in terms of real-world units. A single vu is half the distance between adjacent staff lines where the interline space is measured from the middle of a staff line.</a:documentation> <data type="token"> <param name="pattern">\d+(\.\d+)?(cm|mm|in|pt|pc)</param> </data> </attribute> </optional> </define> <define name="mei_att.section.vis.attributes"> <ref name="mei_att.section.vis.attribute.restart"/> </define> <define name="mei_att.section.vis.attribute.restart"> <optional> <attribute name="restart"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates that staves begin again with this section.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.signifLet.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.signifLet.vis.attribute.place"/> </define> <define name="mei_att.signifLet.vis.attribute.place"> <optional> <attribute name="place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the placement of the sequence of characters with respect to the neume or neume component with which it is associated.</a:documentation> <ref name="mei_data.EVENTREL"/> </attribute> </optional> </define> <define name="mei_att.slur.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.curvature.attributes"/> <ref name="mei_att.lineRend.base.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.xy2.attributes"/> </define> <define name="mei_att.sp.vis.attributes"> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.space.vis.attributes"> <ref name="mei_att.cutout.attributes"/> <ref name="mei_att.space.vis.attribute.compressable"/> </define> <define name="mei_att.space.vis.attribute.compressable"> <optional> <attribute name="compressable"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates whether a space is 'compressible', i.e., if it may be removed at the discretion of processing software.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.staff.vis.attributes"> <ref name="mei_att.visibility.attributes"/> </define> <define name="mei_att.staffDef.vis.attributes"> <ref name="mei_att.barring.attributes"/> <ref name="mei_att.cleffing.vis.attributes"/> <ref name="mei_att.distances.attributes"/> <ref name="mei_att.guitarGrid.vis.attributes"/> <ref name="mei_att.keySigDefault.vis.attributes"/> <ref name="mei_att.lyricStyle.attributes"/> <ref name="mei_att.meterSigDefault.vis.attributes"/> <ref name="mei_att.multinumMeasures.attributes"/> <ref name="mei_att.notationStyle.attributes"/> <ref name="mei_att.oneLineStaff.attributes"/> <ref name="mei_att.scalable.attributes"/> <ref name="mei_att.staffItems.attributes"/> <ref name="mei_att.textStyle.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.staffDef.vis.cmn.attributes"/> <ref name="mei_att.staffDef.vis.mensural.attributes"/> <ref name="mei_att.staffDef.vis.tablature.attributes"/> <ref name="mei_att.staffDef.vis.attribute.layerscheme"/> <ref name="mei_att.staffDef.vis.attribute.lines.color"/> <ref name="mei_att.staffDef.vis.attribute.lines.visible"/> <ref name="mei_att.staffDef.vis.attribute.spacing"/> </define> <define name="mei_att.staffDef.vis.attribute.layerscheme"> <optional> <attribute name="layerscheme"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Indicates the number of layers and their stem directions.</a:documentation> <ref name="mei_data.LAYERSCHEME"/> </attribute> </optional> </define> <define name="mei_att.staffDef.vis.attribute.lines.color"> <optional> <attribute name="lines.color"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Captures the colors of the staff lines.</a:documentation> <list> <oneOrMore> <ref name="mei_data.COLOR"/> </oneOrMore> </list> </attribute> </optional> </define> <define name="mei_att.staffDef.vis.attribute.lines.visible"> <optional> <attribute name="lines.visible"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records whether all staff lines are visible.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.staffDef.vis.attribute.spacing"> <optional> <attribute name="spacing"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the absolute distance (as opposed to the relative distances recorded in <code xmlns="http://www.w3.org/1999/xhtml" xmlns:rng="http://relaxng.org/ns/structure/1.0"><scoreDef></code> elements) between this staff and the preceding one in the same system. This value is meaningless for the first staff in a system since the spacing.system attribute indicates the spacing between systems.</a:documentation> <ref name="mei_data.MEASUREMENTSIGNED"/> </attribute> </optional> </define> <define name="mei_att.staffGrp.vis.attributes"> <ref name="mei_att.barring.attributes"/> <ref name="mei_att.staffGroupingSym.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.staffGrp.vis.attribute.bar.thru"/> </define> <define name="mei_att.staffGrp.vis.attribute.bar.thru"> <optional> <attribute name="bar.thru"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(bar lines through) Indicates whether bar lines go across the space between staves (true) or are only drawn across the lines of each staff (false).</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.stageDir.vis.attributes"> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.stem.vis.attributes"> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.stem.vis.attribute.pos"/> <ref name="mei_att.stem.vis.attribute.len"/> <ref name="mei_att.stem.vis.attribute.form"/> <ref name="mei_att.stem.vis.attribute.dir"/> <ref name="mei_att.stem.vis.attribute.flag.pos"/> <ref name="mei_att.stem.vis.attribute.flag.form"/> </define> <define name="mei_att.stem.vis.attribute.pos"> <optional> <attribute name="pos"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(position) Records the position of the stem in relation to the note head(s).</a:documentation> <ref name="mei_data.STEMPOSITION"/> </attribute> </optional> </define> <define name="mei_att.stem.vis.attribute.len"> <optional> <attribute name="len"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(length) Encodes the stem length.</a:documentation> <ref name="mei_data.MEASUREMENTUNSIGNED"/> </attribute> </optional> </define> <define name="mei_att.stem.vis.attribute.form"> <optional> <attribute name="form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the form of the stem using the values provided by the data.STEMFORM.mensural datatype.</a:documentation> <ref name="mei_data.STEMFORM.mensural"/> </attribute> </optional> </define> <define name="mei_att.stem.vis.attribute.dir"> <optional> <attribute name="dir"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(direction) Describes the direction of a stem.</a:documentation> <ref name="mei_data.STEMDIRECTION"/> </attribute> </optional> </define> <define name="mei_att.stem.vis.attribute.flag.pos"> <optional> <attribute name="flag.pos"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Records the position of the flag using the values provided by the data.FLAGPOS.mensural datatype.</a:documentation> <ref name="mei_data.FLAGPOS.mensural"/> </attribute> </optional> </define> <define name="mei_att.stem.vis.attribute.flag.form"> <optional> <attribute name="flag.form"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Encodes the form of the flag using the values provided by the data.FLAGFORM.mensural datatype.</a:documentation> <ref name="mei_data.FLAGFORM.mensural"/> </attribute> </optional> </define> <define name="mei_att.strophicus.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.staffLoc.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.syl.vis.attributes"> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.horizontalAlign.attributes"/> </define> <define name="mei_att.syllable.vis.attributes"> <empty/> </define> <define name="mei_att.symbol.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.scalable.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.tabDurSym.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.tabGrp.vis.attributes"> <ref name="mei_att.visibility.attributes"/> <ref name="mei_att.visualOffset.ho.attributes"/> <ref name="mei_att.visualOffset.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.tempo.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.tie.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.curvature.attributes"/> <ref name="mei_att.lineRend.base.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.attributes"/> <ref name="mei_att.xy.attributes"/> <ref name="mei_att.xy2.attributes"/> </define> <define name="mei_att.trill.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extender.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.visualOffset2.ho.attributes"/> <ref name="mei_att.visualOffset2.to.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.tuning.vis.attributes"> <empty/> </define> <define name="mei_att.tuplet.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.numberPlacement.attributes"/> <ref name="mei_att.tuplet.vis.attribute.bracket.place"/> <ref name="mei_att.tuplet.vis.attribute.bracket.visible"/> <ref name="mei_att.tuplet.vis.attribute.num.format"/> </define> <define name="mei_att.tuplet.vis.attribute.bracket.place"> <optional> <attribute name="bracket.place"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Used to state where a tuplet bracket will be placed in relation to the note heads.</a:documentation> <ref name="mei_data.STAFFREL.basic"/> </attribute> </optional> </define> <define name="mei_att.tuplet.vis.attribute.bracket.visible"> <optional> <attribute name="bracket.visible"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">States whether a bracket should be rendered with a tuplet.</a:documentation> <ref name="mei_data.BOOLEAN"/> </attribute> </optional> </define> <define name="mei_att.tuplet.vis.attribute.num.format"> <optional> <attribute name="num.format"> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Controls how the num:numbase ratio is to be displayed.</a:documentation> <choice> <value>count</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Only the num attribute is displayed, e.g., '7'.</a:documentation> <value>ratio</value> <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Both the num and numbase attributes are displayed, e.g., '7:4'.</a:documentation> </choice> </attribute> </optional> </define> <define name="mei_att.tupletSpan.vis.attributes"> <ref name="mei_att.tuplet.vis.attributes"/> </define> <define name="mei_att.turn.vis.attributes"> <ref name="mei_att.altSym.attributes"/> <ref name="mei_att.color.attributes"/> <ref name="mei_att.enclosingChars.attributes"/> <ref name="mei_att.extSym.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.verticalGroup.attributes"/> <ref name="mei_att.visualOffset.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.verse.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.placementRelStaff.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.to.attributes"/> <ref name="mei_att.visualOffset.vo.attributes"/> <ref name="mei_att.voltaGroupingSym.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <define name="mei_att.volta.vis.attributes"> <ref name="mei_att.color.attributes"/> <ref name="mei_att.typography.attributes"/> <ref name="mei_att.visualOffset.to.attributes"/> <ref name="mei_att.visualOffset.vo.attributes"/> <ref name="mei_att.xy.attributes"/> </define> <start> <choice> <ref name="mei_mei"/> <ref name="mei_meiHead"/> <ref name="mei_meiCorpus"/> <ref name="mei_music"/> </choice> </start> <sch:ns xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" prefix="mei" uri="http://www.music-encoding.org/ns/mei"/> <sch:ns xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" prefix="xlink" uri="http://www.w3.org/1999/xlink"/> </grammar>