MakeMusic
SmartMusic Finale Garritan MusicXML

OSF Container

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xs:annotation>
  <xs:documentation>Open Score Format

Version 1.0 - 11 September 2009

Copyright © 2004-2009 MakeMusic, Inc.
http://www.makemusic.com/

This MusicXML™ work is being provided by the copyright holder under the MusicXML Document Type Definition Public License Version 2.0, available from:

 http://www.musicxml.org/dtds/license.html

Starting with Version 2.0, the MusicXML format includes a standard zip compressed version. These zip files can contain multiple MusicXML files as well as other media files for images and sound. The container schema describes the contents of the META-INF/container.xml file. The container describes the starting point for the MusicXML version of the file, as well as alternate renditions such as PDF and audio versions of the musical score.

The MusicXML 2.0 zip file format is compatible with the zip format used by the java.util.zip package and Java JAR files. It is based on the Info-ZIP format described at:

 ftp://ftp.uu.net/pub/archiving/zip/doc/appnote-970311-iz.zip

The JAR file format is specified at:

 http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html

Note that, compatible with JAR files, file names should be encoded in UTF-8 format.

Files with the zip container are compressed the DEFLATE algorithm. The DEFLATE Compressed Data Format (RFC 1951) is specified at:

 http://www.ietf.org/rfc/rfc1951.txt

The recommended file suffix for OSF files is .osf. The recommended media type for an Open Score Format package file is:

  application/vnd.yamaha.openscoreformat

The recommended media type for an OSF PVG profile MusicXML score is:

  application/vnd.yamaha.openscoreformat.osfpvg+xml

Open Score Format specifies additional constraints on container files than does MusicXML 2.0. See the Open Score Format Packaging Specification for further details.

Open Score Format uses XSD for all its XML format definitions. This container.xsd file is an XSD version of MusicXML 2.0's container.dtd file.</xs:documentation>
 </xs:annotation>
 <xs:element name="container">
  <xs:annotation>
   <xs:documentation>Container is the document element. </xs:documentation>
  </xs:annotation>
  <xs:complexType>
   <xs:sequence>
    <xs:element name="rootfiles">
     <xs:annotation>
      <xs:documentation>Rootfiles include the starting points for the different representations of a MusicXML score. The MusicXML root must be described in the first rootfile element. Additional rootfile elements can describe alternate versions such as PDF and audio files.</xs:documentation>
     </xs:annotation>
     <xs:complexType>
      <xs:sequence>
       <xs:element name="rootfile" maxOccurs="unbounded">
        <xs:annotation>
         <xs:documentation>The rootfile element describes each top-level file in the MusicXML container. </xs:documentation>
        </xs:annotation>
        <xs:complexType>
         <xs:attribute name="full-path" type="xs:anyURI">
          <xs:annotation>
           <xs:documentation>The full-path attribute provides the path relative to the root folder of the zip file. It is an IRI as defined in RFC3987.</xs:documentation>
          </xs:annotation>
         </xs:attribute>
         <xs:attribute name="media-type" type="xs:anyURI">
          <xs:annotation>
           <xs:documentation>The media-type identifies the type of different top-level root files. It is an Internet Media Type (MIME-Type) as defined by RFC2046. It is an error to have a non-MusicXML media-type value in the first rootfile in a rootfiles element. If no media-type value is present, a MusicXML file is assumed. A MusicXML file used as a rootfile may have score-partwise, score-timewise, or opus as its document element.</xs:documentation>
          </xs:annotation>
         </xs:attribute>
        </xs:complexType>
       </xs:element>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>