These are various notes about ooxml/model.xml and related stuff. They have been
mostly found out by trial and error, because existing documentation is poor
or nonexistent, so I don't actually understand writerfilter that much (and
think nothing nice about it) and don't think it (both writerfilter and my
understanding/liking of it) could be noticeably improved. In an ideal world
it should be nuked from orbit and started again from scratch with a saner design.

-
CT_xxx (Complex Type) - it seems to be used for XML elements
ST_xxx (Simple Type) - it seems to be used for XML attributes

- SPRM (the Sprm structure specified a modification to a property of a
character, paragraph, table, or section in the binary .doc format) - in
the context of OOXML it seems to pretty much mean "XML element"

-

Format of the <resource> tag (shortened CT_Font example):

    <resource name="CT_Font" resource="Properties" tag="font">
      <element name="charset" tokenid="ooxml:CT_Font_charset"/>
      <attribute name="name" tokenid="ooxml:CT_Font_name"/>
    </resource>

CT_Font is the type that is defined how it will be handled.
resource="XXX" means it will be handled by OOXMLFastContextHandlerXXX class
no idea what tag="font" means or if it matters
<element> defines the <w:charset> subelement will be handled in sprm() function
    as NS_ooxml::LN_CT_Font_charset case
<attribute> defines the <w:name> attribute of the element will be handled
    in attribute() function as NS_ooxml::LN_CT_Font_name case
in both cases sprm()/attribute() may mean actually any of the various strange
    naming ideas like lcl_sprm()

-
If an element (and its subelements) are not processed but the element itself
does not require any special handling, make sure something like the below is present.
Otherwise null context will be created and the element and all its subelements
will be ignored.

<resource name="CT_OMathPara" resource="Stream" tag="math"/>

