Hello all, One of my action items was to suggest work packages. To do so, I proceeded as follows: I have extracted all element names from the base DTD. I then grouped those into chapters representing 'conceptual' units that make sense to be convered together. Each (sub-)chapter then would constitute a work packages. I have added some comments where I felt my choices needed explanation. A problem with the 'conceptual' units is that the amounts of time per package may differ widely; this must be taken into account when using them as basis for planning. Note that the work packages strictly follows the existing base specification. It doesn't include any of the other first phase issues, such as defining extension mechanisms and policies. [1] Also, you will no doubt notice that I cheated in a few spots: There are some chapters labeled 'Other ...', which really means I'm not quite done with the grouping. :-P Without preempting Michael's prerogative to set the meeting agenda, I would suggest that we start with chapter one (essentially, the top-level structure of the document, without the document details). We've got to start somewhere... :-) Sincerely, Daniel [1] ...which I expect to be a rather controversial topic: Users and the content management crowd will almost certainly prefer general and powerful extensibility. As an applications person, however, I'm well aware that very general extensibility is easy to define but basically impossible to implement in an office app. The challenge is to find something implementable, which is good enough and powerful enough for the users. Suggestion for Work Packages ============================== 1 Document Structure 1.1 Top Level Elements 1.2 First Level Elements 1.3 Body 2 Meta Information 3 Text Content 3.1 Paragraph Level Structure 3.1.1 Basics 3.1.2 Lists 3.2 Text Sections & Indices 3.2.1 Basics 3.2.2 Indices 3.2.3 Index Source Elements 3.3 Inside a Paragraph 3.3.1 Basics 3.3.2 Footnotes & Endnotes 3.3.3 Rubies 3.3.4 Text Fields 3.3.5 Text Marks 3.4 Change Tracking 3.5 Text Declarations 4 Tables 4.1 Basic Table Model 4.2 Advanced Table Model 4.3 Table Change Tracking 4.4 Other Table Elements 5 Styles 5.1 Style Structure: Styles, Auto-Styles, and Special Styles 5.2 Basics 5.3 Style Properties 5.3.1 Style Poperty Elements 5.4 Special Styles 5.4.1 Footnotes & Endnotes 5.4.2 Bibliography 5.4.3 Line Numbering 5.4.4 List Styles 5.4.5 Outline Style 5.5 Font Declarations 5.6 Number Styles 6 Graphical Content 6.1 Shapes 6.2 Embedded Objects 6.3 Other Graphical Elements 7 Business Charts 8 Forms 9 Events and Scripts 10 Settings 1 Document Structure ---------------------- 1.1 Top Level Elements There are different possible top level elements, office:document for a complete document, and the others for subdocuments which contain only parts of a document. <office:document> (office.mod) <office:document-styles> (office.mod) <office:document-content> (office.mod) <office:document-meta> (office.mod) <office:document-settings> (office.mod) 1.2 First Level Elements <office:meta> (office.mod) <office:script> (office.mod) <office:font-decls> (office.mod) <office:styles> (office.mod) <office:automatic-styles> (office.mod) <office:master-styles> (office.mod) <office:body> (office.mod) 1.3 Body The body structure determines what kind of content the document can hold; hence I think this warrants a chapter of its own. The current body definition basically contains some optional prelude and wrap-up parts, usually specific to some in-document functionality. (E.g. change marks needed for change tracking information.) These parts might better be discussed together with their other functionality, though. <office:body> (office.mod) 2 Meta Information -------------------- This is the currently supported meta information. In addition to discussing the actual meta elements, this is a place where core sets plus an extension strategy make a lot of sense. <dc:creator> (meta.mod) <dc:date> (meta.mod) <dc:description> (meta.mod) <dc:language> (meta.mod) <dc:subject> (meta.mod) <dc:title> (meta.mod) <meta:auto-reload> (meta.mod) <meta:creation-date> (meta.mod) <meta:document-statistic> (meta.mod) <meta:editing-cycles> (meta.mod) <meta:editing-duration> (meta.mod) <meta:generator> (meta.mod) <meta:hyperlink-behaviour> (meta.mod) <meta:initial-creator> (meta.mod) <meta:keyword> (meta.mod) <meta:keywords> (meta.mod) <meta:print-date> (meta.mod) <meta:printed-by> (meta.mod) <meta:template> (meta.mod) <meta:user-defined> (meta.mod) 3 Text Content ---------------- 3.1 Paragraph Level Structure 3.1.1 Basics All texts are included in paragraph elements, which may be either a plain paragraph or a header. This is similar to HTML <text:p> (text.mod) <text:h> (text.mod) 3.1.2 Lists Lists (ordered or unordered) contain a sequence of list items, similar to HTML. <text:ordered-list> (text.mod) <text:unordered-list> (text.mod) <text:list-header> (text.mod) <text:list-item> (text.mod) 3.2 Text Sections & Indices 3.2.1 Basics A text section is a text container. It allows certain formatting which cannot be applied to smaller units (e.g. multiple columns) to be applied. <text:section> (text.mod) A section may also be used to include external text files. In this case, the section-source element contains the relevant information. <text:section-source> (text.mod) <office:dde-source> (office.mod) 3.2.2 Indices Indices work roughly the same as text sections do, except that their contents may be updated automatically by the application. Every index contains a specialized index source element which describes how the index is generated, and additionally an index body containing the index content (which works just like a regular section). <text:table-of-content> (text.mod) <text:table-of-content-source> (text.mod) <text:table-of-content-entry-template> (text.mod) <text:illustration-index> (text.mod) <text:illustration-index-source> (text.mod) <text:illustration-index-entry-template> (text.mod) <text:table-index> (text.mod) <text:table-index-source> (text.mod) <text:table-index-entry-template> (text.mod) <text:object-index> (text.mod) <text:object-index-source> (text.mod) <text:object-index-entry-template> (text.mod) <text:user-index> (text.mod) <text:user-index-source> (text.mod) <text:user-index-entry-template> (text.mod) <text:alphabetical-index> (text.mod) <text:alphabetical-index-source> (text.mod) <text:alphabetical-index-entry-template> (text.mod) <text:alphabetical-index-auto-mark-file> (text.mod) <text:bibliography> (text.mod) <text:bibliography-source> (text.mod) <text:bibliography-entry-template> (text.mod) <text:index-body> (text.mod) <text:index-title> (text.mod) 3.2.3 Index Source Elements These elements may be used inside index source elements to describe how the index is constructed from the source document. <text:index-title-template> (text.mod) <text:index-entry-chapter-number> (text.mod) <text:index-entry-chapter> (text.mod) <text:index-entry-text> (text.mod) <text:index-entry-page-number> (text.mod) <text:index-entry-span> (text.mod) <text:index-entry-bibliography> (text.mod) <text:index-entry-tab-stop> (text.mod) <text:index-entry-link-start> (text.mod) <text:index-entry-link-end> (text.mod) <text:index-source-styles> (text.mod) <text:index-source-style> (text.mod) 3.3 Inside a Paragraph 3.3.1 Basics The basic elements which can be used inside text context. <text:span> (text.mod) <text:a> (text.mod) <text:s> (text.mod) <text:tab-stop> (text.mod) <text:line-break> (text.mod) 3.3.2 Footnotes & Endnotes Footnotes and endnotes are directly embedded into the text, using a structure similar to XSL-FO. <text:footnote> (text.mod) <text:footnote-citation> (text.mod) <text:footnote-body> (text.mod) <text:endnote> (text.mod) <text:endnote-citation> (text.mod) <text:endnote-body> (text.mod) 3.3.3 Rubies Asian text annotations. <text:ruby> (text.mod) <text:ruby-base> (text.mod) <text:ruby-text> (text.mod) 3.3.4 Text Fields A text field is a text string which is computed by the application. <text:date> (text.mod) <text:time> (text.mod) <text:page-number> (text.mod) <text:page-continuation> (text.mod) <text:sender-firstname> (text.mod) <text:sender-lastname> (text.mod) <text:sender-initials> (text.mod) <text:sender-title> (text.mod) <text:sender-position> (text.mod) <text:sender-email> (text.mod) <text:sender-phone-private> (text.mod) <text:sender-fax> (text.mod) <text:sender-company> (text.mod) <text:sender-phone-work> (text.mod) <text:sender-street> (text.mod) <text:sender-city> (text.mod) <text:sender-postal-code> (text.mod) <text:sender-country> (text.mod) <text:sender-state-or-province> (text.mod) <text:author-name> (text.mod) <text:author-initials> (text.mod) <text:placeholder> (text.mod) <text:variable-set> (text.mod) <text:variable-get> (text.mod) <text:variable-input> (text.mod) <text:user-field-get> (text.mod) <text:user-field-input> (text.mod) <text:sequence> (text.mod) <text:expression> (text.mod) <text:text-input> (text.mod) <text:database-display> (text.mod) <text:database-next> (text.mod) <text:database-row-select> (text.mod) <text:database-row-number> (text.mod) <text:database-name> (text.mod) <text:initial-creator> (text.mod) <text:creation-date> (text.mod) <text:creation-time> (text.mod) <text:description> (text.mod) <text:user-defined> (text.mod) <text:print-time> (text.mod) <text:print-date> (text.mod) <text:printed-by> (text.mod) <text:title> (text.mod) <text:subject> (text.mod) <text:keywords> (text.mod) <text:editing-cycles> (text.mod) <text:editing-duration> (text.mod) <text:modification-time> (text.mod) <text:modification-date> (text.mod) <text:creator> (text.mod) <text:conditional-text> (text.mod) <text:hidden-text> (text.mod) <text:hidden-paragraph> (text.mod) <text:chapter> (text.mod) <text:file-name> (text.mod) <text:template-name> (text.mod) <text:page-variable-set> (text.mod) <text:page-variable-get> (text.mod) <text:execute-macro> (text.mod) <text:dde-connection> (text.mod) <text:reference-ref> (text.mod) <text:sequence-ref> (text.mod) <text:bookmark-ref> (text.mod) <text:footnote-ref> (text.mod) <text:endnote-ref> (text.mod) <text:sheet-name> (text.mod) <text:page-count> (text.mod) <text:paragraph-count> (text.mod) <text:word-count> (text.mod) <text:character-count> (text.mod) <text:table-count> (text.mod) <text:image-count> (text.mod) <text:object-count> (text.mod) <text:script> (text.mod) <text:measure> (text.mod) <text:bibliography-mark> (text.mod) <office:annotation> (office.mod) 3.3.5 Text Marks A text mark marks a certain text position or a range of text. It may overlap with other structures. To facilitate this, (non-empty) text marks are represented by a pair of start/end elements. <text:bookmark> (text.mod) <text:bookmark-start> (text.mod) <text:bookmark-end> (text.mod) <text:reference-mark> (text.mod) <text:reference-mark-start> (text.mod) <text:reference-mark-end> (text.mod) <text:toc-mark-start> (text.mod) <text:toc-mark-end> (text.mod) <text:toc-mark> (text.mod) <text:user-index-mark-start> (text.mod) <text:user-index-mark-end> (text.mod) <text:user-index-mark> (text.mod) <text:alphabetical-index-mark-start> (text.mod) <text:alphabetical-index-mark-end> (text.mod) <text:alphabetical-index-mark> (text.mod) <text:change> (text.mod) <text:change-start> (text.mod) <text:change-end> (text.mod) 3.4 Change Tracking Store information about changes made to a document. The document itself contains markers that determine where the changes were made. <office:change-info> (office.mod) <text:tracked-changes> (text.mod) <text:changed-region> (text.mod) <text:insertion> (text.mod) <text:deletion> (text.mod) <text:format-change> (text.mod) 3.5 Text Declarations Certain text elements (variable fields, DDE connections) which can be used inside text documents should be declared before. <text:variable-decls> (text.mod) <text:variable-decl> (text.mod) <text:user-field-decls> (text.mod) <text:user-field-decl> (text.mod) <text:sequence-decls> (text.mod) <text:sequence-decl> (text.mod) <text:dde-connection-decls> (text.mod) <text:dde-connection-decl> (text.mod) 4 Tables ---------- 4.1 Basic Table Model <table:table> (table.mod) <table:table-row> (table.mod) <table:table-cell> (table.mod) <table:covered-table-cell> (table.mod) <table:sub-table> (table.mod) 4.2 Advanced Table Model <table:table-columns> (table.mod) <table:table-column> (table.mod) <table:table-column-group> (table.mod) <table:table-header-columns> (table.mod) <table:table-row-group> (table.mod) <table:table-rows> (table.mod) <table:table-header-rows> (table.mod) 4.3 Table Change Tracking <office:change-info> (office.mod) <table:tracked-changes> (table.mod) <table:deletions> (table.mod) <table:cell-content-deletion> (table.mod) <table:change-deletion> (table.mod) <table:insertion> (table.mod) <table:deletion> (table.mod) <table:cut-offs> (table.mod) <table:insertion-cut-off> (table.mod) <table:movement-cut-off> (table.mod) <table:movement> (table.mod) <table:dependences> (table.mod) <table:dependence> (table.mod) <table:target-range-address> (table.mod) <table:source-range-address> (table.mod) <table:change-track-table-cell> (table.mod) <table:cell-content-change> (table.mod) <table:cell-address> (table.mod) <table:previous> (table.mod) <table:rejection> (table.mod) 4.4 Other Table Elements <table:calculation-settings> (table.mod) <table:null-date> (table.mod) <table:iteration> (table.mod) <table:table-source> (table.mod) <table:scenario> (table.mod) <table:shapes> (table.mod) <table:cell-range-source> (table.mod) <table:detective> (table.mod) <table:highlighted-range> (table.mod) <table:operation> (table.mod) <table:content-validations> (table.mod) <table:content-validation> (table.mod) <table:help-message> (table.mod) <table:error-message> (table.mod) <table:error-macro> (table.mod) <table:label-ranges> (table.mod) <table:label-range> (table.mod) <table:named-expressions> (table.mod) <table:named-range> (table.mod) <table:named-expression> (table.mod) <table:filter> (table.mod) <table:filter-and> (table.mod) <table:filter-or> (table.mod) <table:filter-condition> (table.mod) <table:database-ranges> (table.mod) <table:database-range> (table.mod) <table:database-source-sql> (table.mod) <table:database-source-table> (table.mod) <table:database-source-query> (table.mod) <table:sort> (table.mod) <table:sort-by> (table.mod) <table:subtotal-rules> (table.mod) <table:sort-groups> (table.mod) <table:subtotal-rule> (table.mod) <table:subtotal-field> (table.mod) <table:data-pilot-tables> (table.mod) <table:data-pilot-table> (table.mod) <table:source-service> (table.mod) <table:source-cell-range> (table.mod) <table:data-pilot-field> (table.mod) <table:data-pilot-level> (table.mod) <table:data-pilot-subtotals> (table.mod) <table:data-pilot-subtotal> (table.mod) <table:data-pilot-members> (table.mod) <table:data-pilot-member> (table.mod) <table:consolidation> (table.mod) <table:dde-links> (table.mod) <table:dde-link> (table.mod) <office:dde-source> (office.mod) <office:annotation> (office.mod) 5 Styles ---------- 5.1 Style Structure: Styles, Auto-Styles, and Special Styles This is about the basic structure of style information. Specifically, how to represent user defined and user visible styles, vs direct formatting that a user might carry out in an office application. <office:styles> (office.mod) <office:automatic-styles> (office.mod) <office:master-styles> (office.mod) 5.2 Basics <style:style> (style.mod) <style:properties> (style.mod) <style:default-style> (style.mod) <style:map> (style.mod) 5.3 Style Properties <style:properties> (style.mod) The style:properties element can take a rather large number of attributes that definitely warrant discussion. Open Issues: fo:left/right vs fo:start (Ken Holman) 5.3.1 Style Property Elements <style:tab-stops> (style.mod) <style:tab-stop> (style.mod) <style:drop-cap> (style.mod) <style:background-image> (style.mod) <style:symbol-image> (style.mod) <style:columns> (style.mod) <style:column> (style.mod) <style:column-sep> (style.mod) <style:page-master> (style.mod) <style:header-style> (style.mod) <style:footer-style> (style.mod) <style:footnote-sep> (style.mod) <style:master-page> (style.mod) <style:handout-master> (style.mod) <style:header> (style.mod) <style:footer> (style.mod) <style:header-left> (style.mod) <style:footer-left> (style.mod) <style:region-left> (style.mod) <style:region-center> (style.mod) <style:region-right> (style.mod) 5.4 Special Styles 'Special' styles are styles which apply to the whole document. Since they have no identity (name) of their own, they do not fit into the style concept. For example, a footnote style determines how all of the document's footnotes are to be processed. 5.4.1 Footnotes & Endnotes <text:footnotes-configuration> (text.mod) <text:footnote-continuation-notice-forward> (text.mod) <text:footnote-continuation-notice-backward>(text.mod) <text:endnotes-configuration> (text.mod) 5.4.2 Bibliography <text:bibliography-configuration> (text.mod) <text:sort-key> (text.mod) 5.4.3 Line Numbering <text:linenumbering-configuration> (text.mod) <text:linenumbering-separator> (text.mod) 5.4.4 List Styles <text:list-style> (text.mod) <text:list-level-style-number> (text.mod) <text:list-level-style-bullet> (text.mod) <text:list-level-style-image> (text.mod) 5.4.5 Outline Style <text:outline-style> (text.mod) <text:outline-level-style> (text.mod) 5.5 Font Declarations <style:font-decl> (style.mod) 5.6 Number Styles <number:number-style> (datastyl.mod) <number:number> (datastyl.mod) <number:scientific-number> (datastyl.mod) <number:fraction> (datastyl.mod) <number:embedded-text> (datastyl.mod) <number:currency-style> (datastyl.mod) <number:currency-symbol> (datastyl.mod) <number:percentage-style> (datastyl.mod) <number:date-style> (datastyl.mod) <number:day> (datastyl.mod) <number:month> (datastyl.mod) <number:year> (datastyl.mod) <number:era> (datastyl.mod) <number:day-of-week> (datastyl.mod) <number:week-of-year> (datastyl.mod) <number:quarter> (datastyl.mod) <number:time-style> (datastyl.mod) <number:hours> (datastyl.mod) <number:minutes> (datastyl.mod) <number:seconds> (datastyl.mod) <number:am-pm> (datastyl.mod) <number:boolean-style> (datastyl.mod) <number:boolean> (datastyl.mod) <number:text-style> (datastyl.mod) <number:text> (datastyl.mod) <number:text-content> (datastyl.mod) 6 Graphical Content --------------------- 6.1 Shapes Shapes are simple graphical objects. <draw:rect> (drawing.mod) <draw:line> (drawing.mod) <draw:polyline> (drawing.mod) <draw:polygon> (drawing.mod) <draw:path> (drawing.mod) <draw:circle> (drawing.mod) <draw:ellipse> (drawing.mod) <draw:connector> (drawing.mod) <draw:control> (drawing.mod) <draw:g> (drawing.mod) 6.2 Embedded Objects Embedded objects are complex objects which can be embedded into table or text flow. Some have a native XML representation (text boxes, mathematical formulas), while other have only binary representations. <draw:text-box> (drawing.mod) <math:math> (drawing.mod) <draw:image> (drawing.mod) <draw:object> (drawing.mod) <draw:object-ole> (drawing.mod) <office:binary-data> (office.mod) 6.3 Other Graphical Elements <draw:page-thumbnail> (drawing.mod) <draw:caption> (drawing.mod) <draw:measure> (drawing.mod) <draw:gradient> (drawing.mod) <draw:hatch> (drawing.mod) <draw:fill-image> (drawing.mod) <draw:transparency> (drawing.mod) <draw:marker> (drawing.mod) <draw:stroke-dash> (drawing.mod) <presentation:sound> (drawing.mod) <presentation:show-shape> (drawing.mod) <presentation:show-text> (drawing.mod) <presentation:hide-shape> (drawing.mod) <presentation:hide-text> (drawing.mod) <presentation:dim> (drawing.mod) <presentation:play> (drawing.mod) <presentation:animations> (drawing.mod) <presentation:show> (drawing.mod) <presentation:settings> (drawing.mod) <draw:page> (drawing.mod) <presentation:notes> (drawing.mod) <style:presentation-page-layout> (drawing.mod) <presentation:placeholder> (drawing.mod) <draw:thumbnail> (drawing.mod) <svg:desc> (drawing.mod) <draw:contour-polygon> (drawing.mod) <draw:contour-path> (drawing.mod) <draw:a> (drawing.mod) <dr3d:light> (drawing.mod) <dr3d:cube> (drawing.mod) <dr3d:sphere> (drawing.mod) <dr3d:extrude> (drawing.mod) <dr3d:rotate> (drawing.mod) <dr3d:scene> (drawing.mod) <draw:layer-set> (drawing.mod) <draw:layer> (drawing.mod) <presentation:event> (drawing.mod) <draw:applet> (drawing.mod) <draw:plugin> (drawing.mod) <draw:param> (drawing.mod) <draw:floating-frame> (drawing.mod) <draw:image-map> (drawing.mod) <draw:area-rectangle> (drawing.mod) <draw:area-circle> (drawing.mod) <draw:area-polygon> (drawing.mod) 7 Business Charts ------------------- <chart:chart> (chart.mod) <chart:title> (chart.mod) <chart:subtitle> (chart.mod) <chart:legend> (chart.mod) <chart:plot-area> (chart.mod) <chart:wall> (chart.mod) <chart:floor> (chart.mod) <chart:stock-gain-marker> (chart.mod) <chart:stock-loss-marker> (chart.mod) <chart:stock-range-line> (chart.mod) <chart:axis> (chart.mod) <chart:grid> (chart.mod) <chart:categories> (chart.mod) <chart:series> (chart.mod) <chart:domain> (chart.mod) <chart:data-point> (chart.mod) <chart:mean-value> (chart.mod) <chart:regression-curve> (chart.mod) <chart:error-indicator> (chart.mod) 8 Forms --------- <office:forms> (form.mod) <form:control> (form.mod) <form:form> (form.mod) <form:text> (form.mod) <form:textarea> (form.mod) <form:password> (form.mod) <form:file> (form.mod) <form:formatted-text> (form.mod) <form:fixed-text> (form.mod) <form:combobox> (form.mod) <form:item> (form.mod) <form:listbox> (form.mod) <form:option> (form.mod) <form:button> (form.mod) <form:image> (form.mod) <form:checkbox> (form.mod) <form:radio> (form.mod) <form:frame> (form.mod) <form:image-frame> (form.mod) <form:hidden> (form.mod) <form:grid> (form.mod) <form:column> (form.mod) <form:generic-control> (form.mod) <form:properties> (form.mod) <form:property> (form.mod) <form:property-value> (form.mod) 9 Events and Scripts ---------------------- To facilitate active content, events may be assigned to some elements. <office:events> (office.mod) <script:event> (script.mod) To save script source inside a document, use these elements: <script:library-embedded> (script.mod) <script:library-linked> (script.mod) <script:module> (script.mod) 10 Settings ------------- Settings contain application specific information. Examples would contain e.g. information on the printer (and its settings) the document was last printed on, or the position of the cursor. They are split into view settings (how the application is supposed to display the document) and document settings (how the application is supposed to handle the document). Since this information is inherently application specific, it will not likely be of much interest to XML transforms, but must be able to accommodate different applications. To do so, a generic encoding is used. <office:settings> (settings.mod) <config:config-item-set> (settings.mod) <config:config-item> (settings.mod) <config:config-item-map-named> (settings.mod) <config:config-item-map-indexed> (settings.mod) <config:config-item-map-entry> (settings.mod)