Content Types Stream Markup
The Content Types stream identifies the content type for each package part. The Content Types stream contains XML with a top-level <Types> element, and one or more <Default> and <Override> child elements. <Default> elements define default mappings from the extensions of part names to content types. <Override> elements are used to specify content types on parts that are not covered by, or are not consistent with, the default mappings. Package producers can use pre-defined <Default> elements to reduce the number of <Override> elements on a part, but are not required to do so. [O2.4]
The package implementer shall require that the Content Types stream contain one of the following for every part in the package:
One matching
<Default>elementOne matching
<Override>elementBoth a matching
<Default>element and a matching<Override>element, in which case the<Override>element takes precedence. [M2.4]
The package implementer shall require that there not be more than one <Default> element for any given extension, and there not be more than one <Override> element for any given part name. [M2.5]
The order of <Default> and <Override> elements in the Content Types stream is not significant.
If the package is intended for streaming consumption:
The package implementer should not allow
< Default>elements; as a consequence, there should be one<Override>element for each part in the package.The format producer should write the
<Override>elements to the package so they appear before the parts to which they correspond, or in close proximity to the part to which they correspond.
[S2.3]
The package implementer can define <Default> content type mappings even though no parts use them. [O2.5]