1 These are various notes about ooxml/model.xml and related stuff. They have been
2 mostly found out by trial and error, because existing documentation is poor
3 or nonexistent, so I don't actually understand writerfilter that much (and
4 think nothing nice about it) and don't think it (both writerfilter and my
5 understanding/liking of it) could be noticeably improved. In an ideal world
6 it should be nuked from orbit and started again from scratch with a saner design.
9 CT_xxx (Complex Type) - it seems to be used for XML elements
10 ST_xxx (Simple Type) - it seems to be used for XML attributes
12 - SPRM (the Sprm structure specified a modification to a property of a
13 character, paragraph, table, or section in the binary .doc format) - in
14 the context of OOXML it seems to pretty much mean "XML element"
18 Format of the <resource> tag (shortened CT_Font example):
20 <resource name="CT_Font" resource="Properties" tag="font">
21 <element name="charset" tokenid="ooxml:CT_Font_charset"/>
22 <attribute name="name" tokenid="ooxml:CT_Font_name"/>
25 CT_Font is the type that is defined how it will be handled.
26 resource="XXX" means it will be handled by OOXMLFastContextHandlerXXX class
27 no idea what tag="font" means or if it matters
28 <element> defines the <w:charset> subelement will be handled in sprm() function
29 as NS_ooxml::LN_CT_Font_charset case
30 <attribute> defines the <w:name> attribute of the element will be handled
31 in attribute() function as NS_ooxml::LN_CT_Font_name case
32 in both cases sprm()/attribute() may mean actually any of the various strange
33 naming ideas like lcl_sprm()
36 If an element (and its subelements) are not processed but the element itself
37 does not require any special handling, make sure something like the below is present.
38 Otherwise null context will be created and the element and all its subelements
41 <resource name="CT_OMathPara" resource="Stream" tag="math"/>