You can use the sample data graphs and code snippet provided here to create a property type, age, and add it to an existing entity type, PersonAccount.
<?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>
<?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>
<?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>
Use the following code to create a 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: Create new property type and add it to existing entity type PersonAccount..."); 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); }