\u001B[1mSYNOPSIS\u001B[0m
    ${project.description}

    Original Maven URL:
        \u001B[33mmvn:${pkgGroupId}/${pkgArtifactId}/${pkgVersion}\u001B[0m

\u001B[1mDESCRIPTION\u001B[0m
    Many projects read XML configuration files to provide initialization of various Java objects within the
    system. There are several ways of doing this, and the Digester component was designed to provide a common
    implementation that can be used in many different projects.

    Basically, the Digester package lets you configure an XML -> Java object mapping module, which triggers
    certain actions called rules whenever a particular pattern of nested XML elements is recognized. A rich set
    of predefined rules is available for your use, or you can also create your own.
    Advanced features of Digester include:

        * Ability to plug in your own pattern matching engine, if the standard one is not sufficient for your
          requirements.
        * Optional namespace-aware processing, so that you can define rules that are relevant only to a particular
          XML namespace.
        * Encapsulation of Rules into RuleSets that can be easily and conveniently reused in more than one
          application that requires the same type of processing.

    Starting from release 2.1, the Digester supports Java5 Annotations definition of rules improving
    maintainability of both Java code and XML documents, since rules are now defined in POJOs and Digester
    parser instances can be generated at run-time, avoiding manual updates.

\u001B[1mSEE ALSO\u001B[0m
    \u001B[36mhttp://commons.apache.org/digester/\u001B[0m
