Creating a new property type and adding it to an existing entity type

Use the following data graph to create a new property type age and to add it to an existing entity type PersonAccount.

Input data graph

<?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:propertySchema nsPrefix="yourext" nsURI="http://www.yourco.com/wim/yourext"
          dataType="Int" multiValued="false" propertyName="age">
        <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
      </wim:propertySchema>
    </wim:schema>
  </wim:Root>
</sdo:datagraph>

Output data graph

The returned data graph contains the IDs of the repositories that support this new property type.
<?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:propertySchema nsPrefix="yourext" nsURI="http://www.yourco.com/wim/yourext"
          dataType="Int" multiValued="false" propertyName="age">
        <wim:repositoryIds>LDAP1</wim:repositoryIds>
        <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
      </wim:propertySchema>
    </wim:schema>
  </wim:Root>
</sdo:datagraph>

wimxmlextension.xml file

After schema is created, the wimxmlextension.xml looks like the following:
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:sdo="commonj.sdo"
    xmlns:wim="http://www.ibm.com/websphere/wim">
  <wim:schema>
    <wim:propertySchema nsPrefix="yourext" nsURI="http://www.yourco.com/wim/yourext"
        dataType="Int" multiValued="false" propertyName="age">
      <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
    </wim:propertySchema>
  </wim:schema>
</sdo:datagraph>
Note: The propertySchema data object is used to create a new property type and add it to an existing virtual member manager entity type at runtime. The new property is added to the wimxmlextension.xml file. However, if you also want to extend the database schema of the property extension repository, you must use the extensionPropertySchema data object. This will add the new property to the existing entity type in wimxmlextension.xml file as well as store the property in the property extension database. The property extension repository must be configured before you can use extensionPropertySchema. For more information, read about Configuring a property extension repository in a federated repository configuration in the WebSphere Application Server information center.

Sample code

Use the following code to create a new property type, age and to add it to an existing entity type PersonAccount.

private static String dynaextURI = "http://www.yourco.com/wim/yourext";
private static String dynaextPrefix = "yourext";
String newPropName = "age";

     try {

         System.out.println("\nCLIENT: Creating new property type and add it to existing entity type Person...");
         DataObject root = service.createRootDataObject();
         DataObject dynaSchemaDO = root.createDataObject(SchemaConstants.DO_SCHEMA);

         // create new property
         DataObject propSchemaDO = dynaSchemaDO.createDataObject(SchemaConstants.DO_EXTENSION_PROPERTY_SCHEMA);
         propSchemaDO.set(SchemaConstants.PROP_NS_URI, dynaextURI);
         propSchemaDO.set(SchemaConstants.PROP_NS_PREFIX, dynaextPrefix);

         propSchemaDO.set(SchemaConstants.PROP_PROPERTY_NAME, newPropName);
         propSchemaDO.setBoolean(SchemaConstants.PROP_MULTI_VALUED, false);
         propSchemaDO.set(SchemaConstants.PROP_DATA_TYPE, SchemaConstants.DATA_TYPE_INT);
         List applicableEntityTypes = propSchemaDO.getList(SchemaConstants.PROP_APPLICABLE_ENTITY_TYPE_NAMES);
         applicableEntityTypes.add("PersonAccount");

         SDOUtils.printDataGraph(INPUT_DATAGRAPH, root);
         service.createSchema(root);
         System.out.println("\nCLIENT: new property type is created.");
     }
     catch (Exception e) {
         printException(e);
     }
Terms of use | Feedback
(C) Copyright IBM Corporation 2005. All Rights Reserved.
IBM virtual member manager 6.1