##### 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

## externalizer

Externalizes key-value paired tags to whatever configured file (be it xml or properties file). It's useful for simple key-value properties or xml files. For now only properties files are supported. It supports i18n and l10n, so generated files follow {@link java.util.ResourceBundle} naming convention. Parameters "language", "country" and "variant" are reserved and used for this purpose.

### Implementing Class

xdoclet.modules.externalizer.ExternalizerSubTask

### Attributes

Attribute | Description | Required
--- | --- | ---
tagName |  | No.
valueParamName |  | No.
keyParamName |  | No.
acceptInterfaces | Indicates whether or not to generate for interfaces. | No, default is "true"
acceptAbstractClasses | Indicates whether or not to generate for abstract classes. | No, default is "true"
packageSubstitutions | Sets the PackageSubstitutions attribute of the TemplateSubTask object | No.
packageSubstitutionInheritanceSupported | Indicates whether or not package substitution should be inherited | No, default is "true"
prefixWithPackageStructure | Indicates whether or not to prefix with package structure. | No, default is "true"
destinationFile | The destination file name. If a {0} is found it's assumed that a per class output generation is needed, so {0} is substituted with class name; otherwise a single file is generated with the specified name. | No, default is determined by this task.
templateFile | Sets the name of the template file to use for generation | No, default is determined by this task.
havingClassTag | Sets the HavingClassTag attribute of the TemplateSubTask object | No.
ofType |  | No.
subTaskName | Sets an optional name for the subtask that will be seen in XDoclet's debug messages. | No.
destDir | Sets the directory where the generated file(s) will be written. | No.
mergeDir | Specifies the location of the merge directory. This is where XDoclet will look for merge files. | No.

### Nested Elements

Element | Description
--- | ---
configParam | Specifies a configuration parameter for the subtask.
ofType |
packageSubstitution | Substitutes the package of the generated files.