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>

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

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.wim.doc/creatinganewpropertytypeandaddingittoanexistingentitytype.html