In hibernate we use configuration and mapping xml files.
In xml the first line will be version and then we specify DOCTYPE DTD line.
Example:
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
Can anybody please explain what is the meaning of this?
I know that DTD is document type definition which is like defining grammar for the xml.
I want to know the attributes in this statement.
The line you refer to is the document type declaration.
It is documented in the W3C's XML Recommendation here: http://www.w3.org/TR/xml/#dt-doctype
It specifies a DTD that is to be used when processing the document. Two mechanisms are available for specifying this
an optional PUBLIC identifier (rare these
days) which is, in your example, "
-//Hibernate/Hibernate Mapping DTD 3.0//EN". The mechanism by which this is resolved to a DTD resource
is application-specific.
A SYSTEM
identifier, which in your example is
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd".
This is typically interpreted as a
URL from where the DTD can be
retrieved.
A Doctype describes which DTD the XML file follows.
This:
- Describes what elements are allowed inside what other elements (for the purpose of validation)
- Describes what named character references are available (beyond the 5 XML built-ins of
&
, <
, >
, '
and "
).