Mustercode für die Erweiterung des Schemas im Repository für Merkmalserweiterungen

Mit dem Mustercode-Snippet und den Datengraphen können Sie das Schema im Repository für Merkmalserweiterungen erweitern.

Der folgende Mustercode und die anschließenden Datengraphen zeigen, wie Sie das Merkmal age zum Entitätstyp "PersonAccount" hinzufügen und das Schema im Repository für Merkmalserweiterungen unter Verwendung des Datenobjekts "extensionPropertySchema" erweitern können. Das Repository für Merkmalserweiterungen muss konfiguriert worden sein, bevor Sie das Datenobjekt "extensionPropertySchema" verwenden können. Weitere Informationen finden Sie im Thema über das Konfigurieren eines Repositorys für Merkmalserweiterungen in einer Konfiguration mit föderierten Repositorys im Information Center von WebSphere Application Server.

Voraussetzungen

Stellen Sie sicher, dass Sie die Informationen gelesen und die Schritte ausgeführt haben, die im Thema Voraussetzungen für die Programmierung beschrieben sind. Hierzu gehört auch der Abschnitt Merkmalschema erweitern, in dem Informationen zu Datenobjekten "propertySchema" und "extensionPropertySchema" enthalten sind und die gültige Syntax für Merkmalsdatentypen aufgeführt ist.

Mustercode

Fügen Sie das folgende Code-Snippet zu Ihrem Anwendungscode hinzu und ersetzen Sie die Variablen durch die tatsächlichen Werte, die Sie verwenden wollen.

// Get a root data object. The rest of the object tree would be built under it
DataObject root = SDOHelper.createRootDataObject();
// Create a new "schema" object under root
// This object will contain the details of the schema modifications that need to be made
DataObject schema = root.createDataObject(SchemaConstants.DO_SCHEMA);
// Create a property schema data object under the schema object created earlier
// Note: To ensure that the property is also added into the extension repository
// use the Extension Property Schema instead of the simple Property Schema
DataObject propertySchema = schema.createDataObject(SchemaConstants.DO_EXTENSION_PROPERTY_SCHEMA);
// Set the value for the property name
propertySchema.setString(SchemaConstants.PROP_PROPERTY_NAME, "age");
// Set the namespace for the property
// As here we are defining the property in the default namespace, 
// we do not need to define the namespace prefix
// Note: Adding of property in default namespace is only possible when the VMM is using "dynamicModel"
propertySchema.setString(SchemaConstants.PROP_NS_URI, SchemaConstants.WIM_NS_URI);
// Specify if the property is multi-valued (if it is multi-valued, its type must be List)
propertySchema.setBoolean(SchemaConstants.PROP_MULTI_VALUED, false);
// Specify the data type of the property
// Data types can be simple like boolean, int, float, double, String
// or special like Address, Person, Group, etc.
propertySchema.setString(SchemaConstants.PROP_DATA_TYPE, SchemaConstants.DATA_TYPE_INT);
// Get the list of entity types to which this property needs to be added and
// add the applicable entity type names (here "PersonAccount") to the list fetched previously
propertySchema.getList(SchemaConstants.PROP_APPLICABLE_ENTITY_TYPE_NAMES).add(Service.DO_PERSON_ACCOUNT);
// Invoke the create schema
root = service.createSchema(root);

Mit dem wsadmin-Befehl "deleteIdMgrPropertyExtensionEntityData" können Sie Merkmalsdaten aus dem Repository für Merkmalserweiterungen löschen. Weitere Informationen zur Verwendung dieses Befehls enthält das Thema über die Befehlsgruppe "IdMgrDBSetup" für das Objekt "AdminTask" im Information Center von WebSphere Application Server.

Eingabe- und Ausgabedatengraphen

Eingabedatengraph für das Hinzufügen des Merkmals:

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

Ausgabedatengraph nach dem Hinzufügen des Merkmals:

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


Rechtliche Hinweise | Feedback