OASIS Open Mailing List Archives  ·  All Lists  ·  office-collab  ·  2013-02

office-collab — archive

[Date Prev]  |  [Thread Prev]  |  [Thread Next]  |  [Date Next]   —  [Date Index]  |  [Thread Index]  |  [Month Index]  |  [List Home]

Prototyping


It would be optimal if we would be able to finish our specification end of this year, to allow all major ODF application vendors sufficient time to implement change-tracking in their upcoming major releases. Especially for MSO16 this would be desirable as in all previous office versions all ODF change-tracking information gets lost after loading & saving an ODF document. Therefore I would like to suggest to initiate a common start of prototyping. At least from Camilla (Calligra) and Oliver (Apache OpenOffice) I have heard that they were interested in prototyping, Jos should be curious as he created once WebODF and perhaps John might interested to test and improve compatibility to OOXML as soon as possible. In addition I do believe it would be very helpful to have face2face meetings to discuss problems on a white board and therefore I would recommend to meet informally at an ODF plugfest, other suggestions are welcome. When start prototyping I would like to drop the complexity of saving the operations and all related design decisions for the beginning. Instead I would like to focus on the design of the operations themselves and the analysis of the properties they are changing. (Sometimes an abstraction from the ODF XML is helpful as later shown for ODF lists). As discussed on our call most important for users is the insertion of text. A method signature might look like:     addText(List<Integer> startPosition, String text) NOTE: I am using Java method syntax to draft the signature of an operation, but a signature as above might be easily serialized to an explicit invocation of adding the text Hello world! to     <add type= text s= /1/1 >Hello World!</add> Text can not stand alone in an ODF document. In general text is contained in a paragraph, so we need an operation to add one:     addParagraph(List<Integer> start) for instance     <add type= paragraph s= /1 /> or for convenience in one     <add type= paragraph s= /1 >Hello World!</add> A first step, might be to create such operations with your ODF application, while loading the document ( some further details ) and using the same operations to be applied on an empty document to create the original. Some kind of round-trip through the operation domain. And when doing so, some further operations are close to obvious: A heading is only a paragraph with an outline level. The outline level just a property on the paragraph. For instance,     <text:h text:outline-level= 1 >MyHeading</text:h> would become     <add type= paragraph s= /1 outlineLevel= 1 >MyHeading</add> or as signature     addParagraph(List<Integer> startPosition, String text, Map properties) (NOTE: For ease of use, I simply add a map to the paragraph with the XML local name in camel case as key and the attribute value as map value.) Usually styles would now follow (like a nested map containing text and paragraph properties as maps), but lists are currently being discussed on the ODF TC list, I would like to ask you about lists. Lists - as discussed on our last call - can be seen as paragraphs. The question is what additional list properties are required on a paragraph to represent a list? Remember the idea is that there are only paragraphs with properties to allow an efficient transformation between heading, list-item-paragraphs and paragraphs. listStartValue - http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#attribute-text_start-value_element-text_list-item listStyle - as applied on the paragraph, the resolved list value is taken from http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#attribute-text_style-name_element-text_list http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#attribute-text_style-override and from the paragraph itself (but AFAIK widely unsupported) http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#attribute-style_list-style-name More detail see tests on OIC list -- https://lists.oasis-open.org/archives/oic/201302/msg00000.html (NOTE: The creation of the referenced list style properties should be postponed as styles in general, as it is not problematic) listLevel - the count of nested <text:list> listId - http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#attribute-xml_id consecutiveListId - as ease of use having a single property for the two ODF attributes http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#attribute-text_continue-numbering http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#attribute-text_continue-list (only expected to be on the root text:list element) showListLabel - if multiple paragraphs are within a list item, there is only a list label on the first. And if the first paragraph within a list item does not show a label it is serialized as http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#element-text_list-header isListStart - I am undecided about this one. Redundant if there is a listId (@xml:id). The future will tell.. The mapping is not easy, quite impossible without trying it on a living document without a prototype and therefore I need your cooperation on this. As initial draft of test documents, I may offer https://dl.dropbox.com/u/49473263/ListStyleResolution.odt https://dl.dropbox.com/u/49473263/ContinueListTest.odt https://dl.dropbox.com/u/49473263/ListStyleResolution-PreliminaryDraft.odt All valid ODF 1.2, manual edited and ContinueListTest.odt uses as well some @text:continue-list from within a list to see if some application response to it. PS: Dennis already pointed me to the OIC TC Subversion test suite repository , I will switch to that but for now the copy/paste of URLs from my local PC is far easer. But  in the future the OIC TC repository would be an appropriate place to store common test documents (Perhaps we can switch to Github, but this should be not of concern now ;) ) Best regards, Svante

[Date Prev]  |  [Thread Prev]  |  [Thread Next]  |  [Date Next]   —  [Date Index]  |  [Thread Index]  |  [Month Index]  |  [List Home]