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"
).
精彩评论