Spring beans DTD and XMLNS

These lines set up the namespaces for your XML document. Depending on what tags you are using in your XML file, you'll need the namespaces at the top (and references to the correct schemas) in order for the XML to be valid.

For example, if you are using the <aop/> tag in your bean definitions, you will need to reference the aop schema at the top of the file: xmlns:aop="http://www.springframework.org/schema/aop" If you aren't using that tag, you don't need that there.

For any namespaces you import, make sure you add a reference to the schema in the "xsi:schemaLocation" tag, like this: xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

I would recommend checking out a sample Spring application since it should have the bare minimum that you need to get something running.


There is a good explanation here: what is the use of xsi:schemaLocation?

Here is springs docs on xsd config: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/xsd-config.html

NOTE: spring now recommend not to include the version number in the xsd unless specifically required, so you should have:

xsi:schemaLocation="http://www.springframework.org/schema/beans 
                    http://www.springframework.org/schema/beans/spring-beans.xsd"

and not:

xsi:schemaLocation="http://www.springframework.org/schema/beans 
                    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"

"xmlns" defines the name space for the current element.

"xmlns:aop" defines the name space for elements within the current element, that have a prefix of "aop:"


As far as answering the 'where is it documented', I think it depends per project. In the case of Spring, the project documentation does contain a reference to this information. As an example, check out the xsd-config section for Spring Framework 3.2.x: Appendix E. XML Schema-based configuration