Difference between revisions of "Dynamic UNOIDL Reference Browser"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Prepare to do)
Line 9: Line 9:
 
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.<br>
 
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.<br>
 
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. <br>
 
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. <br>
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.<br>
+
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 ==
 
== Plan ==
  
'''There are several steps for this project:'''<br>
+
'''There are several steps planned for this project:'''
1、Setup a XML schema for UNOIDL type descriptions including type info and documents.<br>
+
# Setup a XML schema for UNOIDL type descriptions including type info and documents.<br>'''MileStone''' : June 21. A XML schema setuped
MileStone : June 21. A XML schema setuped.<br>
+
# Define the output format for Java (Some javadoc like documentation) and provide XSLT to transform from XML to "the output format" dynamically<br>'''MileStone''' :  July 15. The transform is tested.
2、Define the output format for Java(Some javadoc like documentation) and provide XSLT to transform from XML to "the output format" dynamically<br>
+
# Provide some GUI interface for a dynamic UNOIDL reference browser, containing a xhtml/html viewer and support of referenced types.<br>'''MileStone''' :  July 31. A GUI interface provided.
MileStone :  July 15. The transform is tested. <br>
+
# Dynamical creation of UNOIDL XML files based on a UNO type library.<br>'''MileStone''' :  August 20. Finishing the dynamical reation.
3、Provide some GUI interface for a dynamic UNOIDL reference browser, containing a xhtml/html viewer and support of referenced types.<br>
+
MileStone :  July 31. A GUI interface provided.<br>
+
4、Dynamical creation of UNOIDL XML files based on a UNO type library.<br>
+
MileStone :  August 20. Finishing the dynamical creation.<br>
+
  
 
== Currently work ==
 
== Currently work ==
  
1、Setup the environment for the openoffice UNO library using a Sun Java Studio Enterprise 8.<br>
+
# Setup the environment for the openoffice UNO library using a Sun Java Studio Enterprise 8.
2、write/run some type library demos to have a clear view about the UNOIDL types.<br>
+
# write/run some type library demos to have a clear view about the UNOIDL types.
  
 
== Prepare to do  ==
 
== Prepare to do  ==
  
1、Think About how to connect the UNOIDL types to the Schema.<br>
+
# Think about how to connect the UNOIDL types to the Schema.<br>[http://rhlin.blog.edu.cn/user3/linbios/archives/2006/1338767.shtml some understanding of the UNOTYPE (updated 2006-6-1 9:56 (GMT+8))]
  [http://rhlin.blog.edu.cn/user3/linbios/archives/2006/1338767.shtml some understanding of the UNOTYPE (updated 2006-6-1 9:56 (GMT+8))]
+
# Give some schema demo for simple type.<br>[http://rhlin.blog.edu.cn/user3/linbios/archives/2006/1339435.shtml An alpha sample example of schema (updated 2006-6-1 14:00 (GMT+8))]
2、Give some schmea demo for simple type.<br>
+
  [http://rhlin.blog.edu.cn/user3/linbios/archives/2006/1339435.shtml An alpha sample example of schema (updated 2006-6-1 14:00 (GMT+8))]
+
  
 
== A Personal Blog ==
 
== A Personal Blog ==
 
[http://rhlin.blog.edu.cn Bios Space ] may be updated everyday, Including some other interesting things that happened around.
 
[http://rhlin.blog.edu.cn Bios Space ] may be updated everyday, Including some other interesting things that happened around.

Revision as of 07:37, 1 June 2006

The Dynamic UNOIDL Reference Browser is an accepted Google Summer of Code project 2006 and 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.
  2. write/run some type library demos to have a clear view about the UNOIDL types.

Prepare to do

  1. Think about how to connect the UNOIDL types to the Schema.
    some understanding of the UNOTYPE (updated 2006-6-1 9:56 (GMT+8))
  2. Give some schema demo for simple type.
    An alpha sample example of schema (updated 2006-6-1 14:00 (GMT+8))

A Personal Blog

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

Personal tools