Looking at the XDoclet template might give you pretty good idea
xdoclet-1.2.3/modules/hibernate/src/xdoclet/modules/hibernate/resources/hibernate.xdt
Code:
<XDtHibernate:ifHasCompositeId>
<composite-id
name="<XDtMethod:propertyName/>"
class="<XDtMethod:methodTagValue tagName="hibernate.id" paramName="class" default="<XDtMethod:methodType/>"/>"
<XDtMethod:ifHasMethodTag tagName="hibernate.id" paramName="unsaved-value">
unsaved-value="<XDtMethod:methodTagValue tagName="hibernate.id" paramName="unsaved-value" values="any,none"/>"
</XDtMethod:ifHasMethodTag>
>
<XDtClass:pushClass value="<XDtMethod:methodType/>">
<XDtMethod:forAllMethods superclasses="true" sort="true">
<XDtMethod:ifHasMethodTag tagName="hibernate.property">
<key-property
name="<XDtMethod:propertyName />"
type="<XDtMethod:methodTagValue tagName="hibernate.property" paramName="type" default="<XDtMethod:methodType/>"/>"
column="<XDtMethod:methodTagValue tagName="hibernate.property" paramName="column" default="<XDtMethod:propertyName/>"/>"
<XDtMethod:ifHasMethodTag tagName="hibernate.property" paramName="length">
length="<XDtMethod:methodTagValue tagName="hibernate.property" paramName="length" />"
</XDtMethod:ifHasMethodTag>
/>
</XDtMethod:ifHasMethodTag>
<XDtMethod:ifHasMethodTag tagName="hibernate.many-to-one">
<key-many-to-one
name="<XDtMethod:propertyName/>"
class="<XDtMethod:methodTagValue tagName="hibernate.many-to-one" paramName="class" default="<XDtMethod:methodType/>" />"
column="<XDtMethod:methodTagValue tagName="hibernate.many-to-one" paramName="column" default="<XDtMethod:propertyName/>"/>"
/>
</XDtMethod:ifHasMethodTag>
</XDtMethod:forAllMethods>
</XDtClass:pushClass>
</composite-id>
</XDtHibernate:ifHasCompositeId>
It looks like your compositeID class should have its relevant methods marked as hibernate.property and they will be included in the composite ID.
If you do not quite like what gets generated you can easily create modified version of the template locally and supply it to the build process