##### XDoclet

- Overview
- News and Status
- Download/Installation
- Using XDoclet
- Best Practices
- FAQ
- License

##### Ant Task Reference

- <doclet .. />
- <ejbdoclet .. />
- <hibernatedoclet .. />
- <jdodoclet .. />
- <jmxdoclet .. />
- <mockdoclet .. />
- <portletdoclet .. />
- <springdoclet .. />
- <tapestrydoclet .. />
- <webdoclet .. />
- <wseedoclet .. />

##### Tag Reference

- apache (@soap @struts @axis @tapestry)
- bea (@weblogic)
- borland (@bes)
- caucho (@resin)
- ejb (@ejb @dao)
- exolab (@castor)
- hp (@hpas)
- hibernate (@hibernate)
- ibm (@websphere)
- java (@javabean)
- jboss (@jboss)
- jdo (@jdo)
- jmx (@jmx)
- jsf (@jsf)
- macromedia (@jrun)
- mockobjects (@mock)
- mvcsoft (@mvcsoft)
- mx4j (@mx4j)
- objectweb (@jonas)
- oracle (@oc4j)
- orion (@orion)
- portlet (@portlet)
- pramati (@pramati)
- spring (@spring)
- sun (@sunone)
- sybase (@easerver)
- tjdo (@tjdo)
- web (@web @jsp)
- webwork (@webwork)
- wsee (@wsee)
- xdoclet (@xdoclet @doc @msg)

##### Feature Documentation

- Using Value Objects
- EJB Environment Handling

##### Advanced

- Maven Plug-in
- Merge Points
- IDE Integration
- Migration from EJBDoclet
- Ant 1.5 Troubleshooting

##### Community

- Feedback
- Resources
- Tools

##### Development

- Developer Guide
- Javadoc (API)
- Template Language (*.xdt)
- XJavaDoc Site

##### Search XDoclet

##### Project Documentation

- About XDoclet
- Project Info
- Project Reports
- Development Process

## @xdoclet Tag Reference

These tags are used to generate Xdoclet module's xdoclet.xml files that is needed for a module to be slurped by xdoclet.

Applies to: TagsHandler

### @xdoclet Class Level Tags

@xdoclet.merge-file
@xdoclet.taghandler

### @xdoclet Method Level Tags

### @xdoclet Field Level Tags

## @xdoclet Class Level Tag Usage

### @xdoclet.merge-file (0..*)

Class tag to document a subtask's templates' merge points.

Applies to: The class must be a SubTask.

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
file | text |  | The filename pattern of the merge file. This will either be a simple filename (e.g. assembly-descriptor.xml) or a filename pattern (e.g. ejb-env-entries-{0}.xml) and should match the "file" parameter of the <XDtMerge:merge/> template tag. | true
relates-to | text |  | The generated file to which a given merge point relates. Helps to clarify things if a given subtask generates a number of types of file (e.g. a deployment descriptor and a CMP mapping file) | false
description | text |  | A description of what the merge point is used for, and what the merge file should contain. | true

### @xdoclet.taghandler (0..1)

Class tag to put on Tags Handler classes

Applies to: The class must be a TagHandler

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
namespace | text |  | Define the namespace (without XDt) for the tags handler. Example : PkTagsHandler have namespace="EjbPk" and the templates will look like <XDtEjbPk:xxx/> | true

## @xdoclet Method Level Tag Usage

## @xdoclet Field Level Tag Usage

## @doc Tag Reference

These tags are used to generate the template tag documentation.

Applies to: TagsHandler

### @doc Class Level Tags

### @doc Method Level Tags

@doc.param
@doc.tag

### @doc Field Level Tags

## @doc Class Level Tag Usage

## @doc Method Level Tag Usage

### @doc.param (0..1)

Describes a parameter of the template tag.

Applies to: The class must be a TagHandler

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
name | text |  | The name of the parameter. Default value(s): true | false
optional | bool |  | Whether the parameter is optional. Default is true. Default value(s): true | false
values | text |  | Comma-separated list of possible values the parameter can take. | false
description | text |  | A description of the parameter. | true

### @doc.tag (0..1)

Indicates that the method implements a template tag.

Applies to: The class must be a TagHandler

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
type | text |  | Specifies whether it is a content or block type tag. Valid options are: block content | true

## @doc Field Level Tag Usage

## @msg Tag Reference

These tags are used to generate i18n message bundles

Applies to: Applicable to all classes

### @msg Class Level Tags

@msg.bundle

### @msg Method Level Tags

### @msg Field Level Tags

@msg.message

## @msg Class Level Tag Usage

### @msg.bundle (0..1)

Use on class level to customize generation of message bundles and translator classes.

Applies to: Everywhere you like to generate accsessor class & message bundles

## @msg Method Level Tag Usage

## @msg Field Level Tag Usage

### @msg.message (0..*)

Place this tag on static final string fields initialised with property key

Applies to: final static string fields

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
msg | text |  | message itself | true
language | text |  | Language code i.e "de", "en", "fr" | false
country | text |  | Country code i.e. "DE", "US", "UK" | false
variant | text |  | variant - have no example at this time. Somebody please provide it. | false

## @ant Tag Reference

These tags are used to generate the task and subtask documentation.

Applies to: SubTask

### @ant Class Level Tags

@ant.attribute
@ant.element

### @ant Method Level Tags

@ant.ignore
@ant.not-required
@ant.required

### @ant Field Level Tags

## @ant Class Level Tag Usage

### @ant.attribute (0..1)

???

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
name | text |  | ??? | true
display-name | text |  | ??? | false
parent | text |  | ??? | false

### @ant.element (0..1)

???

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
name | text |  | ??? | true
display-name | text |  | ??? | false
parent | text |  | ??? | false

## @ant Method Level Tag Usage

### @ant.ignore (0..1)

Setter methods that should not be listed in the docs as attributes can be excluded using this tag.

Applies to: The tag should go on the setter method of the attribute.

### @ant.not-required (0..1)

Indicates an attribute is not mandatory.

Applies to: The tag should go on the setter method of the attribute.

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
| text |  | Any text to go in the "Required?" column in the docs. Default value(s): No. | false

### @ant.required (0..1)

Indicates an attribute is not mandatory.

Applies to: The tag should go on the setter method of the attribute.

Parameter | Type | Applicability | Description | Mandatory
--- | --- | --- | --- | ---
| text |  | Any text to go in the "Required?" column in the docs. Default value(s): Yes. | false

## @ant Field Level Tag Usage