C.2 Writing Data Model Extension XML

Data model extension XML must be defined in the namespace novell:liberty:wsf:config:1:0:0 and that namespace must be defined on the SchemaExtensions element. Normally, the namespace prefix wsfc is used. An example of data model extension XML is:

<wsfc:SchemaExtensions xmlns:wsfc="novell:liberty:wsf:config:1:0:0">
  <wsfc:Root parent="/pp:PP/pp:Facade/pp:Extension"
     package="com.novell.nidp.liberty.wsf.idsis.ppservice.extensions"
     resourceClass="PPExtensionsResDesc">
   <wsfc:Group resourceId="PP.EXT.FC.GROUP"
      descriptionResourceId="PP.EXT.FC.GROUP.DESC">
   <wsfc:Extension name="AliasName" 
       class="FacadeAliasName"
       syntax="String" 
       format="CaseIgnore" 
       resourceId="PP.EXT.FC.AliasName" 
       min="0" max="1"/> 
   <wsfc:Extension name="FavoriteURLs" 
       class="FacadeFavoriteURLs" 
       syntax="String" 
       format="CaseExact" 
       resourceId="PP.EXT.FC.FavoriteURLs" min="0" max="UNBOUNDED"/>
   </wsfc:Group> </wsfc:Root> 
   <wsfc:Root parent="/pp:PP/pp:Demographics/pp:Extension" 
      package="com.novell.nidp.liberty.wsf.idsis.ppservice.extensions"
      resourceClass="PPExtensionsResDesc">
   <wsfc:Group resourceId="PP.EXT.DM.GROUP"
      descriptionResourceId="PP.EXT.DM.GROUP.DESC"> 
   <wsfc:Extension name="EyeColor" 
      class="DemographicsEyeColor" 
      syntax="String" format="URI" 
      resourceId="PP.EXT.DM.EyeColor" 
      min="0" 
      max="UNBOUNDED"> 
   <wsfc:ValueSet> 
<wsfc:Value resourceId="PP.EXT.DM.HC.Blue" value="urn:pp:dm:blue"/>
<wsfc:Value resourceId="PP.EXT.DM.HC.Brown" value="urn:pp:dm:brown"/>
<wsfc:Value resourceId="PP.EXT.DM.HC.Green" value="urn:pp:dm:green"/>
<wsfc:Value resourceId="PP.EXT.DM.HC.Gray" value="urn:pp:dm:gray"/>
<wsfc:Value resourceId="PP.EXT.DM.HC.Hazel" value="urn:pp:dm:hazel"/>
</wsfc:ValueSet> 
</wsfc:Extension> 
</wsfc:Group> 
</wsfc:Root>
<wsfc:Root parent="/pp:PP/pp:Extension"
   package="com.novell.nidp.liberty.wsf.idsis.ppservice.extensions"
   resourceClass="PPExtensionsResDesc"> 
<wsfc:Group resourceId="PP.EXT.AU.GROUP"
  descriptionResourceId="PP.EXT.AU.GROUP.DESC"> 
<wsfc:Extension name="Automobile" 
  class="Automobile" 
  syntax="Container" 
  resourceId="PP.EXT.Automobile" 
  min="0" 
  max="UNBOUNDED" 
  namingClass="AutomobileLicensePlate"> 
<wsfc:Group resourceId="PP.EXT.AU.DETAILS.GROUP"
  descriptionResourceId="PP.EXT.AU.DETAILS.GROUP.DESC"> 
<wsfc:Extension name="AutomobileModel" 
  class="AutomobileModel" 
  syntax="String" 
  resourceId="PP.EXT.AU.Model" 
  min="0" 
  max="1"/> 
<wsfc:Extension name="AutomobileMake" 
  class="AutomobileMake" 
  syntax="String" 
  format="CaseIgnore" 
  resourceId="PP.EXT.AU.Make" 
  min="0" 
  max="1"/> 
<wsfc:Extension name="AutomobileLicensePlate"
  class="AutomobileLicensePlate" 
  syntax="String" 
  format="CaseIgnore" 
  resourceId="PP.EXT.AU.LicensePlate" 
  min="0" max="1"/> 
</wsfc:Group> 
</wsfc:Extension> 
</wsfc:Group> 
</wsfc:Root> 
</wsfc:SchemaExtensions>