Definición XML de metadatos
Los metadatos de la aplicación se basan en una definición XML formal. El DTD (Document Type Definition) define la estructura y los elementos y atributos permitidos de un documento XML.
Esqueleto XML básico
Sección titulada «Esqueleto XML básico»<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.10//EN" "http://www.openkm.com/dtd/property-groups-3.10.dtd"><property-groups>
</property-groups>- El DOCTYPE es una definición formal de algún DTD. En el ejemplo anterior, el property-groups-3.10.dtd.
- El XML comienza con la etiqueta
y termina con . Dentro de esta jerarquía se definen los grupos de metadatos.
Definición de un grupo de metadatos
Sección titulada «Definición de un grupo de metadatos»<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.10//EN" "http://www.openkm.com/dtd/property-groups-3.10.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting">
</property-group></property-groups>- Cada bloque
…</property-group identifica el inicio y el fin de la definición de un nuevo grupo de metadatos. - Cada grupo de metadatos tiene una etiqueta (label), utilizada por la interfaz de usuario: Consulting.
- Cada grupo de metadatos tiene un nombre único, okg:consulting.
- El nombre del grupo de metadatos debe comenzar siempre por “okg:” ( OpenKM Group ).
- No utilice caracteres especiales en el nombre.
| Atributo | Descripción | Obligatorio |
|---|---|---|
| label | El texto que se muestra como etiqueta en la interfaz de usuario. | true |
| name | Identificador único del campo. Dos grupos de metadatos no pueden tener el mismo nombre. El nombre debe ser único. El nombre debe comenzar por “okg:”. Utilice únicamente letras, números y guiones bajos: “0-9a-zA-Z_”. |
true |
| visible | Muestra u oculta los metadatos. Los valores permitidos son: - true. - false. Por defecto, los metadatos son visibles. |
false |
| readonly | Los valores de los metadatos no pueden modificarse desde la interfaz de usuario; solo pueden modificarse desde la API. Los valores permitidos son: - true. - false. Por defecto, los metadatos son modificables. |
false |
| defaultValueClassName | Establece una clase Java personalizada para definir los valores predeterminados iniciales. | false |
Ejemplo básico
Sección titulada «Ejemplo básico»Tipos de campo disponibles:
- Checkbox
- Input
- Iframe
- Select
- Separator
- Suggestbox
- Text
- TextArea
Encontrará más información sobre los elementos de tipo de campo en Campos de metadatos
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.10//EN" "http://www.openkm.com/dtd/property-groups-3.10.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <input label="Input label" name="okp:consulting.input1" /> <separator label="Separator label" name="okp:consulting.separator" /> <input label="Input label" name="okp:consulting.input2" /> </property-group></property-groups>Uso de un DTD en el sistema de ficheros
Sección titulada «Uso de un DTD en el sistema de ficheros»Si el servidor no tiene acceso a Internet, el fichero DTD debe ser accesible de alguna otra forma; por ejemplo, puede almacenar una copia en su servidor de aplicaciones.
<!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.10//EN" "file:///home/openkm/property-groups-3.10.dtd">- En el ejemplo, /home/openkm/property-groups-3.10.dtd es la ruta del sistema de ficheros al fichero.
Cómo se almacenan los metadatos en OpenKM
Sección titulada «Cómo se almacenan los metadatos en OpenKM»Cuando registra una nueva definición de metadatos en OpenKM, los valores de los metadatos se almacenan en dos tablas independientes. Una tabla contiene los valores actuales de los metadatos y la otra los valores del historial de metadatos.
Ejemplo:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.10//EN" "http://www.openkm.com/dtd/property-groups-3.10.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <input label="Input label" name="okp:consulting.input1" /> <separator label="Separator label" name="okp:consulting.separator" /> <input label="Input label" name="okp:consulting.input2" /> </property-group></property-groups>Tras registrar la definición de metadatos anterior, se crearán dos tablas con estas columnas:
- OKM_PGRP_CUR_CONSULTING ( utilizada para los valores actuales de los metadatos )
- RGT_UUID: ID del nodo que tiene estos metadatos
- RGT_PRO_INPUT1: Valor de la propiedad okp:consulting.input1
- RGT_PRO_INPUT2: Valor de la propiedad okp:consulting.input2
- RGT_PRO_SEPARATOR: Valor de la propiedad okp:consulting.separator
- OKM_PGRP_HIS_CONSULTING ( utilizada para los valores del historial de metadatos )
- RGT_UUID: ID del nodo que tiene estos metadatos
- RGT_VERSION: ID de la versión relacionada
- RGT_PRO_INPUT1: Valor de la propiedad okp:consulting.input1
- RGT_PRO_INPUT2: Valor de la propiedad okp:consulting.input2
- RGT_PRO_SEPARATOR: Valor de la propiedad okp:consulting.separator
Tamaño de columna predeterminado por tipo
| Tipo | Tamaño |
|---|---|
| Input | 128 caracteres |
| Select | 128 caracteres |
| SuggestBox | 128 caracteres |
| TextArea | 256 caracteres |
Si tiene valores de metadatos más largos, debe aumentar el tamaño de la columna mediante el atributo “dbColumnSize”. Vea el ejemplo siguiente:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE property-groups PUBLIC "-//OpenKM//DTD Property Groups 3.10//EN" "http://www.openkm.com/dtd/property-groups-3.10.dtd"><property-groups> <property-group label="Consulting" name="okg:consulting"> <input label="Input label" name="okp:consulting.input1" dbColumnSize="256"/> <separator label="Separator label" name="okp:consulting.separator" /> <input label="Input label" name="okp:consulting.input2" dbColumnSize="512"/> </property-group></property-groups>