Analizando el XCU
Diseccion del Addon.xcu el cual declara partes reelevantes para una extension trabaje en OOo.
Con estos datos podemos empezar a organizar el XML que veremos representado con una XCU:
<?xml version="1.0" encoding="UTF-8"?>
<oor:node xmlns:oor="http://openoffice.org/2001/registry"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
oor:name="Addons" oor:package="org.openoffice.Office">
<node oor:name="AddonUI">
<node oor:name="AddonMenu">
<node oor:name="org.openoffice.comp.pyuno.demo.HelloWorld" oor:op="replace">
<prop oor:name="URL" oor:type="xs:string">
<value>service:org.openoffice.comp.pyuno.demo.HelloWorld?insert</value>
</prop>
<prop oor:name="ImageIdentifier" oor:type="xs:string">
<value>private:image/3216</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en-US">Insert Hello World</value>
</prop>
</node>
</node>
</node>
</oor:node>
La primera parte es la declaracion del paquete de OpenOffice.org tiene el esquema que se define con el namespace propio de la aplicacion, se le declara el nombre de Addons y como paquete ofimatico.
<oor:node xmlns:oor="http://openoffice.org/2001/registry"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
oor:name="Addons" oor:package="org.openoffice.Office">
La segunda parte especifica los nodos AddonUI -> AddonMenu -> org.openoffice.comp.pyuno.demo.HelloWorld
<node oor:name="AddonUI">
<node oor:name="AddonMenu">
<node oor:name="org.openoffice.comp.pyuno.demo.HelloWorld" oor:op="replace">
Finalmente esta es una parte mas personalizada, el cual trae el ID del script que llamamos en nuestro JobExecutor. Este tambien inserta el comando despues del ?.
<prop oor:name="URL" oor:type="xs:string">
<value>service:org.openoffice.comp.pyuno.demo.HelloWorld?insert</value>
</prop>
Despues de esto asignamos el imageidentifier el cual sera el icono para la aplicacion asi como el texto por el cual tu plugin sera identificado.
<prop oor:name="ImageIdentifier" oor:type="xs:string">
<value>private:image/3216</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en-US">Insert Hello World</value>
</prop>
El valor private:image/3216 con el nombre de ImageIdentifier y Title ubicado bajo la categoria de idioma en-US, lo cual nos dice que tambien podremos incluir otros nodos como es_ES o es_MX/AR/CL etc.
Finalmente cerramos los nodos y terminamos nuestro arbol XCU.
Instalando el plugin
OpenOffice.org desde su version 3.0 ya incluye todo un dialogo que puede insertar e instalar asi como comprobar la version de nuestras extensiones. Pero tambien podemos hacer esto via la linea de comaando usando el comando unopkg. El comando sencillamente debe de hacer esto:
unopkg add /home/user/extension.oxt
Esto sera suficiente para instalar el paquete sin necesitar mayor interaccion. Espero que este tutorial haya sido practico, otras ideas que se agradecerian sera el de construir un generador de codigo y automatizar mucho del codigo prediseñado asi como un asistente que nos permita escoger estos parametros de moda dinamica y autogenere el arbol con todas sus configuraciones.

