diff --git a/src/reference/docbook/dtd.xml b/src/reference/docbook/dtd.xml
deleted file mode 100644
index accfc0d67fc..00000000000
--- a/src/reference/docbook/dtd.xml
+++ /dev/null
@@ -1,688 +0,0 @@
-
-
- spring-beans-2.0.dtd
-
- <!--
- Spring XML Beans DTD, version 2.0
- Authors: Rod Johnson, Juergen Hoeller, Alef Arendsen, Colin Sampaleanu, Rob Harrop
-
- This defines a simple and consistent way of creating a namespace
- of JavaBeans objects, managed by a Spring BeanFactory, read by
- XmlBeanDefinitionReader (with DefaultBeanDefinitionDocumentReader).
-
- This document type is used by most Spring functionality, including
- web application contexts, which are based on bean factories.
-
- Each "bean" element in this document defines a JavaBean.
- Typically the bean class is specified, along with JavaBean properties
- and/or constructor arguments.
-
- A bean instance can be a "singleton" (shared instance) or a "prototype"
- (independent instance). Further scopes can be provided by extended
- bean factories, for example in a web environment.
-
- References among beans are supported, that is, setting a JavaBean property
- or a constructor argument to refer to another bean in the same factory
- (or an ancestor factory).
-
- As alternative to bean references, "inner bean definitions" can be used.
- Singleton flags of such inner bean definitions are effectively ignored:
- Inner beans are typically anonymous prototypes.
-
- There is also support for lists, sets, maps, and java.util.Properties
- as bean property types or constructor argument types.
-
- For simple purposes, this DTD is sufficient. As of Spring 2.0,
- XSD-based bean definitions are supported as more powerful alternative.
-
- XML documents that conform to this DTD should declare the following doctype:
-
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
- "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
--->
-
-
-<!--
- The document root. A document can contain bean definitions only,
- imports only, or a mixture of both (typically with imports first).
--->
-<!ELEMENT beans (
- description?,
- (import | alias | bean)*
-)>
-
-<!--
- Default values for all bean definitions. Can be overridden at
- the "bean" level. See those attribute definitions for details.
--->
-<!ATTLIST beans default-lazy-init (true | false) "false">
-<!ATTLIST beans default-autowire (no | byName | byType | constructor | autodetect) "no">
-<!ATTLIST beans default-dependency-check (none | objects | simple | all) "none">
-<!ATTLIST beans default-init-method CDATA #IMPLIED>
-<!ATTLIST beans default-destroy-method CDATA #IMPLIED>
-<!ATTLIST beans default-merge (true | false) "false">
-
-<!--
- Element containing informative text describing the purpose of the enclosing
- element. Always optional.
- Used primarily for user documentation of XML bean definition documents.
--->
-<!ELEMENT description (#PCDATA)>
-
-
-<!--
- Specifies an XML bean definition resource to import.
--->
-<!ELEMENT import EMPTY>
-
-<!--
- The relative resource location of the XML bean definition file to import,
- for example "myImport.xml" or "includes/myImport.xml" or "../myImport.xml".
--->
-<!ATTLIST import resource CDATA #REQUIRED>
-
-
-<!--
- Defines an alias for a bean, which can reside in a different definition file.
--->
-<!ELEMENT alias EMPTY>
-
-<!--
- The name of the bean to define an alias for.
--->
-<!ATTLIST alias name CDATA #REQUIRED>
-
-<!--
- The alias name to define for the bean.
--->
-<!ATTLIST alias alias CDATA #REQUIRED>
-
-<!--
- Allows for arbitrary metadata to be attached to a bean definition.
--->
-<!ELEMENT meta EMPTY>
-
-<!--
- Specifies the key name of the metadata parameter being defined.
--->
-<!ATTLIST meta key CDATA #REQUIRED>
-
-<!--
- Specifies the value of the metadata parameter being defined as a String.
--->
-<!ATTLIST meta value CDATA #REQUIRED>
-
-<!--
- Defines a single (usually named) bean.
-
- A bean definition may contain nested tags for constructor arguments,
- property values, lookup methods, and replaced methods. Mixing constructor
- injection and setter injection on the same bean is explicitly supported.
--->
-<!ELEMENT bean (
- description?,
- (meta | constructor-arg | property | lookup-method | replaced-method)*
-)>
-
-<!--
- Beans can be identified by an id, to enable reference checking.
-
- There are constraints on a valid XML id: if you want to reference your bean
- in Java code using a name that's illegal as an XML id, use the optional
- "name" attribute. If neither is given, the bean class name is used as id
- (with an appended counter like "#2" if there is already a bean with that name).
--->
-<!ATTLIST bean id ID #IMPLIED>
-
-<!--
- Optional. Can be used to create one or more aliases illegal in an id.
- Multiple aliases can be separated by any number of spaces, commas, or
- semi-colons (or indeed any mixture of the three).
--->
-<!ATTLIST bean name CDATA #IMPLIED>
-
-<!--
- Each bean definition must specify the fully qualified name of the class,
- except if it pure serves as parent for child bean definitions.
--->
-<!ATTLIST bean class CDATA #IMPLIED>
-
-<!--
- Optionally specify a parent bean definition.
-
- Will use the bean class of the parent if none specified, but can
- also override it. In the latter case, the child bean class must be
- compatible with the parent, i.e. accept the parent's property values
- and constructor argument values, if any.
-
- A child bean definition will inherit constructor argument values,
- property values and method overrides from the parent, with the option
- to add new values. If init method, destroy method, factory bean and/or factory
- method are specified, they will override the corresponding parent settings.
-
- The remaining settings will always be taken from the child definition:
- depends on, autowire mode, dependency check, scope, lazy init.
--->
-<!ATTLIST bean parent CDATA #IMPLIED>
-
-<!--
- The scope of this bean: typically "singleton" (one shared instance,
- which will be returned by all calls to getBean() with the id),
- or "prototype" (independent instance resulting from each call to
- getBean(). Default is "singleton".
-
- Singletons are most commonly used, and are ideal for multi-threaded
- service objects. Further scopes, such as "request" or "session",
- might be supported by extended bean factories (for example, in a
- web environment).
-
- Note: This attribute will not be inherited by child bean definitions.
- Hence, it needs to be specified per concrete bean definition.
-
- Inner bean definitions inherit the singleton status of their containing
- bean definition, unless explicitly specified: The inner bean will be a
- singleton if the containing bean is a singleton, and a prototype if
- the containing bean has any other scope.
--->
-<!ATTLIST bean scope CDATA #IMPLIED>
-
-<!--
- Is this bean "abstract", i.e. not meant to be instantiated itself but
- rather just serving as parent for concrete child bean definitions.
- Default is "false". Specify "true" to tell the bean factory to not try to
- instantiate that particular bean in any case.
-
- Note: This attribute will not be inherited by child bean definitions.
- Hence, it needs to be specified per abstract bean definition.
--->
-<!ATTLIST bean abstract (true | false) #IMPLIED>
-
-<!--
- If this bean should be lazily initialized.
- If false, it will get instantiated on startup by bean factories
- that perform eager initialization of singletons.
-
- Note: This attribute will not be inherited by child bean definitions.
- Hence, it needs to be specified per concrete bean definition.
--->
-<!ATTLIST bean lazy-init (true | false | default) "default">
-
-<!--
- Indicates whether or not this bean should be considered when looking
- for candidates to satisfy another beans autowiring requirements.
--->
-<!ATTLIST bean autowire-candidate (true | false) #IMPLIED>
-
-<!--
- Optional attribute controlling whether to "autowire" bean properties.
- This is an automagical process in which bean references don't need to be coded
- explicitly in the XML bean definition file, but Spring works out dependencies.
-
- There are 5 modes:
-
- 1. "no"
- The traditional Spring default. No automagical wiring. Bean references
- must be defined in the XML file via the <ref> element. We recommend this
- in most cases as it makes documentation more explicit.
-
- 2. "byName"
- Autowiring by property name. If a bean of class Cat exposes a dog property,
- Spring will try to set this to the value of the bean "dog" in the current factory.
- If there is no matching bean by name, nothing special happens;
- use dependency-check="objects" to raise an error in that case.
-
- 3. "byType"
- Autowiring if there is exactly one bean of the property type in the bean factory.
- If there is more than one, a fatal error is raised, and you can't use byType
- autowiring for that bean. If there is none, nothing special happens;
- use dependency-check="objects" to raise an error in that case.
-
- 4. "constructor"
- Analogous to "byType" for constructor arguments. If there isn't exactly one bean
- of the constructor argument type in the bean factory, a fatal error is raised.
-
- 5. "autodetect"
- Chooses "constructor" or "byType" through introspection of the bean class.
- If a default no-arg constructor is found, "byType" gets applied.
-
- The latter two are similar to PicoContainer and make bean factories simple to
- configure for small namespaces, but doesn't work as well as standard Spring
- behavior for bigger applications.
-
- Note that explicit dependencies, i.e. "property" and "constructor-arg" elements,
- always override autowiring. Autowire behavior can be combined with dependency
- checking, which will be performed after all autowiring has been completed.
-
- Note: This attribute will not be inherited by child bean definitions.
- Hence, it needs to be specified per concrete bean definition.
--->
-<!ATTLIST bean autowire (no | byName | byType | constructor | autodetect | default) "default">
-
-<!--
- Optional attribute controlling whether to check whether all this
- beans dependencies, expressed in its properties, are satisfied.
- Default is no dependency checking.
-
- "simple" type dependency checking includes primitives and String;
- "objects" includes collaborators (other beans in the factory);
- "all" includes both types of dependency checking.
-
- Note: This attribute will not be inherited by child bean definitions.
- Hence, it needs to be specified per concrete bean definition.
--->
-<!ATTLIST bean dependency-check (none | objects | simple | all | default) "default">
-
-<!--
- The names of the beans that this bean depends on being initialized.
- The bean factory will guarantee that these beans get initialized before.
-
- Note that dependencies are normally expressed through bean properties or
- constructor arguments. This property should just be necessary for other kinds
- of dependencies like statics (*ugh*) or database preparation on startup.
-
- Note: This attribute will not be inherited by child bean definitions.
- Hence, it needs to be specified per concrete bean definition.
--->
-<!ATTLIST bean depends-on CDATA #IMPLIED>
-
-<!--
- Optional attribute for the name of the custom initialization method
- to invoke after setting bean properties. The method must have no arguments,
- but may throw any exception.
--->
-<!ATTLIST bean init-method CDATA #IMPLIED>
-
-<!--
- Optional attribute for the name of the custom destroy method to invoke
- on bean factory shutdown. The method must have no arguments,
- but may throw any exception.
-
- Note: Only invoked on beans whose lifecycle is under full control
- of the factory - which is always the case for singletons, but not
- guaranteed for any other scope.
--->
-<!ATTLIST bean destroy-method CDATA #IMPLIED>
-
-<!--
- Optional attribute specifying the name of a factory method to use to
- create this object. Use constructor-arg elements to specify arguments
- to the factory method, if it takes arguments. Autowiring does not apply
- to factory methods.
-
- If the "class" attribute is present, the factory method will be a static
- method on the class specified by the "class" attribute on this bean
- definition. Often this will be the same class as that of the constructed
- object - for example, when the factory method is used as an alternative
- to a constructor. However, it may be on a different class. In that case,
- the created object will *not* be of the class specified in the "class"
- attribute. This is analogous to FactoryBean behavior.
-
- If the "factory-bean" attribute is present, the "class" attribute is not
- used, and the factory method will be an instance method on the object
- returned from a getBean call with the specified bean name. The factory
- bean may be defined as a singleton or a prototype.
-
- The factory method can have any number of arguments. Autowiring is not
- supported. Use indexed constructor-arg elements in conjunction with the
- factory-method attribute.
-
- Setter Injection can be used in conjunction with a factory method.
- Method Injection cannot, as the factory method returns an instance,
- which will be used when the container creates the bean.
--->
-<!ATTLIST bean factory-method CDATA #IMPLIED>
-
-<!--
- Alternative to class attribute for factory-method usage.
- If this is specified, no class attribute should be used.
- This should be set to the name of a bean in the current or
- ancestor factories that contains the relevant factory method.
- This allows the factory itself to be configured using Dependency
- Injection, and an instance (rather than static) method to be used.
--->
-<!ATTLIST bean factory-bean CDATA #IMPLIED>
-
-<!--
- Bean definitions can specify zero or more constructor arguments.
- This is an alternative to "autowire constructor".
- Arguments correspond to either a specific index of the constructor argument
- list or are supposed to be matched generically by type.
-
- Note: A single generic argument value will just be used once, rather than
- potentially matched multiple times (as of Spring 1.1).
-
- constructor-arg elements are also used in conjunction with the factory-method
- element to construct beans using static or instance factory methods.
--->
-<!ELEMENT constructor-arg (
- description?,
- (bean | ref | idref | value | null | list | set | map | props)?
-)>
-
-<!--
- The constructor-arg tag can have an optional index attribute,
- to specify the exact index in the constructor argument list. Only needed
- to avoid ambiguities, e.g. in case of 2 arguments of the same type.
--->
-<!ATTLIST constructor-arg index CDATA #IMPLIED>
-
-<!--
- The constructor-arg tag can have an optional type attribute,
- to specify the exact type of the constructor argument. Only needed
- to avoid ambiguities, e.g. in case of 2 single argument constructors
- that can both be converted from a String.
--->
-<!ATTLIST constructor-arg type CDATA #IMPLIED>
-
-<!--
- A short-cut alternative to a child element "ref bean=".
--->
-<!ATTLIST constructor-arg ref CDATA #IMPLIED>
-
-<!--
- A short-cut alternative to a child element "value".
--->
-<!ATTLIST constructor-arg value CDATA #IMPLIED>
-
-
-<!--
- Bean definitions can have zero or more properties.
- Property elements correspond to JavaBean setter methods exposed
- by the bean classes. Spring supports primitives, references to other
- beans in the same or related factories, lists, maps and properties.
--->
-<!ELEMENT property (
- description?, meta*,
- (bean | ref | idref | value | null | list | set | map | props)?
-)>
-
-<!--
- The property name attribute is the name of the JavaBean property.
- This follows JavaBean conventions: a name of "age" would correspond
- to setAge()/optional getAge() methods.
--->
-<!ATTLIST property name CDATA #REQUIRED>
-
-<!--
- A short-cut alternative to a child element "ref bean=".
--->
-<!ATTLIST property ref CDATA #IMPLIED>
-
-<!--
- A short-cut alternative to a child element "value".
--->
-<!ATTLIST property value CDATA #IMPLIED>
-
-
-<!--
- A lookup method causes the IoC container to override the given method and return
- the bean with the name given in the bean attribute. This is a form of Method Injection.
- It's particularly useful as an alternative to implementing the BeanFactoryAware
- interface, in order to be able to make getBean() calls for non-singleton instances
- at runtime. In this case, Method Injection is a less invasive alternative.
--->
-<!ELEMENT lookup-method EMPTY>
-
-<!--
- Name of a lookup method. This method should take no arguments.
--->
-<!ATTLIST lookup-method name CDATA #IMPLIED>
-
-<!--
- Name of the bean in the current or ancestor factories that the lookup method
- should resolve to. Often this bean will be a prototype, in which case the
- lookup method will return a distinct instance on every invocation. This
- is useful for single-threaded objects.
--->
-<!ATTLIST lookup-method bean CDATA #IMPLIED>
-
-
-<!--
- Similar to the lookup method mechanism, the replaced-method element is used to control
- IoC container method overriding: Method Injection. This mechanism allows the overriding
- of a method with arbitrary code.
--->
-<!ELEMENT replaced-method (
- (arg-type)*
-)>
-
-<!--
- Name of the method whose implementation should be replaced by the IoC container.
- If this method is not overloaded, there's no need to use arg-type subelements.
- If this method is overloaded, arg-type subelements must be used for all
- override definitions for the method.
--->
-<!ATTLIST replaced-method name CDATA #IMPLIED>
-
-<!--
- Bean name of an implementation of the MethodReplacer interface in the current
- or ancestor factories. This may be a singleton or prototype bean. If it's
- a prototype, a new instance will be used for each method replacement.
- Singleton usage is the norm.
--->
-<!ATTLIST replaced-method replacer CDATA #IMPLIED>
-
-<!--
- Subelement of replaced-method identifying an argument for a replaced method
- in the event of method overloading.
--->
-<!ELEMENT arg-type (#PCDATA)>
-
-<!--
- Specification of the type of an overloaded method argument as a String.
- For convenience, this may be a substring of the FQN. E.g. all the
- following would match "java.lang.String":
- - java.lang.String
- - String
- - Str
-
- As the number of arguments will be checked also, this convenience can often
- be used to save typing.
--->
-<!ATTLIST arg-type match CDATA #IMPLIED>
-
-
-<!--
- Defines a reference to another bean in this factory or an external
- factory (parent or included factory).
--->
-<!ELEMENT ref EMPTY>
-
-<!--
- References must specify a name of the target bean.
- The "bean" attribute can reference any name from any bean in the context,
- to be checked at runtime.
- Local references, using the "local" attribute, have to use bean ids;
- they can be checked by this DTD, thus should be preferred for references
- within the same bean factory XML file.
--->
-<!ATTLIST ref bean CDATA #IMPLIED>
-<!ATTLIST ref local IDREF #IMPLIED>
-<!ATTLIST ref parent CDATA #IMPLIED>
-
-
-<!--
- Defines a string property value, which must also be the id of another
- bean in this factory or an external factory (parent or included factory).
- While a regular 'value' element could instead be used for the same effect,
- using idref in this case allows validation of local bean ids by the XML
- parser, and name completion by supporting tools.
--->
-<!ELEMENT idref EMPTY>
-
-<!--
- ID refs must specify a name of the target bean.
- The "bean" attribute can reference any name from any bean in the context,
- potentially to be checked at runtime by bean factory implementations.
- Local references, using the "local" attribute, have to use bean ids;
- they can be checked by this DTD, thus should be preferred for references
- within the same bean factory XML file.
--->
-<!ATTLIST idref bean CDATA #IMPLIED>
-<!ATTLIST idref local IDREF #IMPLIED>
-
-
-<!--
- Contains a string representation of a property value.
- The property may be a string, or may be converted to the required
- type using the JavaBeans PropertyEditor machinery. This makes it
- possible for application developers to write custom PropertyEditor
- implementations that can convert strings to arbitrary target objects.
-
- Note that this is recommended for simple objects only.
- Configure more complex objects by populating JavaBean
- properties with references to other beans.
--->
-<!ELEMENT value (#PCDATA)>
-
-<!--
- The value tag can have an optional type attribute, to specify the
- exact type that the value should be converted to. Only needed
- if the type of the target property or constructor argument is
- too generic: for example, in case of a collection element.
--->
-<!ATTLIST value type CDATA #IMPLIED>
-
-<!--
- Denotes a Java null value. Necessary because an empty "value" tag
- will resolve to an empty String, which will not be resolved to a
- null value unless a special PropertyEditor does so.
--->
-<!ELEMENT null (#PCDATA)>
-
-
-<!--
- A list can contain multiple inner bean, ref, collection, or value elements.
- Java lists are untyped, pending generics support in Java 1.5,
- although references will be strongly typed.
- A list can also map to an array type. The necessary conversion
- is automatically performed by the BeanFactory.
--->
-<!ELEMENT list (
- (bean | ref | idref | value | null | list | set | map | props)*
-)>
-
-<!--
- Enable/disable merging for collections when using parent/child beans.
--->
-<!ATTLIST list merge (true | false | default) "default">
-
-<!--
- Specify the default Java type for nested values.
--->
-<!ATTLIST list value-type CDATA #IMPLIED>
-
-
-<!--
- A set can contain multiple inner bean, ref, collection, or value elements.
- Java sets are untyped, pending generics support in Java 1.5,
- although references will be strongly typed.
--->
-<!ELEMENT set (
- (bean | ref | idref | value | null | list | set | map | props)*
-)>
-
-<!--
- Enable/disable merging for collections when using parent/child beans.
--->
-<!ATTLIST set merge (true | false | default) "default">
-
-<!--
- Specify the default Java type for nested values.
--->
-<!ATTLIST set value-type CDATA #IMPLIED>
-
-
-<!--
- A Spring map is a mapping from a string key to object.
- Maps may be empty.
--->
-<!ELEMENT map (
- (entry)*
-)>
-
-<!--
- Enable/disable merging for collections when using parent/child beans.
--->
-<!ATTLIST map merge (true | false | default) "default">
-
-<!--
- Specify the default Java type for nested entry keys.
--->
-<!ATTLIST map key-type CDATA #IMPLIED>
-
-<!--
- Specify the default Java type for nested entry values.
--->
-<!ATTLIST map value-type CDATA #IMPLIED>
-
-<!--
- A map entry can be an inner bean, ref, value, or collection.
- The key of the entry is given by the "key" attribute or child element.
--->
-<!ELEMENT entry (
- key?,
- (bean | ref | idref | value | null | list | set | map | props)?
-)>
-
-<!--
- Each map element must specify its key as attribute or as child element.
- A key attribute is always a String value.
--->
-<!ATTLIST entry key CDATA #IMPLIED>
-
-<!--
- A short-cut alternative to a "key" element with a "ref bean=" child element.
--->
-<!ATTLIST entry key-ref CDATA #IMPLIED>
-
-<!--
- A short-cut alternative to a child element "value".
--->
-<!ATTLIST entry value CDATA #IMPLIED>
-
-<!--
- A short-cut alternative to a child element "ref bean=".
--->
-<!ATTLIST entry value-ref CDATA #IMPLIED>
-
-<!--
- A key element can contain an inner bean, ref, value, or collection.
--->
-<!ELEMENT key (
- (bean | ref | idref | value | null | list | set | map | props)
-)>
-
-
-<!--
- Props elements differ from map elements in that values must be strings.
- Props may be empty.
--->
-<!ELEMENT props (
- (prop)*
-)>
-
-<!--
- Enable/disable merging for collections when using parent/child beans.
--->
-<!ATTLIST props merge (true | false | default) "default">
-
-<!--
- Element content is the string value of the property.
- Note that whitespace is trimmed off to avoid unwanted whitespace
- caused by typical XML formatting.
--->
-<!ELEMENT prop (#PCDATA)>
-
-<!--
- Each property element must specify its key.
--->
-<!ATTLIST prop key CDATA #REQUIRED>
-
diff --git a/src/reference/docbook/index.xml b/src/reference/docbook/index.xml
index 4ba4110087d..fe39336ba03 100644
--- a/src/reference/docbook/index.xml
+++ b/src/reference/docbook/index.xml
@@ -547,8 +547,6 @@
-
-