Exemple de code pour l'extension du schéma dans le référentiel d'extension de propriété

Cet exemple de fragment de code et ces graphiques de données permettent d'étendre le schéma dans le référentiel d'extension de propriété.

Cet exemple de fragment de code et ces graphiques de données montrent comment ajouter la propriété age au type d'entité PersonAccount et étendre le schéma dans le référentiel d'extension de propriété, à l'aide de l'objet de données extensionPropertySchema. Le référentiel des extensions de propriété doit être configuré pour que vous puissiez utiliser extensionPropertySchema. Pour plus d'informations, reportez-vous à la rubrique relative à la configuration d'un référentiel d'extension de propriété dans une configuration de référentiel fédéré dans le centre de documentation de WebSphere Application Server.

Conditions prérequises

Assurez-vous d'avoir bien lu les informations et effectué les étapes décrites dans la rubrique Prérequis pour la programmation et notamment dans la section Schéma de propriété étendu, qui contient des informations sur les objets de données propertySchema et extensionPropertySchema et indique la syntaxe valide pour les types de données de propriété.

Exemple de code

Ajoutez le fragment de code ci-après à votre code d'application, puis remplacez les variables par les valeurs réelles à utiliser.

// Extraction d'un objet données racine. Le reste de l'arborescence des objets sera créé sous cet objet
DataObject root = SDOHelper.createRootDataObject();
// Création d'un objet "schema" sous la racine
// Cet objet contiendra les détails des modifications de schéma qui doivent être apportées
DataObject schema = root.createDataObject(SchemaConstants.DO_SCHEMA);
// Création d'un objet de données de schéma de propriété sous l'objet de schéma créé précédemment
// Remarque: Pour s'assurer que la propriété est également ajouté dans le référentiel d'extension,
// utilisez le schéma des propriétés d'extension au lieu du schéma des propriétés simple
DataObject propertySchema = schema.createDataObject(SchemaConstants.DO_EXTENSION_PROPERTY_SCHEMA);
// Définition de la valeur du nom de la propriété
propertySchema.setString(SchemaConstants.PROP_PROPERTY_NAME, "age");
// Définition de l'espace de nom de la propriété
// Ici, comme nous définissons la propriété dans l'espace de nom par défaut, 
// nous n'avez pas besoin de définir le préfixe d'espace de nom
// Remarque : l'ajout d'une propriété dans l'espace de nom par défaut n'est possible que si VMM utilise "dynamicModel"
propertySchema.setString(SchemaConstants.PROP_NS_URI, SchemaConstants.WIM_NS_URI);
// Indiquez si la propriété est à valeurs multiple (si elle l'est, son type doit être Liste)
propertySchema.setBoolean(SchemaConstants.PROP_MULTI_VALUED, false);
// Spécification du type de données de la propriété
// Les types de données peuvent être simples, comme boolean, int, float, double, String
// ou spéciaux comme Address, Person, Group, etc.
propertySchema.setString(SchemaConstants.PROP_DATA_TYPE, SchemaConstants.DATA_TYPE_INT);
// Extrayez la liste des types d'entité auxquels cette propriété doit être ajoutée et
// Ajoutez les noms de type d'entité applicables (ici "PersonAccount") à la liste extraite précédemment
propertySchema.getList(SchemaConstants.PROP_APPLICABLE_ENTITY_TYPE_NAMES).add(Service.DO_PERSON_ACCOUNT);
// Appel de la création de schéma
root = service.createSchema(root);

Vous pouvez utiliser la commande wsadmin deleteIdMgrPropertyExtensionEntityData wsadmin pour supprimer des données de propriété du référentiel d'extension de propriété. Pour plus d'informations sur l'utilisation de cette commande, voir la rubrique Groupe de commandes IdMgrDBSetup de l'objet AdminTask dans le centre de documentation WebSphere Application Server.

Graphiques de données d'entrée et de sortie

Graphique de données d'entrée pour l'ajout de la propriété :

<?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>

Graphique de données de sortie après l'ajout de la propriété :

<?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>


Conditions d'utilisation | Commentaires