Código de ejemplo para extender el esquema en el depósito de extensión de propiedades

Utilice el fragmento de código y los gráficos de datos de ejemplo para extender el esquema en el depósito de extensión de propiedades.

El fragmento de código y los gráficos de datos de ejemplo siguientes muestran cómo añadir la propiedad, age, al tipo de entidad PersonAccount y como extender el esquema en el depósito de extensión de propiedades utilizando el objeto de datos extensionPropertySchema. El depósito de extensión de propiedades debe configurarse antes de poder utilizar extensionPropertySchema. Para obtener más información, lea sobre Configuración de un depósito de extensión de propiedades en una configuración de depósito federado en el Information Center de WebSphere Application Server.

Requisitos previos

Asegúrese de leer la información y completar los pasos que se describen en el tema Requisitos previos de programación, incluida la sección Ampliación del esquema de propiedad, que contiene información sobre los objetos de datos propertySchema y extensionPropertySchema e indica la sintaxis válida para los tipos de datos de propiedad.

Código de ejemplo

Añada el siguiente fragmento de código al código de aplicación y sustituya las variables por los valores reales que desea utilizar.

// Obtener un objeto de datos raíz. El resto del árbol de objeto se creará bajo éste
DataObject root = SDOHelper.createRootDataObject();
// Crear un nuevo objeto "schema" bajo root
// Este objeto contendrá los detalles de las modificaciones de esquema que deben realizarse
DataObject schema = root.createDataObject(SchemaConstants.DO_SCHEMA);
// Crear un objeto de datos de esquema de propiedad debajo del objeto de esquema creado antes
// Nota: para asegurarse de que la propiedad también se añada al depósito de extensión
// utilice el esquema de propiedad de extensión en lugar del esquema de propiedad simple
DataObject propertySchema = schema.createDataObject(SchemaConstants.DO_EXTENSION_PROPERTY_SCHEMA);
// Establecer el valor para el nombre de propiedad
propertySchema.setString(SchemaConstants.PROP_PROPERTY_NAME, "age");
// Establecer el espacio de nombres para la propiedad
// Dado que aquí se define la propiedad en el espacio de nombres predeterminado,
// no es necesario definir el prefijo de espacio de nombre
// Nota: la adición de una propiedad en el espacio de nombres predeterminado sólo es posible cuando se VMM usa "dynamicModel"
propertySchema.setString(SchemaConstants.PROP_NS_URI, SchemaConstants.WIM_NS_URI);
// Especificar si la propiedad es de múltiples valores (si es de múltiples valores, el tipo debe ser List)
propertySchema.setBoolean(SchemaConstants.PROP_MULTI_VALUED, false);
// Especificar el tipo de datos de la propiedad
// Los tipos de datos pueden ser simples como boolean, int, float, double, String
// o especiales como Address, Person, Group, etc.
propertySchema.setString(SchemaConstants.PROP_DATA_TYPE, SchemaConstants.DATA_TYPE_INT);
// Obtener la lista de tipos de entidad a la que debe añadirse esta propiedad y
// añadir los nombres de tipo de entidad aplicables (aquí "PersonAccount") a la lista obtenida previamente
propertySchema.getList(SchemaConstants.PROP_APPLICABLE_ENTITY_TYPE_NAMES).add(Service.DO_PERSON_ACCOUNT);
// Invocar creación de esquema
root = service.createSchema(root);

Puede utilizar el mandato wsadmin deleteIdMgrPropertyExtensionEntityData para suprimir datos de propiedad del depósito de extensión de propiedades. Para obtener más información sobre cómo utilizar este mandato, consulte el tema Grupo de IdMgrDBSetup para el objeto AdminTask en el Information Center de WebSphere Application Server.

Gráficos de datos de entrada y salida

Gráfico de datos de entrada para añadir la propiedad:

<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:sdo="commonj.sdo"
    xmlns:wim="http://www.ibm.com/websphere/wim">
  <wim:Root>
    <wim:schema>
      <wim:extensionPropertySchema nsURI="http://www.ibm.com/websphere/wim" dataType="Int"
          multiValued="false" propertyName="age">
        <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
      </wim:extensionPropertySchema>
    </wim:schema>
  </wim:Root>
</sdo:datagraph>

Gráfico de datos de salida posterior a la adición de la propiedad:

<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:sdo="commonj.sdo"
    xmlns:wim="http://www.ibm.com/websphere/wim">
  <wim:Root>
    <wim:schema>
      <wim:extensionPropertySchema nsURI="http://www.ibm.com/websphere/wim" dataType="Int"
          multiValued="false" propertyName="age">
        <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
      </wim:extensionPropertySchema>
    </wim:schema>
  </wim:Root>
</sdo:datagraph>


Condiciones de uso | Comentarios