编写规范

From Apache OpenOffice Wiki
Jump to: navigation, search


UNOIDL 与 C++、CORBA IDL 之间存在相似之处,特别是在语法和编译程序的常规使用方面。如果您熟悉 C++ 或 CORBA IDL,就能理解 UNOIDL 的大部分内容。


第一个示例是 com.sun.star.bridge.XUnoUrlResolver 接口的 IDL 规范。idl 文件通常以一些预处理程序指令开头,其后是模块说明和类型定义:

  #ifndef __com_sun_star_bridge_XUnoUrlResolver_idl__ 
  #define __com_sun_star_bridge_XUnoUrlResolver_idl__ 
 
  #include <com/sun/star/uno/XInterface.idl> 
  #include <com/sun/star/lang/IllegalArgumentException.idl> 
  #include <com/sun/star/connection/ConnectionSetupException.idl> 
  #include <com/sun/star/connection/NoConnectException.idl> 
 
 
  module com { module sun { module star { module bridge {
 
 
  /** service <type scope="com::sun::star::bridge">UnoUrlResolver</type> 
          implements this interface.
   */
  published interface XUnoUrlResolver: com::sun::star::uno::XInterface
  { 
      // method com::sun::star::bridge::XUnoUrlResolver::resolve
      /** resolves an object, on the UNO URL.
       */
      com::sun::star::uno::XInterface resolve( [in] string sUnoUrl ) 
          raises (com::sun::star::connection::NoConnectException, 
                  com::sun::star::connection::ConnectionSetupException, 
                  com::sun::star::lang::IllegalArgumentException); 
  }; 
 
  }; }; }; };
 
  #endif


下面我们将分步讨论这个idl 文件,并尽快写出我们自己的 UNOIDL 规范。指定 com.sun.star.bridge.XUnoUrlResolver 的文件位于您安装的 SDK 的 idl 文件夹中,即 <SDK>/idl/com/sun/star/bridge/XUnoUrlResolver.idl


按照惯例,UNOIDL 定义文件名称的扩展名是 .idl。说明必须使用不包含特殊字符的 US ASCII 字符集,不能使用空白(即空格、制表符或换行)来分隔符号。


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages