Jeni: I'd put it in XHTML and use basic <href="..."> links to point to the schema, perhaps using xml:id attributes on the relevant schema elements in order to pinpoint which part of the schema the documentation relates to. Programmer's Notes for filename:
<!--[No comments allowed within the schema tag.]
	namespaces must be unique and persistent, these are only *names* (not paths).
	Some validating parsers attempt to retrieve schema information from the
	namespace definition when they encounter trouble; effectively URI == URL.
	targetNamespace == names declared by this Schema, instance docs use this.
	Default namespace == namespace of unqualified names in this Schema.
	Schema for Schemas (its location is well known).
	Elements declared in this Schema must *not* be namespace-qualified in Instance docs.
	Attributes declared in this Schema must not be namespace-qualified in Instance docs.
	Note, all globally-declared Elements and Attributes must always be qualified
	in instance docs.
* Partitions of lexical space in the overall design depend on the _main Schema and refer
  to it.
  Dependencies are listed in the NeumesXML element under _appinfo_ / _partition_dependencies_.
  [Do not refer from this Schema to the partitions, as that would create circular references.]
* Schema partions and the _main Schema share a single namespace.
* Schema-validation for NeumesXML is conformant with XSV version 2.10-1
* Practices for tag names: full words should be used for the benefit of non-English-speaking
  users, so that they might understand the meaning of tags by consulting a dictionary.
  To avoid naming confusions, do not use "type", "value", or "name" as names of Attributes.
* Any lexical change to Element declarations must be shown in the file "NeumesXMLSchema.dtd".
  Transcriptions can contain mnemonic Entities instead of Unicode codepoint numbers for
  NEUMES characters. For this to work, a DTD must declare all Elements and Attributes of the
  NeumesXML Schema, and any Instance document that uses the mnemonic Entities must declare
  that it is using the Entity definitions of the file "NEUMES_characters.pen".
  Note that the internal-subset DTD declaration in the Schema has no effect on Instance docs.
* The NCName type is defined in this Schema as a string (not beginning with '_') containing
  no space or colon. The NCName_ext type (declared below) adds the '+' character to NCName.
* The ampersand character '&' and the left angle-bracket '<' MUST NOT appear in their literal
  form, except when used as markup delimiters, or within a comment, a processing instruction,
  or a CDATA section: "" (CDATA sections may be contained inside other
  tags such as ).
* XPath rule about Namespaces: Unlike in the rest of the XSD Schema, qualified names used
  in XPaths are interpreted using the XPath rules; if they don't have a prefix, they select
  Elements in *no* Namespace rather than the *default* Namespace. Therefore, we have a
  so-called "psychotic" namespace, viz., that both the default namespace and the 'nxm'
  namespaces are the same (i.e., the NeumesXML namespace). That is because we need the
  'nxm' prefix for the paths in the key definitions work, but we did not wish to add
  prefixes to all the other references in the Schema.
* The xsi:schemaLocation is necessary for validation on the OBD tags in Documentation, etc.
  To avoid the NeumesXML Schema being validated, omit the xsi:schemaLocation attribute in
  the version of NeumesXML Schema that is online for production use. It should be retained
  in the version that is used in development, so that these tags will be constrained.
* The name given after  for example tags?
+ See inline remarks: search for "xxx"
+ Change color of _annotation_ in Web display.
+ Prohibit extensions of simple types?
+ Specialize 'neume_irregularity_Type' by East/West.
+ Add an optional description of the script of the chant text to 'description_part_Type'
    (after 'language_x' and before 'notation_x')?
    If so, then provide a schema for the choices?
+ Add 'pitch_letters' in 'description_part_Type' as an attribute particular to the Source
    (after 'notation_x' and before 'physical_description').
+ Change 'heighted' Attribute in 'notation_x_Type' to 'required'.
+ Change Attribute 'pitched' to 'cleffed' in 'notation_x_Type', and
    change 'optional' to 'required'.
+ Add *required* 'content_link' Element for Source image
+ Rectify date and geography, etc., against Distributed Image Library.
+ Define CANTILLATION RegEx pattern in NEUMES grammar for 'cantillation_text_Type'.
    Make cantillation_sequence_Type, and extend it there.
+ Define EKPHONETIC RegEx pattern in NEUMES grammar for 'ekphonetic_colon_Type'.
    Make ekphonetic_sequence_Type, and extend it there.
- Q: In 'syllable_Type' of 'plain_text_Type', we allow only non-PUA chars.
   Ought we to allow CFs here, and if so, then how?

** Change log:
+ [26 Feb 2008, LB]
  In 'transcription_part_Type', Elements 'transcription_title' and 'edited_text' changed
    from minOccurs="0" to required. Element 'transcription' changed to  minOccurs="0".
  Added Element 'writing_surface' to 'physical_description_Type'.
  Added Element 'differentia' to 'neumedGroup'.

+ [28 Aug 2005, LB]
  The order of 'cultural_context' and 'provenance' has been reversed.