Difference between revisions of "Dynamic UNOIDL Reference Browser"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Currently work)
(Currently work)
Line 33: Line 33:
 
# A new version of schema released . (updated 2006-6-16 13:40 GMT+8)<br>[http://www.blog.edu.cn/user3/linbios/archives/2006/1369704.shtml Some new features]
 
# A new version of schema released . (updated 2006-6-16 13:40 GMT+8)<br>[http://www.blog.edu.cn/user3/linbios/archives/2006/1369704.shtml Some new features]
 
# A simple sample XSLT for the XML. ( a ugly doc represenation has been setuped, but it is so ugly... :(  and the xslt is very simple, just finish the "interface" type. more will come soon )(updated 2006-6-19 13:44 GMT+8)
 
# A simple sample XSLT for the XML. ( a ugly doc represenation has been setuped, but it is so ugly... :(  and the xslt is very simple, just finish the "interface" type. more will come soon )(updated 2006-6-19 13:44 GMT+8)
 +
# A simple demo doc-representation for the transformation has been setuped. The demo is almost the same as java-doc. ( updated 2006-6-20 20:00 GMT+8)
 +
# the additional java helper class is added. The class is to help the tranformation easier. (updated 2006 2006-06-21 9:00 GMT+8)
  
 
== Prepare to do  ==
 
== Prepare to do  ==

Revision as of 02:09, 21 June 2006

The Dynamic UNOIDL Reference Browser has been accepted as a Google Summer of Code project 2006 out the project ideas. This project page keeps you informed about the ongoing work on this project.

Student 
Lin Rongheng (ronghenglin at gmail.com)
Mentor 
Juergen Schmidt (juergen.schmidt at sun.com)


Abstract

The OpenOffice.org API is specified in UNOIDL (UNO Interface Definition Language). UNOIDL allows a language independent description of the API and language bindings/bridges allows the use of the same API from various languages where exactly such a language binding/bridge exists. But often it is difficult for users of the API to map the language independent UNOIDL reference documentation to their preferred and used programming language, e.g. Java or StarBasic. But exactly this would speed up their daily work, a Java programmer would like to have a Javadoc like reference of the API. The idea of a “Dynamic UNOIDL Reference Browser” is to develop a new concept for documenting IDL types in XML and a concept to provide a dynamically created representation for different languages.
That means in detail that the reference browser would dynamically create a piece of XML code from the IDL definition and the provided XML documentation string for the IDL type. An appropriate XSL transformation would convert the XML representation into the required language representation. For example a Java developer gets the correct Java mapping for an IDL interface type.
The dynamically approach has the advantage that we can (in a second step) analyze the navigation path to a type and can show context specific documentation. That can be very useful for generic types which have different meanings in different contexts. For example a return type of a generic type XEnumeration from function F of interface X. The generated documentation for XEnumeration would show exactly the info which is necessary to understand and use XEnumeration in the context of function F from interface X. It shows for example that the enumeration in this context always contains objects of type Y and even more information for more complex context dependent information.


Plan

There are several steps planned for this project:

  1. Setup a XML schema for UNOIDL type descriptions including type info and documents.
    MileStone : June 21. A XML schema setuped
  2. Define the output format for Java (Some javadoc like documentation) and provide XSLT to transform from XML to "the output format" dynamically
    MileStone : July 15. The transform is tested.
  3. Provide some GUI interface for a dynamic UNOIDL reference browser, containing a xhtml/html viewer and support of referenced types.
    MileStone : July 31. A GUI interface provided.
  4. Dynamical creation of UNOIDL XML files based on a UNO type library.
    MileStone : August 20. Finishing the dynamical reation.

Currently work

  1. Setup the environment for the openoffice UNO library using a Sun Java Studio Enterprise 8.(done!)
  2. write/run some type library demos to have a clear view about the UNOIDL types.(done!)
  3. Think about how to connect the UNOIDL types to the Schema.
    some understanding of the UNOTYPE (updated 2006-6-1 9:56 (GMT+8)) (done!)
  4. Give some schema demo for simple type.
    An alpha sample example of schema (updated 2006-6-1 14:00 (GMT+8)) (done!)
  5. Give a more detail schema for the UNOIDL types.
    more detail schema (updated 2006-6-12 14:40 (GMT+8)) (done!)
  6. Add the support of Module and Constant.A new version is being setuped. The version will add the support of the module and constant. Also , in the new version, I would separate the type into two kind: a "ref-type" and a "raw-type"(means the type define itself). I will post the new version in my blog as soon as possible. After the version , I would begin to test the xml files generated by the schema. And then, after fully tested, the schema part would be finished. (updated 2006-6-13 13:40 GMT+8)
  7. The new doc representation test. (first version of doc representation has begun. in this version, i test the xml to the xhtml and think about how to make the xhtml nice  :) soon I will link the page (updated 2006-6-14 23:36 GMT+8))
  8. I have some mis-understanding of the UNOIDL, so I have to change some UNOIDL type defines, such as "typeDef","Struct","Constant".(updated 2006-6-16 12:22 GMT+8)(done!)
  9. A new version of schema released . (updated 2006-6-16 13:40 GMT+8)
    Some new features
  10. A simple sample XSLT for the XML. ( a ugly doc represenation has been setuped, but it is so ugly... :( and the xslt is very simple, just finish the "interface" type. more will come soon )(updated 2006-6-19 13:44 GMT+8)
  11. A simple demo doc-representation for the transformation has been setuped. The demo is almost the same as java-doc. ( updated 2006-6-20 20:00 GMT+8)
  12. the additional java helper class is added. The class is to help the tranformation easier. (updated 2006 2006-06-21 9:00 GMT+8)

Prepare to do

  1. A simple sample XSLT for the XML. (moved to the currently work)
  2. A Sample transform to XHTML ... (has begun to do this with the XSLT)
  3. A Real XSLT for the XML
  4. A Image of the GUI.

A Personal Blog

Bios Space may be updated everyday, Including some other interesting things that happened around.

Personal tools